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)
Ejemplo n.º 2
0
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)
Ejemplo n.º 8
0
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)
Ejemplo n.º 10
0
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)
Ejemplo n.º 13
0
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)