Change model max sizes

This commit is contained in:
Michael Götz 2018-01-17 01:18:33 +01:00
parent b87f6ac56b
commit 88dfa86fe0
7 changed files with 86 additions and 49 deletions

View File

@ -1,9 +1,12 @@
FROM alpine:3.6
RUN apk upgrade --update
RUN apk add --update python3
RUN apk add --update py3-pillow
RUN pip3 install django==1.11.7 django-jinja django-rest-framework django-analytical
ADD ["ofu_app", "/app"]
ADD ["ofu_app/requirements.txt", "/requirements.txt"]
RUN apk upgrade --update && \
apk add --update python3 py3-pillow py3-lxml py3-psycopg2 && \
pip3 install -r /requirements.txt && rm /requirements.txt
WORKDIR /app
EXPOSE 80
CMD ["python3", "manage.py", "runserver", "0.0.0.0:80"]
VOLUME ["/app/data"]
VOLUME ["/app/media"]
ENTRYPOINT ["python3", "manage.py"]
ADD ["ofu_app", "/app"]
CMD ["runserver", "0.0.0.0:80"]

View File

@ -4,8 +4,14 @@ services:
basta_server_web:
image: docker.wiai.de/basta/server:0.1
build: .
ports:
- "8080:80"
# basta_server_db:
# image: postgres:alpine
volumes:
- ./data/data:/data
- ./data/media:/media
env_file:
- docker.env
basta_server_db:
image: postgres:10-alpine
volumes:
- ./data/pgdata/:/var/lib/postgresql/data/
env_file:
- docker.env

View File

@ -1,5 +1,6 @@
from django.contrib import admin
from apps.donar.models import Room, Lecture, Lecture_Terms, VGN_Coords
# Register your models here.
admin.site.register(Room)
admin.site.register(Lecture)

View File

@ -1,21 +1,33 @@
from django.db import models
from django.utils import timezone
MAX_LENGTH = 60
MAX_ROOM_KEY_LENGTH = 256
MAX_ROOM_NAME_LENGTH = 256
MAX_ROOM_ADDRESS_LENGTH = 256
MAX_ROOM_SIZE_LENGTH = 64
MAX_ROOM_DESCRIPTION_LENGTH = 512
MAX_COORDS_NAME_LENGTH = 256
MAX_COORDS_LENGTH = 256
MAX_LECTURE_IDS_LENGTH = 256
MAX_LECTURE_SHORT_LENGTH = 128
MAX_LECTURE_NAME_LENGTH = 256
MAX_LECTURE_TYPE_LENGTH = 64
# Create your models here.
class Room(models.Model):
id = models.AutoField(primary_key=True)
key = models.CharField(max_length=MAX_LENGTH, default="")
address = models.CharField(max_length=MAX_LENGTH, default="")
building_key = models.CharField(max_length=MAX_LENGTH, default="")
floor = models.CharField(max_length=MAX_LENGTH, default="")
name = models.CharField(max_length=MAX_LENGTH, default="")
orgname = models.CharField(max_length=MAX_LENGTH, default="")
short = models.CharField(unique=True, max_length=MAX_LENGTH)
size = models.CharField(max_length=MAX_LENGTH, default="")
description = models.CharField(max_length=200, default="")
key = models.CharField(max_length=MAX_ROOM_KEY_LENGTH, default="")
address = models.CharField(max_length=MAX_ROOM_ADDRESS_LENGTH, default="")
building_key = models.CharField(max_length=MAX_ROOM_KEY_LENGTH, default="")
floor = models.CharField(max_length=MAX_ROOM_KEY_LENGTH, default="")
name = models.CharField(max_length=MAX_ROOM_NAME_LENGTH, default="")
orgname = models.CharField(max_length=MAX_ROOM_KEY_LENGTH, default="")
short = models.CharField(unique=True, max_length=MAX_ROOM_KEY_LENGTH)
size = models.CharField(max_length=MAX_ROOM_SIZE_LENGTH, default="")
description = models.CharField(max_length=MAX_ROOM_DESCRIPTION_LENGTH, default="")
def __str__(self):
return "%s - size: %s" % (self.short, str(self.size))
@ -23,10 +35,10 @@ class Room(models.Model):
class VGN_Coords(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=MAX_LENGTH, unique=True)
coords = models.CharField(max_length=MAX_LENGTH, unique=True)
longitude = models.CharField(max_length=MAX_LENGTH, unique=True)
latitude = models.CharField(max_length=MAX_LENGTH, unique=True)
name = models.CharField(max_length=MAX_COORDS_NAME_LENGTH, unique=True)
coords = models.CharField(max_length=MAX_COORDS_LENGTH, unique=True)
longitude = models.CharField(max_length=MAX_COORDS_LENGTH, unique=True)
latitude = models.CharField(max_length=MAX_COORDS_LENGTH, unique=True)
def __str__(self):
return "%s" % self.name
@ -34,12 +46,12 @@ class VGN_Coords(models.Model):
class Lecture(models.Model):
id = models.AutoField(primary_key=True)
univis_ref = models.CharField(max_length=MAX_LENGTH, unique=True)
univis_id = models.CharField(max_length=MAX_LENGTH, unique=True)
name = models.CharField(max_length=MAX_LENGTH)
short = models.CharField(max_length=MAX_LENGTH)
type = models.CharField(max_length=MAX_LENGTH)
lecturer_id = models.CharField(max_length=MAX_LENGTH)
univis_ref = models.CharField(max_length=MAX_LECTURE_IDS_LENGTH, unique=True)
univis_id = models.CharField(max_length=MAX_LECTURE_IDS_LENGTH, unique=True)
name = models.CharField(max_length=MAX_LECTURE_NAME_LENGTH)
short = models.CharField(max_length=MAX_LECTURE_SHORT_LENGTH)
type = models.CharField(max_length=MAX_LECTURE_TYPE_LENGTH)
lecturer_id = models.CharField(max_length=MAX_LECTURE_IDS_LENGTH)
term = models.ManyToManyField('Lecture_Terms', blank=False)
def __str__(self):

