default motion poll method set, changed permission from 'can_manage_metadata' to 'can_manage'
This commit is contained in:
parent
fff1f15b6c
commit
e67ca77ad1
@ -1123,9 +1123,18 @@ class MotionPollViewSet(BasePollViewSet):
|
|||||||
Returns True if the user has required permissions.
|
Returns True if the user has required permissions.
|
||||||
"""
|
"""
|
||||||
return has_perm(self.request.user, "motions.can_see") and has_perm(
|
return has_perm(self.request.user, "motions.can_see") and has_perm(
|
||||||
self.request.user, "motions.can_manage_metadata"
|
self.request.user, "motions.can_manage"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def create(self, request, *args, **kwargs):
|
||||||
|
# set default pollmethod to YNA
|
||||||
|
if "pollmethod" not in request.data:
|
||||||
|
# hack to make request.data mutable. Otherwise fields cannot be changed.
|
||||||
|
if isinstance(request.data, QueryDict):
|
||||||
|
request.data._mutable = True
|
||||||
|
request.data["pollmethod"] = MotionPoll.POLLMETHOD_YNA
|
||||||
|
return super().create(request, *args, **kwargs)
|
||||||
|
|
||||||
def perform_create(self, serializer):
|
def perform_create(self, serializer):
|
||||||
motion = serializer.validated_data["motion"]
|
motion = serializer.validated_data["motion"]
|
||||||
if not motion.state.allow_create_poll:
|
if not motion.state.allow_create_poll:
|
||||||
|
@ -106,6 +106,22 @@ class CreateMotionPoll(TestCase):
|
|||||||
self.assertEqual(poll.motion.id, self.motion.id)
|
self.assertEqual(poll.motion.id, self.motion.id)
|
||||||
self.assertTrue(poll.options.exists())
|
self.assertTrue(poll.options.exists())
|
||||||
|
|
||||||
|
def test_default_method(self):
|
||||||
|
response = self.client.post(
|
||||||
|
reverse("motionpoll-list"),
|
||||||
|
{
|
||||||
|
"title": "test_title_ailai4toogh3eefaa2Vo",
|
||||||
|
"type": "named",
|
||||||
|
"motion_id": self.motion.id,
|
||||||
|
"onehundred_percent_base": "YN",
|
||||||
|
"majority_method": "simple",
|
||||||
|
},
|
||||||
|
)
|
||||||
|
self.assertHttpStatusVerbose(response, status.HTTP_201_CREATED)
|
||||||
|
self.assertTrue(MotionPoll.objects.exists())
|
||||||
|
poll = MotionPoll.objects.get()
|
||||||
|
self.assertEqual(poll.pollmethod, "YNA")
|
||||||
|
|
||||||
def test_autoupdate(self):
|
def test_autoupdate(self):
|
||||||
response = self.client.post(
|
response = self.client.post(
|
||||||
reverse("motionpoll-list"),
|
reverse("motionpoll-list"),
|
||||||
@ -147,7 +163,6 @@ class CreateMotionPoll(TestCase):
|
|||||||
complete_request_data = {
|
complete_request_data = {
|
||||||
"title": "test_title_OoCh9aitaeyaeth8nom1",
|
"title": "test_title_OoCh9aitaeyaeth8nom1",
|
||||||
"type": "named",
|
"type": "named",
|
||||||
"pollmethod": "YNA",
|
|
||||||
"motion_id": self.motion.id,
|
"motion_id": self.motion.id,
|
||||||
"onehundred_percent_base": "YN",
|
"onehundred_percent_base": "YN",
|
||||||
"majority_method": "simple",
|
"majority_method": "simple",
|
||||||
|
Loading…
Reference in New Issue
Block a user