From 699dbb2e2f0efcb13cf87f06ab857bf2833784ed Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bodor=20M=C3=A1t=C3=A9?= <bodor.mate@kszk.bme.hu>
Date: Sat, 29 Dec 2018 18:41:35 +0100
Subject: [PATCH] Create event note serializer and view, create middelware for
 get current profile and update news

---
 .gitignore                                    |  3 ++
 src/account/migrations/0001_initial.py        | 33 +++++++++++++----
 .../migrations/0002_auto_20171114_2144.py     | 20 -----------
 src/account/migrations/0003_profile_nick.py   | 20 -----------
 src/account/migrations/0004_profile_signed.py | 20 -----------
 .../migrations/0005_auto_20171223_1455.py     | 20 -----------
 .../migrations/0006_auto_20180123_1713.py     | 36 -------------------
 .../migrations/0007_auto_20180123_1723.py     | 24 -------------
 .../migrations/0008_auto_20180124_1821.py     | 22 ------------
 .../migrations/0009_profile_motivation.py     | 20 -----------
 .../migrations/0010_auto_20180124_1929.py     | 33 -----------------
 src/account/migrations/0011_deadline.py       | 25 -------------
 .../migrations/0012_auto_20180125_1957.py     | 20 -----------
 .../migrations/0013_auto_20180203_2007.py     | 18 ----------
 .../migrations/0014_auto_20180203_2010.py     | 18 ----------
 .../migrations/0015_auto_20180203_2014.py     | 23 ------------
 .../migrations/0016_auto_20180203_2022.py     | 23 ------------
 .../migrations/0017_auto_20180205_2004.py     | 28 ---------------
 src/account/views.py                          |  1 -
 src/common/middleware.py                      | 16 +++++++++
 src/homework/migrations/0001_initial.py       |  7 ++--
 .../migrations/0002_auto_20180411_0047.py     | 22 ------------
 src/kszkepzes/settings/base.py                |  3 +-
 src/news/migrations/0001_initial.py           | 12 +++----
 .../migrations/0002_auto_20171220_1852.py     | 20 -----------
 .../migrations/0003_auto_20180126_0135.py     | 29 ---------------
 src/news/models.py                            | 13 ++++++-
 src/news/serializers.py                       | 13 ++++---
 src/news/urls.py                              |  2 +-
 src/news/views.py                             |  6 ++--
 src/stats/migrations/0001_initial.py          | 26 ++++++++++----
 .../migrations/0002_auto_20171111_1646.py     | 20 -----------
 .../migrations/0003_auto_20171114_2026.py     | 20 -----------
 .../0004_remove_kszkevent_num_of_pers.py      | 19 ----------
 .../migrations/0005_auto_20180214_2206.py     | 30 ----------------
 .../migrations/0006_auto_20180214_2239.py     | 19 ----------
 .../migrations/0007_auto_20180215_0018.py     | 18 ----------
 src/stats/migrations/0008_note.py             | 27 --------------
 src/stats/models.py                           |  8 +++--
 src/stats/serializers.py                      | 15 +++++++-
 src/stats/urls.py                             |  4 +--
 src/stats/views.py                            |  8 +++++
 42 files changed, 130 insertions(+), 634 deletions(-)
 delete mode 100644 src/account/migrations/0002_auto_20171114_2144.py
 delete mode 100644 src/account/migrations/0003_profile_nick.py
 delete mode 100644 src/account/migrations/0004_profile_signed.py
 delete mode 100644 src/account/migrations/0005_auto_20171223_1455.py
 delete mode 100644 src/account/migrations/0006_auto_20180123_1713.py
 delete mode 100644 src/account/migrations/0007_auto_20180123_1723.py
 delete mode 100644 src/account/migrations/0008_auto_20180124_1821.py
 delete mode 100644 src/account/migrations/0009_profile_motivation.py
 delete mode 100644 src/account/migrations/0010_auto_20180124_1929.py
 delete mode 100644 src/account/migrations/0011_deadline.py
 delete mode 100644 src/account/migrations/0012_auto_20180125_1957.py
 delete mode 100644 src/account/migrations/0013_auto_20180203_2007.py
 delete mode 100644 src/account/migrations/0014_auto_20180203_2010.py
 delete mode 100644 src/account/migrations/0015_auto_20180203_2014.py
 delete mode 100644 src/account/migrations/0016_auto_20180203_2022.py
 delete mode 100644 src/account/migrations/0017_auto_20180205_2004.py
 create mode 100644 src/common/middleware.py
 mode change 100755 => 100644 src/homework/migrations/0001_initial.py
 delete mode 100644 src/homework/migrations/0002_auto_20180411_0047.py
 delete mode 100644 src/news/migrations/0002_auto_20171220_1852.py
 delete mode 100644 src/news/migrations/0003_auto_20180126_0135.py
 delete mode 100644 src/stats/migrations/0002_auto_20171111_1646.py
 delete mode 100644 src/stats/migrations/0003_auto_20171114_2026.py
 delete mode 100644 src/stats/migrations/0004_remove_kszkevent_num_of_pers.py
 delete mode 100644 src/stats/migrations/0005_auto_20180214_2206.py
 delete mode 100644 src/stats/migrations/0006_auto_20180214_2239.py
 delete mode 100644 src/stats/migrations/0007_auto_20180215_0018.py
 delete mode 100644 src/stats/migrations/0008_note.py

diff --git a/.gitignore b/.gitignore
index d347aa2..ffb3de3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -108,3 +108,6 @@ ENV/
 environment.sh
 environment.ps1
 environment.bat
+
+#PyCharm
+.idea/
\ No newline at end of file
diff --git a/src/account/migrations/0001_initial.py b/src/account/migrations/0001_initial.py
index 8c4b526..37a8b78 100644
--- a/src/account/migrations/0001_initial.py
+++ b/src/account/migrations/0001_initial.py
@@ -1,6 +1,4 @@
-# -*- coding: utf-8 -*-
-# Generated by Django 1.11.5 on 2017-11-11 14:13
-from __future__ import unicode_literals
+# Generated by Django 2.0.1 on 2018-12-24 16:02
 
 from django.conf import settings
 from django.db import migrations, models
@@ -16,13 +14,36 @@ class Migration(migrations.Migration):
     ]
 
     operations = [
+        migrations.CreateModel(
+            name='Deadline',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('deadline', models.DateTimeField(null=True)),
+            ],
+            options={
+                'abstract': False,
+            },
+        ),
+        migrations.CreateModel(
+            name='GroupChoice',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('choice', models.CharField(choices=[('DT', 'DevTeam'), ('NET', 'NeTeam'), ('ST', 'SecurITeam'), ('SYS', 'SysAdmin'), ('HAT', 'HallgatĂłi TudĂĄsbĂĄzis'), ('N', 'None')], default='N', max_length=10, unique=True)),
+            ],
+        ),
         migrations.CreateModel(
             name='Profile',
             fields=[
                 ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
-                ('join_date', models.DateField()),
-                ('pref_group', models.CharField(choices=[('DT', 'DevTeam'), ('NET', 'NeTeam'), ('ST', 'SecurITeam'), ('SYS', 'SysAdmin'), ('N', 'None')], default='None', max_length=10)),
-                ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
+                ('join_date', models.DateTimeField(auto_now_add=True)),
+                ('updated_at', models.DateTimeField(auto_now=True)),
+                ('motivation_about', models.TextField(blank=True, default='')),
+                ('motivation_profession', models.TextField(blank=True, default='')),
+                ('motivation_exercise', models.TextField(blank=True, default='')),
+                ('nick', models.CharField(blank=True, default='', max_length=15)),
+                ('signed', models.BooleanField(default=False)),
+                ('groups', models.ManyToManyField(related_name='profiles', to='account.GroupChoice')),
+                ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='profile', to=settings.AUTH_USER_MODEL)),
             ],
         ),
     ]
