From 0f198058a068ea6ad7f26a0b694df4ca581c1f6e Mon Sep 17 00:00:00 2001 From: Moses Date: Fri, 12 Jun 2020 16:26:58 +0000 Subject: [PATCH] Changes to Member, Jobs model Member name -> firstname, surname body -> description + phone, address Job body -> description --- fet2020/members/admin.py | 6 +++--- fet2020/members/forms.py | 15 ++++++++------- fet2020/members/models.py | 32 +++++++++++++++++++++++--------- 3 files changed, 34 insertions(+), 19 deletions(-) diff --git a/fet2020/members/admin.py b/fet2020/members/admin.py index 4bad63d2..edc5d8be 100644 --- a/fet2020/members/admin.py +++ b/fet2020/members/admin.py @@ -56,10 +56,10 @@ class JobMemberInline(admin.TabularInline): class MyMemberAdmin(admin.ModelAdmin): form = MyMemberForm model = Member - list_display = ['name', 'nickname', 'mailaccount', 'role']#, 'body', 'image'] + list_display = ['nickname', 'firstname', 'surname', 'mailaccount', 'role'] inlines = (JobMemberInline,) - search_fields = ['name','nickname','mailaccount'] + search_fields = ['firstname', 'surname','nickname','mailaccount'] list_filter = [MemberRoleFilter] def save_model(self, request, obj, form, change): @@ -71,7 +71,7 @@ admin.site.register(Member, MyMemberAdmin) class MyJobAdmin(admin.ModelAdmin): form = MyJobForm model = Job - list_display = ['name']#, 'body', 'image'] + list_display = ['name'] inlines = (JobMemberInline,) search_fields = ['name'] diff --git a/fet2020/members/forms.py b/fet2020/members/forms.py index f7d9fa85..d88cf1b8 100644 --- a/fet2020/members/forms.py +++ b/fet2020/members/forms.py @@ -1,5 +1,5 @@ from django import forms -from ckeditor_uploader.widgets import CKEditorUploadingWidget +from ckeditor_uploader.widgets import CKEditorUploadingWidget from .models import Member, Job @@ -7,13 +7,14 @@ from .models import Member, Job class MyMemberForm(forms.ModelForm): class Meta: model = Member - fields = ['name','nickname','mailaccount', 'role', 'body', 'image'] - - widgets = {'body': CKEditorUploadingWidget(config_name='default')} + fields = ['firstname', 'surname', 'nickname','mailaccount', 'role', + 'description', 'image', 'phone', 'address'] + + widgets = {'description': CKEditorUploadingWidget(config_name='default')} class MyJobForm(forms.ModelForm): class Meta: model = Job - fields = ['name', 'body', 'image'] - - widgets = {'body': CKEditorUploadingWidget(config_name='default')} + fields = ['name', 'description', 'image'] + + widgets = {'description': CKEditorUploadingWidget(config_name='default')} diff --git a/fet2020/members/models.py b/fet2020/members/models.py index 35791aa2..c7de885b 100644 --- a/fet2020/members/models.py +++ b/fet2020/members/models.py @@ -1,9 +1,10 @@ from django.db import models from django.utils.translation import gettext_lazy as _ +from rest_framework import serializers +from django.core.validators import RegexValidator import uuid - class MemberManager(models.Manager): def get_queryset(self): return super().get_queryset().filter(role='A') @@ -13,8 +14,8 @@ class PensionManager(models.Manager): return super().get_queryset().filter(role='P') class Member(models.Model): -# id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) - name = models.CharField(max_length=128) + firstname = models.CharField(max_length=128) + surname = models.CharField(max_length=128) nickname = models.CharField(max_length=128) mailaccount = models.CharField(max_length=128) @@ -23,15 +24,22 @@ class Member(models.Model): ('P', _('Pension'))], default='A') - body = models.TextField(null=True, blank=True) + description = models.TextField(null=True, blank=True) image = models.ImageField(null=True, blank=True) - #birthday - #handy phone + birthday = models.DateTimeField(null=True, blank=True) + + phone_error_msg =_(("Phone number must be entered in the format: " + "+999999999'. Up to 15 digits allowed.")) + phone_regex = RegexValidator(regex=r'^\+?1?\d{9,15}$', message=phone_error_msg) + phone = models.CharField(validators=[phone_regex], + max_length=17, blank=True) + + address = models.TextField(null=True, blank=True) - # TimeStamps date_modified = models.DateTimeField(auto_now=True) date_created = models.DateTimeField(auto_now_add=True) + has_jobs = models.ManyToManyField( 'Job', through='JobMember', @@ -44,12 +52,18 @@ class Member(models.Model): pension_member = PensionManager() def __str__(self): - return self.name + return self.firstname + " " + self.surname + +class MemberSerializer(serializers.HyperlinkedModelSerializer): + class Meta: + model = Member + fields = ['firstname', 'surname', 'nickname','mailaccount','role', + 'description', 'image'] class Job(models.Model): name = models.CharField(max_length=128) - body = models.TextField(null=True, blank=True) + description = models.TextField(null=True, blank=True) image = models.ImageField(null=True, blank=True) has_members = models.ManyToManyField(