summaryrefslogtreecommitdiff
path: root/yaksh/management/commands/create_demo_course.py
diff options
context:
space:
mode:
Diffstat (limited to 'yaksh/management/commands/create_demo_course.py')
-rw-r--r--yaksh/management/commands/create_demo_course.py69
1 files changed, 42 insertions, 27 deletions
diff --git a/yaksh/management/commands/create_demo_course.py b/yaksh/management/commands/create_demo_course.py
index e71e0ae..9cb6058 100644
--- a/yaksh/management/commands/create_demo_course.py
+++ b/yaksh/management/commands/create_demo_course.py
@@ -2,9 +2,9 @@ import os
from django.core.management.base import BaseCommand
from yaksh.models import Course, Question, Quiz, QuestionPaper, Profile, FileUpload
from yaksh.file_utils import extract_files
+from yaksh.views import add_to_group
from django.contrib.auth.models import User
from django.utils import timezone
-from django.core.files import File
from datetime import datetime, timedelta
import pytz
import zipfile
@@ -17,12 +17,15 @@ def create_demo_course():
print("Creating Demo User...")
# create a demo user
user, u_status = User.objects.get_or_create(username='demo_user',
- password='demo',
email='demo@test.com')
+ user.set_password("demo")
+ user.save()
Profile.objects.get_or_create(user=user, roll_number=0,
institute='demo_institute',
department='demo_department',
position='Faculty')
+ demo_user = User.objects.filter(username='demo_user')
+ add_to_group(demo_user)
print("Creating Demo Course...")
# create a demo course
@@ -31,35 +34,47 @@ def create_demo_course():
creator=user)
print("Creating Demo Quiz...")
+ demo_quiz = Quiz.objects.filter(course=course)
+ if not demo_quiz:
# create a demo quiz
- quiz, q_status = Quiz.objects.get_or_create(start_date_time=timezone.now(),
- end_date_time=timezone.now() + timedelta(176590),
- duration=30, active=True,
- attempts_allowed=-1,
- time_between_attempts=0,
- description='Demo_quiz', pass_criteria=0,
- language='Python', prerequisite=None,
- course=course)
+ demo_quiz = Quiz.objects.get_or_create(start_date_time=timezone.now(),
+ end_date_time=timezone.now() + timedelta(176590),
+ duration=30, active=True,
+ attempts_allowed=-1,
+ time_between_attempts=0,
+ description='Demo_quiz', pass_criteria=0,
+ language='Python', prerequisite=None,
+ course=course)
+ else:
+ print("Demo Quiz Already Created")
print("Creating Demo Questions...")
- #create demo question
- f_path = os.path.join(os.getcwd(), 'yaksh', 'fixtures', 'demo_questions.json')
- zip_file_path = os.path.join(os.getcwd(), 'yaksh', 'fixtures', 'demo_questions.zip')
- extract_files(zip_file_path)
- ques = Question()
- ques.read_json("questions_dump.json", user)
+ questions = Question.objects.filter(active=True, summary="Demo Question")
+ files = FileUpload.objects.filter(question__in=questions)
+ if not files:
+ #create demo question
+ f_path = os.path.join(os.getcwd(), 'yaksh', 'fixtures', 'demo_questions.json')
+ zip_file_path = os.path.join(os.getcwd(), 'yaksh', 'fixtures', 'demo_questions.zip')
+ extract_files(zip_file_path)
+ ques = Question()
+ ques.read_json("questions_dump.json", user)
- questions = Question.objects.filter(active=True, summary="Demo_Question")
-
- print("Creating Demo Question Paper...")
- # create a demo questionpaper
- question_paper, q_ppr_status = QuestionPaper.objects.get_or_create(quiz=quiz,
- total_marks=5.0,
- shuffle_questions=True
- )
- # add fixed set of questions to the question paper
- for question in questions:
- question_paper.fixed_questions.add(question)
+ if questions:
+ print("Creating Demo Question Paper...")
+ # create a demo questionpaper
+ que_ppr = QuestionPaper.objects.filter(quiz=demo_quiz[0])
+ if not que_ppr:
+ question_paper, q_ppr_status = QuestionPaper.objects.get_or_create(quiz=demo_quiz[0],
+ total_marks=5.0,
+ shuffle_questions=True
+ )
+ # add fixed set of questions to the question paper
+ for question in questions:
+ question_paper.fixed_questions.add(question)
+ else:
+ print("Question Paper Already Created")
+ else:
+ print("Questions Not Found Please Check Question Summary")
success = True
return success