diff --git a/src/account/migrations/0002_auto_20171114_2144.py b/src/account/migrations/0002_auto_20171114_2144.py
deleted file mode 100644
index fc76cef..0000000
--- a/src/account/migrations/0002_auto_20171114_2144.py
+++ /dev/null
@@ -1,20 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by Django 1.11.5 on 2017-11-14 20:44
-from __future__ import unicode_literals
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('account', '0001_initial'),
-    ]
-
-    operations = [
-        migrations.AlterField(
-            model_name='profile',
-            name='pref_group',
-            field=models.CharField(choices=[('DT', 'DevTeam'), ('NET', 'NeTeam'), ('ST', 'SecurITeam'), ('SYS', 'SysAdmin'), ('HAT', 'HallgatĂłi TudĂĄsbĂĄzis'), ('N', 'None')], default='None', max_length=10),
-        ),
-    ]
diff --git a/src/account/migrations/0003_profile_nick.py b/src/account/migrations/0003_profile_nick.py
deleted file mode 100644
index 7a35427..0000000
--- a/src/account/migrations/0003_profile_nick.py
+++ /dev/null
@@ -1,20 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by Django 1.11.5 on 2017-12-23 11:06
-from __future__ import unicode_literals
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('account', '0002_auto_20171114_2144'),
-    ]
-
-    operations = [
-        migrations.AddField(
-            model_name='profile',
-            name='nick',
-            field=models.CharField(blank=True, max_length=15, null=True),
-        ),
-    ]
diff --git a/src/account/migrations/0004_profile_signed.py b/src/account/migrations/0004_profile_signed.py
deleted file mode 100644
index 4244073..0000000
--- a/src/account/migrations/0004_profile_signed.py
+++ /dev/null
@@ -1,20 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by Django 1.11.5 on 2017-12-23 11:10
-from __future__ import unicode_literals
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('account', '0003_profile_nick'),
-    ]
-
-    operations = [
-        migrations.AddField(
-            model_name='profile',
-            name='signed',
-            field=models.BooleanField(default=False),
-        ),
-    ]
diff --git a/src/account/migrations/0005_auto_20171223_1455.py b/src/account/migrations/0005_auto_20171223_1455.py
deleted file mode 100644
index d5e5fb8..0000000
--- a/src/account/migrations/0005_auto_20171223_1455.py
+++ /dev/null
@@ -1,20 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by Django 1.11.5 on 2017-12-23 13:55
-from __future__ import unicode_literals
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('account', '0004_profile_signed'),
-    ]
-
-    operations = [
-        migrations.AlterField(
-            model_name='profile',
-            name='join_date',
-            field=models.DateField(auto_now=True),
-        ),
-    ]
diff --git a/src/account/migrations/0006_auto_20180123_1713.py b/src/account/migrations/0006_auto_20180123_1713.py
deleted file mode 100644
index 035ce31..0000000
--- a/src/account/migrations/0006_auto_20180123_1713.py
+++ /dev/null
@@ -1,36 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by Django 1.11.5 on 2018-01-23 16:13
-from __future__ import unicode_literals
-
-from django.db import migrations, models
-import django.db.models.deletion
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('account', '0005_auto_20171223_1455'),
-    ]
-
-    operations = [
-        migrations.CreateModel(
-            name='GroupChoice',
-            fields=[
-                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
-                ('pref_group', models.CharField(choices=[('DT', 'DevTeam'), ('NET', 'NeTeam'), ('ST', 'SecurITeam'), ('SYS', 'SysAdmin'), ('HAT', 'HallgatĂłi TudĂĄsbĂĄzis'), ('N', 'None')], default='None', max_length=10)),
-            ],
-        ),
-        migrations.RemoveField(
-            model_name='profile',
-            name='pref_group',
-        ),
-        migrations.AddField(
-            model_name='groupchoice',
-            name='profile',
-            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='preferd_groups', to='account.Profile'),
-        ),
-        migrations.AlterUniqueTogether(
-            name='groupchoice',
-            unique_together=set([('pref_group', 'profile')]),
-        ),
-    ]
diff --git a/src/account/migrations/0007_auto_20180123_1723.py b/src/account/migrations/0007_auto_20180123_1723.py
deleted file mode 100644
index 27a4efe..0000000
--- a/src/account/migrations/0007_auto_20180123_1723.py
+++ /dev/null
@@ -1,24 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by Django 1.11.5 on 2018-01-23 16:23
-from __future__ import unicode_literals
-
-from django.db import migrations
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('account', '0006_auto_20180123_1713'),
-    ]
-
-    operations = [
-        migrations.RenameField(
-            model_name='groupchoice',
-            old_name='pref_group',
-            new_name='choice',
-        ),
-        migrations.AlterUniqueTogether(
-            name='groupchoice',
-            unique_together=set([('choice', 'profile')]),
-        ),
-    ]
diff --git a/src/account/migrations/0008_auto_20180124_1821.py b/src/account/migrations/0008_auto_20180124_1821.py
deleted file mode 100644
index fd3af44..0000000
--- a/src/account/migrations/0008_auto_20180124_1821.py
+++ /dev/null
@@ -1,22 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by Django 1.11.5 on 2018-01-24 17:21
-from __future__ import unicode_literals
-
-from django.conf import settings
-from django.db import migrations, models
-import django.db.models.deletion
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('account', '0007_auto_20180123_1723'),
-    ]
-
-    operations = [
-        migrations.AlterField(
-            model_name='profile',
-            name='user',
-            field=models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='profile', to=settings.AUTH_USER_MODEL),
-        ),
-    ]
diff --git a/src/account/migrations/0009_profile_motivation.py b/src/account/migrations/0009_profile_motivation.py
deleted file mode 100644
index c9d1e0a..0000000
--- a/src/account/migrations/0009_profile_motivation.py
+++ /dev/null
@@ -1,20 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by Django 1.11.5 on 2018-01-24 17:43
-from __future__ import unicode_literals
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('account', '0008_auto_20180124_1821'),
-    ]
-
-    operations = [
-        migrations.AddField(
-            model_name='profile',
-            name='motivation',
-            field=models.TextField(null=True),
-        ),
-    ]
diff --git a/src/account/migrations/0010_auto_20180124_1929.py b/src/account/migrations/0010_auto_20180124_1929.py
deleted file mode 100644
index 2a9b50d..0000000
--- a/src/account/migrations/0010_auto_20180124_1929.py
+++ /dev/null
@@ -1,33 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by Django 1.11.5 on 2018-01-24 18:29
-from __future__ import unicode_literals
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('account', '0009_profile_motivation'),
-    ]
-
-    operations = [
-        migrations.AddField(
-            model_name='profile',
-            name='groups',
-            field=models.ManyToManyField(related_name='profiles', to='account.GroupChoice'),
-        ),
-        migrations.AlterField(
-            model_name='groupchoice',
-            name='choice',
-            field=models.CharField(choices=[('DT', 'DevTeam'), ('NET', 'NeTeam'), ('ST', 'SecurITeam'), ('SYS', 'SysAdmin'), ('HAT', 'HallgatĂłi TudĂĄsbĂĄzis'), ('N', 'None')], default='N', max_length=10, unique=True),
-        ),
-        migrations.AlterUniqueTogether(
-            name='groupchoice',
-            unique_together=set([]),
-        ),
-        migrations.RemoveField(
-            model_name='groupchoice',
-            name='profile',
-        ),
-    ]
diff --git a/src/account/migrations/0011_deadline.py b/src/account/migrations/0011_deadline.py
deleted file mode 100644
index e88ed12..0000000
--- a/src/account/migrations/0011_deadline.py
+++ /dev/null
@@ -1,25 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by Django 1.11.5 on 2018-01-25 18:42
-from __future__ import unicode_literals
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('account', '0010_auto_20180124_1929'),
-    ]
-
-    operations = [
-        migrations.CreateModel(
-            name='Deadline',
-            fields=[
-                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
-                ('deadline', models.DateField()),
-            ],
-            options={
-                'abstract': False,
-            },
-        ),
-    ]
diff --git a/src/account/migrations/0012_auto_20180125_1957.py b/src/account/migrations/0012_auto_20180125_1957.py
deleted file mode 100644
index 92845d1..0000000
--- a/src/account/migrations/0012_auto_20180125_1957.py
+++ /dev/null
@@ -1,20 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by Django 1.11.5 on 2018-01-25 18:57
-from __future__ import unicode_literals
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('account', '0011_deadline'),
-    ]
-
-    operations = [
-        migrations.AlterField(
-            model_name='deadline',
-            name='deadline',
-            field=models.DateField(null=True),
-        ),
-    ]
diff --git a/src/account/migrations/0013_auto_20180203_2007.py b/src/account/migrations/0013_auto_20180203_2007.py
deleted file mode 100644
index 8ac041e..0000000
--- a/src/account/migrations/0013_auto_20180203_2007.py
+++ /dev/null
@@ -1,18 +0,0 @@
-# Generated by Django 2.0.1 on 2018-02-03 19:07
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('account', '0012_auto_20180125_1957'),
-    ]
-
-    operations = [
-        migrations.AlterField(
-            model_name='profile',
-            name='join_date',
-            field=models.DateTimeField(auto_now=True),
-        ),
-    ]
diff --git a/src/account/migrations/0014_auto_20180203_2010.py b/src/account/migrations/0014_auto_20180203_2010.py
deleted file mode 100644
index 0ad3c05..0000000
--- a/src/account/migrations/0014_auto_20180203_2010.py
+++ /dev/null
@@ -1,18 +0,0 @@
-# Generated by Django 2.0.1 on 2018-02-03 19:10
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('account', '0013_auto_20180203_2007'),
-    ]
-
-    operations = [
-        migrations.AlterField(
-            model_name='deadline',
-            name='deadline',
-            field=models.DateTimeField(null=True),
-        ),
-    ]
diff --git a/src/account/migrations/0015_auto_20180203_2014.py b/src/account/migrations/0015_auto_20180203_2014.py
deleted file mode 100644
index e823387..0000000
--- a/src/account/migrations/0015_auto_20180203_2014.py
+++ /dev/null
@@ -1,23 +0,0 @@
-# Generated by Django 2.0.1 on 2018-02-03 19:14
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('account', '0014_auto_20180203_2010'),
-    ]
-
-    operations = [
-        migrations.AddField(
-            model_name='profile',
-            name='updated_at',
-            field=models.DateTimeField(auto_now=True),
-        ),
-        migrations.AlterField(
-            model_name='profile',
-            name='join_date',
-            field=models.DateTimeField(auto_now_add=True),
-        ),
-    ]
diff --git a/src/account/migrations/0016_auto_20180203_2022.py b/src/account/migrations/0016_auto_20180203_2022.py
deleted file mode 100644
index 86c2ae6..0000000
--- a/src/account/migrations/0016_auto_20180203_2022.py
+++ /dev/null
@@ -1,23 +0,0 @@
-# Generated by Django 2.0.1 on 2018-02-03 19:22
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('account', '0015_auto_20180203_2014'),
-    ]
-
-    operations = [
-        migrations.AlterField(
-            model_name='profile',
-            name='motivation',
-            field=models.TextField(blank=True, default=''),
-        ),
-        migrations.AlterField(
-            model_name='profile',
-            name='nick',
-            field=models.CharField(blank=True, default='', max_length=15),
-        ),
-    ]
diff --git a/src/account/migrations/0017_auto_20180205_2004.py b/src/account/migrations/0017_auto_20180205_2004.py
deleted file mode 100644
index d2137f9..0000000
--- a/src/account/migrations/0017_auto_20180205_2004.py
+++ /dev/null
@@ -1,28 +0,0 @@
-# Generated by Django 2.0.1 on 2018-02-05 19:04
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('account', '0016_auto_20180203_2022'),
-    ]
-
-    operations = [
-        migrations.RenameField(
-            model_name='profile',
-            old_name='motivation',
-            new_name='motivation_about',
-        ),
-        migrations.AddField(
-            model_name='profile',
-            name='motivation_exercise',
-            field=models.TextField(blank=True, default=''),
-        ),
-        migrations.AddField(
-            model_name='profile',
-            name='motivation_profession',
-            field=models.TextField(blank=True, default=''),
-        ),
-    ]
diff --git a/src/account/views.py b/src/account/views.py
index fde64a8..9ceaeb8 100644
--- a/src/account/views.py
+++ b/src/account/views.py
@@ -15,7 +15,6 @@ class ProfileViewSet(viewsets.ModelViewSet):
         user = self.request.user
         if user.has_perm(permissions.IsAdminUser):
             return models.Profile.objects.all()
