From 335217081c87c0976f4bbdd6f9123301f0dd7e40 Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Wed, 25 Mar 2015 17:39:51 +0100 Subject: [PATCH] base functionality for storing selected institution of user/person in favorites --- browser/common.py | 4 ++-- organize/personal/favorite.py | 17 ++++++++++++++++- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/browser/common.py b/browser/common.py index e2a5ee3..5936abf 100644 --- a/browser/common.py +++ b/browser/common.py @@ -149,8 +149,8 @@ class SortableMixin(object): dir = 'asc' result[tableName] = dict( colName=fn, ascending=(dir=='asc'), fparam=v) - result = favorite.update(getPersonForUser( - self.context, self.request), self.target, 'sort', result) + result = favorite.updateSortInfo(getPersonForUser( + self.context, self.request), self.target, result) return result def isSortableColumn(self, tableName, colName): diff --git a/organize/personal/favorite.py b/organize/personal/favorite.py index a2e99d8..59cb665 100644 --- a/organize/personal/favorite.py +++ b/organize/personal/favorite.py @@ -89,7 +89,7 @@ class Favorite(Track): return self.data.get('type') or 'favorite' -def update(person, task, type, data): +def updateSortInfo(person, task, data): if person is not None: favorites = task.getLoopsRoot().getRecordManager().get('favorites') if favorites is None: @@ -112,3 +112,18 @@ def update(person, task, type, data): Favorites(favorites).add(task, person, dict(type='sort', sortInfo=data)) return data + + +def setInstitution(person, inst): + if person is not None: + favorites = inst.getLoopsRoot().getRecordManager().get('favorites') + if favorites is None: + return + personUid = util.getUidForObject(person) + taskUid = util.getUidForObject(inst) + for fav in favorites.query(userName=personUid): + if fav.type == 'institution': + fav.taskId = taskUid + favorites.indexTrack(None, fav, 'taskId') + else: + Favorites(favorites).add(inst, person, dict(type='institution'))