diff --git a/openslides/mediafile/views.py b/openslides/mediafile/views.py index 5a6746784..8e068c631 100644 --- a/openslides/mediafile/views.py +++ b/openslides/mediafile/views.py @@ -43,7 +43,7 @@ class MediafileCreateView(CreateView): def get_form(self, form_class): form_kwargs = self.get_form_kwargs() if self.request.method == 'GET': - form_kwargs['initial'].update({'uploader': self.request.user.person_id}) # TODO: Check this. + form_kwargs['initial'].update({'uploader': self.request.user.person_id}) if not self.request.user.has_perm('mediafile.can_manage'): # Return our own ModelForm return MediafileNormalUserCreateForm(**form_kwargs) @@ -52,6 +52,13 @@ class MediafileCreateView(CreateView): return form_class(**form_kwargs) def manipulate_object(self, *args, **kwargs): + """Method to handle the uploader + + If a user has manager permissions, he has to set the uploader + in the given form field. Then this method only calls super. + Else it sets the requesting user as uploader. + + """ if not self.request.user.has_perm('mediafile.can_manage'): self.object.uploader = self.request.user return super(MediafileCreateView, self).manipulate_object(*args, **kwargs) diff --git a/tests/mediafile/tests.py b/tests/mediafile/tests.py index d648aad39..89b84e288 100644 --- a/tests/mediafile/tests.py +++ b/tests/mediafile/tests.py @@ -82,22 +82,25 @@ class MediafileTest(TestCase): for client in self.login_clients().itervalues(): response = client.get('/mediafile/') self.assertEqual(response.status_code, 200) + self.assertTemplateUsed(response, 'mediafile/mediafile_list.html') bad_client = Client() response = bad_client.get('/mediafile/') - self.assertEqual(response.status_code, 302) + self.assertRedirects(response, expected_url='/login/?next=/mediafile/', status_code=302, target_status_code=200) def test_upload_mediafile_get_request(self): clients = self.login_clients() response = clients['client_manager'].get('/mediafile/new/') self.assertContains(response, '---------', status_code=200) self.assertContains(response, '', status_code=200) + self.assertTemplateUsed(response, 'mediafile/mediafile_form.html') response = clients['client_vip_user'].get('/mediafile/new/') - self.assertEqual(response.status_code, 200) + self.assertNotContains(response, '