update wordings in admin area

This commit is contained in:
2020-10-24 16:24:40 +00:00
parent cb23846a09
commit 20052ae137
11 changed files with 185 additions and 129 deletions

View File

@@ -1,21 +1,14 @@
from django.contrib import admin
from .forms import JobPostingForm
from .models import JobPosting
class JobPostingAdmin(admin.ModelAdmin):
form = JobPostingForm
model = JobPosting
fieldsets = (
(None, {
'fields': (
'companyName',
'jobName',
'salary',
'pdfLocation',
'publishDate',
)
}),
)
list_display = ['companyName', 'jobName', 'salary', 'publishDate']
admin.site.register(JobPosting, JobPostingAdmin)

View File

@@ -15,12 +15,12 @@ logger = logging.getLogger('blackboard')
class JobPosting(models.Model):
companyName = models.CharField(max_length=128)
jobName = models.CharField(max_length=128)
salary = models.PositiveSmallIntegerField()
pdfLocation = models.FileField(upload_to='uploads/blackboard/pdf/')
companyName = models.CharField(verbose_name="Firmenname", max_length=128)
jobName = models.CharField(verbose_name="Berufsbezeichnung", max_length=128)
salary = models.PositiveSmallIntegerField(verbose_name="Gehalt", )
pdfLocation = models.FileField(verbose_name="Stellenausschreibung", upload_to='uploads/blackboard/pdf/')
pdf_thumb_location = models.CharField(max_length=128)
publishDate = models.DateField('date published', default=timezone.now)
publishDate = models.DateField(verbose_name="Veröffentlichung", default=timezone.now)
# Managers
all_jobPosting = models.Manager()

View File

