Merge part of stable/1.5.x into master.
Conflicts:
openslides/agenda/views.py
openslides/mediafile/forms.py
openslides/projector/api.py
The fix from commit 39de1924cb
was removed
because of the new widget system in master branch. See GitHub Issue #1191
This commit is contained in:
commit
c13c0997bf
@ -35,6 +35,8 @@ Version 1.5.1 (unreleased)
|
|||||||
==========================
|
==========================
|
||||||
[https://github.com/OpenSlides/OpenSlides/issues?milestone=15]
|
[https://github.com/OpenSlides/OpenSlides/issues?milestone=15]
|
||||||
|
|
||||||
|
Agenda:
|
||||||
|
- Fixed permission error in list of speakers widget.
|
||||||
Participant:
|
Participant:
|
||||||
- Added permission to see participants also to the manager group.
|
- Added permission to see participants also to the manager group.
|
||||||
Files:
|
Files:
|
||||||
|
@ -26,7 +26,7 @@ Installation on GNU/Linux or Mac OS X
|
|||||||
|
|
||||||
1. Check requirements
|
1. Check requirements
|
||||||
|
|
||||||
Make sure that you have installed Python Programming Language 2 (>= 2.6)
|
Make sure that you have installed Python Programming Language 2 (>= 2.6.9)
|
||||||
on your system. You will also need the Python development headers.
|
on your system. You will also need the Python development headers.
|
||||||
|
|
||||||
For example for Ubuntu run::
|
For example for Ubuntu run::
|
||||||
@ -77,7 +77,7 @@ portable version you should observe the following install steps.*
|
|||||||
|
|
||||||
1. Check requirements
|
1. Check requirements
|
||||||
|
|
||||||
Make sure that you have installed Python Programming Language 2 (>= 2.6)
|
Make sure that you have installed Python Programming Language 2 (>= 2.6.9)
|
||||||
and Setuptools on your system.
|
and Setuptools on your system.
|
||||||
|
|
||||||
a. Download and run the `Python 32-bit MSI installer
|
a. Download and run the `Python 32-bit MSI installer
|
||||||
|
@ -68,7 +68,7 @@ class Overview(TemplateView):
|
|||||||
if minutes < 10:
|
if minutes < 10:
|
||||||
minutes = "%s%s" % (0, minutes)
|
minutes = "%s%s" % (0, minutes)
|
||||||
item.duration = "%s:%s" % (hours, minutes)
|
item.duration = "%s:%s" % (hours, minutes)
|
||||||
if not start is None:
|
if start is not None:
|
||||||
item.tooltip = start + duration
|
item.tooltip = start + duration
|
||||||
|
|
||||||
if start is None:
|
if start is None:
|
||||||
|
@ -220,7 +220,7 @@ class PollUpdateView(PollFormView):
|
|||||||
|
|
||||||
def get_success_url(self):
|
def get_success_url(self):
|
||||||
return_url = ''
|
return_url = ''
|
||||||
if not 'apply' in self.request.POST:
|
if 'apply' not in self.request.POST:
|
||||||
return_url = reverse('assignment_detail', args=[self.poll.assignment.id])
|
return_url = reverse('assignment_detail', args=[self.poll.assignment.id])
|
||||||
return return_url
|
return return_url
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@ class MediafileFormMixin(object):
|
|||||||
"""
|
"""
|
||||||
Method to save the form. Here the override is to delete old files.
|
Method to save the form. Here the override is to delete old files.
|
||||||
"""
|
"""
|
||||||
if not self.instance.pk is None:
|
if self.instance.pk is not None:
|
||||||
old_file = Mediafile.objects.get(pk=self.instance.pk).mediafile
|
old_file = Mediafile.objects.get(pk=self.instance.pk).mediafile
|
||||||
if not old_file == self.instance.mediafile:
|
if not old_file == self.instance.mediafile:
|
||||||
old_file.delete()
|
old_file.delete()
|
||||||
|
@ -633,11 +633,11 @@ class Category(AbsoluteUrlMixin, models.Model):
|
|||||||
class Meta:
|
class Meta:
|
||||||
ordering = ['prefix']
|
ordering = ['prefix']
|
||||||
|
|
||||||
## class Comment(models.Model):
|
# class Comment(models.Model):
|
||||||
## motion_version = models.ForeignKey(MotionVersion)
|
# motion_version = models.ForeignKey(MotionVersion)
|
||||||
## text = models.TextField()
|
# text = models.TextField()
|
||||||
## author = PersonField()
|
# author = PersonField()
|
||||||
## creation_time = models.DateTimeField(auto_now=True)
|
# creation_time = models.DateTimeField(auto_now=True)
|
||||||
|
|
||||||
|
|
||||||
class MotionLog(models.Model):
|
class MotionLog(models.Model):
|
||||||
|
@ -181,7 +181,7 @@ class MotionCreateView(MotionEditMixin, CreateView):
|
|||||||
"""
|
"""
|
||||||
response = super(MotionCreateView, self).form_valid(form)
|
response = super(MotionCreateView, self).form_valid(form)
|
||||||
self.object.write_log([ugettext_noop('Motion created')], self.request.user)
|
self.object.write_log([ugettext_noop('Motion created')], self.request.user)
|
||||||
if (not 'submitter' in form.cleaned_data or
|
if ('submitter' not in form.cleaned_data or
|
||||||
not form.cleaned_data['submitter']):
|
not form.cleaned_data['submitter']):
|
||||||
self.object.add_submitter(self.request.user)
|
self.object.add_submitter(self.request.user)
|
||||||
return response
|
return response
|
||||||
|
@ -134,7 +134,7 @@ class GroupForm(forms.ModelForm, CssClassMixin):
|
|||||||
# TODO: Check this in clean_users or clean_permissions
|
# TODO: Check this in clean_users or clean_permissions
|
||||||
if (self.request and
|
if (self.request and
|
||||||
not self.request.user.is_superuser and
|
not self.request.user.is_superuser and
|
||||||
not self.request.user in self.cleaned_data['users'] and
|
self.request.user not in self.cleaned_data['users'] and
|
||||||
not Group.objects.exclude(pk=self.instance.pk).filter(
|
not Group.objects.exclude(pk=self.instance.pk).filter(
|
||||||
permissions__in=[get_protected_perm()],
|
permissions__in=[get_protected_perm()],
|
||||||
user__pk=self.request.user.pk).exists()):
|
user__pk=self.request.user.pk).exists()):
|
||||||
|
Loading…
Reference in New Issue
Block a user