Skip to content
Snippets Groups Projects
Commit cb0c508e authored by Jan Bernoth's avatar Jan Bernoth
Browse files

user id

parent f64c2f88
No related branches found
No related tags found
1 merge request!122User centric api
......@@ -17,5 +17,12 @@ class ArticlesConfig(AppConfig):
# pylint: disable=import-outside-toplevel
# pylint: disable=unused-import
import articles.signals # noqa: F401
from articles.models import User, Tag # noqa: F401
# pylint: enable=unused-import
# pylint: enable=import-outside-toplevel
if User.objects.filter(id_tag=1).count() == 0:
user = User(id_tag=1)
user.save()
for tag in Tag.objects.all():
user.favorite_tags.add(tag)
user.save()
......@@ -6,7 +6,7 @@ from unittest import mock
from django.db.models.signals import post_save
from django.test import TransactionTestCase
from articles.models import Article, MediumType, Medium, Files
from articles.models import Article, MediumType, Medium, Files, User
from articles.serializers import MediumTypeSerializer, MediumSerializer, ArticleSerializer
logger = logging.getLogger(__name__)
......@@ -103,3 +103,9 @@ class ArticleTest(TransactionTestCase):
input_data_ = {'medium': medium, **input_data}
ArticleSerializer().create(input_data_)
self.assertEqual(Article.objects.count(), 2)
class OverviewTest(TransactionTestCase):
def test_user(self):
user = User.objects.get(id_tag=1)
self.assertTrue(user.activated)
......@@ -2,7 +2,9 @@
import datetime
import logging
from django.core.exceptions import ObjectDoesNotExist
from django.db.models import Q
from django.http import JsonResponse
from django.shortcuts import render
from django.utils import timezone
from django.utils.decorators import method_decorator
......@@ -10,6 +12,7 @@ from django.views import View
from django.views.generic import TemplateView
from drf_yasg.utils import swagger_auto_schema
from rest_framework import generics
from rest_framework.views import APIView
from articles.forms import FileUploadForm
from articles.models import Article, Timeline, Medium, MediumType, Overview, TopMedia, Tag, TopTags, Files, User
......@@ -92,12 +95,36 @@ class TimelineList(generics.ListAPIView):
serializer_class = TimelineSerializer
class OverviewList(generics.ListAPIView):
def user_tags(id_tag):
try:
user = User.objects.get(id_tag=id_tag)
except ObjectDoesNotExist:
logger.error('User with id_tag %s does not exists', str(id_tag))
return []
tag_names = []
for tag in user.favorite_tags.all():
tag_names.append(tag.name)
return tag_names
class OverviewList(APIView):
""" List all overview objects """
today = datetime.datetime.today()
datetime_recent = today - datetime.timedelta(days=90)
queryset = Overview.objects.filter(date_of_publication__range=[datetime_recent, today])
serializer_class = OverviewSerializer
# queryset = Overview.objects.filter(date_of_publication__range=[datetime_recent, today])
# serializer_class = OverviewSerializer
def get(self, request):
""" get overview, a user can be selected with user=user_id """
tag_names = user_tags(1)
if request.query_params.__contains__('user'):
tag_names = user_tags(request.query_params['user'])
overview_objects = Overview.objects.filter(
date_of_publication__range=[self.datetime_recent, self.today]).filter(name__in=tag_names)
overview_serializer = OverviewSerializer(overview_objects, many=True)
return JsonResponse(overview_serializer.data, safe=False)
class Home(TemplateView):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment