Added voucher model.

This commit is contained in:
Marcus Scholz 2020-08-01 13:11:07 +02:00
parent a2412e88d2
commit 8d15610ca2
8 changed files with 105 additions and 6 deletions

View File

@ -9,7 +9,6 @@ from django.contrib.auth.admin import UserAdmin
from .models import * from .models import *
from .forms import ExplorerCreationForm, ExplorerChangeForm from .forms import ExplorerCreationForm, ExplorerChangeForm
from .models import Explorer
# Register your models here. # Register your models here.
@ -20,5 +19,6 @@ class ExplorerAdmin(UserAdmin):
list_display = ['email', 'username',] list_display = ['email', 'username',]
admin.site.register(Explorer, ExplorerAdmin) admin.site.register(Explorer, ExplorerAdmin)
admin.site.register(Voucher)
admin.site.register(Place) admin.site.register(Place)
admin.site.register(PlaceImage) admin.site.register(PlaceImage)

View File

@ -5,7 +5,7 @@
from django import forms from django import forms
from django.contrib.auth.forms import UserCreationForm, UserChangeForm from django.contrib.auth.forms import UserCreationForm, UserChangeForm
from .models import Explorer, Place, PlaceImage from .models import Explorer, Place, PlaceImage, Voucher
class ExplorerCreationForm(UserCreationForm): class ExplorerCreationForm(UserCreationForm):
class Meta: class Meta:
@ -13,7 +13,6 @@ class ExplorerCreationForm(UserCreationForm):
fields = ('username', 'email') fields = ('username', 'email')
class ExplorerChangeForm(UserChangeForm): class ExplorerChangeForm(UserChangeForm):
class Meta: class Meta:
model = Explorer model = Explorer
fields = ('username', 'email') fields = ('username', 'email')

View File

@ -0,0 +1,22 @@
# Generated by Django 3.0.8 on 2020-08-01 10:29
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('lostplaces_app', '0004_placeimage_submitted_by'),
]
operations = [
migrations.CreateModel(
name='Voucher',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('code', models.CharField(max_length=10)),
('created', models.DateField(auto_now_add=True)),
('expires', models.DateField()),
],
),
]

View File

@ -0,0 +1,22 @@
# Generated by Django 3.0.8 on 2020-08-01 10:37
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('lostplaces_app', '0005_voucher'),
]
operations = [
migrations.RemoveField(
model_name='voucher',
name='id',
),
migrations.AlterField(
model_name='voucher',
name='code',
field=models.CharField(max_length=10, primary_key=True, serialize=False, unique=True),
),
]

View File

@ -0,0 +1,18 @@
# Generated by Django 3.0.8 on 2020-08-01 10:39
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('lostplaces_app', '0006_auto_20200801_1037'),
]
operations = [
migrations.AlterField(
model_name='voucher',
name='created',
field=models.DateTimeField(auto_now_add=True),
),
]

View File

@ -0,0 +1,24 @@
# Generated by Django 3.0.8 on 2020-08-01 10:44
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('lostplaces_app', '0007_auto_20200801_1039'),
]
operations = [
migrations.AddField(
model_name='voucher',
name='id',
field=models.AutoField(auto_created=True, default=0, primary_key=True, serialize=False, verbose_name='ID'),
preserve_default=False,
),
migrations.AlterField(
model_name='voucher',
name='code',
field=models.CharField(max_length=10, unique=True),
),
]

View File

@ -22,6 +22,20 @@ class Explorer(AbstractUser):
def __str__(self): def __str__(self):
return self.username return self.username
class Voucher(models.Model):
"""
Vouchers are authorization tokens to allow the registration of new users.
A voucher has a code, a creation and a deletion date, which are all positional.
Creation date is being set automatically during voucher creation.
"""
code = models.CharField(unique=True, max_length=10)
created = models.DateTimeField(auto_now_add=True)
expires = models.DateField()
def __str__(self):
return "Voucher " + str(self.pk)
class Place (models.Model): class Place (models.Model):
""" """
Place defines a lost place (location, name, description etc.). Place defines a lost place (location, name, description etc.).
@ -45,7 +59,7 @@ class Place (models.Model):
def generate_image_upload_path(instance, filename): def generate_image_upload_path(instance, filename):
""" """
Callback for generating path for uploaded images Callback for generating path for uploaded images.
""" """
return 'places/' + str(uuid.uuid4())+'.'+filename.split('.')[-1] return 'places/' + str(uuid.uuid4())+'.'+filename.split('.')[-1]
@ -87,7 +101,7 @@ class PlaceImage (models.Model):
Returning the name of the corresponding place + id Returning the name of the corresponding place + id
of this image as textual represntation of this instance of this image as textual represntation of this instance
""" """
return ' '.join([self.place.name, str(self.pk)]) return ' '.join([self.place.name, str(self.pk)])
# These two auto-delete files from filesystem when they are unneeded: # These two auto-delete files from filesystem when they are unneeded:

View File

@ -11,7 +11,7 @@ from django.http import Http404
from django.views.generic.edit import UpdateView from django.views.generic.edit import UpdateView
from .forms import ExplorerCreationForm, PlaceForm, PlaceImageCreateForm from .forms import ExplorerCreationForm, PlaceForm, PlaceImageCreateForm
from .models import Place, PlaceImage from .models import Place, PlaceImage, Voucher
# Create your views here. # Create your views here.