def date_input_search_widget(table_id, field_id): form = DateFilterWidget(common.get_application(), common.get_request(), table_id, field_id) html = '<div id="date_input_search_widget_%(table_id)s_%(field_id)s" style="display: none;">%(html)s</div>' \ % {"table_id": table_id, "field_id": field_id, "html": form.render()} script = open("%s/templates/date-input-search-widget.js" % (_path)).read() return html, script % {"table_id": table_id, "field_id": field_id}
def get_sittings(self): #!+QUERIES(mb, nov-2011) to review the extra queries in `get_items` formatter = self.request.locale.dates.getFormatter("date", "full") session = Session() query = session.query(domain.GroupSitting).filter( self.group_sittings_filter ).order_by(schema.group_sittings.c.start_date).options( eagerload("group"), #eagerload("sitting_type"), eagerload("item_schedule") ) if not self.end_date: query = query.limit( BungeniSettings( common.get_application() ).max_sittings_in_business ) sittings = query.all() day = u"" day_list = [] s_dict = {} for sitting in sittings: sday = formatter.format(sitting.start_date) if sday != day: s_list = [] day = sday if s_dict: day_list.append(s_dict) s_dict = {} if sitting.group.type == "parliament": _url = url.set_url_context("/business/sittings/obj-%i" % ( sitting.group_sitting_id)) elif sitting.group.type == "committee": _url = url.set_url_context( "/business/committees/obj-%i/sittings/obj-%i" % (sitting.group.group_id, sitting.group_sitting_id)) else: _url = "#" s_list.append({ "start": sitting.start_date.strftime("%H:%M"), "end": sitting.end_date.strftime("%H:%M"), "type": sitting.group.type, "name": sitting.group.short_name, "url": _url, "items": self.get_sitting_items(sitting), }) s_dict["day"] = day s_dict["sittings"] = s_list else: if s_dict: day_list.append(s_dict) return day_list
def get_sittings(self): #!+QUERIES(mb, nov-2011) to review the extra queries in `get_items` formatter = self.request.locale.dates.getFormatter("date", "full") session = Session() query = session.query(domain.GroupSitting).filter( self.group_sittings_filter).order_by( schema.group_sittings.c.start_date).options( eagerload("group"), #eagerload("sitting_type"), eagerload("item_schedule")) if not self.end_date: query = query.limit( BungeniSettings( common.get_application()).max_sittings_in_business) sittings = query.all() day = u"" day_list = [] s_dict = {} for sitting in sittings: sday = formatter.format(sitting.start_date) if sday != day: s_list = [] day = sday if s_dict: day_list.append(s_dict) s_dict = {} if sitting.group.type == "parliament": _url = url.set_url_context("/business/sittings/obj-%i" % (sitting.group_sitting_id)) elif sitting.group.type == "committee": _url = url.set_url_context( "/business/committees/obj-%i/sittings/obj-%i" % (sitting.group.group_id, sitting.group_sitting_id)) else: _url = "#" s_list.append({ "start": sitting.start_date.strftime("%H:%M"), "end": sitting.end_date.strftime("%H:%M"), "type": sitting.group.type, "name": sitting.group.short_name, "url": _url, "items": self.get_sitting_items(sitting), }) s_dict["day"] = day s_dict["sittings"] = s_list else: if s_dict: day_list.append(s_dict) return day_list
def __call__(self, context=None): app = common.get_application() terms = [] roles = getUtilitiesFor(IRole, app) for name, role in roles: #Roles that must not be assigned to users in an office if name not in ["bungeni.Anonymous", "bungeni.Authenticated", "bungeni.Owner", "zope.Manager", "zope.Member", "bungeni.MP", "bungeni.Minister", "bungeni.Admin", ]: terms.append(vocabulary.SimpleTerm(name, name, name)) return vocabulary.SimpleVocabulary(terms)
def __call__(self, context=None): app = common.get_application() terms = [] roles = getUtilitiesFor(IRole, app) for name, role in roles: #Roles that must not be assigned to users in an office if name not in [ "bungeni.Anonymous", "bungeni.Authenticated", "bungeni.Owner", "zope.Manager", "zope.Member", "bungeni.MP", "bungeni.Minister", "bungeni.Admin", ]: terms.append(vocabulary.SimpleTerm(name, name, name)) return vocabulary.SimpleVocabulary(terms)
def __call__(self, context=None): app = common.get_application() terms = [] roles = getUtilitiesFor(IRole, app) print "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX START", for name, role in roles: #Roles that must not be assigned to users in an office if name in ["bungeni.Anonymous", "bungeni.Authenticated", "bungeni.Owner", "zope.Manager", "zope.Member", "bungeni.MP", "bungeni.Minister", "bungeni.Admin"]: continue print "XXXXXXXXXXXXXXXXXXXX", name, role if not ISubRoleAnnotations(role).is_sub_role: terms.append(vocabulary.SimpleTerm(name, name, name)) return vocabulary.SimpleVocabulary(terms)
def get_search_url(): return SearchSettings(common.get_application()).search_uri
def workspace_search(self): """ Search in workspace section, based on views from bungeni.ui.viewlets.workspace """ application = common.get_application() parliament = get_current_parliament(None) parliament.__parent__ = application principal = get_principal() roles = common.get_context_roles(parliament, principal) # minister role, filtering by states and object_type and ministry_id if not roles: user_id = get_db_user_id() government_id = get_current_parliament_governments( parliament)[0].group_id ministries = get_ministries_for_user_in_government( user_id, government_id) if ministries: states = workspace.MinistryArchiveViewlet.states + \ workspace.OralMinistryQuestionsViewlet.states + \ workspace.WrittenMinistryQuestionsViewlet.states + \ workspace.InProgressMinistryItemsViewlet.states states = set(states) ministry_ids = [m.group_id for m in ministries] # filter by object_type (questions only) type_query = self.searcher.query_field('object_type', "Question") query = self.searcher.query_composite(self.searcher.OP_AND, \ (self.query, type_query,)) subqueries = [] for state in states: subqueries.append( self.searcher.query_field('status', state)) state_query = self.searcher.query_composite( self.searcher.OP_OR, subqueries) query = self.searcher.query_composite(self.searcher.OP_AND, \ (query, state_query,)) #filter for ministries ministries_queries = [] for mid in ministry_ids: ministries_queries.append( self.searcher.query_field('ministry_id', str(mid))) m_query = self.searcher.query_composite( self.searcher.OP_OR, ministries_queries) query = self.searcher.query_composite(self.searcher.OP_AND, \ (query, m_query,)) try: results = self.searcher.search( query, 0, self.searcher.get_doccount()) except: results = [] return list(results) # filtering by states and owner if 'bungeni.MP' in roles: states = workspace.MPItemActionRequiredViewlet.states + \ workspace.MPItemDraftViewlet.states + \ workspace.MPItemInProgressViewlet.states + \ workspace.ItemArchiveViewlet.states states = set(states) # filter by owner of PI owner_query = self.searcher.query_field('owner', str(get_db_user_id())) query = self.searcher.query_composite(self.searcher.OP_AND, \ (self.query, owner_query,)) subqueries = [] for state in states: subqueries.append(self.searcher.query_field('status', state)) state_query = self.searcher.query_composite( self.searcher.OP_OR, subqueries) query = self.searcher.query_composite(self.searcher.OP_AND, \ (query, state_query,)) try: results = self.searcher.search(query, 0, self.searcher.get_doccount()) except: results = [] return list(results) # filtering by states if 'bungeni.Clerk' in roles: states = workspace.ClerkItemActionRequiredViewlet.states + \ workspace.ClerkItemsWorkingDraftViewlet.states + \ workspace.ClerkReviewedItemViewlet.states + \ workspace.ItemsApprovedViewlet.states + \ workspace.ItemsPendingScheduleViewlet.states + \ workspace.ItemsScheduledViewlet.states + \ workspace.AllItemArchiveViewlet.states states = set(states) subqueries = [] for state in states: subqueries.append(self.searcher.query_field('status', state)) state_query = self.searcher.query_composite( self.searcher.OP_OR, subqueries) query = self.searcher.query_composite(self.searcher.OP_AND, \ (self.query, state_query,)) try: results = self.searcher.search(query, 0, self.searcher.get_doccount()) except: results = [] return list(results) # no results return False
def settings(self): return EmailSettings(get_application())
def workspace_search(self): """ Search in workspace section, based on views from bungeni.ui.viewlets.workspace """ application = common.get_application() parliament = get_current_parliament(None) parliament.__parent__ = application principal = get_principal() roles = common.get_context_roles(parliament, principal) # minister role, filtering by states and object_type and ministry_id if not roles: user_id = get_db_user_id() government_id = get_current_parliament_governments(parliament)[0].group_id ministries = get_ministries_for_user_in_government(user_id, government_id) if ministries: states = workspace.MinistryArchiveViewlet.states + \ workspace.OralMinistryQuestionsViewlet.states + \ workspace.WrittenMinistryQuestionsViewlet.states + \ workspace.InProgressMinistryItemsViewlet.states states = set(states) ministry_ids = [m.group_id for m in ministries] # filter by object_type (questions only) type_query = self.searcher.query_field('object_type', "Question") query = self.searcher.query_composite(self.searcher.OP_AND, \ (self.query, type_query,)) subqueries = [] for state in states: subqueries.append(self.searcher.query_field('status', state)) state_query = self.searcher.query_composite(self.searcher.OP_OR, subqueries) query = self.searcher.query_composite(self.searcher.OP_AND, \ (query, state_query,)) #filter for ministries ministries_queries = [] for mid in ministry_ids: ministries_queries.append(self.searcher.query_field('ministry_id', str(mid))) m_query = self.searcher.query_composite(self.searcher.OP_OR, ministries_queries) query = self.searcher.query_composite(self.searcher.OP_AND, \ (query, m_query,)) try: results = self.searcher.search(query, 0, self.searcher.get_doccount()) except: results = [] return list(results) # filtering by states and owner if 'bungeni.MP' in roles: states = workspace.MPItemActionRequiredViewlet.states + \ workspace.MPItemDraftViewlet.states + \ workspace.MPItemInProgressViewlet.states + \ workspace.ItemArchiveViewlet.states states = set(states) # filter by owner of PI owner_query = self.searcher.query_field('owner', str(get_db_user_id())) query = self.searcher.query_composite(self.searcher.OP_AND, \ (self.query, owner_query,)) subqueries = [] for state in states: subqueries.append(self.searcher.query_field('status', state)) state_query = self.searcher.query_composite(self.searcher.OP_OR, subqueries) query = self.searcher.query_composite(self.searcher.OP_AND, \ (query, state_query,)) try: results = self.searcher.search(query, 0, self.searcher.get_doccount()) except: results = [] return list(results) # filtering by states if 'bungeni.Clerk' in roles: states = workspace.ClerkItemActionRequiredViewlet.states + \ workspace.ClerkItemsWorkingDraftViewlet.states + \ workspace.ClerkReviewedItemViewlet.states + \ workspace.ItemsApprovedViewlet.states + \ workspace.ItemsPendingScheduleViewlet.states + \ workspace.ItemsScheduledViewlet.states + \ workspace.AllItemArchiveViewlet.states states = set(states) subqueries = [] for state in states: subqueries.append(self.searcher.query_field('status', state)) state_query = self.searcher.query_composite(self.searcher.OP_OR, subqueries) query = self.searcher.query_composite(self.searcher.OP_AND, \ (self.query, state_query,)) try: results = self.searcher.search(query, 0, self.searcher.get_doccount()) except: results = [] return list(results) # no results return False