View File

@ -2,20 +2,28 @@ from __future__ import unicode_literals
from django.utils import timezone
from django.db import models
MAX_LENGTH = 60
MAX_EVENT_ID_LENGTH = 64
MAX_EVENT_TITLE_LENGTH = 256
MAX_EVENT_CATEGORY_LENGTH = 64
MAX_EVENT_LINK_LENGTH = 512
MAX_EVENT_PRESENTER_LENGTH = 256
MAX_EVENT_ORGNAME_LENGTH = 256
MAX_LOCATION_KEY_LENGTH = 128
MAX_LOCATION_NAME_LENGTH = 256
# Create your models here.
class Event(models.Model):
id = models.AutoField(primary_key=True)
title = models.CharField(blank=False, max_length=MAX_LENGTH)
category = models.CharField(blank=False, max_length=MAX_LENGTH)
link = models.CharField(blank=True, max_length=MAX_LENGTH)
title = models.CharField(blank=False, max_length=MAX_EVENT_TITLE_LENGTH)
category = models.CharField(blank=False, max_length=MAX_EVENT_CATEGORY_LENGTH)
link = models.CharField(blank=True, max_length=MAX_EVENT_LINK_LENGTH)
locations = models.ManyToManyField('Location', blank=False)
date = models.DateField(blank=False, default=timezone.now)
time = models.TimeField(blank=False, default=timezone.now)
presenter = models.CharField(blank=True, max_length=MAX_LENGTH)
orgname = models.CharField(blank=True, max_length=MAX_LENGTH)
presenter = models.CharField(blank=True, max_length=MAX_EVENT_PRESENTER_LENGTH)
orgname = models.CharField(blank=True, max_length=MAX_EVENT_ORGNAME_LENGTH)
def __str__(self):
return "Date: %s, Titel: %s" % (self.date.strftime("%Y.%m.%d"), self.title)
@ -26,8 +34,8 @@ class Event(models.Model):
class Location(models.Model):
id = models.AutoField(primary_key=True)
key = models.CharField(blank=True, max_length=MAX_LENGTH)
name = models.CharField(blank=False, unique=True, max_length=MAX_LENGTH)
key = models.CharField(blank=True, max_length=MAX_LOCATION_KEY_LENGTH)
name = models.CharField(blank=False, unique=True, max_length=MAX_LOCATION_NAME_LENGTH)
def __str__(self):
return str(self.name)

