pytask/profile/utils.py
author Madhusudan.C.S <madhusudancs@gmail.com>
Tue, 01 Feb 2011 19:38:41 +0530
changeset 550 a606a40584f7
parent 470 68884c9b61e0
permissions -rw-r--r--
Base views should take keyword arguments and should use them for URLs.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
420
920fb0dcc384 Use django shortcut for raising 404s.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 378
diff changeset
     1
from django import shortcuts
378
8fcde6f8f750 added view_user functionality
Nishanth Amuluru <nishanth@fossee.in>
parents: 307
diff changeset
     2
from django.http import Http404
8fcde6f8f750 added view_user functionality
Nishanth Amuluru <nishanth@fossee.in>
parents: 307
diff changeset
     3
from django.contrib.auth.models import User
288
869a9ab7e2df fixed few typos
Nishanth Amuluru <nishanth@fossee.in>
parents: 284
diff changeset
     4
from pytask.profile.models import Notification
284
72db9563fae1 created a function for viewign notifications
Nishanth Amuluru <nishanth@fossee.in>
parents: 248
diff changeset
     5
72db9563fae1 created a function for viewign notifications
Nishanth Amuluru <nishanth@fossee.in>
parents: 248
diff changeset
     6
def get_notification(nid, user):
72db9563fae1 created a function for viewign notifications
Nishanth Amuluru <nishanth@fossee.in>
parents: 248
diff changeset
     7
    """ if notification exists, and belongs to the current user, return it.
72db9563fae1 created a function for viewign notifications
Nishanth Amuluru <nishanth@fossee.in>
parents: 248
diff changeset
     8
    else return None.
72db9563fae1 created a function for viewign notifications
Nishanth Amuluru <nishanth@fossee.in>
parents: 248
diff changeset
     9
    """
72db9563fae1 created a function for viewign notifications
Nishanth Amuluru <nishanth@fossee.in>
parents: 248
diff changeset
    10
72db9563fae1 created a function for viewign notifications
Nishanth Amuluru <nishanth@fossee.in>
parents: 248
diff changeset
    11
    user_notifications = user.notification_sent_to.filter(is_deleted=False).order_by('sent_date')
470
68884c9b61e0 Remove the remaining occurences of uniq_key.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 420
diff changeset
    12
    current_notifications = user_notifications.filter(pk=nid)
284
72db9563fae1 created a function for viewign notifications
Nishanth Amuluru <nishanth@fossee.in>
parents: 248
diff changeset
    13
    if user_notifications:
72db9563fae1 created a function for viewign notifications
Nishanth Amuluru <nishanth@fossee.in>
parents: 248
diff changeset
    14
        current_notification = current_notifications[0]
72db9563fae1 created a function for viewign notifications
Nishanth Amuluru <nishanth@fossee.in>
parents: 248
diff changeset
    15
72db9563fae1 created a function for viewign notifications
Nishanth Amuluru <nishanth@fossee.in>
parents: 248
diff changeset
    16
        try:
72db9563fae1 created a function for viewign notifications
Nishanth Amuluru <nishanth@fossee.in>
parents: 248
diff changeset
    17
            newer_notification = current_notification.get_next_by_sent_date(sent_to=user, is_deleted=False)
72db9563fae1 created a function for viewign notifications
Nishanth Amuluru <nishanth@fossee.in>
parents: 248
diff changeset
    18
            newest_notification = user_notifications.reverse()[0]
72db9563fae1 created a function for viewign notifications
Nishanth Amuluru <nishanth@fossee.in>
parents: 248
diff changeset
    19
            if newest_notification == newer_notification:
72db9563fae1 created a function for viewign notifications
Nishanth Amuluru <nishanth@fossee.in>
parents: 248
diff changeset
    20
                newest_notification = None
72db9563fae1 created a function for viewign notifications
Nishanth Amuluru <nishanth@fossee.in>
parents: 248
diff changeset
    21
        except Notification.DoesNotExist:
72db9563fae1 created a function for viewign notifications
Nishanth Amuluru <nishanth@fossee.in>
parents: 248
diff changeset
    22
            newest_notification, newer_notification = None, None
72db9563fae1 created a function for viewign notifications
Nishanth Amuluru <nishanth@fossee.in>
parents: 248
diff changeset
    23
72db9563fae1 created a function for viewign notifications
Nishanth Amuluru <nishanth@fossee.in>
parents: 248
diff changeset
    24
        try:
72db9563fae1 created a function for viewign notifications
Nishanth Amuluru <nishanth@fossee.in>
parents: 248
diff changeset
    25
            older_notification = current_notification.get_previous_by_sent_date(sent_to=user, is_deleted=False)
72db9563fae1 created a function for viewign notifications
Nishanth Amuluru <nishanth@fossee.in>
parents: 248
diff changeset
    26
            oldest_notification = user_notifications[0]
72db9563fae1 created a function for viewign notifications
Nishanth Amuluru <nishanth@fossee.in>
parents: 248
diff changeset
    27
            if oldest_notification == older_notification:
72db9563fae1 created a function for viewign notifications
Nishanth Amuluru <nishanth@fossee.in>
parents: 248
diff changeset
    28
                oldest_notification = None
72db9563fae1 created a function for viewign notifications
Nishanth Amuluru <nishanth@fossee.in>
parents: 248
diff changeset
    29
        except:
72db9563fae1 created a function for viewign notifications
Nishanth Amuluru <nishanth@fossee.in>
parents: 248
diff changeset
    30
            oldest_notification, older_notification = None, None
72db9563fae1 created a function for viewign notifications
Nishanth Amuluru <nishanth@fossee.in>
parents: 248
diff changeset
    31
72db9563fae1 created a function for viewign notifications
Nishanth Amuluru <nishanth@fossee.in>
parents: 248
diff changeset
    32
        return newest_notification, newer_notification, current_notification, older_notification, oldest_notification
72db9563fae1 created a function for viewign notifications
Nishanth Amuluru <nishanth@fossee.in>
parents: 248
diff changeset
    33
72db9563fae1 created a function for viewign notifications
Nishanth Amuluru <nishanth@fossee.in>
parents: 248
diff changeset
    34
    else:
72db9563fae1 created a function for viewign notifications
Nishanth Amuluru <nishanth@fossee.in>
parents: 248
diff changeset
    35
        return None, None, None, None, None
378
8fcde6f8f750 added view_user functionality
Nishanth Amuluru <nishanth@fossee.in>
parents: 307
diff changeset
    36
8fcde6f8f750 added view_user functionality
Nishanth Amuluru <nishanth@fossee.in>
parents: 307
diff changeset
    37
def get_user(uid):
8fcde6f8f750 added view_user functionality
Nishanth Amuluru <nishanth@fossee.in>
parents: 307
diff changeset
    38
420
920fb0dcc384 Use django shortcut for raising 404s.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 378
diff changeset
    39
    user = shortcuts.get_object_or_404(User, pk=uid)
378
8fcde6f8f750 added view_user functionality
Nishanth Amuluru <nishanth@fossee.in>
parents: 307
diff changeset
    40
8fcde6f8f750 added view_user functionality
Nishanth Amuluru <nishanth@fossee.in>
parents: 307
diff changeset
    41
    if user.is_active:
8fcde6f8f750 added view_user functionality
Nishanth Amuluru <nishanth@fossee.in>
parents: 307
diff changeset
    42
        return user
8fcde6f8f750 added view_user functionality
Nishanth Amuluru <nishanth@fossee.in>
parents: 307
diff changeset
    43
    else:
8fcde6f8f750 added view_user functionality
Nishanth Amuluru <nishanth@fossee.in>
parents: 307
diff changeset
    44
        raise Http404