@@ -227,7 +227,7 @@ THUMBNAIL_ALIASES = {
},
}
# ETHERPAD CLIENT
if DEBUG:
ETHERPAD_CLIENT = {
'url': "http://etherpad:"+env('ETHERPAD_PORT'),
@@ -241,20 +241,7 @@ else:
'apikey': "/app/etherpad/APIKEY.txt"
}
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': [
'rest_framework.permissions.AllowAny',
]
}
# DJANGO MAIL
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'buran.htu.tuwien.ac.at'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
# REST FRAMEWORK
REST_FRAMEWORK={
'DEFAULT_PERMISSION_CLASSES_CLASSES':[
'rest_framework.permissions.AllowAny',
@@ -262,6 +249,12 @@ REST_FRAMEWORK={
'DEFAULT_AUTHENTICATION_CLASSES':()
}
# DJANGO MAIL
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'buran.htu.tuwien.ac.at'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
# CRON JOBS
CRONJOBS = [
('0 16 * * *', 'posts.cronjobs.check_to_send_agenda_mail'),

View File

@@ -1,4 +1,6 @@
from django import forms
from django.utils.translation import gettext_lazy as _
from ckeditor_uploader.widgets import CKEditorUploadingWidget
from .models import Member, Job, JobGroup
@@ -8,45 +10,56 @@ class MemberForm(forms.ModelForm):
class Meta:
model = Member
fields = [
'firstname',
'surname',
'nickname',
'mailaccount',
'role',
'description',
'image',
'birthday',
'phone',
'address'
'firstname', 'surname', 'nickname', 'mailaccount', 'role', 'description', 'image',
'birthday', 'phone', 'address',
]
widgets = {
'description': CKEditorUploadingWidget(config_name='default')
}
labels = {
'description': _("Beschreibung zu der Person"),
'image': _("Porträt ()"),
'birthday': _("Geburtstag"),
'phone': _("Telefonnummer"),
'address': _("Wohnadresse"),
}
help_texts = {
'image': _(
"Mindestgröße: 150*150 px, Verwendbare Formate: ..."
),
'mailaccount': _(
"Die Mailadresse mit '@fet.at' angeben."
),
}
class JobForm(forms.ModelForm):
class Meta:
model = Job
fields = [
'name',
'shortterm',
'slug',
'job_group',
]
fields = ['name', 'shortterm', 'slug', 'job_group',]
labels = {
'shortterm': _("Kürzel der Tätigkeit"),
'job_group': _("Tätigkeitsbereich"),
}
class JobGroupForm(forms.ModelForm):
class Meta:
model = JobGroup
fields = [
'name',
'shortterm',
'slug',
'description',
'is_pinned',
]
fields = ['name', 'shortterm', 'slug', 'description', 'is_pinned',]
widgets = {
'description': CKEditorUploadingWidget(config_name='default')
}
labels = {
'shortterm': _("Kürzel des Tätigkeitsbereichs"),
'description': _("Beschreibung des Tätigkeitsbereichs"),
'is_pinned': _(
"Dieser Tätigkeitsbereich soll im Fachschaftsbereich angeheftet werden, damit es sofort ersichtlich ist."
),
}

View File

@@ -77,16 +77,21 @@ class JobGroupManager(models.Manager):
class Member(models.Model):
firstname = models.CharField(max_length=128)
surname = models.CharField(max_length=128)
nickname = models.CharField(max_length=128)
mailaccount = models.CharField(max_length=128)
firstname = models.CharField("Vorname", max_length=128)
surname = models.CharField("Nachname", max_length=128)
nickname = models.CharField("Spitzname", max_length=128)
mailaccount = models.CharField("Mailadresse", max_length=128)
class MemberRole(models.TextChoices):
ACTIVE = 'A', _('Active')
PENSION = 'P', _('Pension')
role = models.CharField(max_length=1, choices=MemberRole.choices, default=MemberRole.ACTIVE)
role = models.CharField(
"Rolle",
max_length=1,
choices=MemberRole.choices,
default=MemberRole.ACTIVE,
)
description = models.TextField(null=True, blank=True)
image = ThumbnailerImageField(upload_to='uploads/members/image/')
@@ -132,14 +137,14 @@ class JobGroup(models.Model):
description = models.TextField(null=True, blank=True)
is_pinned = models.BooleanField(default=False)
is_pinned = models.BooleanField(verbose_name="ANGEHEFTET", default=False)
# Managers
all_jobgroups = JobGroupManager()
class Meta:
verbose_name = "Tätigkeit-Gruppierung"
verbose_name_plural = "Tätigkeit-Gruppierungen"
verbose_name = "Tätigkeitsbereich"
verbose_name_plural = "Tätigkeitsbereiche"
def __str__(self):
return self.name

View File

@@ -2,7 +2,7 @@ from django.contrib import admin, auth, messages
from django.utils.translation import gettext_lazy as _
from .models import Post, Event, News, FetMeeting
from .forms import MyPostForm, MyEventForm, MyNewsForm, MyFetMeetingForm
from .forms import PostForm, EventForm, NewsForm, FetMeetingForm
from documents.api import createPadifNotExists
import taggit.admin
@@ -57,8 +57,8 @@ def make_fetmeeting(self, request, queryset):
make_fetmeeting.short_description = "In eine Fachschaftssitzung konvertieren"
class MyPostAdmin(admin.ModelAdmin):
form = MyPostForm
class PostAdmin(admin.ModelAdmin):
form = PostForm
model = Post
list_filter = ['is_pinned', 'is_hidden']
list_display = ['title', 'slug', 'public_date', 'is_pinned', 'is_hidden']
@@ -95,8 +95,8 @@ class MyPostAdmin(admin.ModelAdmin):
]
class MyEventAdmin(MyPostAdmin):
form = MyEventForm
class EventAdmin(PostAdmin):
form = EventForm
model = Event
list_filter = ['is_pinned']
list_display = ['title', 'slug', 'event_start', 'public_date', 'is_pinned']
@@ -104,23 +104,19 @@ class MyEventAdmin(MyPostAdmin):
actions = [make_fetmeeting]
admin.site.register(Event, MyEventAdmin)
class MyNewsAdmin(MyPostAdmin):
form = MyNewsForm
class NewsAdmin(PostAdmin):
form = NewsForm
model = News
admin.site.register(News, MyNewsAdmin)
class MyFetMeetingAdmin(MyEventAdmin):
form = MyFetMeetingForm
class FetMeetingAdmin(EventAdmin):
form = FetMeetingForm
model = FetMeeting
list_filter = []
list_display = ['title', 'slug', 'event_start', 'public_date']
actions = []
admin.site.register(FetMeeting, MyFetMeetingAdmin)
admin.site.register(Event, EventAdmin)
admin.site.register(News, NewsAdmin)
admin.site.register(FetMeeting, FetMeetingAdmin)

View File

@@ -7,7 +7,7 @@ from taggit.models import Tag
from .models import Post, Event, News, FetMeeting
class MyPostForm(forms.ModelForm):
class PostForm(forms.ModelForm):
class Meta:
model = Post
fields = ['title', 'subtitle', 'tags', 'image', 'body', 'slug', 'author', 'public_date']
@@ -21,28 +21,37 @@ class MyPostForm(forms.ModelForm):
)
class MyNewsForm(MyPostForm):
class NewsForm(PostForm):
class Meta:
model = News
fields = [
'title', 'subtitle', 'tags', 'image', 'body', 'slug', 'author', 'public_date',
'is_pinned', 'is_hidden',
]
labels = {
'title': _('Titel des Posts'),
'image': _('Hintergrundbild des Posts'),
'body': _('Beschreibung des Posts'),
'author': _('Autor'),
'public_date': _('Veröffentlichung'),
'is_pinned': _('Post anheften'),
'is_hidden': _('Post verstecken'),
'title': _("Titel"),
'subtitle': _("Untertitel"),
'image': _("Hintergrundbild"),
'body': _("Text"),
'author': _("Autor"),
'public_date': _("Veröffentlichung"),
'is_pinned': _("Post anheften"),
'is_hidden': _("Post verstecken"),
}
help_texts = {
'tags': _(
"Die Hashtags ohne '#' eintragen, und mit Komma kann man mehrere Tags anfügen."
),
'image': _(
"Verwendbare Formate: ..."
),
'is_pinned': _(
'Dieser Post soll an die Startseite als erster Post angeheftet werden.'
"Dieser Post soll an die Startseite als erster Post angeheftet werden."
),
'is_hidden': _(
'Dieser Post soll im News Feed nicht auftauchen, z.B. Impressum.'
"Dieser Post soll im News Feed nicht auftauchen, z.B. Impressum."
),
}
@@ -52,27 +61,36 @@ class MyNewsForm(MyPostForm):
super().__init__(*args, **kwargs) # to get the self.fields set
class MyEventForm(MyPostForm):
class EventForm(PostForm):
class Meta:
model = Event
fields = [
'title', 'subtitle', 'tags', 'image', 'body', 'event_start', 'event_end',
'event_place', 'slug', 'author', 'public_date', 'is_pinned',
]
labels = {
'title': _('Titel des Events'),
'image': _('Hintergrundbild des Posts'),
'body': _('Beschreibung des Events'),
'event_start': _('Start des Events'),
'event_end': _('Ende des Events'),
'event_place': _('Ort des Events'),
'author': _('Autor'),
'public_date': _('Veröffentlichung'),
'is_pinned': _('Event anheften'),
'title': _("Titel"),
'subtitle': _("Untertitel"),
'image': _("Hintergrundbild"),
'body': _("Text"),
'event_start': _("Start des Events"),
'event_end': _("Ende des Events"),
'event_place': _("Ort des Events"),
'author': _("Autor"),
'public_date': _("Veröffentlichung"),
'is_pinned': _("Event anheften"),
}
help_texts = {
'tags': _(
"Die Hashtags ohne '#' eintragen, und mit Komma kann man mehrere Tags anfügen."
),
'image': _(
"Verwendbare Formate: "
),
'is_pinned': _(
'Dieses Event soll an die Startseite als erster Post angeheftet werden.'
"Dieses Event soll an die Startseite als erster Post angeheftet werden."
),
}
@@ -88,20 +106,25 @@ class MyEventForm(MyPostForm):
self.fields['event_place'].required = True
class MyFetMeetingForm(MyEventForm):
class FetMeetingForm(EventForm):
# agenda_html = forms.CharField(widget = forms.TextInput())
class Meta:
model = FetMeeting
fields = ['event_start', 'event_end', 'tags', 'has_agenda', 'has_protocol']
labels = {
'event_start': _('Start der Sitzung'),
'event_end': _('Ende der Sitzung'),
'has_agenda': _('Agenda'),
'has_protocol': _('Protokoll'),
'event_start': _("Start der Sitzung"),
'event_end': _("Ende der Sitzung"),
'has_agenda': _("Agenda"),
'has_protocol': _("Protokoll"),
}
help_texts = {
'has_agenda': _('Agenda zur Sitzung hinzufügen.'),
'has_protocol': _('Protokoll zur Sitzung hinzufügen.'),
'tags': _(
"Die Hashtags ohne '#' eintragen, und mit Komma kann man mehrere Tags anfügen."
),
'has_agenda': _("Agenda zur Sitzung hinzufügen."),
'has_protocol': _("Protokoll zur Sitzung hinzufügen."),
}
def __init__(self, *args, **kwargs):

View File

@@ -43,7 +43,7 @@ class Post(models.Model):
legacy_id = models.IntegerField(null=True)
legacy_rubrik_id = models.IntegerField(null=True)
# Titel des Posts
title = models.CharField(max_length=200)
title = models.CharField(verbose_name="Titel", max_length=200)
subtitle = models.CharField(max_length=500, null=True, blank=True)
# Slug = Text Basierter url bestandteil zb Fetsitzung 22.1.2020 --> fetsitzung_22_1_2020 für Url
@@ -57,7 +57,7 @@ class Post(models.Model):
tags = TaggableManager(blank=True)
# Datum ab dem etwas öffentlich sein soll
public_date = models.DateField('date published', null=True, blank=True, default=timezone.now)
public_date = models.DateField(verbose_name="Veröffentlichung", null=True, blank=True, default=timezone.now)
imported_from = models.CharField(max_length=200, null=True, blank=True)
@@ -75,8 +75,8 @@ class Post(models.Model):
is_hidden = models.BooleanField(verbose_name="UNSICHTBAR", default=False)
# Zusatz Info wenn ein Event gepostet wird
event_start = models.DateTimeField('Event Start', null=True, blank=True)
event_end = models.DateTimeField('Event Ende', null=True, blank=True)
event_start = models.DateTimeField(verbose_name="Event Start", null=True, blank=True)
event_end = models.DateTimeField(verbose_name="Event Ende", null=True, blank=True)
event_place = models.CharField(max_length=200, null=True, blank=True)
# Dokumente v.a. fuer Sitzungen

View File

@@ -1,35 +1,29 @@
from django.contrib import admin
from .forms import TaskListForm
from .forms import TaskAdminForm, TaskListForm
from .models import Task, TaskList
class TaskAdmin(admin.ModelAdmin):
form = TaskAdminForm
model = Task
fieldsets = (
(None, {
'fields': (
'title',
'task_list',
'assigned_to',
'due_date',
'completed',
'completed_date',
'assigned_to',
'note',
'priority',
)
}),
)
list_display = (
'title',
'task_list',
'completed',
'priority',
'due_date',
'assigned_to',
)
list_display = ['title', 'task_list', 'assigned_to', 'due_date', 'completed', 'priority']
list_filter = ('task_list', )
ordering = ('priority', )
search_fields = ('title', )
def save_model(self, request, obj, form, change):

View File

@@ -10,6 +10,27 @@ class DateInput(forms.DateInput):
input_type = 'date'
class TaskAdminForm(forms.ModelForm):
class Meta:
model = Task
fields = '__all__'
labels = {
'title': _('Titel'),
'task_list': _('Aufgabenbereich'),
'due_date': _('Fälligkeit'),
'completed': _('Abgeschlossen'),
'completed_date': _('Datum der Fertigstellung'),
'assigned_to': _('Zuweisen an'),
'note': _('Notizen'),
'priority': _('Priorität'),
}
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs) # to get the self.fields set
self.fields['assigned_to'].empty_label = "Alle"
class TaskForm(forms.ModelForm):
class Meta:
model = Task
@@ -40,4 +61,13 @@ class TaskForm(forms.ModelForm):
class TaskListForm(forms.ModelForm):
users = forms.ModelMultipleChoiceField(queryset=User.objects.all(), widget=FilteredSelectMultiple("User", is_stacked=False))
users = forms.ModelMultipleChoiceField(
label="Benutzer",
help_text="Es können nur die Benutzer ausgewählt werden, die sich auf der Homepage angemeldet haben.",
queryset=User.objects.all(),
widget=FilteredSelectMultiple("User", is_stacked=False)
)
class Meta:
model = TaskList
fields = '__all__'

