mirror of
				https://github.com/ae-utbm/sith.git
				synced 2025-11-04 11:03:04 +00:00 
			
		
		
		
	Merge branch 'bugfix' into 'master'
Forum and Com fixes See merge request ae/Sith!147
This commit is contained in:
		
							
								
								
									
										15
									
								
								com/views.py
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								com/views.py
									
									
									
									
									
								
							@@ -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:
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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 %}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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):
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user