-
         return models.Profile.objects.filter(pk=user.profile.id)
 
     @list_route(methods=['get'])
diff --git a/src/common/middleware.py b/src/common/middleware.py
new file mode 100644
index 0000000..fd40451
--- /dev/null
+++ b/src/common/middleware.py
@@ -0,0 +1,16 @@
+from threading import local
+
+_profile = local()
+
+
+class CurrentUserMiddleware(object):
+
+    def __init__(self, get_response):
+        self.get_response = get_response
+
+    def __call__(self, request):
+        _profile.value = request.user
+        return self.get_response(request)
+
+    def get_current_profile():
+        return _profile.value.profile
diff --git a/src/homework/migrations/0001_initial.py b/src/homework/migrations/0001_initial.py
old mode 100755
new mode 100644
index b92796b..24fda6e
--- a/src/homework/migrations/0001_initial.py
+++ b/src/homework/migrations/0001_initial.py
@@ -1,4 +1,4 @@
-# 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 django.core.validators
@@ -11,7 +11,7 @@ class Migration(migrations.Migration):
     initial = True
 
     dependencies = [
-        ('account', '0017_auto_20180205_2004'),
+        ('account', '0001_initial'),
     ]
 
     operations = [
@@ -21,8 +21,7 @@ class Migration(migrations.Migration):
                 ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                 ('created_at', models.DateTimeField(auto_now_add=True)),
                 ('updated_at', models.DateTimeField(auto_now=True)),
-                ('ready', models.BooleanField(default=False)),
-                ('accepted', models.BooleanField(default=False)),
+                ('accepted', models.BooleanField()),
                 ('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')),
             ],
