Set project on top on user projects list

stable
Daniel García 2018-11-09 13:20:55 +01:00 committed by Alex Hermida
parent 533d72fee6
commit a35db80932
2 changed files with 16 additions and 9 deletions

View File

@ -53,17 +53,17 @@ def connect_memberships_signals():
sender=apps.get_model("projects", "Membership"), sender=apps.get_model("projects", "Membership"),
dispatch_uid='membership_pre_delete') dispatch_uid='membership_pre_delete')
# On membership object is deleted, update notify policies of all objects relation. # On membership object is created, reorder and create notify policies
signals.post_save.connect(handlers.create_notify_policy, signals.post_save.connect(handlers.membership_post_save,
sender=apps.get_model("projects", "Membership"), sender=apps.get_model("projects", "Membership"),
dispatch_uid='create-notify-policy') dispatch_uid='membership_post_save')
def disconnect_memberships_signals(): def disconnect_memberships_signals():
signals.pre_delete.disconnect(sender=apps.get_model("projects", "Membership"), signals.pre_delete.disconnect(sender=apps.get_model("projects", "Membership"),
dispatch_uid='membership_pre_delete') dispatch_uid='membership_pre_delete')
signals.post_save.disconnect(sender=apps.get_model("projects", "Membership"), signals.post_save.disconnect(sender=apps.get_model("projects", "Membership"),
dispatch_uid='create-notify-policy') dispatch_uid='membership_post_save')
## US Statuses Signals ## US Statuses Signals

View File

@ -18,6 +18,7 @@
from django.apps import apps from django.apps import apps
from django.conf import settings from django.conf import settings
from django.db.models import F
from taiga.projects.notifications.services import create_notify_policy_if_not_exists from taiga.projects.notifications.services import create_notify_policy_if_not_exists
@ -32,15 +33,21 @@ def membership_post_delete(sender, instance, using, **kwargs):
instance.project.update_role_points() instance.project.update_role_points()
## Notify policy def membership_post_save(sender, instance, using, **kwargs):
if not instance.user:
return
create_notify_policy_if_not_exists(instance.project, instance.user)
def create_notify_policy(sender, instance, using, **kwargs): # Set project on top on user projects list
if instance.user: membership = apps.get_model("projects", "Membership")
create_notify_policy_if_not_exists(instance.project, instance.user) membership.objects.filter(user=instance.user) \
.update(user_order=F('user_order') + 1)
membership.objects.filter(user=instance.user, project=instance.project)\
.update(user_order=0)
## Project attributes ## Project attributes
def project_post_save(sender, instance, created, **kwargs): def project_post_save(sender, instance, created, **kwargs):
""" """
Populate new project dependen default data Populate new project dependen default data