Added basic creation and deletion buttons for RFID
This commit is contained in:
parent
8a2fa40f04
commit
8678c06108
|
@ -0,0 +1,21 @@
|
|||
from django.conf.urls import url
|
||||
|
||||
from mhackspace.rfid import views
|
||||
|
||||
access_card_patterns = ([
|
||||
url(
|
||||
regex=r'^$',
|
||||
view=views.RfidCardsListView.as_view(),
|
||||
name='index'
|
||||
),
|
||||
url(
|
||||
regex=r'^create$',
|
||||
view=views.RfidCardsUpdateView.as_view(),
|
||||
name='create'
|
||||
),
|
||||
url(
|
||||
regex=r'^delete/(?P<pk>\d+)/$',
|
||||
view=views.RfidCardsDeleteView.as_view(),
|
||||
name='delete'
|
||||
),
|
||||
], 'access_cards')
|
|
@ -2,6 +2,10 @@ import logging
|
|||
from rest_framework.response import Response
|
||||
from rest_framework import viewsets
|
||||
from rest_framework import status
|
||||
|
||||
from django.views.generic import ListView, DeleteView, CreateView
|
||||
from django.contrib.auth.mixins import LoginRequiredMixin
|
||||
|
||||
from mhackspace.users.models import Rfid
|
||||
from mhackspace.rfid.models import Device, DeviceAuth
|
||||
from mhackspace.rfid.serializers import DeviceSerializer, AuthSerializer
|
||||
|
@ -39,3 +43,29 @@ class AuthUserWithDeviceViewSet(viewsets.ViewSet):
|
|||
serializer = AuthSerializer(
|
||||
instance={'name': device.name, 'rfid': rfid.code, 'device': device.identifier})
|
||||
return Response(serializer.data, status=200)
|
||||
|
||||
|
||||
class RfidCardsListView(LoginRequiredMixin, ListView):
|
||||
template_name = 'users/rfid_form.html'
|
||||
context_object_name = 'rfids'
|
||||
paginate_by = 50
|
||||
model = Rfid
|
||||
|
||||
def get_queryset(self):
|
||||
return Rfid.objects.filter(user=self.request.user)
|
||||
|
||||
|
||||
class RfidCardsUpdateView(LoginRequiredMixin, CreateView):
|
||||
fields = ['code', 'description', ]
|
||||
model = Rfid
|
||||
success_url = '/users/access-cards'
|
||||
|
||||
def form_valid(self, form):
|
||||
user = self.request.user
|
||||
form.instance.user = user
|
||||
return super(RfidCardsUpdateView, self).form_valid(form)
|
||||
|
||||
|
||||
class RfidCardsDeleteView(LoginRequiredMixin, DeleteView):
|
||||
model = Rfid
|
||||
success_url = '/users/access-cards'
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
{% extends "base.html" %}
|
||||
{% load i18n %}
|
||||
{% load static %}
|
||||
{% load crispy_forms_tags %}
|
||||
{% load socialaccount %}
|
||||
|
||||
{% block title %}Delete RFID: {{ object.description }}{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<form action="" method="post">{% csrf_token %}
|
||||
{{ form.as_p }}
|
||||
<input type="submit" value="Delete" />
|
||||
</form>
|
||||
{% endblock %}
|
|
@ -6,7 +6,7 @@
|
|||
{% block content %}
|
||||
{% if form %}
|
||||
<h1>{{ user.username }}</h1>
|
||||
<form class="form-horizontal" method="post" action="{% url 'users:access_card_create' %}" enctype="multipart/form-data">
|
||||
<form class="form-horizontal" method="post" action="{% url 'users:access_cards:create' %}" enctype="multipart/form-data">
|
||||
{% csrf_token %}
|
||||
{{ form|crispy }}
|
||||
{{ form_blurb|crispy }}
|
||||
|
@ -23,16 +23,20 @@
|
|||
<th>#</th>
|
||||
<th>Code</th>
|
||||
<th>Short Description</th>
|
||||
<th><a class="btn btn-primary pull-right" href="{% url 'users:access_cards:create' %}">Create</a></th>
|
||||
</tr>
|
||||
</thead>
|
||||
{% for rfid in rfids %}
|
||||
<tr>
|
||||
<th scope="row"> {{ forloop.counter }} </th>
|
||||
<td>
|
||||
{{ rfid.code}}
|
||||
{{ rfid.code }}
|
||||
</td>
|
||||
<td>
|
||||
{{ rfid.description}}
|
||||
{{ rfid.description }}
|
||||
</td>
|
||||
<td>
|
||||
<a href="{% url 'users:access_cards:delete' rfid.id %}">Delete</a>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
|
|
|
@ -1,11 +1,13 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import absolute_import, unicode_literals
|
||||
|
||||
from django.conf.urls import url
|
||||
from django.conf.urls import include, url
|
||||
|
||||
from mhackspace.rfid.urls import access_card_patterns
|
||||
from . import views
|
||||
|
||||
urlpatterns = [
|
||||
url('^access-cards/', include(access_card_patterns)),
|
||||
url(
|
||||
regex=r'^$',
|
||||
view=views.UserListView.as_view(),
|
||||
|
@ -25,15 +27,5 @@ urlpatterns = [
|
|||
regex=r'^~update/$',
|
||||
view=views.UserUpdateView.as_view(),
|
||||
name='update'
|
||||
),
|
||||
url(
|
||||
regex=r'^-access-cards$',
|
||||
view=views.RfidCardsListView.as_view(),
|
||||
name='access_cards'
|
||||
),
|
||||
url(
|
||||
regex=r'^-access-card-create$',
|
||||
view=views.RfidCardsUpdateView.as_view(),
|
||||
name='access_card_create'
|
||||
),
|
||||
)
|
||||
]
|
||||
|
|
|
@ -2,17 +2,16 @@
|
|||
from __future__ import absolute_import, unicode_literals
|
||||
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.views.generic import DetailView, ListView, RedirectView, UpdateView, CreateView
|
||||
|
||||
from django.views.generic import DetailView, ListView, RedirectView, UpdateView
|
||||
from django.contrib.auth.mixins import LoginRequiredMixin
|
||||
|
||||
from .models import Rfid
|
||||
from .models import User
|
||||
from .models import Blurb
|
||||
from .models import Membership
|
||||
|
||||
from .forms import BlurbForm, MembershipJoinForm
|
||||
|
||||
|
||||
class UserDetailView(LoginRequiredMixin, DetailView):
|
||||
model = User
|
||||
# These next two lines tell the view to index lookups by username
|
||||
|
@ -67,27 +66,6 @@ class UserUpdateView(LoginRequiredMixin, UpdateView):
|
|||
return super(UserUpdateView, self).form_valid(form)
|
||||
|
||||
|
||||
class RfidCardsListView(LoginRequiredMixin, ListView):
|
||||
template_name = 'users/rfid_form.html'
|
||||
context_object_name = 'rfids'
|
||||
paginate_by = 50
|
||||
model = Rfid
|
||||
|
||||
def get_queryset(self):
|
||||
return Rfid.objects.filter(user=self.request.user)
|
||||
|
||||
|
||||
class RfidCardsUpdateView(LoginRequiredMixin, CreateView):
|
||||
fields = ['code', 'description', ]
|
||||
model = Rfid
|
||||
success_url = '/users/-access-cards'
|
||||
|
||||
def form_valid(self, form):
|
||||
user = self.request.user
|
||||
form.instance.user = user
|
||||
return super(RfidCardsUpdateView, self).form_valid(form)
|
||||
|
||||
|
||||
class UserListView(LoginRequiredMixin, ListView):
|
||||
model = User
|
||||
# These next two lines tell the view to index lookups by username
|
||||
|
|
Loading…
Reference in New Issue