def toggle_task_completion(request, slug, page_slug): page = get_object_or_404(Page, project__slug=slug, slug=page_slug, listed=True, deleted=False) profile = request.user.get_profile() if request.method == "POST": try: task_completion = PerUserTaskCompletion.objects.get(user=profile, page=page, unchecked_on__isnull=True) task_completion.unchecked_on = datetime.datetime.today() task_completion.save() except PerUserTaskCompletion.DoesNotExist: task_completion = PerUserTaskCompletion(user=profile, page=page) task_completion.save() total_count = Page.objects.filter(project__slug=slug, listed=True, deleted=False).count() completed_count = PerUserTaskCompletion.objects.filter( page__project__slug=slug, page__deleted=False, unchecked_on__isnull=True, user=profile ).count() progressbar_value = 0 if total_count: progressbar_value = completed_count * 100 / total_count json = simplejson.dumps( { "total_count": total_count, "completed_count": completed_count, "progressbar_value": progressbar_value, "upon_completion_redirect": page.project.get_absolute_url(), } ) return http.HttpResponse(json, mimetype="application/json")
def toggle_task_completion(request, slug, page_slug): page = get_object_or_404(Page, project__slug=slug, slug=page_slug, listed=True, deleted=False) profile = request.user.get_profile() if request.method == 'POST': try: task_completion = PerUserTaskCompletion.objects.get( user=profile, page=page, unchecked_on__isnull=True) task_completion.unchecked_on = datetime.datetime.today() task_completion.save() except PerUserTaskCompletion.DoesNotExist: task_completion = PerUserTaskCompletion(user=profile, page=page) task_completion.save() total_count = Page.objects.filter(project__slug=slug, listed=True, deleted=False).count() completed_count = PerUserTaskCompletion.objects.filter( page__project__slug=slug, page__deleted=False, unchecked_on__isnull=True, user=profile).count() progressbar_value = 0 if total_count: progressbar_value = (completed_count * 100 / total_count) json = simplejson.dumps({ 'total_count': total_count, 'completed_count': completed_count, 'progressbar_value': progressbar_value, 'upon_completion_redirect': page.project.get_absolute_url() }) return http.HttpResponse(json, mimetype="application/json")
def toggle_task_completion(request, slug, page_slug): page = get_object_or_404(Page, project__slug=slug, slug=page_slug, listed=True, deleted=False) profile = request.user.get_profile() if request.method == 'POST': try: task_completion = PerUserTaskCompletion.objects.get( user=profile, page=page, unchecked_on__isnull=True) task_completion.unchecked_on = datetime.datetime.today() task_completion.save() except PerUserTaskCompletion.DoesNotExist: task_completion = PerUserTaskCompletion(user=profile, page=page) task_completion.save() context = task_toggle_completion(request, page, ignore_post_data=True) data = context['ajax_data'] data['toggle_task_completion_form_html'] = render_to_string( 'content/_toggle_completion.html', context, context_instance=RequestContext(request)).strip() json = simplejson.dumps(data) return http.HttpResponse(json, mimetype="application/json")