From 57371c596db971275bfca8c3d53a4184eb9345c1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Barnab=C3=A1s=20Cz=C3=A9m=C3=A1n?= <trabarni@gmail.com>
Date: Wed, 14 Feb 2018 22:16:06 +0100
Subject: [PATCH] Change KSZKevent to Event and add inital import/export
 support

---
 src/stats/admin.py                            |  8 +++--
 .../migrations/0005_auto_20180214_2206.py     | 30 +++++++++++++++++++
 src/stats/models.py                           |  6 +++-
 src/stats/serializers.py                      |  4 +--
 src/stats/urls.py                             |  2 +-
 src/stats/views.py                            |  6 ++--
 6 files changed, 47 insertions(+), 9 deletions(-)
 create mode 100644 src/stats/migrations/0005_auto_20180214_2206.py

diff --git a/src/stats/admin.py b/src/stats/admin.py
index a551546..b15fe68 100644
--- a/src/stats/admin.py
+++ b/src/stats/admin.py
@@ -1,5 +1,9 @@
 from django.contrib import admin
-from .models import KszkEvent
+from import_export.admin import ImportExportModelAdmin
 
+from . import models
 
-admin.site.register(KszkEvent)
+
+@admin.register(models.Event)
+class EventAdmin(ImportExportModelAdmin):
+    horizontal_filter = ('visitors', )
diff --git a/src/stats/migrations/0005_auto_20180214_2206.py b/src/stats/migrations/0005_auto_20180214_2206.py
new file mode 100644
index 0000000..f4a0033
--- /dev/null
+++ b/src/stats/migrations/0005_auto_20180214_2206.py
@@ -0,0 +1,30 @@
+# 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/models.py b/src/stats/models.py
index b3cea98..854def4 100644
--- a/src/stats/models.py
+++ b/src/stats/models.py
@@ -4,10 +4,14 @@ from django.utils import timezone
 from django.core.exceptions import ValidationError
 
 
-class KszkEvent(models.Model):
+class Event(models.Model):
+    name = models.CharField(max_length=255)
     date = models.DateTimeField(null=False)
     visitors = models.ManyToManyField(Profile, related_name='visitor')
 
     def clean(self):
         if self.date > timezone.now():
             raise ValidationError('Invalid date')
+
+    def __str__(self):
+        return self.name
diff --git a/src/stats/serializers.py b/src/stats/serializers.py
index 8356998..ab02bee 100644
--- a/src/stats/serializers.py
+++ b/src/stats/serializers.py
@@ -2,7 +2,7 @@ from rest_framework import serializers
 from . import models
 
 
-class KszkEventSerializer(serializers.ModelSerializer):
+class EventSerializer(serializers.ModelSerializer):
     class Meta:
-        model = models.KszkEvent
+        model = models.Event
         fields = ('date',  'visitors')
diff --git a/src/stats/urls.py b/src/stats/urls.py
index ef0f4e2..8f270ce 100644
--- a/src/stats/urls.py
+++ b/src/stats/urls.py
@@ -3,6 +3,6 @@ from rest_framework import routers
 from . import views
 
 router = routers.DefaultRouter()
-router.register(r'events', views.KszkEventViewSet)
+router.register(r'events', views.EventViewSet)
 
 urlpatterns = router.urls
diff --git a/src/stats/views.py b/src/stats/views.py
index c7ed3ec..f2c91f1 100644
--- a/src/stats/views.py
+++ b/src/stats/views.py
@@ -4,6 +4,6 @@ from . import models
 from . import serializers
 
 
-class KszkEventViewSet(viewsets.ModelViewSet):
-    serializer_class = serializers.KszkEventSerializer
-    queryset = models.KszkEvent.objects.all()
+class EventViewSet(viewsets.ModelViewSet):
+    serializer_class = serializers.EventSerializer
+    queryset = models.Event.objects.all()
-- 
GitLab