Package Gnumed :: Package timelinelib :: Package repositories :: Module categories
[frames] | no frames]

Source Code for Module Gnumed.timelinelib.repositories.categories

 1  # Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018  Rickard Lindberg, Roger Lindberg 
 2  # 
 3  # This file is part of Timeline. 
 4  # 
 5  # Timeline is free software: you can redistribute it and/or modify 
 6  # it under the terms of the GNU General Public License as published by 
 7  # the Free Software Foundation, either version 3 of the License, or 
 8  # (at your option) any later version. 
 9  # 
10  # Timeline is distributed in the hope that it will be useful, 
11  # but WITHOUT ANY WARRANTY; without even the implied warranty of 
12  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
13  # GNU General Public License for more details. 
14  # 
15  # You should have received a copy of the GNU General Public License 
16  # along with Timeline.  If not, see <http://www.gnu.org/licenses/>. 
17   
18   
19  from timelinelib.general.observer import Observable 
20   
21   
22 -class CategoriesFacade(Observable):
23
24 - def __init__(self, db, view_properties):
25 Observable.__init__(self) 26 self.db = db 27 self.view_properties = view_properties 28 self.db.listen_for_any(self._notify) 29 self.view_properties.listen_for_any(self._notify)
30
31 - def get_all(self):
32 return self.db.get_categories()
33
34 - def get_immediate_children(self, parent):
35 return [category for category in self.db.get_categories() 36 if category._get_parent() == parent]
37
38 - def get_all_children(self, parent):
39 all_children = [] 40 for child in self.get_immediate_children(parent): 41 all_children.append(child) 42 all_children.extend(self.get_all_children(child)) 43 return all_children
44
45 - def get_parents(self, child):
46 parents = [] 47 while child._get_parent(): 48 parents.append(child._get_parent()) 49 child = child._get_parent() 50 return parents
51
53 parents = [] 54 for category in self._get_all_checked_categories(): 55 parents.extend(self.get_parents(category)) 56 return parents
57
58 - def is_visible(self, category):
60
61 - def is_event_with_category_visible(self, category):
63
65 return [category for category in self.db.get_categories() 66 if self.is_visible(category)]
67