Handle more than one change result when searching
...by change ID. Change-Id: Ie8fb11bf0a52b13870db5d4f9c407f775b93e939
This commit is contained in:
parent
fbb9969033
commit
3b29386bdc
@ -463,12 +463,12 @@ class App(object):
|
|||||||
return
|
return
|
||||||
with self.db.getSession() as session:
|
with self.db.getSession() as session:
|
||||||
if number:
|
if number:
|
||||||
change = session.getChangeByNumber(number)
|
changes = [session.getChangeByNumber(number)]
|
||||||
elif changeid:
|
elif changeid:
|
||||||
change = session.getChangeByChangeID(changeid)
|
changes = session.getChangesByChangeID(changeid)
|
||||||
change_key = change and change.key or None
|
change_keys = [c.key for c in changes if c]
|
||||||
restid = change and change.id or None
|
restids = [c.id for c in changes if c]
|
||||||
if change_key is None:
|
if not change_keys:
|
||||||
if self.sync.offline:
|
if self.sync.offline:
|
||||||
raise Exception('Can not sync change while offline.')
|
raise Exception('Can not sync change while offline.')
|
||||||
dialog = mywid.SystemMessage("Syncing change...")
|
dialog = mywid.SystemMessage("Syncing change...")
|
||||||
@ -489,14 +489,15 @@ class App(object):
|
|||||||
self.backScreen()
|
self.backScreen()
|
||||||
with self.db.getSession() as session:
|
with self.db.getSession() as session:
|
||||||
if number:
|
if number:
|
||||||
change = session.getChangeByNumber(number)
|
changes = [session.getChangeByNumber(number)]
|
||||||
elif changeid:
|
elif changeid:
|
||||||
change = session.getChangeByChangeID(changeid)
|
changes = session.getChangesByChangeID(changeid)
|
||||||
change_key = change and change.key or None
|
change_keys = [c.key for c in changes if c]
|
||||||
elif restid:
|
elif restids:
|
||||||
|
for restid in restids:
|
||||||
task = sync.SyncChangeTask(restid, sync.HIGH_PRIORITY)
|
task = sync.SyncChangeTask(restid, sync.HIGH_PRIORITY)
|
||||||
self.sync.submitTask(task)
|
self.sync.submitTask(task)
|
||||||
if change_key is None:
|
if not change_keys:
|
||||||
raise Exception('Change is not in local database.')
|
raise Exception('Change is not in local database.')
|
||||||
|
|
||||||
def doSearch(self, query):
|
def doSearch(self, query):
|
||||||
|
@ -794,9 +794,9 @@ class DatabaseSession(object):
|
|||||||
return set([])
|
return set([])
|
||||||
return set([r[0] for r in self.session().query(Change.id).filter(Change.id.in_(ids)).all()])
|
return set([r[0] for r in self.session().query(Change.id).filter(Change.id.in_(ids)).all()])
|
||||||
|
|
||||||
def getChangeByChangeID(self, change_id):
|
def getChangesByChangeID(self, change_id):
|
||||||
try:
|
try:
|
||||||
return self.session().query(Change).filter_by(change_id=change_id).one()
|
return self.session().query(Change).filter_by(change_id=change_id)
|
||||||
except sqlalchemy.orm.exc.NoResultFound:
|
except sqlalchemy.orm.exc.NoResultFound:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user