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

Fix timezone issue

parent c77170e7
...@@ -111,7 +111,7 @@ AUTH_PASSWORD_VALIDATORS = [ ...@@ -111,7 +111,7 @@ AUTH_PASSWORD_VALIDATORS = [
LANGUAGE_CODE = 'en-us' LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC' TIME_ZONE = 'Asia/Calcutta'
USE_I18N = True USE_I18N = True
......
...@@ -2,6 +2,7 @@ from django.db import models ...@@ -2,6 +2,7 @@ from django.db import models
from django.contrib.auth.models import User from django.contrib.auth.models import User
import datetime import datetime
from django.utils import timezone from django.utils import timezone
import pytz
class Permission(models.Model): 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""" """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): ...@@ -29,20 +30,34 @@ class quiz(models.Model):
@property @property
def start_datetime( self ): def start_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")
return starttime starttime = datetime.datetime.combine( self.date, self.startTime if self.startTime is not None else datetime.time.min)
return tz.localize(starttime)
@property @property
def end_datetime( self ): 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) endtime = starttime + datetime.timedelta(minutes=self.length)
return endtime return endtime
@property @property
def status( self ): def status( self ):
tz = pytz.timezone("Asia/Calcutta")
stt = self.start_datetime stt = self.start_datetime
end = self.end_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: if stt<=cur and cur<=end:
return "Ongoing" return "Ongoing"
elif cur>end: elif cur>end:
......
...@@ -49,9 +49,10 @@ def index(request): ...@@ -49,9 +49,10 @@ def index(request):
obj = Questions.objects.filter(quizId=quizInstance).all().order_by('questionId') obj = Questions.objects.filter(quizId=quizInstance).all().order_by('questionId')
endtime = quizInstance.end_datetime endtime = quizInstance.end_datetime
curtime = datetime.now() if quizInstance.status == "Ended":
if curtime >= endtime:
return HttpResponse("Quiz has already 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) prev_subm = submission.objects.all().filter(quizId=quizInstance, studentId=request.user)
if len(prev_subm) != 0: if len(prev_subm) != 0:
return HttpResponse("You have already submitted this quiz") 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