Add UI for admins to view and edit member cards

This commit is contained in:
2020-01-15 00:12:50 +00:00
parent 4d44e2c3cb
commit 4e82f13f74
7 changed files with 349 additions and 156 deletions

View File

@@ -55,7 +55,7 @@ class Card(models.Model):
user = models.ForeignKey(User, related_name='cards', blank=True, null=True, on_delete=models.SET_NULL)
member_id = models.IntegerField(blank=True, null=True)
card_number = models.CharField(max_length=16, blank=True, null=True)
card_number = models.CharField(unique=True, max_length=16, blank=True, null=True)
notes = models.TextField(blank=True, null=True)
last_seen_at = models.DateField(default=date.today, blank=True, null=True)
active_status = models.CharField(max_length=32, blank=True, null=True)

View File

@@ -2,6 +2,7 @@ from django.contrib.auth.models import User, Group
from django.shortcuts import get_object_or_404
from rest_framework import serializers
from rest_framework.exceptions import ValidationError
from rest_framework.validators import UniqueValidator
from rest_auth.registration.serializers import RegisterSerializer
from rest_auth.serializers import UserDetailsSerializer
from uuid import uuid4
@@ -51,15 +52,6 @@ class UserEmailField(serializers.ModelField):
class AdminCardSerializer(serializers.ModelSerializer):
card_number = serializers.CharField()
class Meta:
model = models.Card
fields = '__all__'
read_only_fields = ['last_seen_at']
# member viewing other members
class OtherMemberSerializer(serializers.ModelSerializer):
@@ -177,7 +169,10 @@ class CardSerializer(serializers.ModelSerializer):
# admin viewing member details
class AdminCardSerializer(CardSerializer):
card_number = serializers.CharField()
card_number = serializers.CharField(validators=[UniqueValidator(
queryset=models.Card.objects.all(),
message='Card number already exists.'
)])
member_id = serializers.IntegerField()
active_status = serializers.ChoiceField(['card_blocked', 'card_inactive', 'card_member_blocked', 'card_active'])
class Meta: