Skip to content

Commit

Permalink
Merge pull request #76 from hackupc/checkin-admin
Browse files Browse the repository at this point in the history
Add checkin admin interface. solves #74
  • Loading branch information
casassg authored Feb 28, 2017
2 parents 12b4cd8 + c7b528f commit 02cba72
Show file tree
Hide file tree
Showing 6 changed files with 64 additions and 3 deletions.
11 changes: 11 additions & 0 deletions checkin/admin.py
Original file line number Diff line number Diff line change
@@ -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)
29 changes: 29 additions & 0 deletions checkin/migrations/0001_initial.py
Original file line number Diff line number Diff line change
@@ -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)),
],
),
]
Empty file added checkin/migrations/__init__.py
Empty file.
19 changes: 16 additions & 3 deletions checkin/models.py
Original file line number Diff line number Diff line change
@@ -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)
5 changes: 5 additions & 0 deletions checkin/views.py
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -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'))
3 changes: 3 additions & 0 deletions register/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -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')
Expand Down

0 comments on commit 02cba72

Please sign in to comment.