Merge branch 'bugfix' into 'master'

Forum and Com fixes

See merge request ae/Sith!147
This commit is contained in:
Skia 2018-04-26 19:50:49 +02:00
commit 23291ac60e
4 changed files with 25 additions and 3 deletions

View File

@ -58,7 +58,6 @@ class PosterForm(forms.ModelForm):
fields = ['name', 'file', 'club', 'screens', 'date_begin', 'date_end', 'display_time'] fields = ['name', 'file', 'club', 'screens', 'date_begin', 'date_end', 'display_time']
widgets = { widgets = {
'screens': forms.CheckboxSelectMultiple, 'screens': forms.CheckboxSelectMultiple,
'is_moderated': forms.HiddenInput()
} }
date_begin = forms.DateTimeField(['%Y-%m-%d %H:%M:%S'], label=_("Start date"), date_begin = forms.DateTimeField(['%Y-%m-%d %H:%M:%S'], label=_("Start date"),
@ -72,7 +71,7 @@ class PosterForm(forms.ModelForm):
if self.user: if self.user:
if not self.user.is_com_admin: if not self.user.is_com_admin:
self.fields['club'].queryset = Club.objects.filter(id__in=self.user.clubs_with_rights) self.fields['club'].queryset = Club.objects.filter(id__in=self.user.clubs_with_rights)
self.fields['display_time'].widget = forms.HiddenInput() self.fields.pop('display_time')
class ComTabsMixin(TabedViewMixin): class ComTabsMixin(TabedViewMixin):
@ -572,6 +571,18 @@ class PosterEditBaseView(UpdateView):
form_class = PosterForm form_class = PosterForm
template_name = 'com/poster_edit.jinja' template_name = 'com/poster_edit.jinja'
def get_initial(self):
init = {}
try:
init['date_begin'] = self.object.date_begin.strftime('%Y-%m-%d %H:%M:%S')
except Exception:
pass
try:
init['date_end'] = self.object.date_end.strftime('%Y-%m-%d %H:%M:%S')
except Exception:
pass
return init
def dispatch(self, request, *args, **kwargs): def dispatch(self, request, *args, **kwargs):
if 'club_id' in kwargs and kwargs['club_id']: if 'club_id' in kwargs and kwargs['club_id']:
try: try:

View File

@ -31,6 +31,7 @@ from django.utils import timezone
from django.utils.functional import cached_property from django.utils.functional import cached_property
from datetime import datetime from datetime import datetime
from itertools import chain
import pytz import pytz
from core.models import User, Group from core.models import User, Group
@ -143,6 +144,9 @@ class Forum(models.Model):
def __str__(self): def __str__(self):
return "%s" % (self.name) return "%s" % (self.name)
def get_full_name(self):
return '/'.join(chain.from_iterable([[parent.name for parent in self.get_parent_list()], [self.name]]))
def get_absolute_url(self): def get_absolute_url(self):
return reverse('forum:view_forum', kwargs={'forum_id': self.id}) return reverse('forum:view_forum', kwargs={'forum_id': self.id})

View File

@ -16,7 +16,7 @@
<div id="forum"> <div id="forum">
<h3>{{ forum.name }}</h3> <h3>{{ forum.name }}</h3>
<p> <p>
{% if user.is_in_group(settings.SITH_GROUP_FORUM_ADMIN_ID) or user.is_in_group(settings.SITH_GROUP_COM_ADMIN_ID) %} {% if user.is_in_group(settings.SITH_GROUP_FORUM_ADMIN_ID) or user.is_in_group(settings.SITH_GROUP_COM_ADMIN_ID) or user.can_edit(forum) %}
<a class="ib button" href="{{ url('forum:new_forum') }}?parent={{ forum.id }}">{% trans %}New forum{% endtrans %}</a> <br/> <a class="ib button" href="{{ url('forum:new_forum') }}?parent={{ forum.id }}">{% trans %}New forum{% endtrans %}</a> <br/>
{% endif %} {% endif %}
{% if not forum.is_category %} {% if not forum.is_category %}

View File

@ -71,6 +71,7 @@ class ForumFavoriteTopics(ListView):
topic_list = self.request.user.favorite_topics.all() topic_list = self.request.user.favorite_topics.all()
return topic_list return topic_list
class ForumLastUnread(ListView): class ForumLastUnread(ListView):
model = ForumTopic model = ForumTopic
template_name = "forum/last_unread.jinja" template_name = "forum/last_unread.jinja"
@ -85,12 +86,18 @@ class ForumLastUnread(ListView):
return topic_list return topic_list
class ForumNameField(forms.ModelChoiceField):
def label_from_instance(self, obj):
return obj.get_full_name()
class ForumForm(forms.ModelForm): class ForumForm(forms.ModelForm):
class Meta: class Meta:
model = Forum model = Forum
fields = ['name', 'parent', 'number', 'owner_club', 'is_category', 'edit_groups', 'view_groups'] fields = ['name', 'parent', 'number', 'owner_club', 'is_category', 'edit_groups', 'view_groups']
edit_groups = make_ajax_field(Forum, 'edit_groups', 'groups', help_text="") edit_groups = make_ajax_field(Forum, 'edit_groups', 'groups', help_text="")
view_groups = make_ajax_field(Forum, 'view_groups', 'groups', help_text="") view_groups = make_ajax_field(Forum, 'view_groups', 'groups', help_text="")
parent = ForumNameField(Forum.objects.all())
class ForumCreateView(CanCreateMixin, CreateView): class ForumCreateView(CanCreateMixin, CreateView):