def do_search(self, line): """ search search for an event. Parameters interactively asked """ query = Query() self.select_values(CATEGORIES, query.categories, ' Select categorie (or empty to stop)') self.select_values(TICKET, query.ticket, ' Select tickets status (or empty to stop)') if query.categories and len(query.categories) > 0 and query.ticket and len(query.ticket) > 0: query.city = self.ask('Enter a city', default='') query.summary = self.ask('Enter a title', default='') start_date = self.ask_date('Enter a start date', default='today') end_date = self.ask_date('Enter a end date', default='') if end_date: if end_date == start_date: end_date = datetime.combine(start_date, time.max) else: end_date = datetime.combine(end_date, time.max) query.start_date = datetime.combine(start_date, time.min) query.end_date = end_date save_query = self.ask('Save query (y/n)', default='n') if save_query.upper() == 'Y': name = '' while not name: name = self.ask('Query name') self.config.set('queries', name, query) self.config.save() self.complete_search(query)
def do_search(self, line): """ search search for an event. Parameters interactively asked """ query = Query() self.select_values(CATEGORIES, query.categories, ' Select categorie (or empty to stop)') self.select_values(TICKET, query.ticket, ' Select tickets status (or empty to stop)') if query.categories and len(query.categories) > 0 and query.ticket and len(query.ticket) > 0: query.city = self.ask('Enter a city', default='') query.summary = self.ask('Enter a title', default='') start_date = self.ask_date('Enter a start date', default='today') end_date = self.ask_date('Enter a end date', default='') if end_date: if end_date == start_date: end_date = datetime.combine(start_date, time.max) else: end_date = datetime.combine(end_date, time.max) query.start_date = datetime.combine(start_date, time.min) query.end_date = end_date self.change_path([u'events']) self.start_format() for event in self.do('search_events', query): if event: self.cached_format(event)
def do_search(self, line): """ search search for an event. Parameters interactively asked """ query = Query() self.select_values(CATEGORIES, query.categories, " Select categorie (or empty to stop)") self.select_values(TICKET, query.ticket, " Select tickets status (or empty to stop)") if query.categories and len(query.categories) > 0 and query.ticket and len(query.ticket) > 0: query.city = self.ask("Enter a city", default="") query.summary = self.ask("Enter a title", default="") start_date = self.ask_date("Enter a start date", default="today") end_date = self.ask_date("Enter a end date", default="") if end_date: if end_date == start_date: end_date = datetime.combine(start_date, time.max) else: end_date = datetime.combine(end_date, time.max) query.start_date = datetime.combine(start_date, time.min) query.end_date = end_date save_query = self.ask("Save query (y/n)", default="n") if save_query.upper() == "Y": name = "" while not name: name = self.ask("Query name") self.config.set("queries", name, query) self.config.save() self.complete_search(query)
def do_search(self, line): """ search search for an event. Parameters interactively asked """ query = Query() r = "notempty" while r != "": for category in CATEGORIES.values: print " %s%2d)%s [%s] %s" % ( self.BOLD, CATEGORIES.index[category] + 1, self.NC, "x" if category in query.categories else " ", category, ) r = self.ask(" Select category (or empty to stop)", regexp="(\d+|)", default="") if not r.isdigit(): continue r = int(r) if r <= 0 or r > len(CATEGORIES.values): continue value = CATEGORIES.values[r - 1] if value in query.categories: query.categories.remove(value) else: query.categories.append(value) if query.categories and len(query.categories) > 0: query.city = self.ask("Enter a city", default="") start_date = self.ask_date("Enter a start date", default="today") end_date = self.ask_date("Enter a end date", default="") if end_date: if end_date == start_date: end_date = datetime.combine(start_date, time.max) else: end_date = datetime.combine(end_date, time.max) query.start_date = datetime.combine(start_date, time.min) query.end_date = end_date self.change_path([u"events"]) self.start_format() for backend, event in self.do("search_events", query): if event: self.cached_format(event)
def do_search(self, line): """ search search for an event. Parameters interactively asked """ query = Query() r = 'notempty' while r != '': for category in CATEGORIES.values: print ' %s%2d)%s [%s] %s' % (self.BOLD, CATEGORIES.index[category] + 1, self.NC, 'x' if category in query.categories else ' ', category) r = self.ask(' Select category (or empty to stop)', regexp='(\d+|)', default='') if not r.isdigit(): continue r = int(r) if r <= 0 or r > len(CATEGORIES.values): continue value = CATEGORIES.values[r - 1] if value in query.categories: query.categories.remove(value) else: query.categories.append(value) if query.categories and len(query.categories) > 0: query.city = self.ask('Enter a city', default='') start_date = self.ask_date('Enter a start date', default='today') end_date = self.ask_date('Enter a end date', default='') if end_date: if end_date == start_date: end_date = datetime.combine(start_date, time.max) else: end_date = datetime.combine(end_date, time.max) query.start_date = datetime.combine(start_date, time.min) query.end_date = end_date self.change_path([u'events']) self.start_format() for backend, event in self.do('search_events', query): if event: self.cached_format(event)
def _fetch_objects(self, objs): objects = [] collections = [] split_path = self.working_path.get() try: if len(split_path) == 0: for category in CATEGORIES.values: collection = Collection([category], category) collection.backend = u'boobcoming' collections.append(collection) elif len(split_path) == 1 and split_path[0] in CATEGORIES.values: query = Query() query.categories = split_path query.start_date = datetime.combine(parse_date('today'), time.min) query.end_date = parse_date('') query.city = '' for backend, event in self.do('search_events', query): if event: objects.append(event) except CallErrors as errors: self.bcall_errors_handler(errors, CollectionNotFound) return (objects, collections)
def list_events(self, date_from, date_to=None): q = Query() q.start_date = date_from q.end_date = date_to return self.search_events(q)