From 6b4ff46f36c16f342d420df82f7ef4eaaf54ce15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bodor=20M=C3=A1t=C3=A9?= <bodor.mate@kszk.bme.hu> Date: Mon, 14 Jan 2019 17:24:21 +0100 Subject: [PATCH] Change event visitors filed --- .../migrations/0005_auto_20190114_1713.py | 30 +++++++++++++++++++ src/stats/models.py | 22 ++++++++++++-- src/stats/serializers.py | 5 +++- 3 files changed, 53 insertions(+), 4 deletions(-) create mode 100644 src/stats/migrations/0005_auto_20190114_1713.py diff --git a/src/stats/migrations/0005_auto_20190114_1713.py b/src/stats/migrations/0005_auto_20190114_1713.py new file mode 100644 index 0000000..769bc79 --- /dev/null +++ b/src/stats/migrations/0005_auto_20190114_1713.py @@ -0,0 +1,30 @@ +# Generated by Django 2.0.1 on 2019-01-14 16:13 + +import common.middleware +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('stats', '0004_auto_20190113_1239'), + ] + + operations = [ + migrations.AlterField( + model_name='event', + name='created_by', + field=models.ForeignKey(default=common.middleware.CurrentUserMiddleware.get_current_user_profile, on_delete=django.db.models.deletion.DO_NOTHING, related_name='created_event', to='account.Profile'), + ), + migrations.AlterField( + model_name='event', + name='visitors', + field=models.ManyToManyField(blank=True, null=True, related_name='events', to='account.Profile'), + ), + migrations.AlterField( + model_name='note', + name='created_by', + field=models.ForeignKey(default=common.middleware.CurrentUserMiddleware.get_current_user_profile, on_delete=django.db.models.deletion.DO_NOTHING, related_name='created_notes', to='account.Profile'), + ), + ] diff --git a/src/stats/models.py b/src/stats/models.py index ed09f11..c408a7b 100644 --- a/src/stats/models.py +++ b/src/stats/models.py @@ -1,5 +1,6 @@ from django.db import models from account.models import Profile +from common.middleware import CurrentUserMiddleware from django.utils import timezone from django.core.exceptions import ValidationError @@ -7,8 +8,18 @@ from django.core.exceptions import ValidationError 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.DO_NOTHING) + visitors = models.ManyToManyField( + Profile, + related_name='events', + blank=True, + null=True, + ) + created_by = models.ForeignKey( + Profile, + related_name='created_event', + on_delete=models.DO_NOTHING, + default=CurrentUserMiddleware.get_current_user_profile, + ) created_at = models.DateTimeField(auto_now_add=True, editable=False) updated_at = models.DateTimeField(auto_now=True, editable=False) @@ -20,7 +31,12 @@ class Note(models.Model): event = models.ForeignKey(Event, related_name='notes', on_delete=models.CASCADE, blank=True, null=True,) profile = models.ForeignKey(Profile, related_name='notes', on_delete=models.CASCADE, blank=True, null=True,) note = models.TextField() - created_by = models.ForeignKey(Profile, related_name='created_notes', on_delete=models.DO_NOTHING) + created_by = models.ForeignKey( + Profile, + related_name='created_notes', + on_delete=models.DO_NOTHING, + default=CurrentUserMiddleware.get_current_user_profile, + ) 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 63cc6ce..5f16191 100644 --- a/src/stats/serializers.py +++ b/src/stats/serializers.py @@ -4,9 +4,9 @@ from . import models class EventSerializer(serializers.ModelSerializer): - created_by = serializers.HiddenField(default=CurrentUserProfileDefault()) created_by_name = serializers.SerializerMethodField() visitor_number = serializers.SerializerMethodField() + # visitors = serializers.SerializerMethodField() class Meta: model = models.Event @@ -19,6 +19,9 @@ class EventSerializer(serializers.ModelSerializer): def get_visitor_number(self, obj): return obj.visitors.all().count() + # def get_visitors(self, obj): + # return obj.visitors.all() + class NoteSerializer(serializers.ModelSerializer): created_by = serializers.HiddenField(default=CurrentUserProfileDefault()) -- GitLab