rename things

standalone
Simon Caminada 8 years ago
parent 858bfaec98
commit b652882bd0

@ -5,7 +5,7 @@
text-align: left;
}
.task__form {
.information__form {
margin-top: em(50px);
}

@ -25,7 +25,7 @@ aldryn_addons.settings.load(locals())
INSTALLED_APPS.extend([
'project',
'memberzone',
'portal',
'fontawesome',
'haystack',
'aldryn_search',

@ -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>

@ -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')),
]

Loading…
Cancel
Save