Compare commits
6 Commits
72570e25c2
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4d8a7a68f4 | ||
|
|
dac53d2d06 | ||
|
|
7613f3a547 | ||
| 28d3d99754 | |||
| 78c2860cca | |||
| 2024466a48 |
14
.env.default
Normal file
14
.env.default
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
HOSTNAME="fet.at" # Hostname that will be used to filter requests
|
||||||
|
DEBUG="false" # Debug flag ( disables ldap integration )
|
||||||
|
LDAP="True" # Ldap flag ( enables connection with fet ldap )
|
||||||
|
#SECRET_KEY="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" # Secret key for the Website encryption
|
||||||
|
ETHERPAD_GROUP="g.snlbqn7S6ksRbom3" # The Etherpad Group to use
|
||||||
|
|
||||||
|
EMAIL_HOST_USER="verleih@fet.at" # The user to be used for rental Emails
|
||||||
|
#EMAIL_HOST_PASSWORD="password" # The password for the smtp account for the rental Email
|
||||||
|
|
||||||
|
#ETHERPAD_DB_USER="user" # User for the Eterpad MySql Database
|
||||||
|
#ETHERPAD_DB_PASSWORD="password" # Password for the Etherpad MySql Database
|
||||||
|
|
||||||
|
#DJANGO_MYSQL_USER="user" # The MySql User used for Database
|
||||||
|
#DJANGO_MYSQL_PASSWORD"="password" # The Password for the MySql Database
|
||||||
4
.gitignore
vendored
4
.gitignore
vendored
@@ -1,4 +1,4 @@
|
|||||||
.env/*
|
.env*
|
||||||
*.pyc
|
*.pyc
|
||||||
*_design1
|
*_design1
|
||||||
fet2020/.env/*
|
fet2020/.env/*
|
||||||
@@ -19,4 +19,4 @@ flowbite
|
|||||||
gallery/*
|
gallery/*
|
||||||
tailwind
|
tailwind
|
||||||
whoosh_index
|
whoosh_index
|
||||||
databases/django
|
databases
|
||||||
|
|||||||
Binary file not shown.
@@ -18,15 +18,15 @@ services:
|
|||||||
container_name: django-container
|
container_name: django-container
|
||||||
image: django-image:latest
|
image: django-image:latest
|
||||||
environment:
|
environment:
|
||||||
HOST_NAME: "fet.at"
|
HOST_NAME: ${HOSTNAME}
|
||||||
DEBUG: "False"
|
DEBUG: ${DEBUG}
|
||||||
LDAP: "True"
|
LDAP: ${LDAP}
|
||||||
SECRET_KEY: "sae34sADfrFr89E!Gl#f!34hdjGR#!jopi4qFEr#4R56rT56zT2#wE1!feGp"
|
SECRET_KEY: ${SECRET_KEY}
|
||||||
MYSQL_USER: "user"
|
MYSQL_USER: ${DJANGO_MYSQL_USER}
|
||||||
MYSQL_PASSWORD: "hgu"
|
MYSQL_PASSWORD: ${DJANGO_MYSQL_PASSWORD}
|
||||||
ETHERPAD_GROUP: "g.snlbqn7S6ksRbom3"
|
ETHERPAD_GROUP: ${ETHERPAD_GROUP}
|
||||||
EMAIL_HOST_USER: "verleih@fet.at"
|
EMAIL_HOST_USER: ${EMAIL_HOST_USER}
|
||||||
EMAIL_HOST_PASSWORD: ""
|
EMAIL_HOST_PASSWORD: ${EMAIL_HOST_PASSWORD}
|
||||||
depends_on:
|
depends_on:
|
||||||
mysql:
|
mysql:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
@@ -47,7 +47,7 @@ services:
|
|||||||
retries: 20
|
retries: 20
|
||||||
etherpad:
|
etherpad:
|
||||||
container_name: etherpad-container
|
container_name: etherpad-container
|
||||||
image: etherpad/etherpad:1.8.17
|
image: etherpad/etherpad:2.5.2
|
||||||
# ports:
|
# ports:
|
||||||
# - 9001:9001
|
# - 9001:9001
|
||||||
environment:
|
environment:
|
||||||
@@ -55,10 +55,11 @@ services:
|
|||||||
DB_HOST: etherpadsql
|
DB_HOST: etherpadsql
|
||||||
DB_PORT: 3306
|
DB_PORT: 3306
|
||||||
DB_NAME: etherpaddb
|
DB_NAME: etherpaddb
|
||||||
DB_USER: user
|
DB_USER: ${ETHERPAD_DB_USER}
|
||||||
DB_PASS: "hgu"
|
DB_PASS: ${ETHERPAD_DB_PASSWORD}
|
||||||
DB_CHARSET: utf8
|
DB_CHARSET: "utf8mb4"
|
||||||
TRUST_PROXY: false
|
TRUST_PROXY: false
|
||||||
|
AUTHENTICATION_METHOD: "apikey"
|
||||||
depends_on:
|
depends_on:
|
||||||
etherpadsql:
|
etherpadsql:
|
||||||
condition: "service_healthy"
|
condition: "service_healthy"
|
||||||
@@ -78,8 +79,8 @@ services:
|
|||||||
image: mariadb:10.7
|
image: mariadb:10.7
|
||||||
environment:
|
environment:
|
||||||
MYSQL_DATABASE: fet2020db
|
MYSQL_DATABASE: fet2020db
|
||||||
MYSQL_USER: user
|
MYSQL_USER: ${DJANGO_MYSQL_USER}
|
||||||
MYSQL_PASSWORD: hgu
|
MYSQL_PASSWORD: ${DJANGO_MYSQL_PASSWORD}
|
||||||
MYSQL_COLLATION: utf8_general_ci
|
MYSQL_COLLATION: utf8_general_ci
|
||||||
MYSQL_CHARSET: utf8
|
MYSQL_CHARSET: utf8
|
||||||
MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
|
MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
|
||||||
@@ -97,8 +98,8 @@ services:
|
|||||||
image: mariadb:10.7
|
image: mariadb:10.7
|
||||||
environment:
|
environment:
|
||||||
MYSQL_DATABASE: etherpaddb
|
MYSQL_DATABASE: etherpaddb
|
||||||
MYSQL_USER: user
|
MYSQL_USER: ${ETHERPAD_DB_USER}
|
||||||
MYSQL_PASSWORD: "hgu"
|
MYSQL_PASSWORD: ${ETHERPAD_DB_PASSWORD}
|
||||||
MYSQL_COLLATION: utf8_general_ci
|
MYSQL_COLLATION: utf8_general_ci
|
||||||
MYSQL_CHARSET: utf8
|
MYSQL_CHARSET: utf8
|
||||||
MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
|
MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
|
||||||
|
|||||||
Binary file not shown.
@@ -1,275 +1,275 @@
|
|||||||
from ckeditor_uploader.widgets import CKEditorUploadingWidget
|
from ckeditor_uploader.widgets import CKEditorUploadingWidget
|
||||||
from django import forms
|
from django import forms
|
||||||
from django.forms.widgets import CheckboxInput
|
from django.forms.widgets import CheckboxInput
|
||||||
from django.utils.dates import MONTHS
|
from django.utils.dates import MONTHS
|
||||||
from taggit.models import Tag
|
from taggit.models import Tag
|
||||||
|
|
||||||
from .models import Event, FetMeeting, News, Post
|
from .models import Event, FetMeeting, News, Post
|
||||||
|
|
||||||
|
|
||||||
class PostForm(forms.ModelForm):
|
class PostForm(forms.ModelForm):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Post
|
model = Post
|
||||||
fields = [
|
fields = [
|
||||||
"title",
|
"title",
|
||||||
"subtitle",
|
"subtitle",
|
||||||
"tags",
|
"tags",
|
||||||
"image",
|
"image",
|
||||||
"body",
|
"body",
|
||||||
"slug",
|
"slug",
|
||||||
"author",
|
"author",
|
||||||
"public_date",
|
"public_date",
|
||||||
]
|
]
|
||||||
|
|
||||||
widgets = {"body": CKEditorUploadingWidget(config_name="default")}
|
widgets = {"body": CKEditorUploadingWidget(config_name="default")}
|
||||||
|
|
||||||
class Media:
|
class Media:
|
||||||
js = (
|
js = (
|
||||||
"js/auto_slug.js", # automatic slag completion via ajax
|
"js/auto_slug.js", # automatic slag completion via ajax
|
||||||
"js/tag_completion.js", # to get a list for tag autocompletion via ajax
|
"js/tag_completion.js", # to get a list for tag autocompletion via ajax
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class NewsForm(PostForm):
|
class NewsForm(PostForm):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = News
|
model = News
|
||||||
fields = "__all__"
|
fields = "__all__"
|
||||||
|
|
||||||
help_texts = {
|
help_texts = {
|
||||||
"tags": (
|
"tags": (
|
||||||
"Die Hashtags ohne '#' eintragen, und mit Komma kann man mehrere Tags anfügen."
|
"Die Hashtags ohne '#' eintragen, und mit Komma kann man mehrere Tags anfügen."
|
||||||
),
|
),
|
||||||
"image": "Verwendbare Formate: ...",
|
"image": "Verwendbare Formate: ...",
|
||||||
"is_pinned": (
|
"is_pinned": (
|
||||||
"Der Post soll als erster auf der Startseite angeheftet werden und sich "
|
"Der Post soll als erster auf der Startseite angeheftet werden und sich "
|
||||||
"automatisch einen Monat nach der Veröffentlichung wieder lösen."
|
"automatisch einen Monat nach der Veröffentlichung wieder lösen."
|
||||||
),
|
),
|
||||||
}
|
}
|
||||||
|
|
||||||
labels = {
|
labels = {
|
||||||
"title": "Titel",
|
"title": "Titel",
|
||||||
"subtitle": "Untertitel",
|
"subtitle": "Untertitel",
|
||||||
"image": "Hintergrundbild",
|
"image": "Hintergrundbild",
|
||||||
"body": "Text",
|
"body": "Text",
|
||||||
"slug": "Permalink",
|
"slug": "Permalink",
|
||||||
"author": "Autor",
|
"author": "Autor",
|
||||||
"public_date": "Veröffentlichung",
|
"public_date": "Veröffentlichung",
|
||||||
"is_pinned": "Post anheften",
|
"is_pinned": "Post anheften",
|
||||||
}
|
}
|
||||||
|
|
||||||
widgets = {"body": CKEditorUploadingWidget(config_name="default")}
|
widgets = {"body": CKEditorUploadingWidget(config_name="default")}
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super().__init__(*args, **kwargs) # to get the self.fields set
|
super().__init__(*args, **kwargs) # to get the self.fields set
|
||||||
author_qs = self.fields["author"].queryset.order_by("username")
|
author_qs = self.fields["author"].queryset.order_by("username")
|
||||||
self.fields["author"].queryset = author_qs
|
self.fields["author"].queryset = author_qs
|
||||||
|
|
||||||
|
|
||||||
class EventForm(PostForm):
|
class EventForm(PostForm):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Event
|
model = Event
|
||||||
fields = "__all__"
|
fields = "__all__"
|
||||||
|
|
||||||
help_texts = {
|
help_texts = {
|
||||||
"tags": (
|
"tags": (
|
||||||
"Die Hashtags ohne '#' eintragen, und mit Komma kann man mehrere Tags anfügen."
|
"Die Hashtags ohne '#' eintragen, und mit Komma kann man mehrere Tags anfügen."
|
||||||
),
|
),
|
||||||
"image": "Verwendbare Formate: Bildformate",
|
"image": "Verwendbare Formate: Bildformate",
|
||||||
"is_pinned": (
|
"is_pinned": (
|
||||||
"Dieses Event soll als erstes auf der Startseite angeheftet werden und sich "
|
"Dieses Event soll als erstes auf der Startseite angeheftet werden und sich "
|
||||||
"automatisch einen Monat nach der Veröffentlichung wieder lösen."
|
"automatisch ein Tag nach dem Eventende wieder lösen."
|
||||||
),
|
),
|
||||||
}
|
}
|
||||||
|
|
||||||
labels = {
|
labels = {
|
||||||
"title": "Titel",
|
"title": "Titel",
|
||||||
"subtitle": "Untertitel",
|
"subtitle": "Untertitel",
|
||||||
"image": "Hintergrundbild",
|
"image": "Hintergrundbild",
|
||||||
"body": "Text",
|
"body": "Text",
|
||||||
"event_start": "Start des Events",
|
"event_start": "Start des Events",
|
||||||
"event_end": "Ende des Events",
|
"event_end": "Ende des Events",
|
||||||
"event_place": "Ort des Events",
|
"event_place": "Ort des Events",
|
||||||
"slug": "Permalink",
|
"slug": "Permalink",
|
||||||
"author": "Autor",
|
"author": "Autor",
|
||||||
"public_date": "Veröffentlichung",
|
"public_date": "Veröffentlichung",
|
||||||
"is_pinned": "Event anheften",
|
"is_pinned": "Event anheften",
|
||||||
}
|
}
|
||||||
|
|
||||||
widgets = {"body": CKEditorUploadingWidget(config_name="default")}
|
widgets = {"body": CKEditorUploadingWidget(config_name="default")}
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super().__init__(*args, **kwargs) # to get the self.fields set
|
super().__init__(*args, **kwargs) # to get the self.fields set
|
||||||
author_qs = self.fields["author"].queryset.order_by("username")
|
author_qs = self.fields["author"].queryset.order_by("username")
|
||||||
self.fields["author"].queryset = author_qs
|
self.fields["author"].queryset = author_qs
|
||||||
|
|
||||||
self.fields["event_start"].required = True
|
self.fields["event_start"].required = True
|
||||||
self.fields["event_end"].required = False
|
self.fields["event_end"].required = False
|
||||||
|
|
||||||
if "event_place" in self.fields:
|
if "event_place" in self.fields:
|
||||||
self.fields["event_place"].required = True
|
self.fields["event_place"].required = True
|
||||||
|
|
||||||
|
|
||||||
class FetMeetingForm(PostForm):
|
class FetMeetingForm(PostForm):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = FetMeeting
|
model = FetMeeting
|
||||||
fields = ["event_start", "event_end", "event_place", "tags"]
|
fields = ["event_start", "event_end", "event_place", "tags"]
|
||||||
|
|
||||||
labels = {
|
labels = {
|
||||||
"event_start": "Start der Sitzung",
|
"event_start": "Start der Sitzung",
|
||||||
"event_end": "Ende der Sitzung",
|
"event_end": "Ende der Sitzung",
|
||||||
"event_place": "Ort der Sitzung",
|
"event_place": "Ort der Sitzung",
|
||||||
}
|
}
|
||||||
|
|
||||||
help_texts = {
|
help_texts = {
|
||||||
"event_end": "Bei einer leeren Eingabe werden 2 Stunden zur Startzeit dazugezählt.",
|
"event_end": "Bei einer leeren Eingabe werden 2 Stunden zur Startzeit dazugezählt.",
|
||||||
"tags": (
|
"tags": (
|
||||||
"Die Hashtags ohne '#' eintragen, und mit Komma kann man mehrere Tags anfügen."
|
"Die Hashtags ohne '#' eintragen, und mit Komma kann man mehrere Tags anfügen."
|
||||||
),
|
),
|
||||||
}
|
}
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super().__init__(*args, **kwargs) # to get the self.fields set
|
super().__init__(*args, **kwargs) # to get the self.fields set
|
||||||
|
|
||||||
self.fields["event_start"].required = True
|
self.fields["event_start"].required = True
|
||||||
self.fields["event_end"].required = False
|
self.fields["event_end"].required = False
|
||||||
|
|
||||||
self.fields["event_place"].initial = "FET"
|
self.fields["event_place"].initial = "FET"
|
||||||
|
|
||||||
tags = []
|
tags = []
|
||||||
tags.append(Tag())
|
tags.append(Tag())
|
||||||
tags[0].name = "fachschaft"
|
tags[0].name = "fachschaft"
|
||||||
self.fields["tags"].initial = tags
|
self.fields["tags"].initial = tags
|
||||||
|
|
||||||
|
|
||||||
class PostSearchForm(forms.Form):
|
class PostSearchForm(forms.Form):
|
||||||
year_choices = [("", "Alle")]
|
year_choices = [("", "Alle")]
|
||||||
month_choices = [("", "Alle")] + list(MONTHS.items())
|
month_choices = [("", "Alle")] + list(MONTHS.items())
|
||||||
|
|
||||||
year = forms.ChoiceField(label="Jahr", choices=year_choices, required=False)
|
year = forms.ChoiceField(label="Jahr", choices=year_choices, required=False)
|
||||||
month = forms.ChoiceField(label="Monat", choices=month_choices, required=False)
|
month = forms.ChoiceField(label="Monat", choices=month_choices, required=False)
|
||||||
|
|
||||||
compact_view = forms.BooleanField(
|
compact_view = forms.BooleanField(
|
||||||
label="Kompakte Ansicht",
|
label="Kompakte Ansicht",
|
||||||
required=False,
|
required=False,
|
||||||
widget=CheckboxInput,
|
widget=CheckboxInput,
|
||||||
)
|
)
|
||||||
fet_meeting_only = forms.BooleanField(
|
fet_meeting_only = forms.BooleanField(
|
||||||
label="nur FET Sitzungen",
|
label="nur FET Sitzungen",
|
||||||
required=False,
|
required=False,
|
||||||
widget=CheckboxInput,
|
widget=CheckboxInput,
|
||||||
)
|
)
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super().__init__(*args, **kwargs) # to get the self.fields set
|
super().__init__(*args, **kwargs) # to get the self.fields set
|
||||||
|
|
||||||
try:
|
try:
|
||||||
first_post = Post.objects.get_queryset().last()
|
first_post = Post.objects.get_queryset().last()
|
||||||
last_post = Post.objects.get_queryset().first()
|
last_post = Post.objects.get_queryset().first()
|
||||||
if first_post and last_post:
|
if first_post and last_post:
|
||||||
years = range(last_post.date.year, first_post.date.year - 1, -1)
|
years = range(last_post.date.year, first_post.date.year - 1, -1)
|
||||||
year_choices = [("", "Alle")] + [(i, i) for i in years]
|
year_choices = [("", "Alle")] + [(i, i) for i in years]
|
||||||
self.fields["year"].choices = year_choices
|
self.fields["year"].choices = year_choices
|
||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
class NewsUpdateForm(forms.ModelForm):
|
class NewsUpdateForm(forms.ModelForm):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = News
|
model = News
|
||||||
|
|
||||||
fields = [
|
fields = [
|
||||||
"title",
|
"title",
|
||||||
"status",
|
"status",
|
||||||
"body",
|
"body",
|
||||||
]
|
]
|
||||||
|
|
||||||
labels = {
|
labels = {
|
||||||
"title": "Titel",
|
"title": "Titel",
|
||||||
"image": "Hintergrundbild",
|
"image": "Hintergrundbild",
|
||||||
"body": "Text",
|
"body": "Text",
|
||||||
}
|
}
|
||||||
|
|
||||||
widgets = {"body": CKEditorUploadingWidget(config_name="default")}
|
widgets = {"body": CKEditorUploadingWidget(config_name="default")}
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super().__init__(*args, **kwargs) # to get the self.fields set
|
super().__init__(*args, **kwargs) # to get the self.fields set
|
||||||
|
|
||||||
self.fields["title"].autofocus = True
|
self.fields["title"].autofocus = True
|
||||||
|
|
||||||
|
|
||||||
class EventUpdateForm(forms.ModelForm):
|
class EventUpdateForm(forms.ModelForm):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Event
|
model = Event
|
||||||
fields = [
|
fields = [
|
||||||
"title",
|
"title",
|
||||||
"status",
|
"status",
|
||||||
"event_start",
|
"event_start",
|
||||||
"event_end",
|
"event_end",
|
||||||
"event_place",
|
"event_place",
|
||||||
]
|
]
|
||||||
|
|
||||||
labels = {
|
labels = {
|
||||||
"title": "Titel",
|
"title": "Titel",
|
||||||
"event_start": "Start des Events",
|
"event_start": "Start des Events",
|
||||||
"event_end": "Ende des Events",
|
"event_end": "Ende des Events",
|
||||||
"event_place": "Ort des Events",
|
"event_place": "Ort des Events",
|
||||||
}
|
}
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super().__init__(*args, **kwargs) # to get the self.fields set
|
super().__init__(*args, **kwargs) # to get the self.fields set
|
||||||
|
|
||||||
self.fields["event_start"].required = True
|
self.fields["event_start"].required = True
|
||||||
self.fields["event_start"].autofocus = True
|
self.fields["event_start"].autofocus = True
|
||||||
|
|
||||||
self.fields["event_end"].required = False
|
self.fields["event_end"].required = False
|
||||||
|
|
||||||
if "event_place" in self.fields:
|
if "event_place" in self.fields:
|
||||||
self.fields["event_place"].required = True
|
self.fields["event_place"].required = True
|
||||||
|
|
||||||
|
|
||||||
class FetMeetingCreateForm(forms.ModelForm):
|
class FetMeetingCreateForm(forms.ModelForm):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = FetMeeting
|
model = FetMeeting
|
||||||
fields = ["event_start", "event_end", "event_place"]
|
fields = ["event_start", "event_end", "event_place"]
|
||||||
|
|
||||||
help_texts = {
|
help_texts = {
|
||||||
"event_end": "Bei einer leeren Eingabe werden 2 Stunden zur Startzeit dazugezählt.",
|
"event_end": "Bei einer leeren Eingabe werden 2 Stunden zur Startzeit dazugezählt.",
|
||||||
}
|
}
|
||||||
|
|
||||||
labels = {
|
labels = {
|
||||||
"event_start": "Start der Sitzung",
|
"event_start": "Start der Sitzung",
|
||||||
"event_end": "Ende der Sitzung",
|
"event_end": "Ende der Sitzung",
|
||||||
"event_place": "Ort der Sitzung",
|
"event_place": "Ort der Sitzung",
|
||||||
}
|
}
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super().__init__(*args, **kwargs) # to get the self.fields set
|
super().__init__(*args, **kwargs) # to get the self.fields set
|
||||||
|
|
||||||
self.fields["event_start"].required = True
|
self.fields["event_start"].required = True
|
||||||
self.fields["event_start"].autofocus = True
|
self.fields["event_start"].autofocus = True
|
||||||
|
|
||||||
self.fields["event_end"].required = False
|
self.fields["event_end"].required = False
|
||||||
|
|
||||||
self.fields["event_place"].initial = "FET"
|
self.fields["event_place"].initial = "FET"
|
||||||
|
|
||||||
|
|
||||||
class FetMeetingUpdateForm(forms.ModelForm):
|
class FetMeetingUpdateForm(forms.ModelForm):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = FetMeeting
|
model = FetMeeting
|
||||||
fields = ["event_start", "event_end", "event_place"]
|
fields = ["event_start", "event_end", "event_place"]
|
||||||
|
|
||||||
labels = {
|
labels = {
|
||||||
"event_start": "Start der Sitzung",
|
"event_start": "Start der Sitzung",
|
||||||
"event_end": "Ende der Sitzung",
|
"event_end": "Ende der Sitzung",
|
||||||
"event_place": "Ort der Sitzung",
|
"event_place": "Ort der Sitzung",
|
||||||
}
|
}
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super().__init__(*args, **kwargs) # to get the self.fields set
|
super().__init__(*args, **kwargs) # to get the self.fields set
|
||||||
|
|
||||||
self.fields["event_start"].required = True
|
self.fields["event_start"].required = True
|
||||||
self.fields["event_start"].autofocus = True
|
self.fields["event_start"].autofocus = True
|
||||||
|
|
||||||
self.fields["event_end"].required = False
|
self.fields["event_end"].required = False
|
||||||
|
|
||||||
self.fields["event_place"].initial = "FET"
|
self.fields["event_place"].initial = "FET"
|
||||||
|
|||||||
Reference in New Issue
Block a user