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)
Example #2
0
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 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 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)
    try:
        # This will fail during first load, and if admins delete aristotle.
        system = get_user_model().objects.get(username="******")
        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=system,
            )
    except:
        pass
def new_comment_created(message, **kwargs):
    comment = safe_object(message)
    if comment:
        messages.new_comment_created(comment)
Example #6
0
def review_request_updated(message, **kwargs):
    review_request = safe_object(message)
    messages.review_request_updated(review_request, review_request.requester,
                                    review_request.reviewer)