Esempio n. 1
0
  def get(self):
    domainType = self.request.get('domain', default_value='whole')
    questionType = self.request.get('type', default_value='mc')
    highlightAnswer = int(self.request.get('answermode', default_value='1'))
    syllabus = self.request.get('syllabus', default_value='BODMAS rule')
    domain = Domain.defaultDomain(Domain.externalToInternalType(domainType))
    syllabusUnits = SyllabusUnit.all().filter("name = ", syllabus)
    knowledgeUnits = [s.knowledgeUnit for s in syllabusUnits]
    modelProblems = ModelProblem.findModelProblemsMatchingKnowledgeUnits(knowledgeUnits) 
    problems = []
    tags = self.request.get_all("tag")
    numquestions = int(self.request.get('numquestions', default_value=3))
    outputFormat = self.request.get('format', default_value='json')
    self.html_form = 'html/quiz.html' if outputFormat == 'html' else 'html/quiz.json'
    
    # At least one tag must match
    while len(problems) < numquestions:
      problem = GenerateQuestionForModelProblems(modelProblems, domain, tags, questionType, highlightAnswer, outputFormat)
      logging.info("Num problems generated = " + str(len(problems)))
      if problem:
        problems.append(problem)

    self.template_values = {
      'problems' : problems,
    }
    FormHandler.get(self)
Esempio n. 2
0
    def get(self):
        key = self.request.params.get("_key")
        if key:
            template = ProblemTemplate.retrieve(ProblemTemplate, key)
            problemName = template.problemName
            self.variables = []
            for v in Variable.all().ancestor(template):
                varDomains = {"name": v.name, "type": Domain.internalToExternalType(v.domain.type)}
                self.variables.append(varDomains)
        else:
            problemName = self.request.params["problemName"]
            template = ProblemTemplate(problemName)
            problem = Category.allProblems[problemName]
            self.variables = []
            for v in problem.variables:
                varDomains = {"name": v.name, "type": Domain.internalToExternalType(Domain.ANY)}
                self.variables.append(varDomains)

        self.template_values = {
            "problemName": problemName,
            "template": template,
            "variables": self.variables,
            "deleted": False,
            "preview": "",
        }
        FormHandler.get(self)
Esempio n. 3
0
  def get(self):
    current_user = users.get_current_user()
    user = User.retrieve(User, current_user.nickname())
#    session = sessions.Session(writer = "cookie")
    domainType = user.domainType
    questionType = user.questionType
    if not user.answermode:
      user.answermode = '1'
    highlightAnswer = int(self.request.get('answermode', default_value=user.answermode))
    domain = Domain.defaultDomain(Domain.externalToInternalType(domainType))
    syllabusUnits = db.get(user.syllabusUnitKeys)
    knowledgeUnits = [s.knowledgeUnit for s in syllabusUnits]
    modelProblems = ModelProblem.findModelProblemsMatchingKnowledgeUnits(knowledgeUnits) 
    problems = []
    tags = self.request.get_all("tag")
    numquestions = int(self.request.get('numquestions', default_value=user.numquestions))
    format = self.request.get('format', default_value='html')
    self.html_form = 'html/quiz.html' if format == 'html' else 'html/quiz.txt'
    # Allows sub-selection of templates by matching tags.
    # At least one tag must match
    while len(problems) < numquestions:
      problem = GenerateQuestionForModelProblems(modelProblems, domain, tags, questionType, highlightAnswer, format)
      if problem:
        problems.append(problem)

    self.template_values = {
      'problems' : problems,
    }
    FormHandler.get(self)
Esempio n. 4
0
 def render(self, learner):
   action = self.request.params.get('action')
   if learner:
     if action == 'Submit' or action == 'Delete':
       self.html_form = "html/learner.html"
     self.template_values = {
       'learner': learner,                      
       'deleted': action == 'Delete',
     }
   FormHandler.render(self, learner)  
Esempio n. 5
0
  def get(self):
    problems = Category.allProblems.keys()
    problemName = self.request.params.get('problemName')
    if problemName:
      problem = Category.allProblems[problemName]
      variableList = [v.name for v in problem.varDomains]
      templateList = ProblemTemplate.all().filter("problemName = ", problemName)
    else:
      variableList = []
      templateList = []

    self.template_values = {
      'problems' : problems,
      'problemName' : problemName,
      'variables': str(variableList),
      'templates': templateList,
    }
    FormHandler.get(self)
Esempio n. 6
0
  def get(self):
    user = users.get_current_user()
    username = ""
    syllabus = ""
    if user:
      username = user.nickname()
      user = User.retrieve(User, username)
      root = SyllabusUnit.all().filter('name', "CBSE Mathematics 6th").fetch(1)[0]
      syllabus = self.fetchChildren(root)

    self.template_values = {
      'username' : username,                            
      'domainType' : user.domainType if hasattr(user, 'domainType') else "dec",
      'questionType': user.questionType if hasattr(user, 'questionType') else "mc",
      'answermode': user.answermode if hasattr(user, 'answermode') else "No",
      'syllabus': str(syllabus),
    }
    FormHandler.get(self)
Esempio n. 7
0
  def render(self, item):
#    session = sessions.Session(writer="cookie")
#    session["domain"] = self.request.params['domain'] if self.request.params.has_key('domain') else "int"
#    session["type"] = self.request.params['type'] if self.request.params.has_key('type') else 'mc'
#    session["answer"] = self.request.params.has_key('answer')
    user = item if item else User.retrieve(User, self.user.nickname())
    domains = { 'whole': 'Whole Numbers', 'dec': 'Decimals', 'int': 'Integers', 'frac': 'Fractions'}
    syllabusUnits = db.get(user.syllabusUnitKeys)
    syllabusItems = [s.name for s in syllabusUnits]
    self.template_values = {
      'username' : self.user.nickname(),                            
      'domainType' : domains[user.domainType],
      'questionType': "Multiple Choice" if user.questionType == "mc" else "Text",
      'numquestions': user.numquestions,
      'answermode': "Show Answers" if "on" == user.answermode else "Do not show answers",
      'syllabusUnits': syllabusItems,
    }
    FormHandler.render(self, item)
Esempio n. 8
0
  def get(self):
    key = self.request.params.get('_key')
    idval = self.request.params.get(Learner.id_field)
    learner = None
    if key:
      learner = Learner.retrieve(Learner, key)
    elif idval:
      learner = Learner.retrieve(Learner, idval)

    if not learner:
      learner = Learner()
      if idval:
        learner.MobileNumber = db.PhoneNumber(idval)
      
    self.template_values = {
      'learner' : learner,
      'deleted': False,
    }
    FormHandler.get(self)
Esempio n. 9
0
 def render(self, template):
     action = self.request.params.get("action")
     if template:
         if action == "Submit" or action == "Delete":
             self.html_form = "html/template.html"
         variables = []
         preview = ""
         if action != "Delete":
             for v in Variable.all().ancestor(template):
                 varDomains = {"name": v.name, "type": Domain.internalToExternalType(v.domain.type)}
                 variables.append(varDomains)
             defaultVarDomain = Domain.defaultDomain(Domain.WHOLE_NUMBER)
             preview = template.generateProblemStatement(defaultVarDomain, "text", False)
         self.template_values = {
             "problemName": template.problemName,
             "template": template,
             "variables": variables,
             "deleted": action == "Delete",
             "preview": preview,
         }
     FormHandler.render(self, template)
Esempio n. 10
0
 def __init__(self):
   FormHandler.__init__(self)
   self.user = users.get_current_user()
   self.template_values = {'username': self.user.nickname()}