Skip to content
Snippets Groups Projects
Commit 699dbb2e authored by Bodor Máté's avatar Bodor Máté
Browse files

Create event note serializer and view, create middelware for get current profile and update news

parent 4fcd16b5
No related branches found
No related tags found
No related merge requests found
Showing
with 74 additions and 255 deletions
# Generated by Django 2.0.1 on 2018-04-05 08:33 # Generated by Django 2.0.1 on 2018-12-24 16:02
import common.validators import common.validators
import django.core.validators import django.core.validators
...@@ -11,7 +11,7 @@ class Migration(migrations.Migration): ...@@ -11,7 +11,7 @@ class Migration(migrations.Migration):
initial = True initial = True
dependencies = [ dependencies = [
('account', '0017_auto_20180205_2004'), ('account', '0001_initial'),
] ]
operations = [ operations = [
...@@ -21,8 +21,7 @@ class Migration(migrations.Migration): ...@@ -21,8 +21,7 @@ class Migration(migrations.Migration):
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('created_at', models.DateTimeField(auto_now_add=True)), ('created_at', models.DateTimeField(auto_now_add=True)),
('updated_at', models.DateTimeField(auto_now=True)), ('updated_at', models.DateTimeField(auto_now=True)),
('ready', models.BooleanField(default=False)), ('accepted', models.BooleanField()),
('accepted', models.BooleanField(default=False)),
('files', models.FileField(upload_to='', validators=[django.core.validators.FileExtensionValidator(['png', 'jpeg', 'jpg', 'zip']), common.validators.FileSizeValidator(size_limit=52428800)])), ('files', models.FileField(upload_to='', validators=[django.core.validators.FileExtensionValidator(['png', 'jpeg', 'jpg', 'zip']), common.validators.FileSizeValidator(size_limit=52428800)])),
('created_by', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='student_solution', to='account.Profile')), ('created_by', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='student_solution', to='account.Profile')),
], ],
......
# Generated by Django 2.0.1 on 2018-04-10 22:47
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('homework', '0001_initial'),
]
operations = [
migrations.RemoveField(
model_name='solution',
name='ready',
),
migrations.AlterField(
model_name='solution',
name='accepted',
field=models.BooleanField(),
),
]
...@@ -38,7 +38,7 @@ INSTALLED_APPS = [ ...@@ -38,7 +38,7 @@ INSTALLED_APPS = [
'django.contrib.messages', 'django.contrib.messages',
'django.contrib.staticfiles', 'django.contrib.staticfiles',
'django_extensions', 'django_extensions',
'import_export', 'import_export',
'rest_framework', 'rest_framework',
'social_django', 'social_django',
'solo', 'solo',
...@@ -58,6 +58,7 @@ MIDDLEWARE = [ ...@@ -58,6 +58,7 @@ MIDDLEWARE = [
'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware', 'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware',
'common.middleware.CurrentUserMiddleware',
] ]
ROOT_URLCONF = 'kszkepzes.urls' ROOT_URLCONF = 'kszkepzes.urls'
......
# -*- coding: utf-8 -*- # Generated by Django 2.0.1 on 2018-12-24 16:02
# Generated by Django 1.11.5 on 2017-11-28 19:55
from __future__ import unicode_literals
from django.db import migrations, models from django.db import migrations, models
import django.db.models.deletion import django.db.models.deletion
...@@ -11,7 +9,7 @@ class Migration(migrations.Migration): ...@@ -11,7 +9,7 @@ class Migration(migrations.Migration):
initial = True initial = True
dependencies = [ dependencies = [
('account', '0002_auto_20171114_2144'), ('account', '0001_initial'),
] ]
operations = [ operations = [
...@@ -21,8 +19,10 @@ class Migration(migrations.Migration): ...@@ -21,8 +19,10 @@ class Migration(migrations.Migration):
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('title', models.CharField(max_length=200)), ('title', models.CharField(max_length=200)),
('text', models.TextField()), ('text', models.TextField()),
('date', models.DateTimeField()), ('created_at', models.DateTimeField(auto_now_add=True)),
('author', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='author', to='account.Profile')), ('updated_at', models.DateTimeField(auto_now=True)),
('author', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, related_name='author', to='account.Profile')),
('updated_by', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, related_name='updater', to='account.Profile')),
], ],
), ),
] ]
# -*- coding: utf-8 -*-
# Generated by Django 1.11.5 on 2017-12-20 17:52
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('news', '0001_initial'),
]
operations = [
migrations.AlterField(
model_name='article',
name='date',
field=models.DateTimeField(auto_now_add=True),
),
]
# Generated by Django 2.0.1 on 2018-01-26 00:35
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('news', '0002_auto_20171220_1852'),
]
operations = [
migrations.RenameField(
model_name='article',
old_name='date',
new_name='created_at',
),
migrations.AddField(
model_name='article',
name='updated_at',
field=models.DateTimeField(auto_now=True),
),
migrations.AlterField(
model_name='article',
name='author',
field=models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, related_name='author', to='account.Profile'),
),
]
from django.db import models from django.db import models
from account.models import Profile from account.models import Profile
from common.middleware import CurrentUserMiddleware
class Article(models.Model): class Article(models.Model):
author = models.ForeignKey(Profile, related_name="author", on_delete=models.DO_NOTHING) author = models.ForeignKey(
Profile,
related_name="author",
on_delete=models.DO_NOTHING,
default=CurrentUserMiddleware.get_current_profile(),
)
title = models.CharField(null=False, max_length=200) title = models.CharField(null=False, max_length=200)
text = models.TextField() text = models.TextField()
created_at = models.DateTimeField(auto_now_add=True, editable=False) created_at = models.DateTimeField(auto_now_add=True, editable=False)
updated_at = models.DateTimeField(auto_now=True, editable=False) updated_at = models.DateTimeField(auto_now=True, editable=False)
updated_by = models.ForeignKey(
Profile,
related_name="updater",
on_delete=models.DO_NOTHING,
)
def __str__(self): def __str__(self):
return self.title return self.title
from news.models import Article from news.models import Article
from rest_framework import serializers from rest_framework import serializers
from common.serializers import CurrentUserProfileDefault
class ArticleListSerializer(serializers.ModelSerializer): class ArticleSerializer(serializers.ModelSerializer):
author_name = serializers.SerializerMethodField() updated_by = serializers.HiddenField(default=CurrentUserProfileDefault())
last_updated_by = serializers.SerializerMethodField()
class Meta: class Meta:
model = Article model = Article
fields = serializers.ALL_FIELDS read_only_fields = ('author', 'created_at', 'updated_at', 'updated_by')
fields = '__all__'
def get_author_name(self, obj): def get_last_updated_by(self, obj):
return obj.author.user.get_full_name() return obj.updated_by.id
...@@ -3,6 +3,6 @@ from news import views ...@@ -3,6 +3,6 @@ from news import views
router = routers.DefaultRouter() router = routers.DefaultRouter()
router.register(r'news', views.NewsViewSet) router.register(r'news', views.NewsViewSet, base_name='news')
urlpatterns = router.urls urlpatterns = router.urls
from common.permissions import IsStaffOrReadOnly from common.permissions import IsStaffOrReadOnly
from rest_framework import viewsets from rest_framework import viewsets
from news.models import Article from news.models import Article
from news.serializers import ArticleListSerializer from news.serializers import ArticleSerializer
class NewsViewSet(viewsets.ModelViewSet): class NewsViewSet(viewsets.ModelViewSet):
serializer_class = ArticleListSerializer serializer_class = ArticleSerializer
permission_classes = [IsStaffOrReadOnly] permission_classes = (IsStaffOrReadOnly,)
queryset = Article.objects.all().order_by('-created_at') queryset = Article.objects.all().order_by('-created_at')
# -*- coding: utf-8 -*- # Generated by Django 2.0.1 on 2018-12-24 16:02
# Generated by Django 1.11.5 on 2017-11-11 14:14
from __future__ import unicode_literals
from django.db import migrations, models from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration): class Migration(migrations.Migration):
...@@ -15,12 +14,27 @@ class Migration(migrations.Migration): ...@@ -15,12 +14,27 @@ class Migration(migrations.Migration):
operations = [ operations = [
migrations.CreateModel( migrations.CreateModel(
name='KszkEvent', name='Event',
fields=[ fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('date', models.DateField()), ('name', models.CharField(max_length=255)),
('num_of_pers', models.IntegerField()), ('date', models.DateTimeField()),
('created_at', models.DateTimeField(auto_now_add=True)),
('updated_at', models.DateTimeField(auto_now=True)),
('created_by', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='created_event', to='account.Profile')),
('visitors', models.ManyToManyField(related_name='visitor', to='account.Profile')), ('visitors', models.ManyToManyField(related_name='visitor', to='account.Profile')),
], ],
), ),
migrations.CreateModel(
name='Note',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('note', models.TextField()),
('created_at', models.DateTimeField(auto_now_add=True)),
('updated_at', models.DateTimeField(auto_now=True)),
('created_by', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='created_notes', to='account.Profile')),
('event', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='notes_event', to='stats.Event')),
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='notes_user', to='account.Profile')),
],
),
] ]
# -*- coding: utf-8 -*-
# Generated by Django 1.11.5 on 2017-11-11 15:46
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('stats', '0001_initial'),
]
operations = [
migrations.AlterField(
model_name='kszkevent',
name='num_of_pers',
field=models.IntegerField(editable=False),
),
]
# -*- coding: utf-8 -*-
# Generated by Django 1.11.5 on 2017-11-14 19:26
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('stats', '0002_auto_20171111_1646'),
]
operations = [
migrations.AlterField(
model_name='kszkevent',
name='date',
field=models.DateTimeField(),
),
]
# -*- coding: utf-8 -*-
# Generated by Django 1.11.5 on 2017-11-14 19:38
from __future__ import unicode_literals
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('stats', '0003_auto_20171114_2026'),
]
operations = [
migrations.RemoveField(
model_name='kszkevent',
name='num_of_pers',
),
]
# Generated by Django 2.0.1 on 2018-02-14 21:06
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('account', '0017_auto_20180205_2004'),
('stats', '0004_remove_kszkevent_num_of_pers'),
]
operations = [
migrations.CreateModel(
name='Event',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=255)),
('date', models.DateTimeField()),
('visitors', models.ManyToManyField(related_name='visitor', to='account.Profile')),
],
),
migrations.RemoveField(
model_name='kszkevent',
name='visitors',
),
migrations.DeleteModel(
name='KszkEvent',
),
]
# Generated by Django 2.0.1 on 2018-02-14 21:39
from django.conf import settings
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('stats', '0005_auto_20180214_2206'),
]
operations = [
migrations.AlterField(
model_name='event',
name='visitors',
field=models.ManyToManyField(related_name='visitor', to=settings.AUTH_USER_MODEL),
),
]
# Generated by Django 2.0.1 on 2018-02-14 23:18
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('stats', '0006_auto_20180214_2239'),
]
operations = [
migrations.AlterField(
model_name='event',
name='visitors',
field=models.ManyToManyField(related_name='visitor', to='account.Profile'),
),
]
# Generated by Django 2.0.1 on 2018-02-21 00:18
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('account', '0017_auto_20180205_2004'),
('stats', '0007_auto_20180215_0018'),
]
operations = [
migrations.CreateModel(
name='Note',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('note', models.TextField()),
('created_at', models.DateTimeField(auto_now_add=True)),
('updated_at', models.DateTimeField(auto_now=True)),
('created_by', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='created_notes', to='account.Profile')),
('event', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='notes', to='stats.Event')),
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='notes', to='account.Profile')),
],
),
]
...@@ -8,6 +8,9 @@ class Event(models.Model): ...@@ -8,6 +8,9 @@ class Event(models.Model):
name = models.CharField(max_length=255) name = models.CharField(max_length=255)
date = models.DateTimeField(null=False) date = models.DateTimeField(null=False)
visitors = models.ManyToManyField(Profile, related_name='visitor') visitors = models.ManyToManyField(Profile, related_name='visitor')
created_by = models.ForeignKey(Profile, related_name='created_event', on_delete=models.CASCADE)
created_at = models.DateTimeField(auto_now_add=True, editable=False)
updated_at = models.DateTimeField(auto_now=True, editable=False)
def clean(self): def clean(self):
if self.date > timezone.now(): if self.date > timezone.now():
...@@ -18,10 +21,9 @@ class Event(models.Model): ...@@ -18,10 +21,9 @@ class Event(models.Model):
class Note(models.Model): class Note(models.Model):
event = models.ForeignKey(Event, related_name='notes', on_delete=models.CASCADE) event = models.ForeignKey(Event, related_name='notes_event', on_delete=models.CASCADE)
user = models.ForeignKey(Profile, related_name='notes', on_delete=models.CASCADE) user = models.ForeignKey(Profile, related_name='notes_user', on_delete=models.CASCADE)
note = models.TextField() note = models.TextField()
created_by = models.ForeignKey(Profile, related_name='created_notes', on_delete=models.CASCADE) created_by = models.ForeignKey(Profile, related_name='created_notes', on_delete=models.CASCADE)
created_at = models.DateTimeField(auto_now_add=True, editable=False) created_at = models.DateTimeField(auto_now_add=True, editable=False)
updated_at = models.DateTimeField(auto_now=True, editable=False) updated_at = models.DateTimeField(auto_now=True, editable=False)
......
from rest_framework import serializers from rest_framework import serializers
from common.serializers import CurrentUserProfileDefault
from . import models from . import models
class EventSerializer(serializers.ModelSerializer): class EventSerializer(serializers.ModelSerializer):
created_by = serializers.HiddenField(default=CurrentUserProfileDefault())
class Meta: class Meta:
model = models.Event model = models.Event
fields = ('name', 'date', 'visitors') fields = '__all__'
read_only_fields = ('created_at', 'update_at', 'created_by')
class NoteSerializer(serializers.ModelSerializer):
created_by = serializers.HiddenField(default=CurrentUserProfileDefault())
class Meta:
model = models.Note
fields = '__all__'
read_only_fields = ('created_at', 'update_at', 'created_by')
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