diff --git a/mhackspace/base/management/commands/generate_test_data.py b/mhackspace/base/management/commands/generate_test_data.py index a3b8a8d..52d33ba 100644 --- a/mhackspace/base/management/commands/generate_test_data.py +++ b/mhackspace/base/management/commands/generate_test_data.py @@ -7,6 +7,7 @@ from mhackspace.base.models import BannerImage from mhackspace.feeds.models import Article, Feed from mhackspace.users.models import User from mhackspace.blog.models import Category, Post +from mhackspace.rfid.models import Device class ImageFixture(AutoFixture): @@ -38,6 +39,18 @@ class Command(BaseCommand): }) users.create(10) + rfid = AutoFixture(Rfid) + rfid.create(20) + + device = AutoFixture(Device) + device.create(5) + + feed = AutoFixture(Feed) + feed.create(10) + + feeds = AutoFixture(Article) + feeds.create(10) + banners = ImageFixture(BannerImage) banners.create(10) self.stdout.write( diff --git a/mhackspace/rfid/admin.py b/mhackspace/rfid/admin.py index bd6db72..0567154 100644 --- a/mhackspace/rfid/admin.py +++ b/mhackspace/rfid/admin.py @@ -3,7 +3,7 @@ from django.contrib import admin from django.contrib.admin import ModelAdmin from django.forms.models import ModelChoiceField -from mhackspace.rfid.models import Device, Rfid, DeviceAuth +from mhackspace.rfid.models import Device, DeviceAuth @admin.register(Device) @@ -11,11 +11,6 @@ class DeviceAdmin(ModelAdmin): list_display = ('name', 'identifier') -@admin.register(Rfid) -class RfidAdmin(ModelAdmin): - list_display = ('code', 'description') - - # Probably need to look at this again @admin.register(DeviceAuth) class DeviceAuthAdmin(ModelAdmin): diff --git a/mhackspace/rfid/migrations/0001_initial.py b/mhackspace/rfid/migrations/0001_initial.py index fb37b39..e00b2b9 100644 --- a/mhackspace/rfid/migrations/0001_initial.py +++ b/mhackspace/rfid/migrations/0001_initial.py @@ -1,8 +1,7 @@ # -*- coding: utf-8 -*- -# Generated by Django 1.11 on 2017-04-14 21:15 +# Generated by Django 1.11 on 2017-04-27 18:29 from __future__ import unicode_literals -from django.conf import settings from django.db import migrations, models import django.db.models.deletion import django.utils.timezone @@ -14,7 +13,7 @@ class Migration(migrations.Migration): initial = True dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('users', '0004_rfid'), ] operations = [ @@ -31,17 +30,13 @@ class Migration(migrations.Migration): name='DeviceAuth', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('device', models.ForeignKey(blank=True, default=None, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='device', to='rfid.Device')), - ('user', models.ForeignKey(blank=True, default=None, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='user_auth', to=settings.AUTH_USER_MODEL)), + ('device', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='rfid.Device')), + ('rfid', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='users.Rfid')), ], ), - migrations.CreateModel( - name='Rfid', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('code', models.PositiveIntegerField()), - ('description', models.CharField(blank=True, max_length=255, verbose_name='Short rfid description')), - ('user', models.ForeignKey(blank=True, default=None, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='rfid_user', to=settings.AUTH_USER_MODEL)), - ], + migrations.AddField( + model_name='device', + name='members', + field=models.ManyToManyField(through='rfid.DeviceAuth', to='users.Rfid'), ), ] diff --git a/mhackspace/rfid/migrations/0002_auto_20170420_0730.py b/mhackspace/rfid/migrations/0002_auto_20170420_0730.py deleted file mode 100644 index da8ec64..0000000 --- a/mhackspace/rfid/migrations/0002_auto_20170420_0730.py +++ /dev/null @@ -1,39 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.11 on 2017-04-20 07:30 -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): - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('rfid', '0001_initial'), - ] - - operations = [ - migrations.RemoveField( - model_name='deviceauth', - name='device', - ), - migrations.RemoveField( - model_name='deviceauth', - name='user', - ), - migrations.AddField( - model_name='device', - name='user', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), - ), - migrations.AlterField( - model_name='rfid', - name='user', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), - ), - migrations.DeleteModel( - name='DeviceAuth', - ), - ] diff --git a/mhackspace/rfid/migrations/0003_auto_20170427_0743.py b/mhackspace/rfid/migrations/0003_auto_20170427_0743.py deleted file mode 100644 index 510a7f8..0000000 --- a/mhackspace/rfid/migrations/0003_auto_20170427_0743.py +++ /dev/null @@ -1,29 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.11 on 2017-04-27 07:43 -from __future__ import unicode_literals - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('rfid', '0002_auto_20170420_0730'), - ] - - operations = [ - migrations.CreateModel( - name='DeviceAuth', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('device', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='rfid.Device')), - ('rfid', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='rfid.Rfid')), - ], - ), - migrations.AddField( - model_name='device', - name='members', - field=models.ManyToManyField(through='rfid.DeviceAuth', to='rfid.Rfid'), - ), - ] diff --git a/mhackspace/rfid/models.py b/mhackspace/rfid/models.py index fdb7435..deedb82 100644 --- a/mhackspace/rfid/models.py +++ b/mhackspace/rfid/models.py @@ -7,25 +7,11 @@ from django.conf import settings from django.db import models from django.utils.translation import ugettext_lazy as _ +from mhackspace.users.models import Rfid # just brainstorming so we can start playing with this, # be nice to make this a 3rd party django installable app ? -# users rfid card to user mapping, user can have more than one card -class Rfid(models.Model): - code = models.PositiveIntegerField() - description = models.CharField(_('Short rfid description'), blank=True, max_length=255) - user = models.ForeignKey( - settings.AUTH_USER_MODEL, - null=True, blank=True, - # related_name='rfid_user' - ) - - def __str__(self): - return self.description - - def name(self): - return self.user.name # description of a device like door, print, laser cutter @@ -39,11 +25,11 @@ class Device(models.Model): members = models.ManyToManyField(Rfid, through='DeviceAuth') - user = models.ForeignKey( - settings.AUTH_USER_MODEL, - null=True, blank=True, - # related_name='rfid_user' - ) + # user = models.ForeignKey( + # settings.AUTH_USER_MODEL, + # null=True, blank=True, + # # related_name='rfid_user' + # ) def __str__(self): return self.name diff --git a/mhackspace/rfid/tests/tests.py b/mhackspace/rfid/tests/tests.py index f8bab6b..69254be 100644 --- a/mhackspace/rfid/tests/tests.py +++ b/mhackspace/rfid/tests/tests.py @@ -7,8 +7,8 @@ from test_plus.test import TestCase from rest_framework.test import APIRequestFactory from rest_framework.test import RequestsClient -from mhackspace.rfid.models import Device, Rfid, DeviceAuth -from mhackspace.users.models import User +from mhackspace.rfid.models import Device, DeviceAuth +from mhackspace.users.models import User, Rfid # http://www.django-rest-framework.org/api-guide/testing/ diff --git a/mhackspace/rfid/views.py b/mhackspace/rfid/views.py index 21103ed..5b68b1a 100644 --- a/mhackspace/rfid/views.py +++ b/mhackspace/rfid/views.py @@ -2,7 +2,8 @@ import logging from rest_framework.response import Response from rest_framework import viewsets from rest_framework import status -from mhackspace.rfid.models import Device, Rfid, DeviceAuth +from mhackspace.users.models import Rfid +from mhackspace.rfid.models import Device, DeviceAuth from mhackspace.rfid.serializers import DeviceSerializer, AuthSerializer from django.core.exceptions import ObjectDoesNotExist, ValidationError diff --git a/mhackspace/templates/users/rfid_form.html b/mhackspace/templates/users/rfid_form.html new file mode 100644 index 0000000..4e1762d --- /dev/null +++ b/mhackspace/templates/users/rfid_form.html @@ -0,0 +1,18 @@ +{% extends "base.html" %} +{% load crispy_forms_tags %} + +{% block title %}{{ user.username }}{% endblock %} + +{% block content %} +