def new_post_created(message, **kwargs): post = safe_object(message) if post: for user in post.workgroup.members.all(): if user != post.author: messages.new_post_created(post, user)
def concept_saved(message): instance = safe_object(message) if not instance: return for p in instance.favourited_by.all(): if sorted(message['changed_fields']) == ['modified', 'superseded_by_id']: messages.favourite_superseded(recipient=p.user, obj=instance) else: messages.favourite_updated(recipient=p.user, obj=instance) # for status in instance.current_statuses().all(): # for registrar in status.registrationAuthority.registrars.all(): # if sorted(message['changed_fields']) == ['modified', 'superseded_by_id']: # messages.registrar_item_superseded(recipient=registrar, obj=instance) if instance.workgroup: for user in instance.workgroup.viewers.all(): if message['created']: messages.workgroup_item_new(recipient=user, obj=instance) else: messages.workgroup_item_updated(recipient=user, obj=instance) for post in instance.relatedDiscussions.all(): DiscussionComment.objects.create( post=post, body='The item "{name}" (id:{iid}) has been changed.\n\n\ <a href="{url}">View it on the main site.</a>.'.format( name=instance.name, iid=instance.id, url=reverse("aristotle:item", args=[instance.id]) ), author=None, )
def review_request_created(message, **kwargs): review_request = safe_object(message) registration_authorities = [review_request.registration_authority] # Maybe this becomes a many to many later for ra in registration_authorities: for registrar in ra.registrars.all(): messages.review_request_created(review_request, review_request.requester, registrar)
def new_post_created(message, **kwargs): post = safe_object(message) if post: for user in post.workgroup.members.all(): if user != post.author: messages.new_post_created(post, user)
def create_notifications_for_saved_concept(message, **kwargs): user_model = get_user_model() try: user_email = user_model.objects.get(pk=message.get('user_id')).email except user_model.DoesNotExist: user_email = "" version = safe_object(message) object = version.object created = False if Version.objects.get_for_object(object).count() < 2: created = True for user in object.favourited_by: if user.email != user_email: messages.favourite_updated(recipient=user, obj=object) for user in object.editable_by: if not created: if user.email != user_email: messages.items_i_can_edit_updated(recipient=user, obj=object) if object.workgroup: for user in object.workgroup.users_for_role('viewer'): if user.email != user_email: if created: messages.workgroup_item_new(recipient=user, obj=object) else: messages.workgroup_item_updated(recipient=user, obj=object)
def review_request_created(message, **kwargs): review_request = safe_object(message) registration_authorities = [review_request.registration_authority] # Maybe this becomes a many to many later for ra in registration_authorities: for registrar in ra.registrars.all(): if registrar != review_request.requester: messages.review_request_created(recipient=registrar, obj=review_request)
def review_request_updated(message, **kwargs): review_request = safe_object(message) registration_authorities = [review_request.registration_authority] # Maybe this becomes a many to many later for ra in registration_authorities: for registrar in ra.registrars.all(): # TODO: WE NEED TO FIND A WAY TO CHECK IF THE SUBMITTER OF THE UPDATE IS THE CURRENT REGISTRAR IN THE LOOP: # PROBABLY WE NEED TO ADD A NEW FIELD IN THE MODEL: "last_updated_by" # if registrar != review_request.requester: messages.review_request_updated(recipient=registrar, obj=review_request)
def status_changed(message, **kwargs): new_status = safe_object(message) concept = new_status.concept for status in concept.current_statuses().all(): for registrar in status.registrationAuthority.registrars.all(): if concept.statuses.filter(registrationAuthority=new_status.registrationAuthority).count() <= 1: # 0 or 1 because the transaction may not be complete yet messages.registrar_item_registered(recipient=registrar, obj=concept) else: messages.registrar_item_changed_status(recipient=registrar, obj=concept)
def status_changed(message, **kwargs): new_status = safe_object(message) concept = new_status.concept for status in concept.current_statuses().all(): for registrar in status.registrationAuthority.registrars.all(): if concept.statuses.filter(registrationAuthority=new_status.registrationAuthority).count() <= 1: # 0 or 1 because the transaction may not be complete yet messages.registrar_item_registered(recipient=registrar, obj=concept) else: messages.registrar_item_changed_status(recipient=registrar, obj=concept)
def item_superseded(message, **kwargs): new_super_rel = safe_object(message) concept = new_super_rel.older_item for user in concept.favourited_by.all(): if concept.can_view(user) and new_super_rel.newer_item.can_view(user): messages.favourite_superseded(recipient=user, obj=concept) for status in concept.current_statuses().all(): for registrar in status.registrationAuthority.registrars.all(): if concept.can_view(registrar) and new_super_rel.newer_item.can_view(registrar): messages.registrar_item_superseded(recipient=registrar, obj=concept)
def item_superseded(message, **kwargs): new_super_rel = safe_object(message) concept = new_super_rel.older_item for user in concept.favourited_by.all(): if concept.can_view(user) and new_super_rel.newer_item.can_view(user): messages.favourite_superseded(recipient=user, obj=concept) for status in concept.current_statuses().all(): for registrar in status.registrationAuthority.registrars.all(): if concept.can_view(registrar) and new_super_rel.newer_item.can_view(registrar): messages.registrar_item_superseded(recipient=registrar, obj=concept)
def issue_commented(issue_comment, **kwargs): safe_issue_comment = safe_object(issue_comment) if safe_issue_comment.issue.item.workgroup: for user in safe_issue_comment.issue.item.workgroup.member_list: if user != safe_issue_comment.author: messages.issue_comment_created_workgroup(recipient=user, obj=safe_issue_comment) for user in safe_issue_comment.issue.item.favourited_by: if user != safe_issue_comment.author: messages.issue_comment_created_favourite(recipient=user, obj=safe_issue_comment) for user in safe_issue_comment.issue.item.editable_by: if user != safe_issue_comment.author: messages.issue_comment_created_items_i_can_edit(recipient=user, obj=safe_issue_comment)
def item_viewed_action(message): instance = safe_object(message) # Don't accept anonymous users. if message['user'] is not None: user = User.objects.get(pk=message['user']) recently = now() - timedelta(minutes=30) # Create history if a recent one doesn't exist if not user.recently_viewed_metadata.filter(view_date__gt=recently, concept=instance).exists(): UserViewHistory.objects.create(concept=instance, user=user)
def concept_saved(message, **kwargs): instance = safe_object(message) for user in instance.favourited_by: messages.favourite_updated(recipient=user, obj=instance) for user in instance.editable_by: if not message['created']: messages.items_i_can_edit_updated(recipient=user, obj=instance) if instance.workgroup: for user in instance.workgroup.users_for_role('viewer'): if message['created']: messages.workgroup_item_new(recipient=user, obj=instance) else: messages.workgroup_item_updated(recipient=user, obj=instance)
def item_superseded(message, **kwargs): new_super_rel = safe_object(message) concept = new_super_rel.older_item for user in concept.favourited_by.all(): if concept.can_view(user) and new_super_rel.newer_item.can_view(user): messages.favourite_superseded(recipient=user, obj=concept) for user in concept.editable_by: if concept.can_view(user) and new_super_rel.newer_item.can_view(user): messages.items_i_can_edit_superseded(recipient=user, obj=concept) if concept.workgroup: for user in concept.workgroup.users_for_role('viewer'): if concept.can_view(user) and new_super_rel.newer_item.can_view(user): messages.workgroup_item_superseded(recipient=user, obj=concept) for status in concept.current_statuses().all(): for registrar in status.registrationAuthority.registrars.all(): if concept.can_view(registrar) and new_super_rel.newer_item.can_view(registrar): messages.registrar_item_superseded(recipient=registrar, obj=concept, ra=status.registrationAuthority)
def item_viewed_action(message): instance = safe_object(message) if not instance: return if message['user'] is None: # Don't accept anonymous users. return try: user = User.objects.get(pk=message['user']) except: # TODO: Maybe log this # If we don't get a valid user, then don't try and assign to them. return recently = now() - timedelta(minutes=30) if user.recently_viewed_metadata.filter(view_date__gt=recently, concept=instance).exists(): return from .models import UserViewHistory UserViewHistory.objects.create(concept=instance, user=user)
def concept_saved(message): instance = safe_object(message) if not instance: return for user in instance.favourited_by: if sorted(message['changed_fields']) == ['modified', 'superseded_by_id']: messages.favourite_superseded(recipient=user, obj=instance) else: messages.favourite_updated(recipient=user, obj=instance) # for status in instance.current_statuses().all(): # for registrar in status.registrationAuthority.registrars.all(): # if sorted(message['changed_fields']) == ['modified', 'superseded_by_id']: # messages.registrar_item_superseded(recipient=registrar, obj=instance) if instance.workgroup: for user in instance.workgroup.viewers.all(): if message['created']: messages.workgroup_item_new(recipient=user, obj=instance) else: messages.workgroup_item_updated(recipient=user, obj=instance)
def item_viewed_action(message): instance = safe_object(message) if not instance: return if message['user'] is None: # Don't accept anonymous users. return try: user = User.objects.get(pk=message['user']) except: # TODO: Maybe log this # If we don't get a valid user, then don't try and assign to them. return recently = now() - timedelta(minutes=30) if user.recently_viewed_metadata.filter(view_date__gt=recently, concept=instance).exists(): return from .models import UserViewHistory UserViewHistory.objects.create( concept=instance, user=user )
def concept_saved(message): instance = safe_object(message) if not instance: return for user in instance.favourited_by: if sorted( message['changed_fields']) == ['modified', 'superseded_by_id']: messages.favourite_superseded(recipient=user, obj=instance) else: messages.favourite_updated(recipient=user, obj=instance) # for status in instance.current_statuses().all(): # for registrar in status.registrationAuthority.registrars.all(): # if sorted(message['changed_fields']) == ['modified', 'superseded_by_id']: # messages.registrar_item_superseded(recipient=registrar, obj=instance) if instance.workgroup: for user in instance.workgroup.viewers.all(): if message['created']: messages.workgroup_item_new(recipient=user, obj=instance) else: messages.workgroup_item_updated(recipient=user, obj=instance)
def new_comment_created(message, **kwargs): comment = safe_object(message) if comment: messages.new_comment_created(comment)
def reindex_metadata_item_async(message, **kwargs): instance = safe_object(message) reindex_metadata_item(instance)
def review_request_updated(message, **kwargs): review_request = safe_object(message) messages.review_request_updated(review_request, review_request.requester, review_request.reviewer)
def new_comment_created(message, **kwargs): comment = safe_object(message) if comment: messages.new_comment_created(comment)
def new_comment_created(message, **kwargs): comment = safe_object(message) post = comment.post messages.new_comment_created(recipient=post.author, comment=comment)
def new_post_created(message, **kwargs): post = safe_object(message) for user in post.workgroup.member_list: if user != post.author: messages.new_post_created(recipient=user, post=post)
def review_request_updated(message, **kwargs): review_request = safe_object(message) messages.review_request_updated(review_request, review_request.requester, review_request.reviewer)