rename things
This commit is contained in:
@@ -1,158 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.11 on 2018-03-21 12:32
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
import django.utils.timezone
|
||||
import djangocms_text_ckeditor.fields
|
||||
import filer.fields.folder
|
||||
import filer.fields.image
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
initial = True
|
||||
|
||||
dependencies = [
|
||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||
('auth', '0008_alter_user_username_max_length'),
|
||||
migrations.swappable_dependency(settings.FILER_IMAGE_MODEL),
|
||||
('filer', '0007_auto_20161016_1055'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='MemberDownloadFile',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('name', models.CharField(blank=True, max_length=512, null=True, verbose_name='Name')),
|
||||
('file', models.FileField(max_length=512, upload_to='protected_files')),
|
||||
('thumbnail', models.FileField(blank=True, null=True, upload_to='protected_thumbnails')),
|
||||
('ordering', models.IntegerField(default=50, verbose_name='Sortierung')),
|
||||
('groups', models.ManyToManyField(related_name='files', to='auth.Group', verbose_name='Mitgliedergruppen')),
|
||||
],
|
||||
options={
|
||||
'verbose_name_plural': 'Mitglieder Downloads',
|
||||
'verbose_name': 'Mitglieder Download',
|
||||
'ordering': ['ordering', 'name'],
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='MemberDownloadSection',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('title', models.CharField(max_length=100, verbose_name='Title')),
|
||||
('ordering', models.IntegerField(default=50, verbose_name='Sortierung')),
|
||||
],
|
||||
options={
|
||||
'verbose_name_plural': 'Mitglieder Download Sections',
|
||||
'verbose_name': 'Mitglieder Download Section',
|
||||
'ordering': ['ordering'],
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='MemberDownloadTag',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('name', models.CharField(max_length=100, verbose_name='Name')),
|
||||
],
|
||||
options={
|
||||
'verbose_name_plural': 'Mitglieder Download Tags',
|
||||
'verbose_name': 'Mitglieder Download Tag',
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='MemberTask',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('title', models.CharField(max_length=100, verbose_name='Title')),
|
||||
('slug', models.SlugField(unique=True, verbose_name='slug')),
|
||||
('sub_title', models.CharField(blank=True, max_length=100, verbose_name='Untertitle')),
|
||||
('bodytext', djangocms_text_ckeditor.fields.HTMLField(verbose_name='Inhalt')),
|
||||
('publish_date', models.DateTimeField(default=django.utils.timezone.now, verbose_name='Veröffentlichungsdatum')),
|
||||
('deadline', models.DateTimeField(blank=True, null=True, verbose_name='Anmeldeschluss')),
|
||||
('max_num', models.IntegerField(default=1, verbose_name='max. Formulare')),
|
||||
('submit_text', models.CharField(default='Als gelesen markieren', max_length=100, verbose_name='Formular Button Text')),
|
||||
('form_bodytext', djangocms_text_ckeditor.fields.HTMLField(blank=True, default='<h2 class="reveal reveal_animation">Jetzt anmelden</h2>', verbose_name='Formular Beschreibung')),
|
||||
('success_title', models.CharField(default='Ihre Anmeldung wurde erfasst', max_length=200, verbose_name='Bestätigungstitel')),
|
||||
('success_bodytext', djangocms_text_ckeditor.fields.HTMLField(verbose_name='Bestätigungstext')),
|
||||
('folder', filer.fields.folder.FilerFolderField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='filer.Folder', verbose_name='Bilder')),
|
||||
('groups', models.ManyToManyField(related_name='tasks', to='auth.Group', verbose_name='Mitglieder Gruppe')),
|
||||
('image', filer.fields.image.FilerImageField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.FILER_IMAGE_MODEL, verbose_name='Bild')),
|
||||
],
|
||||
options={
|
||||
'verbose_name_plural': 'Mitglieder Aufgaben',
|
||||
'verbose_name': 'Mitglieder Aufgabe',
|
||||
'ordering': ['-publish_date'],
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='MemberTaskFormField',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('type', models.CharField(choices=[('text', 'Text Feld (einzeilig)'), ('textarea', 'Text Feld (mehrzeilig)'), ('email', 'E-Mail Feld'), ('radio', 'Auswahlfeld (eine auswahl)'), ('checkbox', 'Auswahlfeld (mehrere auswahlen)')], max_length=30)),
|
||||
('label', models.CharField(max_length=100, verbose_name='Label')),
|
||||
('name', models.SlugField(verbose_name='Name')),
|
||||
('choices', models.TextField(blank=True, help_text='Werte die bei einem Auswahlfeld zur verfügung stehen sollen. Ein wert pro Zeile', verbose_name='Auswahlwerte')),
|
||||
('required', models.BooleanField(default=False, verbose_name='Pflichtfeld')),
|
||||
('ordering', models.IntegerField(default=50, verbose_name='Sortierung')),
|
||||
('task', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='fields', to='memberzone.MemberTask', verbose_name='Mitglieder Aufgabe')),
|
||||
],
|
||||
options={
|
||||
'verbose_name_plural': 'Formularfelder',
|
||||
'verbose_name': 'Formularfeld',
|
||||
'ordering': ['ordering'],
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='MemberTaskRegistration',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('form_data', models.TextField(verbose_name='Form Content')),
|
||||
('cdate', models.DateTimeField(auto_now_add=True)),
|
||||
('task', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='registrations', to='memberzone.MemberTask', verbose_name='Mitglieder Aufgabe')),
|
||||
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='registrations', to=settings.AUTH_USER_MODEL)),
|
||||
],
|
||||
options={
|
||||
'verbose_name_plural': 'Mitglieder Aufgaben Registierungen',
|
||||
'verbose_name': 'Mitglieder Aufgabe Registierung',
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Profile',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('first_name', models.CharField(blank=True, max_length=255, null=True, verbose_name='Vorname')),
|
||||
('last_name', models.CharField(blank=True, max_length=255, null=True, verbose_name='Nachname')),
|
||||
('street', models.CharField(blank=True, max_length=255, null=True, verbose_name='Strasse')),
|
||||
('zip', models.IntegerField(blank=True, null=True, verbose_name='PLZ')),
|
||||
('place', models.CharField(blank=True, max_length=255, null=True, verbose_name='Ort')),
|
||||
('email', models.EmailField(blank=True, max_length=254, null=True, verbose_name='E-Mail')),
|
||||
('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='profile', to=settings.AUTH_USER_MODEL)),
|
||||
],
|
||||
options={
|
||||
'verbose_name_plural': 'User Profile',
|
||||
'verbose_name': 'User Profil',
|
||||
},
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='memberdownloadfile',
|
||||
name='section',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='files', to='memberzone.MemberDownloadSection', verbose_name='Download Section'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='memberdownloadfile',
|
||||
name='tags',
|
||||
field=models.ManyToManyField(blank=True, null=True, related_name='files', to='memberzone.MemberDownloadTag', verbose_name='Suchbegriffe'),
|
||||
),
|
||||
migrations.AlterUniqueTogether(
|
||||
name='membertaskregistration',
|
||||
unique_together=set([('user', 'task')]),
|
||||
),
|
||||
migrations.AlterUniqueTogether(
|
||||
name='membertaskformfield',
|
||||
unique_together=set([('task', 'name')]),
|
||||
),
|
||||
]
|
||||
@@ -1,24 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.11 on 2018-03-21 12:56
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('memberzone', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='memberdownloadfile',
|
||||
name='thumbnail',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='memberdownloadfile',
|
||||
name='description',
|
||||
field=models.TextField(blank=True, null=True, verbose_name='Beschreibung'),
|
||||
),
|
||||
]
|
||||
@@ -1,240 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.11 on 2018-03-22 10:52
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import cms.models.fields
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
import image_cropping.fields
|
||||
import project.utils
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('cms', '0018_pagenode'),
|
||||
('memberzone', '0002_auto_20180321_1256'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='MemberDownloadFileTranslation',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('language_code', models.CharField(db_index=True, max_length=15, verbose_name='Language')),
|
||||
('name', models.CharField(blank=True, max_length=512, null=True, verbose_name='Name')),
|
||||
('description', models.TextField(blank=True, null=True, verbose_name='Beschreibung')),
|
||||
('file', models.FileField(max_length=512, upload_to='protected_files')),
|
||||
],
|
||||
options={
|
||||
'db_table': 'memberzone_memberdownloadfile_translation',
|
||||
'default_permissions': (),
|
||||
'managed': True,
|
||||
'db_tablespace': '',
|
||||
'verbose_name': 'Mitglieder Download Translation',
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='MemberDownloadSectionTranslation',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('language_code', models.CharField(db_index=True, max_length=15, verbose_name='Language')),
|
||||
('title', models.CharField(max_length=100, verbose_name='Title')),
|
||||
],
|
||||
options={
|
||||
'db_table': 'memberzone_memberdownloadsection_translation',
|
||||
'default_permissions': (),
|
||||
'managed': True,
|
||||
'db_tablespace': '',
|
||||
'verbose_name': 'Mitglieder Download Section Translation',
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='MemberDownloadTagTranslation',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('language_code', models.CharField(db_index=True, max_length=15, verbose_name='Language')),
|
||||
('name', models.CharField(max_length=100, verbose_name='Name')),
|
||||
],
|
||||
options={
|
||||
'db_table': 'memberzone_memberdownloadtag_translation',
|
||||
'default_permissions': (),
|
||||
'managed': True,
|
||||
'db_tablespace': '',
|
||||
'verbose_name': 'Mitglieder Download Tag Translation',
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='MemberTaskTranslation',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('language_code', models.CharField(db_index=True, max_length=15, verbose_name='Language')),
|
||||
('title', models.CharField(max_length=100, verbose_name='Title')),
|
||||
],
|
||||
options={
|
||||
'db_table': 'memberzone_membertask_translation',
|
||||
'default_permissions': (),
|
||||
'managed': True,
|
||||
'db_tablespace': '',
|
||||
'verbose_name': 'Mitglieder Aufgabe Translation',
|
||||
},
|
||||
),
|
||||
migrations.AlterUniqueTogether(
|
||||
name='membertaskformfield',
|
||||
unique_together=set([]),
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='membertaskformfield',
|
||||
name='task',
|
||||
),
|
||||
migrations.AlterUniqueTogether(
|
||||
name='membertaskregistration',
|
||||
unique_together=set([]),
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='membertaskregistration',
|
||||
name='task',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='membertaskregistration',
|
||||
name='user',
|
||||
),
|
||||
migrations.AlterModelOptions(
|
||||
name='memberdownloadfile',
|
||||
options={'ordering': ['ordering'], 'verbose_name': 'Mitglieder Download', 'verbose_name_plural': 'Mitglieder Downloads'},
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='memberdownloadfile',
|
||||
name='description',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='memberdownloadfile',
|
||||
name='file',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='memberdownloadfile',
|
||||
name='name',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='memberdownloadsection',
|
||||
name='title',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='memberdownloadtag',
|
||||
name='name',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='membertask',
|
||||
name='bodytext',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='membertask',
|
||||
name='deadline',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='membertask',
|
||||
name='folder',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='membertask',
|
||||
name='form_bodytext',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='membertask',
|
||||
name='max_num',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='membertask',
|
||||
name='slug',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='membertask',
|
||||
name='sub_title',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='membertask',
|
||||
name='submit_text',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='membertask',
|
||||
name='success_bodytext',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='membertask',
|
||||
name='success_title',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='membertask',
|
||||
name='title',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='membertask',
|
||||
name='cropping',
|
||||
field=image_cropping.fields.ImageRatioField('image', '1200x800', adapt_rotation=False, allow_fullsize=False, free_crop=True, help_text=None, hide_image_field=False, size_warning=False, verbose_name='cropping'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='membertask',
|
||||
name='placeholder',
|
||||
field=cms.models.fields.PlaceholderField(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, slotname='task_placeholder', to='cms.Placeholder'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='membertask',
|
||||
name='image',
|
||||
field=project.utils.CroppableFilerImageField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.FILER_IMAGE_MODEL, verbose_name='Bild'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='profile',
|
||||
name='first_name',
|
||||
field=models.CharField(default='', max_length=255, verbose_name='Vorname'),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='profile',
|
||||
name='last_name',
|
||||
field=models.CharField(default='', max_length=255, verbose_name='Nachname'),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.DeleteModel(
|
||||
name='MemberTaskFormField',
|
||||
),
|
||||
migrations.DeleteModel(
|
||||
name='MemberTaskRegistration',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='membertasktranslation',
|
||||
name='master',
|
||||
field=models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='translations', to='memberzone.MemberTask'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='memberdownloadtagtranslation',
|
||||
name='master',
|
||||
field=models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='translations', to='memberzone.MemberDownloadTag'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='memberdownloadsectiontranslation',
|
||||
name='master',
|
||||
field=models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='translations', to='memberzone.MemberDownloadSection'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='memberdownloadfiletranslation',
|
||||
name='master',
|
||||
field=models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='translations', to='memberzone.MemberDownloadFile'),
|
||||
),
|
||||
migrations.AlterUniqueTogether(
|
||||
name='membertasktranslation',
|
||||
unique_together=set([('language_code', 'master')]),
|
||||
),
|
||||
migrations.AlterUniqueTogether(
|
||||
name='memberdownloadtagtranslation',
|
||||
unique_together=set([('language_code', 'master')]),
|
||||
),
|
||||
migrations.AlterUniqueTogether(
|
||||
name='memberdownloadsectiontranslation',
|
||||
unique_together=set([('language_code', 'master')]),
|
||||
),
|
||||
migrations.AlterUniqueTogether(
|
||||
name='memberdownloadfiletranslation',
|
||||
unique_together=set([('language_code', 'master')]),
|
||||
),
|
||||
]
|
||||
@@ -1,20 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.11 on 2018-03-22 11:21
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('memberzone', '0003_auto_20180322_1052'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='membertask',
|
||||
name='published',
|
||||
field=models.BooleanField(default=False, verbose_name='Veröffentlichen'),
|
||||
),
|
||||
]
|
||||
@@ -1,29 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.11 on 2018-03-22 12:05
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import cms.models.fields
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||
('memberzone', '0004_membertask_published'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='membertask',
|
||||
name='informed_users',
|
||||
field=models.ManyToManyField(blank=True, null=True, to=settings.AUTH_USER_MODEL, verbose_name='Als gelesen markiert von:'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='membertask',
|
||||
name='placeholder',
|
||||
field=cms.models.fields.PlaceholderField(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, slotname='content', to='cms.Placeholder'),
|
||||
),
|
||||
]
|
||||
@@ -1,38 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from django.conf.urls import url
|
||||
from django.contrib.auth.decorators import login_required
|
||||
from django.contrib.auth.views import LoginView, LogoutView, PasswordChangeView
|
||||
from django.core.urlresolvers import reverse_lazy
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.views.generic import TemplateView
|
||||
|
||||
from memberzone.forms import LoginForm
|
||||
from memberzone.views import OverviewView, MemberTaskDetailView, MemberTaskDetailSuccessView, ProfileEditView
|
||||
|
||||
urlpatterns = [
|
||||
url(_(r'^login/$'), LoginView.as_view(form_class=LoginForm), name='login'),
|
||||
|
||||
url(_(r'^logout/$'), LogoutView.as_view(next_page=reverse_lazy('memberzone:overview')), name='logout'),
|
||||
|
||||
url(_(r'^account/change/password/$'), login_required(PasswordChangeView.as_view(
|
||||
template_name='memberzone/change_form.html',
|
||||
success_url=reverse_lazy('memberzone:change_password_done')
|
||||
), login_url=reverse_lazy('memberzone:login')), name='change_password'),
|
||||
|
||||
url(_(r'^account/change/password/success/$'), login_required(TemplateView.as_view(
|
||||
template_name='memberzone/change_success.html'
|
||||
), login_url=reverse_lazy('memberzone:login')), name='change_password_done'),
|
||||
|
||||
url(_(r'^profile/edit/$'), login_required(ProfileEditView.as_view(
|
||||
), login_url=reverse_lazy('memberzone:login')), name='profile_edit'),
|
||||
|
||||
url(_(r'^profile/edit/success/$'), login_required(TemplateView.as_view(
|
||||
template_name='memberzone/change_success.html'
|
||||
), login_url=reverse_lazy('memberzone:login')), name='profile_edit_done'),
|
||||
|
||||
url(_(r'^info/(?P<pk>\d+)/$'), login_required(MemberTaskDetailView.as_view(
|
||||
), login_url=reverse_lazy('memberzone:login')), name='task'),
|
||||
|
||||
url(_(r'^$'), login_required(OverviewView.as_view(), login_url=reverse_lazy('memberzone:login')),
|
||||
name='overview'),
|
||||
]
|
||||
@@ -5,7 +5,7 @@ from django.utils.translation import ugettext_lazy as _
|
||||
from parler.admin import TranslatableAdmin
|
||||
from django.contrib.auth.admin import UserAdmin as BaseUserAdmin
|
||||
|
||||
from memberzone.models import Profile, MemberTask, MemberDownloadSection, MemberDownloadTag, MemberDownloadFile
|
||||
from portal.models import Profile, Information, DownloadSection, DownloadTag, DownloadFile
|
||||
|
||||
User = get_user_model()
|
||||
|
||||
@@ -27,8 +27,8 @@ admin.site.unregister(User)
|
||||
admin.site.register(User, UserAdmin)
|
||||
|
||||
|
||||
@admin.register(MemberTask)
|
||||
class MemberTaskAdmin(TranslatableAdmin):
|
||||
@admin.register(Information)
|
||||
class InformationAdmin(TranslatableAdmin):
|
||||
list_display = ('title', 'published', 'publish_date')
|
||||
list_filter = ('groups',)
|
||||
filter_horizontal = ('groups',)
|
||||
@@ -41,19 +41,19 @@ class MemberTaskAdmin(TranslatableAdmin):
|
||||
)
|
||||
|
||||
|
||||
@admin.register(MemberDownloadSection)
|
||||
class MemberDownloadSectionAdmin(TranslatableAdmin):
|
||||
@admin.register(DownloadSection)
|
||||
class DownloadSectionAdmin(TranslatableAdmin):
|
||||
list_display = ('title', 'ordering')
|
||||
list_editable = ['ordering']
|
||||
|
||||
|
||||
@admin.register(MemberDownloadTag)
|
||||
class MemberDownloadTagAdmin(TranslatableAdmin):
|
||||
@admin.register(DownloadTag)
|
||||
class DownloadTagAdmin(TranslatableAdmin):
|
||||
pass
|
||||
|
||||
|
||||
@admin.register(MemberDownloadFile)
|
||||
class MemberDownloadFileAdmin(TranslatableAdmin):
|
||||
@admin.register(DownloadFile)
|
||||
class DownloadFileAdmin(TranslatableAdmin):
|
||||
list_display = ('label', 'ordering')
|
||||
list_editable = ['ordering']
|
||||
list_filter = ('section', 'groups')
|
||||
@@ -2,7 +2,7 @@
|
||||
from django import forms
|
||||
from django.contrib.auth.forms import AuthenticationForm
|
||||
|
||||
from memberzone.models import Profile
|
||||
from portal.models import Profile
|
||||
|
||||
|
||||
class LoginForm(AuthenticationForm):
|
||||
@@ -12,7 +12,7 @@ from django.utils.translation import ugettext_lazy as _
|
||||
from image_cropping import ImageRatioField
|
||||
from parler.models import TranslatableModel, TranslatedFields
|
||||
|
||||
from memberzone.storage import PrivateS3MediaStorage
|
||||
from portal.storage import PrivateS3MediaStorage
|
||||
from project.utils import CroppableFilerImageField
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ class Profile(models.Model):
|
||||
return '{} {}'.format(self.first_name, self.last_name)
|
||||
|
||||
|
||||
class MemberTask(TranslatableModel):
|
||||
class Information(TranslatableModel):
|
||||
groups = models.ManyToManyField(Group, verbose_name='Mitglieder Gruppe', related_name='tasks')
|
||||
image = CroppableFilerImageField(verbose_name='Bild', blank=True, null=True)
|
||||
cropping = ImageRatioField('image', '1200x800', free_crop=True)
|
||||
@@ -63,32 +63,32 @@ class MemberTask(TranslatableModel):
|
||||
return self.title
|
||||
|
||||
def get_absolute_url(self):
|
||||
return reverse_lazy('memberzone:task', args=[self.pk])
|
||||
return reverse_lazy('portal:information', args=[self.pk])
|
||||
|
||||
|
||||
class MemberDownloadSection(TranslatableModel):
|
||||
class DownloadSection(TranslatableModel):
|
||||
translations = TranslatedFields(
|
||||
title=models.CharField(max_length=100, verbose_name='Title')
|
||||
)
|
||||
ordering = models.IntegerField(default=50, verbose_name='Sortierung')
|
||||
|
||||
class Meta:
|
||||
verbose_name = 'Mitglieder Download Section'
|
||||
verbose_name_plural = 'Mitglieder Download Sections'
|
||||
verbose_name = 'Download Section'
|
||||
verbose_name_plural = 'Download Sections'
|
||||
ordering = ['ordering']
|
||||
|
||||
def __str__(self):
|
||||
return self.title
|
||||
|
||||
|
||||
class MemberDownloadTag(TranslatableModel):
|
||||
class DownloadTag(TranslatableModel):
|
||||
translations = TranslatedFields(
|
||||
name=models.CharField(max_length=100, verbose_name='Name')
|
||||
)
|
||||
|
||||
class Meta:
|
||||
verbose_name = 'Mitglieder Download Tag'
|
||||
verbose_name_plural = 'Mitglieder Download Tags'
|
||||
verbose_name = 'Download Tag'
|
||||
verbose_name_plural = 'Download Tags'
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
@@ -100,10 +100,10 @@ else:
|
||||
protected_file_storage = default_storage
|
||||
|
||||
|
||||
class MemberDownloadFile(TranslatableModel):
|
||||
section = models.ForeignKey(MemberDownloadSection, verbose_name='Download Section', related_name='files')
|
||||
class DownloadFile(TranslatableModel):
|
||||
section = models.ForeignKey(DownloadSection, verbose_name='Download Section', related_name='files')
|
||||
groups = models.ManyToManyField(Group, verbose_name='Mitgliedergruppen', related_name='files')
|
||||
tags = models.ManyToManyField(MemberDownloadTag, verbose_name='Suchbegriffe', related_name='files',
|
||||
tags = models.ManyToManyField(DownloadTag, verbose_name='Suchbegriffe', related_name='files',
|
||||
blank=True, null=True)
|
||||
|
||||
translations = TranslatedFields(
|
||||
@@ -115,8 +115,8 @@ class MemberDownloadFile(TranslatableModel):
|
||||
ordering = models.IntegerField(default=50, verbose_name='Sortierung')
|
||||
|
||||
class Meta:
|
||||
verbose_name = 'Mitglieder Download'
|
||||
verbose_name_plural = 'Mitglieder Downloads'
|
||||
verbose_name = 'Download File'
|
||||
verbose_name_plural = 'Download Files'
|
||||
ordering = ['ordering']
|
||||
|
||||
def __str__(self):
|
||||
@@ -7,7 +7,7 @@
|
||||
<div class="content__intro reveal_container reveal_self reveal reveal_animation{% if object.image %} image{% endif %}">
|
||||
<div class="content__intro__content reveal reveal_animation">
|
||||
<h1>{{ object.title }}</h1>
|
||||
<a href="{% url 'memberzone:overview' %}" class="button">
|
||||
<a href="{% url 'portal:overview' %}" class="button">
|
||||
<span class="button__icon">{% include 'project/assets/arrow-left-long.svg' %}</span>
|
||||
<span class="button__text">{% trans 'Zurück zur Übersicht' %}</span>
|
||||
</a>
|
||||
@@ -25,11 +25,11 @@
|
||||
{% block content_main %}
|
||||
{% render_placeholder object.placeholder language LANGUAGE_CODE %}
|
||||
|
||||
<form action="{{ request.path }}" method="post" class="task__form reveal_self reveal reveal_animation">
|
||||
<form action="{{ request.path }}" method="post" class="information__form reveal_self reveal reveal_animation">
|
||||
{% csrf_token %}
|
||||
|
||||
<div class="form__submit">
|
||||
<a href="{% url 'memberzone:overview' %}" class="button button--ghost">
|
||||
<a href="{% url 'portal:overview' %}" class="button button--ghost">
|
||||
<span class="button__icon">{% include 'project/assets/arrow-left-long.svg' %}</span>
|
||||
<span class="button__text">{% trans 'Zurück zur Übersicht' %}</span>
|
||||
</a>
|
||||
@@ -9,13 +9,13 @@
|
||||
<div class="content__intro__content reveal reveal_animation">
|
||||
<h1>{% trans 'Grüezi, ' %}{{ request.user.profile.full_name }}</h1>
|
||||
<p>{% trans 'Willkommen in Ihrem persönlichen Portal der Tagesschule Elementa' %}</p>
|
||||
<a href="{% url 'memberzone:logout' %}" class="button">
|
||||
<a href="{% url 'portal:logout' %}" class="button">
|
||||
<span class="button__icon">{% include 'project/assets/arrow-left-long.svg' %}</span>
|
||||
<span class="button__text">{% trans 'Logout' %}</span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="content__intro__image scroll reveal reveal_animation" data-ease-multiplier="-2"
|
||||
style="background-image: url({% static 'img/memberzone_background.jpg' %})"></div>
|
||||
style="background-image: url({% static 'img/portal_background.jpg' %})"></div>
|
||||
</div>
|
||||
<div class="content__container">
|
||||
<div class="content__main">
|
||||
@@ -49,7 +49,7 @@
|
||||
</ul>
|
||||
{% if page_obj.has_next or paginator.count > 0 and open_object_list %}
|
||||
<div class="load__replace data_id_3 reveal_self reveal reveal_animation">
|
||||
<a href="{% spaceless %}{% url 'memberzone:overview' %}?page=
|
||||
<a href="{% spaceless %}{% url 'portal:overview' %}?page=
|
||||
{% if open_object_list %}{{ page_obj.start_index }}{% else %}{{ page_obj.next_page_number }}{% endif %}{% endspaceless %}"
|
||||
class="button button--load list__button button--small">
|
||||
<span class="button__icon">{% include 'project/assets/dots.svg' %}</span>
|
||||
37
src/portal/urls.py
Normal file
37
src/portal/urls.py
Normal file
@@ -0,0 +1,37 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from django.conf.urls import url
|
||||
from django.contrib.auth.decorators import login_required
|
||||
from django.contrib.auth.views import LoginView, LogoutView, PasswordChangeView
|
||||
from django.core.urlresolvers import reverse_lazy
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.views.generic import TemplateView
|
||||
|
||||
from portal.forms import LoginForm
|
||||
from portal.views import ProfileEditView, OverviewView, InformationDetailView
|
||||
|
||||
urlpatterns = [
|
||||
url(_(r'^login/$'), LoginView.as_view(form_class=LoginForm), name='login'),
|
||||
|
||||
url(_(r'^logout/$'), LogoutView.as_view(next_page=reverse_lazy('portal:overview')), name='logout'),
|
||||
|
||||
url(_(r'^account/change/password/$'), login_required(PasswordChangeView.as_view(
|
||||
template_name='portal/edit_form.html',
|
||||
success_url=reverse_lazy('portal:change_password_success')
|
||||
), login_url=reverse_lazy('portal:login')), name='change_password'),
|
||||
|
||||
url(_(r'^account/change/password/success/$'), login_required(TemplateView.as_view(
|
||||
template_name='portal/edit_success.html'
|
||||
), login_url=reverse_lazy('portal:login')), name='change_password_success'),
|
||||
|
||||
url(_(r'^account/edit/profile/$'), login_required(ProfileEditView.as_view(
|
||||
), login_url=reverse_lazy('portal:login')), name='edit_profile'),
|
||||
|
||||
url(_(r'^account/edit/profile/success/$'), login_required(TemplateView.as_view(
|
||||
template_name='portal/edit_success.html'
|
||||
), login_url=reverse_lazy('portal:login')), name='edit_profile_success'),
|
||||
|
||||
url(_(r'^info/(?P<pk>\d+)/$'),
|
||||
login_required(InformationDetailView.as_view(), login_url=reverse_lazy('portal:login')), name='information'),
|
||||
|
||||
url(_(r'^$'), login_required(OverviewView.as_view(), login_url=reverse_lazy('portal:login')), name='overview'),
|
||||
]
|
||||
@@ -4,32 +4,25 @@ from django.core.urlresolvers import reverse_lazy
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.views.generic import UpdateView, ListView, DetailView
|
||||
|
||||
from memberzone.forms import ProfileEditForm
|
||||
from memberzone.models import MemberTask, MemberDownloadFile
|
||||
from portal.forms import ProfileEditForm
|
||||
from portal.models import Information, DownloadFile
|
||||
|
||||
|
||||
class MemeberTaskQuerysetMixin(object):
|
||||
class InformationQuerysetMixin(object):
|
||||
def get_queryset(self):
|
||||
queryset = MemberTask.objects.filter(groups__in=self.request.user.groups.all())
|
||||
queryset = Information.objects.filter(groups__in=self.request.user.groups.all())
|
||||
if not self.request.user.is_superuser:
|
||||
queryset = queryset.filter(published=True)
|
||||
return queryset
|
||||
|
||||
|
||||
class OverviewView(MemeberTaskQuerysetMixin, ListView):
|
||||
template_name = 'memberzone/overview.html'
|
||||
class OverviewView(InformationQuerysetMixin, ListView):
|
||||
template_name = 'portal/overview.html'
|
||||
open_tasks = None
|
||||
|
||||
paginate_by = 5
|
||||
|
||||
def get_title(self):
|
||||
return _('Grüezi, {first_name} {last_name}').format(
|
||||
first_name=self.request.user.first_name,
|
||||
last_name=self.request.user.last_name,
|
||||
)
|
||||
|
||||
def get_download_sections(self):
|
||||
file_list = MemberDownloadFile.objects.filter(groups__in=self.request.user.groups.all())
|
||||
file_list = DownloadFile.objects.filter(groups__in=self.request.user.groups.all())
|
||||
sections = {}
|
||||
for file in file_list:
|
||||
if not sections.get(file.section_id, None):
|
||||
@@ -49,13 +42,13 @@ class OverviewView(MemeberTaskQuerysetMixin, ListView):
|
||||
return queryset.filter(informed_users__in=[self.request.user])
|
||||
|
||||
def get_open_tasks(self):
|
||||
queryset = MemeberTaskQuerysetMixin.get_queryset(self).exclude(informed_users__in=[self.request.user])
|
||||
queryset = InformationQuerysetMixin.get_queryset(self).exclude(informed_users__in=[self.request.user])
|
||||
return queryset
|
||||
|
||||
def get_settings(self):
|
||||
settings = (
|
||||
(_('Benutzerdaten'), reverse_lazy('memberzone:profile_edit')),
|
||||
(_('Passwort'), reverse_lazy('memberzone:change_password')),
|
||||
(_('Benutzerdaten'), reverse_lazy('portal:edit_profile')),
|
||||
(_('Passwort'), reverse_lazy('portal:change_password')),
|
||||
)
|
||||
return settings
|
||||
|
||||
@@ -74,26 +67,18 @@ class OverviewView(MemeberTaskQuerysetMixin, ListView):
|
||||
return context
|
||||
|
||||
|
||||
class MemberTaskDetailView(MemeberTaskQuerysetMixin, DetailView):
|
||||
template_name = 'memberzone/task.html'
|
||||
class InformationDetailView(InformationQuerysetMixin, DetailView):
|
||||
template_name = 'portal/information.html'
|
||||
|
||||
def post(self, request, *args, **kwargs):
|
||||
self.get_object().informed_users.add(self.request.user)
|
||||
return redirect('memberzone:overview')
|
||||
|
||||
|
||||
class MemberTaskDetailSuccessView(MemeberTaskQuerysetMixin, DetailView):
|
||||
template_name = 'memberzone/task_success.html'
|
||||
model = MemberTask
|
||||
|
||||
def get_title(self):
|
||||
return self.object.success_title
|
||||
return redirect('portal:overview')
|
||||
|
||||
|
||||
class ProfileEditView(UpdateView):
|
||||
form_class = ProfileEditForm
|
||||
template_name = 'memberzone/change_form.html'
|
||||
success_url = reverse_lazy('memberzone:profile_edit_done')
|
||||
template_name = 'portal/edit_form.html'
|
||||
success_url = reverse_lazy('portal:edit_profile_success')
|
||||
|
||||
def get_object(self, queryset=None):
|
||||
return self.request.user.profile
|
||||
@@ -121,7 +121,7 @@
|
||||
</div>
|
||||
|
||||
<div class="footer">
|
||||
<a href="{% url 'memberzone:overview' %}" class="footer__login header__button header__button--light data_id_1">
|
||||
<a href="{% url 'portal:overview' %}" class="footer__login header__button header__button--light data_id_1">
|
||||
<span class="header__button__icon">
|
||||
{% include 'project/assets/arrow-right-long.svg' %}
|
||||
</span>
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
<a href="{% url 'memberzone:overview' %}" class="footer__login header__button header__button--light header__button--reverse data_id_1">
|
||||
<a href="{% url 'portal:overview' %}" class="footer__login header__button header__button--light header__button--reverse data_id_1">
|
||||
<span class="header__button__icon">
|
||||
{% include 'project/assets/arrow-right-long.svg' %}
|
||||
</span>
|
||||
|
||||
@@ -12,5 +12,5 @@ urlpatterns = [
|
||||
TemplateView.as_view(template_name='project/newsletter/subscription.html'), kwargs={'success': True},
|
||||
name='newsletter_subscription_success'),
|
||||
|
||||
url(_(r'^portal/'), include('memberzone.urls', namespace='memberzone')),
|
||||
url(_(r'^portal/'), include('portal.urls', namespace='portal')),
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user