lib.itmens/social/views.py

58 lines
1.6 KiB
Python
Raw Normal View History

2022-12-21 14:34:36 -05:00
import logging
from django.shortcuts import render, get_object_or_404, redirect, reverse
from django.contrib.auth.decorators import login_required, permission_required
from django.utils.translation import gettext_lazy as _
from django.http import HttpResponseBadRequest, HttpResponseServerError
from django.core.exceptions import ObjectDoesNotExist, PermissionDenied
from django.db import IntegrityError, transaction
from django.db.models import Count
from django.utils import timezone
from django.core.paginator import Paginator
from .models import *
from django.conf import settings
import re
from users.models import User
from django.http import HttpResponseRedirect
from django.db.models import Q
import time
from management.models import Announcement
2022-12-13 06:44:29 +00:00
2022-12-21 14:34:36 -05:00
PAGE_SIZE = 10
@login_required
def feed(request):
2022-12-29 23:57:02 -05:00
if request.method != "GET":
2022-12-21 14:34:36 -05:00
return
user = request.user
2022-12-29 23:57:02 -05:00
unread = Announcement.objects.filter(pk__gt=user.read_announcement_index).order_by(
"-pk"
)
2022-12-21 14:34:36 -05:00
if unread:
2022-12-29 23:57:02 -05:00
user.read_announcement_index = Announcement.objects.latest("pk").pk
user.save(update_fields=["read_announcement_index"])
2022-12-21 14:34:36 -05:00
return render(
request,
2022-12-29 23:57:02 -05:00
"feed.html",
2022-12-21 14:34:36 -05:00
{
2022-12-29 23:57:02 -05:00
"top_tags": user.tag_manager.all_tags[:10],
"unread_announcements": unread,
},
2022-12-21 14:34:36 -05:00
)
@login_required
def data(request):
2022-12-29 23:57:02 -05:00
if request.method != "GET":
2022-12-21 14:34:36 -05:00
return
return render(
request,
2022-12-29 23:57:02 -05:00
"feed_data.html",
2022-12-21 14:34:36 -05:00
{
2022-12-29 23:57:02 -05:00
"activities": ActivityManager(request.user).get_timeline(
before_time=request.GET.get("last")
)[:PAGE_SIZE],
},
2022-12-21 14:34:36 -05:00
)