Skip to content

Commit

Permalink
#99 splitted update checklist view
Browse files Browse the repository at this point in the history
  • Loading branch information
StegSchreck committed Dec 13, 2016
1 parent dc5ed24 commit 5a21b41
Show file tree
Hide file tree
Showing 5 changed files with 33 additions and 27 deletions.
2 changes: 1 addition & 1 deletion .idea/runConfigurations/OFM_functional_tests.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion .idea/runConfigurations/OFM_unit_tests.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion .idea/runConfigurations/Runserver_Plus.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion .idea/runConfigurations/Shell_Plus.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

52 changes: 29 additions & 23 deletions core/views/checklist_views.py
Original file line number Diff line number Diff line change
Expand Up @@ -120,32 +120,38 @@ def post(self, request, *args, **kwargs):
checklist_item = ChecklistItem.objects.get(checklist__user=request.user, id=checklist_item_id)

if checklist_item:
if checklist_item_name:
checklist_item.name = checklist_item_name
elif checklist_item_matchdays:
checklist_item.to_be_checked_on_matchdays = checklist_item_matchdays
checklist_item.to_be_checked_on_matchday_pattern = None
checklist_item.to_be_checked_if_home_match_tomorrow = False
elif checklist_item_matchday_pattern:
checklist_item.to_be_checked_on_matchdays = None
checklist_item.to_be_checked_on_matchday_pattern = checklist_item_matchday_pattern
checklist_item.to_be_checked_if_home_match_tomorrow = False
elif checklist_item_home_match:
checklist_item.to_be_checked_on_matchdays = None
checklist_item.to_be_checked_on_matchday_pattern = None
checklist_item.to_be_checked_if_home_match_tomorrow = True
elif checklist_item_everyday:
checklist_item.to_be_checked_on_matchdays = None
checklist_item.to_be_checked_on_matchday_pattern = None
checklist_item.to_be_checked_if_home_match_tomorrow = False
elif checklist_item_checked == 'true':
checklist_item.last_checked_on_matchday = Matchday.get_current()
elif checklist_item_checked == 'false':
checklist_item.last_checked_on_matchday = None
checklist_item.save()
self._handle_checklist_item_update(checklist_item, checklist_item_checked, checklist_item_everyday,
checklist_item_home_match, checklist_item_matchday_pattern,
checklist_item_matchdays, checklist_item_name)
return self.render_json_response({'success': True})
return self.render_json_response({'success': False})

def _handle_checklist_item_update(self, checklist_item, checklist_item_checked, checklist_item_everyday,
checklist_item_home_match, checklist_item_matchday_pattern,
checklist_item_matchdays, checklist_item_name):
if checklist_item_name:
checklist_item.name = checklist_item_name
elif checklist_item_matchdays:
self._update_checklist_item_condition(checklist_item, checklist_item_matchdays, None, False)
elif checklist_item_matchday_pattern:
self._update_checklist_item_condition(checklist_item, None, checklist_item_matchday_pattern, False)
elif checklist_item_home_match:
self._update_checklist_item_condition(checklist_item, None, None, True)
elif checklist_item_everyday:
self._update_checklist_item_condition(checklist_item, None, None, False)
elif checklist_item_checked == 'true':
checklist_item.last_checked_on_matchday = Matchday.get_current()
elif checklist_item_checked == 'false':
checklist_item.last_checked_on_matchday = None
checklist_item.save()

@staticmethod
def _update_checklist_item_condition(checklist_item, checklist_item_matchdays, checklist_item_matchday_pattern,
checklist_item_home_match_tomorrow):
checklist_item.to_be_checked_on_matchdays = checklist_item_matchdays
checklist_item.to_be_checked_on_matchday_pattern = checklist_item_matchday_pattern
checklist_item.to_be_checked_if_home_match_tomorrow = checklist_item_home_match_tomorrow


@method_decorator(login_required, name='dispatch')
class DeleteChecklistItemView(CsrfExemptMixin, JsonRequestResponseMixin, View):
Expand Down

0 comments on commit 5a21b41

Please sign in to comment.