folders_list = list(self.get_all_folders(parent))
files_list = [(fields['cn'], internal_name, 'f') for internal_name, \
- fields in self.model._get_files(['cn'], parent).items()]
+ fields in self.model.get_files(['cn'], parent).items()]
return folders_list + files_list
def get_item(self, _id):
return [(name, internal_name, 'd') for name, internal_name in \
self.model.get_folders()]
- #def get_all_files(self):
- # """Gets all peoples."""
- # # FIXME: read field names from Config
- # files_dict = self.model.get_files(['cn'])
- # return [(files_dict[internal_name]['cn'], internal_name, TYPE_FILE) \
- # for internal_name in files_dict]
-
- def get_files_by_pattern(self, pattern, separated=False):
+ def get_files_by_pattern(self, pattern=''):
"""Gets all peoples matched pattern."""
- if not separated:
- return [(name, internal_name, TYPE_FILE) for internal_name, name \
- in self.model.get_files_by_pattern(pattern)]
- else:
- files_dict = self.model._get_files(['cn', 'o', 'ou'], 'cn', pattern, True)
- return [("%s" % files_dict[internal_name]['cn'], "%s / %s" % (
- files_dict[internal_name]['o'], files_dict[internal_name]['ou']), \
- internal_name, TYPE_FILE) for internal_name in files_dict]
+ files_dict = self.model.get_files_by_pattern(['cn', 'o', 'ou'], 'cn', pattern, True)
+ return [("%s" % files_dict[internal_name]['cn'], "%s / %s" % (
+ files_dict[internal_name]['o'], files_dict[internal_name]['ou']), \
+ internal_name, TYPE_FILE) for internal_name in files_dict]
def get_fields(self):
"""Returns all exists fields from model."""
return self.conn.execute("SELECT DISTINCT name, id FROM struct \
WHERE parent=? ORDER BY name ASC", (parent,)).fetchall()
- def _get_files(self, fields, parent=0):
+ def get_files(self, fields, parent=0):
items_dict = {}
execute = self.conn.execute
left join relation on relation.data_id=data.id \
where relation.struct_id=? and field_id in (%s)"
"""
- query = "select id, field_id, value from data where id in (select data_id from relation where struct_id=?) and field_id in (%s)"
+ query = "select id, field_id, value from data \
+ where id in (select data_id from relation where struct_id=?) \
+ and field_id in (%s)"
data = execute(query % ','.join('%r' % f for f in fields.keys()), (parent,)).fetchall()
return items_dict
-
- def get_files(self, fields, parent=0, pattern=''):
- """Returns list of all files from DATA table."""
-
- items_dict = {}
- execute = self.conn.execute
- fields = execute("SELECT id, name FROM fields WHERE name IN (%s)" \
- % ','.join('%r' % (field,) for field in fields)).fetchall()
- if parent == 0: # get all files
- field_id = execute("SELECT id FROM fields WHERE name=?", \
- ('cn',)).fetchone()[0]
- #data_ids = [_id[0] for _id in execute("SELECT DISTINCT id FROM \
- # data").fetchall()]
- data_ids = [_id[0] for _id in execute("SELECT DISTINCT id FROM \
- data WHERE value LIKE '%s%%' AND field_id=? LIMIT 50" % pattern.capitalize(), (field_id,)).fetchall()]
- else: # get files for selected parent
- data_ids = [_id[0] for _id in execute("SELECT data_id FROM \
- relation WHERE struct_id=?", (parent,)).fetchall()]
- for data_id in data_ids:
- items_dict[data_id] = {}
- for field_id, field_name in fields:
- field_value = execute("SELECT value FROM data WHERE id=? \
- AND field_id=?", (data_id, field_id)).fetchone()[0]
- items_dict[data_id][field_name] = field_value
- return items_dict
-
- def _get_files_by_pattern(self, fields, key='cn', pattern='', search_from_start=False):
+ def get_files_by_pattern(self, fields, key='cn', pattern='', search_from_start=False):
"""Returns list of all files from DATA table."""
items_dict = {}
return items_dict
- def get_files_by_pattern(self, pattern):
- """Returns list of all files, matched pattern string."""
-
- if not pattern:
- return []
- execute = self.conn.execute
- field_id = execute("SELECT id FROM fields WHERE name=?", \
- ('cn',)).fetchone()[0]
- return execute("SELECT id, value FROM data WHERE value LIKE '%s%%' \
- AND field_id=? LIMIT 50" % pattern.capitalize(), (field_id,)).fetchall()
-
def get_entry(self, _id):
"""Returns full entry by it id."""
entry_dict['image'] = sql_res[0]
return entry_dict
- def _get_entry(self, _id):
- """Returns full entry by it id."""
-
- execute = self.conn.execute
- entry_dict = {}
- for field_id, value in execute("SELECT field_id, value FROM data WHERE \
- id=?", (_id,)).fetchall():
- field_name = execute("SELECT name FROM fields WHERE id=?", \
- (field_id,)).fetchone()[0]
- entry_dict[field_name] = value
- sql_res = execute('select photo from photo where data_id=?', \
- (_id,)).fetchone()
- if sql_res is not None:
- entry_dict['image'] = sql_res[0]
- return entry_dict
-
if __name__ == "__main__":
db = SQLite('/tmp')
#print db.get_files(('cn', 'o', 'ou'), 0)
self.controller.get_all_subfolders())
else:
self._show_ui(view='box', show_search=True)
+ set_box_content(self.box, self._show_item_dialog, \
+ self.controller.get_files_by_pattern())
def select_item_cb(self, widget, column):
"""
"""Search items from database."""
set_box_content(self.box, self._show_item_dialog, \
- self.controller.get_files_by_pattern(widget.get_text(), \
- separated=True))
+ self.controller.get_files_by_pattern(widget.get_text()))
widget.grab_focus()
def clear_search_entry_cb(self, widget, event):
"""Clears search entry content."""
self.search_entry.set_text('')
- set_box_content(self.box, None)
+ set_box_content(self.box, self._show_item_dialog, \
+ self.controller.get_files_by_pattern())
+
def call_cb(self, widget):
"""Nake a phone call."""