diff --git a/src/homework/migrations/0002_auto_20180411_0047.py b/src/homework/migrations/0002_auto_20180411_0047.py
deleted file mode 100644
index cafe25c..0000000
--- a/src/homework/migrations/0002_auto_20180411_0047.py
+++ /dev/null
@@ -1,22 +0,0 @@
-# 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(),
-        ),
-    ]
diff --git a/src/kszkepzes/settings/base.py b/src/kszkepzes/settings/base.py
index dd73603..81c4c31 100644
--- a/src/kszkepzes/settings/base.py
+++ b/src/kszkepzes/settings/base.py
@@ -38,7 +38,7 @@ INSTALLED_APPS = [
     'django.contrib.messages',
     'django.contrib.staticfiles',
     'django_extensions',
-    'import_export',
+     'import_export',
     'rest_framework',
     'social_django',
     'solo',
@@ -58,6 +58,7 @@ MIDDLEWARE = [
     'django.contrib.auth.middleware.AuthenticationMiddleware',
     'django.contrib.messages.middleware.MessageMiddleware',
     'django.middleware.clickjacking.XFrameOptionsMiddleware',
+    'common.middleware.CurrentUserMiddleware',
 ]
 
 ROOT_URLCONF = 'kszkepzes.urls'
diff --git a/src/news/migrations/0001_initial.py b/src/news/migrations/0001_initial.py
index 3e3bf0c..fb34277 100644
--- a/src/news/migrations/0001_initial.py
+++ b/src/news/migrations/0001_initial.py
@@ -1,6 +1,4 @@
-# -*- coding: utf-8 -*-
-# Generated by Django 1.11.5 on 2017-11-28 19:55
-from __future__ import unicode_literals
+# Generated by Django 2.0.1 on 2018-12-24 16:02
 
 from django.db import migrations, models
 import django.db.models.deletion
@@ -11,7 +9,7 @@ class Migration(migrations.Migration):
     initial = True
 
     dependencies = [
-        ('account', '0002_auto_20171114_2144'),
+        ('account', '0001_initial'),
     ]
 
     operations = [
@@ -21,8 +19,10 @@ class Migration(migrations.Migration):
                 ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                 ('title', models.CharField(max_length=200)),
                 ('text', models.TextField()),
-                ('date', models.DateTimeField()),
-                ('author', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='author', to='account.Profile')),
+                ('created_at', models.DateTimeField(auto_now_add=True)),
+                ('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')),
             ],
         ),
     ]
