from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants import json # to renderhtml to pdf using xhtml2pdf from django.http import HttpResponse from django.views.generic import View from django.template.loader import get_template # from .utils import render_to_pdf #created in step 4 class instructions_page(Page): pass class survey_page_1(Page): form_model = "player" form_fields = ['pers_big5_Q1', 'pers_big5_Q2', 'pers_big5_Q3', 'pers_big5_Q4', 'pers_big5_Q5'] def vars_for_template(self): return {'labels': self.session.vars['q_labs'][0:5]} class survey_page_2(Page): form_model = "player" form_fields = ['pers_big5_Q6', 'pers_big5_Q7', 'pers_big5_Q8', 'pers_big5_Q9', 'pers_big5_Q10'] def vars_for_template(self): return {'labels': self.session.vars['q_labs'][5:10]} class survey_page_3(Page): form_model = "player" form_fields = ['pers_big5_Q11', 'pers_big5_Q12', 'pers_big5_Q13', 'pers_big5_Q14', 'pers_big5_Q15'] def vars_for_template(self): return {'labels': self.session.vars['q_labs'][10:15]} class survey_page_4(Page): form_model = "player" form_fields = ['pers_big5_Q16', 'pers_big5_Q17', 'pers_big5_Q18', 'pers_big5_Q19', 'pers_big5_Q20'] def vars_for_template(self): return {'labels': self.session.vars['q_labs'][15:20]} class survey_page_5(Page): form_model = "player" form_fields = ['pers_big5_Q21', 'pers_big5_Q22', 'pers_big5_Q23', 'pers_big5_Q24', 'pers_big5_Q25'] def vars_for_template(self): return {'labels': self.session.vars['q_labs'][20:25]} class survey_page_6(Page): form_model = "player" form_fields = ['pers_big5_Q26', 'pers_big5_Q27', 'pers_big5_Q28', 'pers_big5_Q29', 'pers_big5_Q30'] def vars_for_template(self): return {'labels': self.session.vars['q_labs'][25:30]} class survey_page_7(Page): form_model = "player" form_fields = ['pers_big5_Q31', 'pers_big5_Q32', 'pers_big5_Q33', 'pers_big5_Q34', 'pers_big5_Q35'] def vars_for_template(self): return {'labels': self.session.vars['q_labs'][30:35]} class survey_page_8(Page): form_model = "player" form_fields = ['pers_big5_Q36', 'pers_big5_Q37', 'pers_big5_Q38', 'pers_big5_Q39', 'pers_big5_Q40'] def vars_for_template(self): return {'labels': self.session.vars['q_labs'][35:40]} class survey_page_9(Page): form_model = "player" form_fields = ['pers_big5_Q41', 'pers_big5_Q42', 'pers_big5_Q43', 'pers_big5_Q44', 'pers_big5_Q45'] def vars_for_template(self): return {'labels': self.session.vars['q_labs'][40:45]} class survey_page_10(Page): form_model = "player" form_fields = ['pers_big5_Q46', 'pers_big5_Q47', 'pers_big5_Q48', 'pers_big5_Q49', 'pers_big5_Q50'] def vars_for_template(self): return {'labels': self.session.vars['q_labs'][45:50]} class survey_page_11(Page): form_model = "player" form_fields = ['pers_big5_Q51', 'pers_big5_Q52', 'pers_big5_Q53', 'pers_big5_Q54', 'pers_big5_Q55'] def vars_for_template(self): return {'labels': self.session.vars['q_labs'][50:55]} class survey_page_12(Page): form_model = "player" form_fields = ['pers_big5_Q56', 'pers_big5_Q57', 'pers_big5_Q58', 'pers_big5_Q59', 'pers_big5_Q60'] def vars_for_template(self): return {'labels': self.session.vars['q_labs'][55:60]} class controller_page(Page): def before_next_page(self): # for score calculation self.player.reorder_questions() self.player.calculate_scores() class score_page(Page): pass ##rendering pdf using xhtml2pdf #class GeneratePdf(View): #def get(self, request, *args, **kwargs): #pdf = render_to_pdf('pdf/invoice.html') #return HttpResponse(pdf, content_type='application/pdf') #class GeneratePDF(View): #def get(self, request, *args, **kwargs): #template = get_template('invoice.html') #context = { #"invoice_id": 123, #"customer_name": "John Cooper", #"amount": 1399.99, #"today": "Today", #} #html = template.render(context) #pdf = render_to_pdf('invoice.html', context) #if pdf: #response = HttpResponse(pdf, content_type='application/pdf') #filename = "Invoice_%s.pdf" %("12341231") #content = "inline; filename='%s'" %(filename) #download = request.GET.get("download") #if download: #content = "attachment; filename='%s'" %(filename) #response['Content-Disposition'] = content #return response #return HttpResponse("Not found") page_sequence = [instructions_page, survey_page_1, survey_page_2, survey_page_3, survey_page_4, survey_page_5, survey_page_6, survey_page_7, survey_page_8, survey_page_9, survey_page_10, survey_page_11, survey_page_12, controller_page #score_page ]