From c7b528fcd76642f8b0157e38c440cc3e95b91df5 Mon Sep 17 00:00:00 2001 From: Gerard Casas Date: Sat, 25 Feb 2017 21:02:59 -0700 Subject: [PATCH] add checkin admin interface --- checkin/admin.py | 11 +++++++++++ checkin/migrations/0001_initial.py | 29 +++++++++++++++++++++++++++++ checkin/migrations/__init__.py | 0 checkin/models.py | 19 ++++++++++++++++--- checkin/views.py | 5 +++++ register/models.py | 3 +++ 6 files changed, 64 insertions(+), 3 deletions(-) create mode 100644 checkin/migrations/0001_initial.py create mode 100644 checkin/migrations/__init__.py diff --git a/checkin/admin.py b/checkin/admin.py index d1b807ac..67b796cd 100644 --- a/checkin/admin.py +++ b/checkin/admin.py @@ -1,3 +1,14 @@ +from checkin import models from django.contrib import admin + + # Register your models here. +class CheckinAdmin(admin.ModelAdmin): + list_display = ( + 'user', 'application', 'update_time' + ) + search_fields = list_display + date_hierarchy = 'update_time' + +admin.site.register(models.CheckIn, admin_class=CheckinAdmin) diff --git a/checkin/migrations/0001_initial.py b/checkin/migrations/0001_initial.py new file mode 100644 index 00000000..7d1c0fc6 --- /dev/null +++ b/checkin/migrations/0001_initial.py @@ -0,0 +1,29 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.4 on 2017-02-26 03:52 +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): + + initial = True + + dependencies = [ + ('register', '0007_permissions'), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.CreateModel( + name='CheckIn', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('update_time', models.DateTimeField()), + ('application', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='register.Application')), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + ] diff --git a/checkin/migrations/__init__.py b/checkin/migrations/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/checkin/models.py b/checkin/models.py index 47de64be..feaa7a89 100644 --- a/checkin/models.py +++ b/checkin/models.py @@ -1,10 +1,23 @@ from __future__ import unicode_literals +from django.contrib.auth import models as admin_models from django.db import models -from register.models import Application - # Create your models here. +from django.utils.datetime_safe import datetime +from register.models import APP_CONFIRMED + class CheckIn(models.Model): - application = models.OneToOneField('register.Application') + application = models.ForeignKey('register.Application') + user = models.ForeignKey(admin_models.User) + update_time = models.DateTimeField() + + def save(self, force_insert=False, force_update=False, using=None, + update_fields=None): + self.update_time = datetime.now() + super(CheckIn, self).save(force_insert, force_update, using, update_fields) + def delete(self, using=None, keep_parents=False): + self.application.status = APP_CONFIRMED + self.application.save() + super(CheckIn, self).delete(using, keep_parents) diff --git a/checkin/views.py b/checkin/views.py index bef572c4..8272060c 100644 --- a/checkin/views.py +++ b/checkin/views.py @@ -1,3 +1,4 @@ +from checkin.models import CheckIn from checkin.tables import ApplicationsTable from django.contrib.auth.mixins import PermissionRequiredMixin from django.http import HttpResponseRedirect @@ -53,4 +54,8 @@ def post(self, request, *args, **kwargs): appid = request.POST.get('app_id') app = models.Application.objects.get(id=appid) app.check_in() + ci =CheckIn() + ci.user = request.user + ci.application = app + ci.save() return HttpResponseRedirect(request.META.get('HTTP_REFERER')) diff --git a/register/models.py b/register/models.py index 14565dec..3854fde0 100644 --- a/register/models.py +++ b/register/models.py @@ -95,6 +95,9 @@ class Application(models.Model): # TODO: TEAM EXTERNAL + def __str__(self): + return self.name + ' ' + self.lastname + def invite(self, request): if not request.user.has_perm('register.invite_application'): raise ValidationError('User doesn\'t have permission to invite user')