diff --git a/src/news/migrations/0002_auto_20171220_1852.py b/src/news/migrations/0002_auto_20171220_1852.py
deleted file mode 100644
index 82274a5..0000000
--- a/src/news/migrations/0002_auto_20171220_1852.py
+++ /dev/null
@@ -1,20 +0,0 @@
-# -*- 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),
-        ),
-    ]
diff --git a/src/news/migrations/0003_auto_20180126_0135.py b/src/news/migrations/0003_auto_20180126_0135.py
deleted file mode 100644
index 744aef9..0000000
--- a/src/news/migrations/0003_auto_20180126_0135.py
+++ /dev/null
@@ -1,29 +0,0 @@
-# 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'),
-        ),
-    ]
diff --git a/src/news/models.py b/src/news/models.py
index 0714bf1..92552b7 100644
--- a/src/news/models.py
+++ b/src/news/models.py
@@ -1,13 +1,24 @@
 from django.db import models
 from account.models import Profile
+from common.middleware import CurrentUserMiddleware
 
 
 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)
     text = models.TextField()
     created_at = models.DateTimeField(auto_now_add=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):
         return self.title
diff --git a/src/news/serializers.py b/src/news/serializers.py
index a4123d8..445c936 100644
--- a/src/news/serializers.py
+++ b/src/news/serializers.py
@@ -1,13 +1,16 @@
 from news.models import Article
 from rest_framework import serializers
