[boobcoming] search by ticket status

This commit is contained in:
Alexandre Morignot 2014-11-27 15:37:21 +01:00
commit 1142868dd7

View file

@ -24,7 +24,7 @@ from datetime import time, datetime
from weboob.tools.date import parse_date
from weboob.tools.application.formatters.iformatter import IFormatter, PrettyFormatter
from weboob.capabilities.base import empty
from weboob.capabilities.calendar import CapCalendarEvent, Query, CATEGORIES, BaseCalendarEvent
from weboob.capabilities.calendar import CapCalendarEvent, Query, CATEGORIES, BaseCalendarEvent, TICKET
from weboob.tools.application.repl import ReplApplication, defaultcount
@ -188,6 +188,29 @@ class Boobcoming(ReplApplication):
return super(Boobcoming, self).comp_object(obj1, obj2)
def select_values(self, values_from, values_to, query_str):
r = 'notempty'
while r != '':
for value in values_from.values:
print(' %s%2d)%s [%s] %s' % (self.BOLD,
values_from.index[value] + 1,
self.NC,
'x' if value in values_to else ' ',
value))
r = self.ask(query_str, regexp='(\d+|)', default='')
if not r.isdigit():
continue
r = int(r)
if r <= 0 or r > len(values_from.values):
continue
value = values_from.values[r - 1]
if value in values_to:
values_to.remove(value)
else:
values_to.append(value)
@defaultcount(10)
def do_search(self, line):
"""
@ -196,26 +219,10 @@ class Boobcoming(ReplApplication):
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)
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:
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='')