View File

@ -2,7 +2,7 @@
from __future__ import unicode_literals
from django.contrib import admin
from apps.food.models import SingleFood, Menu, HappyHour, UserRating, UserFoodImage
from apps.food.models import SingleFood, Menu, HappyHour, UserRating, UserFoodImage, FoodImage
class SingleFoodInline(admin.TabularInline):
@ -25,3 +25,4 @@ admin.site.register(HappyHour)
admin.site.register(UserRating)
admin.site.register(UserFoodImage)
admin.site.register(Menu, MenuAdmin)
admin.site.register(FoodImage)

View File

@ -12,6 +12,12 @@ from django.db import models
from django.utils import timezone
MAX_LENGTH = 256
MAX_FOOD_NAME = 256
MAX_FOOD_LOCATION_LENGTH = 256
MAX_FOOD_PRICE_LENGTH = 10
MAX_FOOD_ALLERGENNAME_LENGTH = 256
MAX_HAPPY_HOUR_LOCATION_LENGTH = 256
MAX_HAPPY_HOUR_DESCRIPTION_LENGTH = 1024
# Create your models here.
@ -25,7 +31,7 @@ class Menu(models.Model):
(ERBA, 'Erba'), (MARKUSPLATZ, 'Markusplatz'), (FEKI, 'Feldkirchenstrasse'), (AUSTRASSE, 'Austrasse'))
id = models.AutoField(primary_key=True)
date = models.DateField(default=timezone.now)
location = models.CharField(max_length=MAX_LENGTH, choices=LOCATION_CHOICES)
location = models.CharField(max_length=MAX_FOOD_LOCATION_LENGTH, choices=LOCATION_CHOICES)
menu = models.ManyToManyField("SingleFood", related_name="foods")
class Meta:
@ -37,10 +43,10 @@ class Menu(models.Model):
class SingleFood(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(unique=True, max_length=MAX_LENGTH)
price_student = models.CharField(max_length=10, blank=True, null=True)
price_employee = models.CharField(max_length=10, blank=True, null=True)
price_guest = models.CharField(max_length=10, blank=True, null=True)
name = models.CharField(unique=True, max_length=MAX_FOOD_NAME)
price_student = models.CharField(max_length=MAX_FOOD_PRICE_LENGTH, blank=True, null=True)
price_employee = models.CharField(max_length=MAX_FOOD_PRICE_LENGTH, blank=True, null=True)
price_guest = models.CharField(max_length=MAX_FOOD_PRICE_LENGTH, blank=True, null=True)
image = models.ForeignKey('FoodImage', on_delete=models.PROTECT, blank=True, null=True)
rating = models.FloatField(default=0)
allergens = models.ManyToManyField("Allergene", blank=True)
@ -51,7 +57,7 @@ class SingleFood(models.Model):
class Allergene(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(unique=True, max_length=MAX_LENGTH)
name = models.CharField(unique=True, max_length=MAX_FOOD_ALLERGENNAME_LENGTH)
def __str__(self):
return self.name
@ -62,8 +68,8 @@ class HappyHour(models.Model):
date = models.DateField(default=timezone.now)
starttime = models.TimeField(default=timezone.now)
endtime = models.TimeField(default=timezone.now)
location = models.CharField(max_length=MAX_LENGTH)
description = models.CharField(max_length=MAX_LENGTH)
location = models.CharField(max_length=MAX_HAPPY_HOUR_LOCATION_LENGTH)
description = models.CharField(max_length=MAX_HAPPY_HOUR_DESCRIPTION_LENGTH)
class Meta:
# TODO: unique description instead of date