+from common.serializers import CurrentUserProfileDefault
 
 
-class ArticleListSerializer(serializers.ModelSerializer):
-    author_name = serializers.SerializerMethodField()
+class ArticleSerializer(serializers.ModelSerializer):
+    updated_by = serializers.HiddenField(default=CurrentUserProfileDefault())
+    last_updated_by = serializers.SerializerMethodField()
 
     class Meta:
         model = Article
-        fields = serializers.ALL_FIELDS
+        read_only_fields = ('author', 'created_at', 'updated_at', 'updated_by')
+        fields = '__all__'
 
-    def get_author_name(self, obj):
-        return obj.author.user.get_full_name()
+    def get_last_updated_by(self, obj):
+        return obj.updated_by.id
diff --git a/src/news/urls.py b/src/news/urls.py
index d71ed82..9536ff9 100644
--- a/src/news/urls.py
+++ b/src/news/urls.py
@@ -3,6 +3,6 @@ from news import views
 
 
 router = routers.DefaultRouter()
-router.register(r'news', views.NewsViewSet)
+router.register(r'news', views.NewsViewSet, base_name='news')
 
 urlpatterns = router.urls
diff --git a/src/news/views.py b/src/news/views.py
index 7267fd8..764d0a9 100644
--- a/src/news/views.py
+++ b/src/news/views.py
@@ -1,10 +1,10 @@
 from common.permissions import IsStaffOrReadOnly
 from rest_framework import viewsets
 from news.models import Article
-from news.serializers import ArticleListSerializer
+from news.serializers import ArticleSerializer
 
 
 class NewsViewSet(viewsets.ModelViewSet):
-    serializer_class = ArticleListSerializer
-    permission_classes = [IsStaffOrReadOnly]
+    serializer_class = ArticleSerializer
+    permission_classes = (IsStaffOrReadOnly,)
     queryset = Article.objects.all().order_by('-created_at')
diff --git a/src/stats/migrations/0001_initial.py b/src/stats/migrations/0001_initial.py
index 91e32ff..444036a 100644
--- a/src/stats/migrations/0001_initial.py
+++ b/src/stats/migrations/0001_initial.py
@@ -1,8 +1,7 @@
-# -*- coding: utf-8 -*-
-# Generated by Django 1.11.5 on 2017-11-11 14:14
-from __future__ import unicode_literals
+# Generated by Django 2.0.1 on 2018-12-24 16:02
 
 from django.db import migrations, models
+import django.db.models.deletion
 
 
 class Migration(migrations.Migration):
@@ -15,12 +14,27 @@ class Migration(migrations.Migration):
 
     operations = [
         migrations.CreateModel(
-            name='KszkEvent',
+            name='Event',
             fields=[
                 ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
-                ('date', models.DateField()),
-                ('num_of_pers', models.IntegerField()),
+                ('name', models.CharField(max_length=255)),
+                ('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')),
             ],
         ),
+        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')),
+            ],
+        ),
     ]
