[POS-commit] r1805 - stoq/trunk/stoq/gui/search

Johan Dahlin jdahlin at async.com.br
Wed Dec 7 13:35:45 BRST 2005


Author: jdahlin
Date: Wed Dec  7 13:35:45 2005
New Revision: 1805

Modified:
   stoq/trunk/stoq/gui/search/person.py
Log:
Refactor get_extra_query to use an almost identical syntax.
- One exit path
- Append query in common case
- Avoid an extra variable


Modified: stoq/trunk/stoq/gui/search/person.py
==============================================================================
--- stoq/trunk/stoq/gui/search/person.py	(original)
+++ stoq/trunk/stoq/gui/search/person.py	Wed Dec  7 13:35:45 2005
@@ -114,12 +114,11 @@
 
     def get_extra_query(self):
         employee_table = Person.getAdapterClass(IEmployee)
-        q1 = employee_table.q._originalID == Person.q.id
+        query = employee_table.q._originalID == Person.q.id
         status = self.filter_slave.get_selected_status()
         if status != ALL_ITEMS_INDEX:
-            q2 = employee_table.q.status == status
-            return AND(q1, q2)
-        return q1
+            query = AND(query, employee_table.q.status == status)
+        return query
 
     def get_query_args(self):
         return dict(join=LEFTJOINOn(self.table, EmployeeRole,
@@ -214,12 +213,11 @@
 
     def get_extra_query(self):
         provider_table = self.table.getAdapterClass(ICreditProvider)
-        q1 = self.table.q.id == provider_table.q._originalID
+        query = self.table.q.id == provider_table.q._originalID
         status = self.filter_slave.get_selected_status()
-        if status == ALL_ITEMS_INDEX:
-            return q1
-        q2 = provider_table.q.provider_type == status
-        return AND(q1, q2)
+        if status != ALL_ITEMS_INDEX:
+            query = AND(query, provider_table.q.provider_type == status)
+        return query
     
 
 class ClientSearch(BasePersonSearch):
@@ -261,12 +259,11 @@
 
     def get_extra_query(self):
         client_table = Person.getAdapterClass(IClient)
-        q1 = Person.q.id == client_table.q._originalID
+        query = Person.q.id == client_table.q._originalID
         status = self.filter_slave.get_selected_status()
         if status != ALL_ITEMS_INDEX:
-            q2 = client_table.q.status == status
-            return AND(q1, q2)
-        return q1
+            query = AND(query, client_table.q.status == status)
+        return query
 
     def get_query_args(self):
         individual_table = Person.getAdapterClass(IIndividual)
@@ -308,9 +305,8 @@
 
     def get_extra_query(self):
         transporter_table = self.table.getAdapterClass(ITransporter)
-        q1 = self.table.q.id == transporter_table.q._originalID
+        query = self.table.q.id == transporter_table.q._originalID
         status = self.filter_slave.get_selected_status()
-        if status == ALL_ITEMS_INDEX:
-            return q1
-        q2 = transporter_table.q.is_active == status
-        return AND(q1, q2)
+        if status != ALL_ITEMS_INDEX:
+            query = AND(query, transporter_table.q.is_active == status)
+        return query


More information about the POS-commit mailing list