From ea36d4b193efc84a1a3f257bfe20b488ec6c2164 Mon Sep 17 00:00:00 2001 From: henu Date: Wed, 29 Mar 2017 19:12:46 +0300 Subject: [PATCH] Fix member serializers, add own requirements to gitignore --- .gitignore | 2 ++ members/serializers.py | 29 +++++++++++++++++++++++++---- misc/create_dummydata.py | 25 ++++++++++++++++++++----- 3 files changed, 47 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index aebd4f5..47003c7 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,5 @@ logs/ /media/ node_modules/ /.coverage +db.sqlite3 +requirements_henu.txt diff --git a/members/serializers.py b/members/serializers.py index d4602e4..abcd13f 100644 --- a/members/serializers.py +++ b/members/serializers.py @@ -41,8 +41,29 @@ class MemberSerializer(serializers.Serializer): class MemberRequestSerializer(serializers.ModelSerializer): id = serializers.IntegerField(read_only=True) submitted = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S") - member = MemberSerializer() + first_name = serializers.CharField(required=True, max_length=127) + last_name = serializers.CharField(required=True, max_length=127) + email = serializers.EmailField(min_length=None, max_length=None, required=True) + POR = serializers.CharField(max_length=255) + AYY = serializers.BooleanField(default=False) + jas = serializers.BooleanField(default=False) - class Meta: - model = MemberRequest - fields = ('id', 'member') + def created(self, validated_data): + ''' + Create and return a new MemberRequest instance, given the validated data. + ''' + return MemberRequest.objects.create(**validated_data) + + def update(self, instance, validated_data): + ''' + Update and return an existing Member request instance given the validated data. + ''' + instance.submitted = validated_data.get('submitted', instance.submitted) + instance.first_name = validated_data.get('first_name', instance.first_name) + instance.last_name = validated_data.get('last_name', instance.last_name) + instance.email = validated_data.get('email', instance.email) + instance.POR = validated_data.get('POR', instance.POR) + instance.AYY = validated_data.get('AYY', instance.AYY) + instance.jas = validated_data.get('jas', instance.jas) + instance.save() + return instance diff --git a/misc/create_dummydata.py b/misc/create_dummydata.py index f4aa513..2012ffa 100644 --- a/misc/create_dummydata.py +++ b/misc/create_dummydata.py @@ -1,4 +1,4 @@ -import sys +import sys import os import time import random @@ -14,8 +14,8 @@ from misc.namegenerator import generate_names MEMBERAMOUNT = 30 MEMBERREQUESTAMOUNT = 3 -print ("""THIS SCRIPT WILL GENERATE DUMMY VALUES TO DATABASE -AND SHOULD __NEVER__ BE RUN ON PRODUCTION. +print ("""THIS SCRIPT WILL GENERATE DUMMY VALUES TO DATABASE +AND SHOULD __NEVER__ BE RUN ON PRODUCTION. IF YOU ARE ON PRODUCTION ABORT (ctrl-c) IMMEDIATELY!!!! CONTINUING IN 10 SECONDS""") time.sleep(10) @@ -37,5 +37,20 @@ for i in range(MEMBERAMOUNT): jas=jas) -for m in list(Member.objects.all())[:5]: - MemberRequest.objects.create(member=m) +# for m in list(Member.objects.all())[:5]: +# MemberRequest.objects.create(member=m) +names = generate_names(MEMBERREQUESTAMOUNT) +maildomains = ["example.coms",'ggmail.om',"notmail.dom"] #intentionally wrong +places = ["Helsinki", "Espoo", "Korso","Kerava", "Kouvostoliitto"] +for i in range(MEMBERREQUESTAMOUNT): + f,l = names[i] + mail = "{}.{}@{}".format(f.lower(),l.lower(),random.choice(maildomains)) + por = random.choice(places) + ayy = random.randint(0,1) + jas = random.randint(0,1) + Member.objects.create(first_name=f, + last_name=l, + email=mail, + POR=por, + AYY=ayy, + jas=jas)