pytask/profile/utils.py
author Madhusudan.C.S <madhusudancs@gmail.com>
Fri, 28 Jan 2011 02:27:40 +0530
changeset 519 84709567f47a
parent 470 68884c9b61e0
permissions -rw-r--r--
Use the release version of South than the latest version. South is very critical for our application. So don't take any risk with the users data. Use the release version.
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