# HG changeset patch # User Lennard de Rijk # Date 1253292794 -7200 # Node ID c063bb466376a647f51a176e3a674c2a10c10c36 # Parent c904033c58e1a7859a2bd391a22d73d53ef9e8f5 Added getOrCreateTaskSubscriptionForTask to TaskSubscription Logic. diff -r c904033c58e1 -r c063bb466376 app/soc/modules/ghop/logic/models/task_subscription.py --- a/app/soc/modules/ghop/logic/models/task_subscription.py Fri Sep 18 18:40:17 2009 +0200 +++ b/app/soc/modules/ghop/logic/models/task_subscription.py Fri Sep 18 18:53:14 2009 +0200 @@ -43,5 +43,25 @@ super(Logic, self).__init__(model, base_model=base_model, id_based=id_based) + def getOrCreateTaskSubscriptionForTask(self, task_entity): + """Gets or creates a TaskSubscription entity for the given GHOPTask. + + Args: + task_entity: GHOPTask entity + + Returns: + Existing TaskSubscription entity iff any exists, otherwise a new + TaskSubscription entity. + """ + + fields = {'task': task_entity} + + task_subscription = self.getForFields(fields, unique=True) + + if not task_subscription: + task_subscription = self.updateOrCreateFromFields(fields) + + return task_subscription + logic = Logic()