authorize/deny Links in IF Mail should work now

This commit is contained in:
Benni Baermann 2020-10-20 09:35:04 +02:00
parent a07853b129
commit e0c20c5d64
5 changed files with 64 additions and 7 deletions

View file

@ -1,6 +1,6 @@
# foerderbarometer # foerderbarometer
purpose: gather data from intern(WMDE) and extern(volonteers) forms to create a database ('förderdatenbank') and send emails with links for a questionary. purpose: gather data from intern(WMDE) and extern(volunteers) forms to create a database ('förderdatenbank') and send emails with links for a questionary.
used versions: used versions:

View file

@ -20,13 +20,13 @@ class VolunteerForm(ModelForm):
class Meta: class Meta:
model = Volunteer model = Volunteer
fields = '__all__' exclude = ('granted',)
class LibraryForm(ModelForm): class LibraryForm(ModelForm):
class Meta: class Meta:
model = Library model = Library
exclude = ('realname', 'email', 'username', 'type') exclude = ('realname', 'email', 'username', 'type', 'granted')
class IFGForm(ModelForm): class IFGForm(ModelForm):
class Meta: class Meta:

View file

@ -0,0 +1,38 @@
# Generated by Django 3.1.1 on 2020-10-20 07:14
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('input', '0013_library_type'),
]
operations = [
migrations.AddField(
model_name='honorarycertificate',
name='granted',
field=models.BooleanField(null=True),
),
migrations.AddField(
model_name='ifg',
name='granted',
field=models.BooleanField(null=True),
),
migrations.AddField(
model_name='library',
name='granted',
field=models.BooleanField(null=True),
),
migrations.AddField(
model_name='project',
name='granted',
field=models.BooleanField(null=True),
),
migrations.AlterField(
model_name='library',
name='type',
field=models.CharField(choices=[('BIB', 'Bibliotheksstipendium'), ('ELIT', 'eLiteraturstipendium'), ('SOFT', 'Softwarestipendium'), ('VIS', 'Visitenkarten'), ('LIST', 'Mailingliste'), ('MAIL', 'E-Mail-Adresse'), ('IFG', 'Kostenübernahme IFG-Anfrage'), ('LIT', 'Literaturstipendium')], default='LIB', max_length=4),
),
]

View file

@ -5,6 +5,7 @@ class Volunteer(models.Model):
realname = models.CharField(max_length=200, null=True) realname = models.CharField(max_length=200, null=True)
email = models.CharField(max_length=200, null=True) email = models.CharField(max_length=200, null=True)
username = models.CharField(max_length=200, null=True) username = models.CharField(max_length=200, null=True)
granted = models.BooleanField(null=True)
class Meta: class Meta:
abstract = True abstract = True
@ -39,7 +40,7 @@ class Grant(Volunteer):
class Meta: class Meta:
abstract = True abstract = True
# same model is used for Library, ELitStip and Software!
TYPE_CHOICES = [('BIB', 'Bibliotheksstipendium'), TYPE_CHOICES = [('BIB', 'Bibliotheksstipendium'),
('ELIT', 'eLiteraturstipendium'), ('ELIT', 'eLiteraturstipendium'),
('SOFT', 'Softwarestipendium'), ('SOFT', 'Softwarestipendium'),
@ -49,6 +50,7 @@ TYPE_CHOICES = [('BIB', 'Bibliotheksstipendium'),
('IFG', 'Kostenübernahme IFG-Anfrage'), ('IFG', 'Kostenübernahme IFG-Anfrage'),
('LIT', 'Literaturstipendium'),] ('LIT', 'Literaturstipendium'),]
# same model is used for Library, ELitStip and Software!
class Library(Grant): class Library(Grant):
type = models.CharField( type = models.CharField(

View file

@ -8,13 +8,30 @@ from django.template.loader import get_template
from django.template import Context from django.template import Context
from .forms import ProjectForm, VolunteerForm, LibraryForm, IFGForm from .forms import ProjectForm, VolunteerForm, LibraryForm, IFGForm
from .models import Project, TYPE_CHOICES from .models import Project, TYPE_CHOICES, Library
def set_granted_in_lib(key,b):
lib = Library.objects.get(pk=key)
lib.granted = b
lib.save()
def authorize(request, choice, pk): def authorize(request, choice, pk):
return HttpResponse(f"AUTHORIZE! choice: {choice}, pk: {pk}") if choice in ('BIB', 'ELIT', 'SOFT'):
set_granted_in_lib(pk,True)
return HttpResponse(f"AUTHORIZED! choice: {choice}, pk: {pk}")
else:
return HttpResponse('ERROR! UNKNWON CHOICE TYPE!')
def deny(request, choice, pk): def deny(request, choice, pk):
return HttpResponse(f"DENY! choice: {choice}, pk: {pk}") if choice in ('BIB', 'ELIT', 'SOFT'):
set_granted_in_lib(pk,False)
return HttpResponse(f"DENIED! choice: {choice}, pk: {pk}")
else:
return HttpResponse('ERROR! UNKNWON CHOICE TYPE!')
def project(request): def project(request):
# return HttpResponse("Hello, world. You're at the input form") # return HttpResponse("Hello, world. You're at the input form")