Skip to content
Snippets Groups Projects
Unverified Commit 2965551f authored by Barnabás Czémán's avatar Barnabás Czémán Committed by GitHub
Browse files

Merge pull request #15 from DevTeamSCH/events

Events
parents ec908a57 b83fbc30
No related branches found
No related tags found
No related merge requests found
......@@ -8,7 +8,7 @@ from . import resources
@admin.register(models.Profile)
class ProfileAdmin(ExportMixin, admin.ModelAdmin):
list_display = ('user_username', 'join_date')
list_display = ('user_username', 'full_name', 'join_date')
resource_class = resources.SignUpResource
def user_username(self, obj):
......
......@@ -29,10 +29,13 @@ class Profile(models.Model):
nick = models.CharField(max_length=15, blank=True, default='')
signed = models.BooleanField(default=False, null=False)
groups = models.ManyToManyField(GroupChoice, related_name='profiles')
# Homeworks=models.ForeignKey(Homework)
@property
def full_name(self):
return self.user.get_full_name()
def __str__(self):
return self.user.username
return self.full_name
class Deadline(SingletonModel):
......
from django.contrib import admin
from .models import KszkEvent
from import_export.admin import ExportMixin
from . import models
from . import resources
admin.site.register(KszkEvent)
@admin.register(models.Event)
class EventAdmin(ExportMixin, admin.ModelAdmin):
filter_horizontal = ('visitors', )
list_filter = ('name', 'date')
search_fields = ('name', )
resource_class = resources.EventResource
@admin.register(models.Note)
class NoteAdmin(ExportMixin, admin.ModelAdmin):
list_display = ('user', 'note', 'event', 'created_by', 'created_at', 'updated_at')
list_filter = ('user', 'created_by', 'event')
search_fields = ('event__name', 'note')
resource_class = resources.NoteResource
# 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')),
],
),
]
......@@ -4,10 +4,27 @@ 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
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)
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)
def __str__(self):
return self.note
from import_export import resources, widgets, fields
from account.models import Profile
from . import models
class EventResource(resources.ModelResource):
visitors = fields.Field(
attribute='visitors',
widget=widgets.ManyToManyWidget(model=Profile, separator=' ,', field='full_name'),
)
class Meta:
model = models.Event
fields = (
'name',
'date',
'visitors',
)
class NoteResource(resources.ModelResource):
created_by = fields.Field()
user = fields.Field()
class Meta:
model = models.Note
fields = (
'user',
'event__name',
'note',
'created_at',
'updated_at',
'created_by',
)
def dehydrate_created_by(self, obj):
return obj.created_by.full_name
def dehydrate_user(self, obj):
return obj.user.full_name
......@@ -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
fields = ('date', 'visitors')
model = models.Event
fields = ('name', 'date', 'visitors')
......@@ -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
......@@ -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()
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