diff --git a/README.org b/README.org index 0a8061f..8982b16 100644 --- a/README.org +++ b/README.org @@ -75,7 +75,7 @@ docker-compose -fdev.yml run --rm django python manage.py rendervariations 'blog #+END_SRC ** Api #+BEGIN_SRC python -import coreapi +import requests url = 'http://127.0.0.1:8180/api/v1/rfidAuth/' data = { @@ -83,10 +83,14 @@ data = { 'device': '7bff6053-77ef-4250-ac11-8a119fd05a0e' } -client = coreapi.Client() -client.get(url) -client.post(url, data) - +# client = RequestsClient() +response = requests.post( + 'http://127.0.0.1:8180/api/v1/rfidAuth/', + data={'rfid': 'fa14', 'device': 'e571eee1-7bf7-4453-980e-7519e2a83de6'}) #requests.get(url) +return response.status_code #+END_SRC + +#+RESULTS: +: 404 diff --git a/mhackspace/base/management/commands/generate_test_data.py b/mhackspace/base/management/commands/generate_test_data.py index 22c8787..cdb076a 100644 --- a/mhackspace/base/management/commands/generate_test_data.py +++ b/mhackspace/base/management/commands/generate_test_data.py @@ -1,6 +1,12 @@ +import uuid import random from autofixture import AutoFixture -from autofixture.generators import ImageGenerator, IntegerGenerator, ChoicesGenerator +from autofixture.generators import ( + ImageGenerator, + IntegerGenerator, + ChoicesGenerator, + Generator, + LoremWordGenerator) from django.core.management.base import BaseCommand from django.core.management import call_command from mhackspace.base.models import BannerImage @@ -15,6 +21,16 @@ class ImageFixture(AutoFixture): scaled_image = ImageGenerator(width=800, height=300, sizes=((1280, 300),)) +def RfidFixture(): + while True: + yield str(uuid.uuid4())[0:4] + + +class RfidGenerator(Generator): + def generate(self): + return str(uuid.uuid4())[0:4] + + class Command(BaseCommand): help = 'Build test data for development environment' @@ -37,18 +53,23 @@ class Command(BaseCommand): # random data users = AutoFixture(User, field_values={ - 'title': ChoicesGenerator(('Mr', 'Mrs', 'Emperor', 'Captain')) + 'title': ChoicesGenerator(values=('Mr', 'Mrs', 'Emperor', 'Captain')) }) users.create(10) Rfid.objects.all().delete() Device.objects.all().delete() DeviceAuth.objects.all().delete() - rfid = AutoFixture(Rfid, field_values={'code': IntegerGenerator(1, 100000)}) + + rfid = AutoFixture( + Rfid, + field_values={ + 'code': RfidGenerator(), + 'description': LoremWordGenerator()}) rfid.create(20) device = AutoFixture(Device, field_values={ - 'name': ChoicesGenerator(('Door', 'Printer', 'Laser Cutter', '')) + 'name': ChoicesGenerator(values=('Door', 'Printer', 'Laser Cutter', '')) }) device.create(5) diff --git a/mhackspace/rfid/admin.py b/mhackspace/rfid/admin.py index e1d0557..dff6b2f 100644 --- a/mhackspace/rfid/admin.py +++ b/mhackspace/rfid/admin.py @@ -11,20 +11,12 @@ class DeviceAdmin(ModelAdmin): list_display = ('name', 'identifier') -# Probably need to look at this again @admin.register(DeviceAuth) class DeviceAuthAdmin(ModelAdmin): - list_display = ('rfid', 'device') + list_display = ('device', 'rfid_code', 'rfid_user') - class CustomModelChoiceField(ModelChoiceField): - def label_from_instance(self, obj): - return obj.description + ' - ' + str(obj.user) + def rfid_code(self, x): + return x.rfid.code - # def formfield_for_foreignkey(self, db_field, request, **kwargs): - # if db_field.name == "rfid": - # return self.CustomModelChoiceField( - # Rfid.objects.all(), - # initial=request.user) - - # return super(DeviceAuthAdmin, self).formfield_for_foreignkey( - # db_field, request, **kwargs) + def rfid_user(self, x): + return x.rfid.user diff --git a/mhackspace/users/migrations/0005_merge_20170912_2037.py b/mhackspace/users/migrations/0005_merge_20170912_2037.py new file mode 100644 index 0000000..3e8e01b --- /dev/null +++ b/mhackspace/users/migrations/0005_merge_20170912_2037.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.4 on 2017-09-12 20:37 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('users', '0004_auto_20170813_1557'), + ('users', '0004_rfid'), + ] + + operations = [ + ] diff --git a/mhackspace/users/migrations/0006_merge_20170913_1718.py b/mhackspace/users/migrations/0006_merge_20170913_1718.py new file mode 100644 index 0000000..1f06f7f --- /dev/null +++ b/mhackspace/users/migrations/0006_merge_20170913_1718.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.4 on 2017-09-13 17:18 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('users', '0005_merge_20170912_2037'), + ('users', '0005_merge_20170913_0740'), + ] + + operations = [ + ] diff --git a/mhackspace/users/migrations/0007_auto_20170914_2021.py b/mhackspace/users/migrations/0007_auto_20170914_2021.py new file mode 100644 index 0000000..2b65e49 --- /dev/null +++ b/mhackspace/users/migrations/0007_auto_20170914_2021.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.4 on 2017-09-14 20:21 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('users', '0006_merge_20170913_1718'), + ] + + operations = [ + migrations.AlterField( + model_name='rfid', + name='code', + field=models.CharField(max_length=7), + ), + ] diff --git a/mhackspace/users/models.py b/mhackspace/users/models.py index 68b393d..f63e650 100644 --- a/mhackspace/users/models.py +++ b/mhackspace/users/models.py @@ -94,7 +94,7 @@ class Membership(models.Model): # users rfid card to user mapping, user can have more than one card class Rfid(models.Model): - code = models.PositiveIntegerField() + code = models.CharField(max_length=7) description = models.CharField(_('Short rfid description'), blank=True, max_length=255) user = models.ForeignKey( settings.AUTH_USER_MODEL,