Commit 3bb21da8 authored by Samarth Joshi's avatar Samarth Joshi

Fix timezone issue

parent c77170e7
......@@ -111,7 +111,7 @@ AUTH_PASSWORD_VALIDATORS = [
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'
TIME_ZONE = 'Asia/Calcutta'
USE_I18N = True
......
......@@ -2,6 +2,7 @@ from django.db import models
from django.contrib.auth.models import User
import datetime
from django.utils import timezone
import pytz
class Permission(models.Model):
"""This class is used to create the userspermission table in database.Defines the permission of the user default permission is Student the admin can provide staff permission"""
......@@ -29,20 +30,34 @@ class quiz(models.Model):
@property
def start_datetime( self ):
starttime = datetime.datetime.combine( self.date, self.startTime if self.startTime is not None else datetime.time.min )
return starttime
tz = pytz.timezone("Asia/Calcutta")
starttime = datetime.datetime.combine( self.date, self.startTime if self.startTime is not None else datetime.time.min)
return tz.localize(starttime)
@property
def end_datetime( self ):
starttime = datetime.datetime.combine( self.date, self.startTime if self.startTime is not None else datetime.time.min )
tz = pytz.timezone("Asia/Calcutta")
starttime = datetime.datetime.combine( self.date, self.startTime if self.startTime is not None else datetime.time.min)
endtime = starttime + datetime.timedelta(minutes=self.length)
return tz.localize(endtime)
@property
def end_datetime_fortz( self ):
starttime = datetime.datetime.combine( self.date, self.startTime if self.startTime is not None else datetime.time.min)
endtime = starttime + datetime.timedelta(minutes=self.length)
return endtime
@property
def status( self ):
tz = pytz.timezone("Asia/Calcutta")
stt = self.start_datetime
end = self.end_datetime
cur = datetime.datetime.now()
cur = tz.localize(datetime.datetime.now())
print(self.quizInfo)
print("Sta: "+str(stt))
print("End: "+str(end))
print("Cur: "+str(cur))
if stt<=cur and cur<=end:
return "Ongoing"
elif cur>end:
......
......@@ -49,9 +49,10 @@ def index(request):
obj = Questions.objects.filter(quizId=quizInstance).all().order_by('questionId')
endtime = quizInstance.end_datetime
curtime = datetime.now()
if curtime >= endtime:
if quizInstance.status == "Ended":
return HttpResponse("Quiz has already ended")
elif quizInstance.status == "Scheduled":
return HttpResponse("Quiz has note started yet")
prev_subm = submission.objects.all().filter(quizId=quizInstance, studentId=request.user)
if len(prev_subm) != 0:
return HttpResponse("You have already submitted this quiz")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment