コード例 #1
0
ファイル: models.py プロジェクト: abhishekad7/futureTrivia
    def is_fully_ended(self):

        now = get_current_time()

        if self.individual_timing:
            return (self.start_time + datetime.timedelta(
                seconds=(self.portal_duration + self.duration))) <= now

        return self.get_endtime() <= now
コード例 #2
0
ファイル: models.py プロジェクト: abhishekad7/futureTrivia
    def is_started(self):

        if not self.start_time:
            return None
        return self.start_time <= get_current_time()
コード例 #3
0
ファイル: models.py プロジェクト: abhishekad7/futureTrivia
    def is_ended(self):

        return self.get_endtime() <= get_current_time()
コード例 #4
0
ファイル: models.py プロジェクト: abhishekad7/futureTrivia
    def time_to_end(self):

        if not self.is_started():
            return None

        return int((self.get_endtime() - get_current_time()).total_seconds())
コード例 #5
0
ファイル: models.py プロジェクト: abhishekad7/futureTrivia
 def time_to_start(self):
     return int((self.start_time - get_current_time()).total_seconds())
コード例 #6
0
def editTrivia(request, code):

    #SAVING UPDATED TRIVIA

    if request.method == "POST" and request.is_ajax():
        context = {"success": False}

        if not request.user.is_authenticated:
            context["error"] = "You are not logged in"
            return JsonResponse(context)

        trivia_form = request.POST.get("trivia_form")

        if trivia_form:
            trivia_form = json.loads(
                trivia_form)  #converting form json string to python dict
            valid = is_valid_trivia(
                trivia_form
            )  #utility function to check if trivia is valid, it return a dict {error, form}

            if not valid[0]:
                context["errors"] = valid[1]
                context["success"] = False
                context["form_errors"] = True
                return JsonResponse(context)

            trivia_form = valid[1]  #valid trivia_form
            trivia = Trivia.objects.filter(
                code=code).first()  #getting trivia model object from database

            if trivia:
                if trivia.admin == request.user:
                    if trivia.start_time:
                        now = get_current_time()
                        endtime = trivia.get_endtime()

                        if endtime <= now:
                            context[
                                "error"] = "You are not allowed to edit %s as it is already ended" % (
                                    trivia.code
                                )  # trivia already started so not allowed to edit
                            context["success"] = False
                            return JsonResponse(context)

                        if trivia.start_time <= now:
                            context[
                                "error"] = "You are not allowed to edit %s as it is already started" % (
                                    trivia.code
                                )  # trivia already started so not allowed to edit
                            context["success"] = False
                            return JsonResponse(context)

                    trivia.name = trivia_form["name"]
                    trivia.password = trivia_form["password"]
                    trivia.category = trivia_form["category"]
                    trivia.poster = trivia_form["poster"]
                    trivia.quote = trivia_form["quote"]
                    trivia.prizes = trivia_form["prizes"]
                    trivia.about = trivia_form["about"]
                    trivia.announcements = trivia_form["announcement"]
                    trivia.start_time = trivia_form["start_time"]
                    trivia.duration = trivia_form["duration"]
                    trivia.portal_duration = trivia_form["portal_duration"]
                    trivia.can_change_answer = trivia_form["can_change_answer"]
                    trivia.individual_timing = trivia_form["individual_timing"]
                    trivia.private = trivia_form["private"]
                    trivia.ready = trivia_form["ready"]
                    trivia.set_endtime()

                    trivia.save()
                    context["success"] = True

                else:
                    context["error"] = "You are not allowed to edit %s." % (
                        trivia.code)  #if request user is not admin of trivia
                    context["success"] = False
                    return JsonResponse(context)

            else:
                context[
                    "error"] = "Trivia does not exist."  # if there is no trivia with requested code
                context["success"] = False
                return JsonResponse(context)

        return JsonResponse(context)

    elif request.method == "POST":

        return JsonResponse({
            "success": False,
            "error": "Request not identified"
        })

    #GET REQUEST EDIT PAGE

    if not request.user.is_authenticated:
        return HttpResponseRedirect(reverse('userlogin'))
    context = {"error": "Not found"}

    trivia = Trivia.objects.filter(code=code).first()

    if trivia:

        if trivia.admin == request.user:

            context["trivia"] = trivia
            context["serverdatetime"] = get_current_time()

        else:

            context["error"] = "You are not allowed to edit %s." % (
                trivia.code)

    else:
        context["error"] = "Trivia does not exist."

    return render(request, 'community/edittrivia.html', context)