View File

@@ -38,18 +38,22 @@ class TaskList(models.Model):
objects = models.Manager()
class Meta:
verbose_name = "Auf­ga­ben­be­reich"
verbose_name_plural = "Auf­ga­ben­be­reiche"
def __str__(self):
return self.name
class Task(models.Model):
title = models.CharField(max_length=140)
task_list = models.ForeignKey(TaskList, on_delete=models.CASCADE, null=True)
title = models.CharField(verbose_name="Titel", max_length=140)
task_list = models.ForeignKey(TaskList, verbose_name="Aufgabenbereich", on_delete=models.CASCADE, null=True)
created_date = models.DateTimeField(auto_now_add=True)
due_date = models.DateField(blank=True, null=True)
due_date = models.DateField(verbose_name="Fälligkeit", blank=True, null=True)
completed = models.BooleanField(default=False)
completed = models.BooleanField(verbose_name="Abgeschlossen", default=False)
completed_date = models.DateField(blank=True, null=True)
created_by = models.ForeignKey(
@@ -63,14 +67,19 @@ class Task(models.Model):
null=True,
related_name="todo_assigned_to",
on_delete=models.CASCADE,
verbose_name="Zugewiesen an",
)
note = models.TextField(blank=True, null=True)
priority = models.PositiveIntegerField(blank=True, null=True)
note = models.TextField(verbose_name="Notizen", blank=True, null=True)
priority = models.PositiveIntegerField(verbose_name="Priorität", blank=True, null=True)
objects = models.Manager()
taskmanager = TaskManager()
class Meta:
verbose_name = "Aufgabe"
verbose_name_plural = "Aufgaben"
def __str__(self):
return self.title