예제 #1
0
파일: models.py 프로젝트: fredwilliam/PMO
 def get_data(self, sort_column=None, sort_descending=False):
     """Gets a cursor of the data associated with this group"""
     sort_string = get_sort_string(sort_column, sort_descending)
     sql = "SELECT * FROM %s %s" % (self.view_name, sort_string)
     cursor = connection.cursor()
     cursor.execute(sql)
     return cursor
예제 #2
0
 def _get_cursor(self, column_filters=[], sort_column="id", sort_descending=True):
     '''Gets a cursor associated with a query against this table.  See
        get_rows for documentation of the parameters.'''
     
     # Note that the data view is dependent on id being first
     sql = " SELECT su.id as 'submision_id', su.submit_time, s.* FROM %s s " % self.table_name + \
           " JOIN xformmanager_metadata m ON m.raw_data=s.id " + \
           " JOIN receiver_attachment a ON m.attachment_id=a.id " + \
           " JOIN receiver_submission su ON a.submission_id=su.id " + \
           " WHERE m.formdefmodel_id=%s " % self.pk
     # add filtering
     if column_filters:
         for filter in column_filters:
             if len(filter) != 3:
                 raise TypeError("_get_cursor expects column_filters of length 3 " + \
                     "e.g.['pk','=','3'] (only %s given)" % len(filter))
             if isinstance( filter[2],basestring ):
                 # strings need to be quoted
                 if filter[0] == 'submit_time':
                     to_append = " AND su.%s %s '%s' " % tuple( filter )
                 else:
                     to_append = " AND s.%s %s '%s' " % tuple( filter )
             else:
                 # force non-strings to strings
                 filter[2] = unicode(filter[2]) 
                 to_append = " AND s.%s %s %s " % tuple( filter )
             sql = sql + to_append
     
     sql = sql + get_sort_string(sort_column, sort_descending)
     cursor = connection.cursor()
     cursor.execute(sql)
     return cursor