diff --git a/access/urls.py b/access/urls.py index 101ee5f..02a5e01 100644 --- a/access/urls.py +++ b/access/urls.py @@ -1,5 +1,5 @@ from django.conf.urls import url -from access import views as views +from access import views urlpatterns = [ url(r'teachers/$', views.TeacherListView.as_view()), diff --git a/api_v1/urls.py b/api_v1/urls.py index aa457b0..5a61b11 100644 --- a/api_v1/urls.py +++ b/api_v1/urls.py @@ -4,4 +4,5 @@ urlpatterns = [ url(r'courses/', include('courses.urls')), url(r'users/', include('access.urls')), url(r'journals/', include('journals.urls')), + url(r'library/', include('library.urls')), ] \ No newline at end of file diff --git a/csv/load_article.py b/csv/load_article.py index 2b69c4b..32b860f 100644 --- a/csv/load_article.py +++ b/csv/load_article.py @@ -24,12 +24,13 @@ if __name__ == '__main__': for row in article_reader: row = dict(row) tags = row.pop('tags', None).split("[")[1].split("]")[0].split(", ") - article, _is_create = Article.objects.get_or_create(**row) + section = ArticleSection.objects.get(id=row.pop('section__id')) try: + article, _is_create = Article.objects.get_or_create(section=section, **row) for tag in tags: if tags: - article.teachers.add(tags) + article.tags.add(Tags.objects.get(id=tag)) except IntegrityError: - pass \ No newline at end of file + pass diff --git a/journals/migrations/0005_auto_20171024_1352.py b/journals/migrations/0005_auto_20171024_1352.py new file mode 100644 index 0000000..dbe9d72 --- /dev/null +++ b/journals/migrations/0005_auto_20171024_1352.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.6 on 2017-10-24 13:52 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('journals', '0004_auto_20171023_1234'), + ] + + operations = [ + migrations.AlterField( + model_name='journal', + name='action_type', + field=models.SmallIntegerField(choices=[(0, 'try'), (1, 'yes'), (2, 'no'), (3, 'favorite'), (4, 'watch'), (5, 'start'), (6, 'end'), (7, 'create'), (8, 'update'), (9, 'delete')]), + ), + ] diff --git a/library/models.py b/library/models.py index 9ac367e..1da43eb 100755 --- a/library/models.py +++ b/library/models.py @@ -32,7 +32,6 @@ class Article(models.Model): js = models.TextField(verbose_name='JS', blank=True, default='', help_text='Удалить bootstrap, jquery и заменить http на https') date = models.DateTimeField(verbose_name='Дата публикации', default=datetime.datetime.now, editable=False) tags = models.ManyToManyField(to='Tags', verbose_name='Теги', blank=True) - all_views = models.IntegerField(verbose_name='Всего просмотров', default=0, blank=True) def __str__(self): return '%s' % self.title diff --git a/library/serializers.py b/library/serializers.py new file mode 100644 index 0000000..1618abd --- /dev/null +++ b/library/serializers.py @@ -0,0 +1,20 @@ +from rest_framework import serializers +from library.models import Article + + +class ArticleSerializer(serializers.ModelSerializer): + tags = serializers.SerializerMethodField() + section = serializers.SerializerMethodField() + + class Meta: + model = Article + exclude = ('css', 'js', 'page', 'head_title', 'public', + 'head_description', 'head_image', 'id') + + @staticmethod + def get_tags(self): + return [i.name for i in self.tags.all()] + + @staticmethod + def get_section(self): + return self.section.name if self.section else 'undefined' diff --git a/library/urls.py b/library/urls.py new file mode 100644 index 0000000..0bf04dd --- /dev/null +++ b/library/urls.py @@ -0,0 +1,6 @@ +from django.conf.urls import url +from library import views + +urlpatterns = [ + url(r'$', views.LibraryListView.as_view()), +] \ No newline at end of file diff --git a/library/views.py b/library/views.py new file mode 100644 index 0000000..c5073a0 --- /dev/null +++ b/library/views.py @@ -0,0 +1,14 @@ +from rest_framework.renderers import JSONRenderer +from rest_framework.response import Response +from rest_framework.views import APIView + +from library.models import Article +from library.serializers import ArticleSerializer + + +class LibraryListView(APIView): + renderer_classes = (JSONRenderer,) + status_code = 200 + + def get(self, request): + return Response([ArticleSerializer(i).data for i in Article.objects.filter(public=True)], self.status_code) \ No newline at end of file