diff --git a/src/stats/migrations/0002_auto_20171111_1646.py b/src/stats/migrations/0002_auto_20171111_1646.py
deleted file mode 100644
index 7a51b6e..0000000
--- a/src/stats/migrations/0002_auto_20171111_1646.py
+++ /dev/null
@@ -1,20 +0,0 @@
-# -*- 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),
-        ),
-    ]
diff --git a/src/stats/migrations/0003_auto_20171114_2026.py b/src/stats/migrations/0003_auto_20171114_2026.py
deleted file mode 100644
index 4f61427..0000000
--- a/src/stats/migrations/0003_auto_20171114_2026.py
+++ /dev/null
@@ -1,20 +0,0 @@
-# -*- 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(),
-        ),
-    ]
diff --git a/src/stats/migrations/0004_remove_kszkevent_num_of_pers.py b/src/stats/migrations/0004_remove_kszkevent_num_of_pers.py
deleted file mode 100644
index 06bf71b..0000000
--- a/src/stats/migrations/0004_remove_kszkevent_num_of_pers.py
+++ /dev/null
@@ -1,19 +0,0 @@
-# -*- 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',
-        ),
-    ]
diff --git a/src/stats/migrations/0005_auto_20180214_2206.py b/src/stats/migrations/0005_auto_20180214_2206.py
deleted file mode 100644
index f4a0033..0000000
--- a/src/stats/migrations/0005_auto_20180214_2206.py
+++ /dev/null
@@ -1,30 +0,0 @@
-# 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',
-        ),
-    ]
diff --git a/src/stats/migrations/0006_auto_20180214_2239.py b/src/stats/migrations/0006_auto_20180214_2239.py
deleted file mode 100644
index 11bcd47..0000000
--- a/src/stats/migrations/0006_auto_20180214_2239.py
+++ /dev/null
@@ -1,19 +0,0 @@
-# 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),
-        ),
-    ]
diff --git a/src/stats/migrations/0007_auto_20180215_0018.py b/src/stats/migrations/0007_auto_20180215_0018.py
deleted file mode 100644
index 9cd65ce..0000000
--- a/src/stats/migrations/0007_auto_20180215_0018.py
+++ /dev/null
@@ -1,18 +0,0 @@
-# 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'),
-        ),
-    ]
diff --git a/src/stats/migrations/0008_note.py b/src/stats/migrations/0008_note.py
deleted file mode 100644
index 8b08926..0000000
--- a/src/stats/migrations/0008_note.py
+++ /dev/null
@@ -1,27 +0,0 @@
-# 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')),
-            ],
-        ),
-    ]
diff --git a/src/stats/models.py b/src/stats/models.py
index aa38fd9..0eb5c70 100644
--- a/src/stats/models.py
+++ b/src/stats/models.py
@@ -8,6 +8,9 @@ class Event(models.Model):
     name = models.CharField(max_length=255)
     date = models.DateTimeField(null=False)
     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):
         if self.date > timezone.now():
@@ -18,10 +21,9 @@ class Event(models.Model):
 
 
 class Note(models.Model):
-    event = models.ForeignKey(Event, related_name='notes', on_delete=models.CASCADE)
-    user = models.ForeignKey(Profile, 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_user', on_delete=models.CASCADE)
     note = models.TextField()
-
     created_by = models.ForeignKey(Profile, related_name='created_notes', on_delete=models.CASCADE)
     created_at = models.DateTimeField(auto_now_add=True, editable=False)
     updated_at = models.DateTimeField(auto_now=True, editable=False)
diff --git a/src/stats/serializers.py b/src/stats/serializers.py
index 0620c99..a8a1f39 100644
--- a/src/stats/serializers.py
+++ b/src/stats/serializers.py
@@ -1,8 +1,21 @@
 from rest_framework import serializers
+from common.serializers import CurrentUserProfileDefault
 from . import models
 
 
 class EventSerializer(serializers.ModelSerializer):
+    created_by = serializers.HiddenField(default=CurrentUserProfileDefault())
+
     class Meta:
         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')
diff --git a/src/stats/urls.py b/src/stats/urls.py
index 8f270ce..f2a9110 100644
--- a/src/stats/urls.py
+++ b/src/stats/urls.py
@@ -1,8 +1,8 @@
 from rest_framework import routers
-
 from . import views
 
 router = routers.DefaultRouter()
-router.register(r'events', views.EventViewSet)
+router.register(r'events', views.EventViewSet, base_name='events')
+router.register(r'notes', views.NoteViewSet, base_name='notes')
 
 urlpatterns = router.urls
diff --git a/src/stats/views.py b/src/stats/views.py
index f2c91f1..e9b8a10 100644
--- a/src/stats/views.py
+++ b/src/stats/views.py
@@ -2,8 +2,16 @@ from rest_framework import viewsets
 
 from . import models
 from . import serializers
+from common.permissions import IsStaffUser, IsStaffOrReadOnlyForAuthenticated
 
 
 class EventViewSet(viewsets.ModelViewSet):
     serializer_class = serializers.EventSerializer
     queryset = models.Event.objects.all()
+    permission_classes = (IsStaffOrReadOnlyForAuthenticated, )
+
+
+class NoteViewSet(viewsets.ModelViewSet):
+    serializer_class = serializers.NoteSerializer
+    queryset = models.Note.objects.all()
+    permission_classes = (IsStaffUser, )
-- 
GitLab