2022-12-21 14:34:36 -05:00
|
|
|
import logging
|
2023-02-04 11:54:15 -05:00
|
|
|
from django.shortcuts import render
|
2022-12-21 14:34:36 -05:00
|
|
|
from django.contrib.auth.decorators import login_required, permission_required
|
|
|
|
from django.utils.translation import gettext_lazy as _
|
2023-02-04 11:54:15 -05:00
|
|
|
from django.core.exceptions import BadRequest
|
2022-12-21 14:34:36 -05:00
|
|
|
from .models import *
|
|
|
|
from django.conf import settings
|
|
|
|
from management.models import Announcement
|
2022-12-13 06:44:29 +00:00
|
|
|
|
2022-12-21 14:34:36 -05:00
|
|
|
|
2023-02-04 11:54:15 -05:00
|
|
|
_logger = logging.getLogger(__name__)
|
|
|
|
|
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":
|
2023-02-04 11:54:15 -05:00
|
|
|
raise BadRequest()
|
2022-12-21 14:34:36 -05:00
|
|
|
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":
|
2023-02-04 11:54:15 -05:00
|
|
|
raise BadRequest()
|
2022-12-21 14:34:36 -05:00
|
|
|
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
|
|
|
)
|