from otree.api import ( models, widgets, BaseConstants, BaseSubsession, BaseGroup, BasePlayer, Currency as c, currency_range ) from django import forms OPTIONS1 = ( ("O10", "The original grade contained errors."), ("O11", "The grade I received in this course was below what I received in other courses."), ("O12", "The original grade was close to the next higher letter grade."), ("O13", "The original grade was below the grade required by my major/minor."), ("O14", "The original grade would result in academic probation."), ("O15", "The original grade would disqualify me from my financial aid."), ("O16", "The original grade would prevent me from graduation in a timely manner."), ("O17", "I deserved a better grade."), ("O18", "The instructor had the reputation to change student grades if asked."), ("O19", "It does not hurt to ask."), ("O20", "Others reasons:"), ) OPTIONS2 = ( ("O20", "The grade was correct."), ("O21", "The grade was fair."), ("O22", "The grade met my expectation."), ("O23", "The instructor would never change the grade."), ("O24", "I would have been embarrassed if the instructor had rejected my request."), ("O25", "It never occurred to me that I could make such a request."), ("O26", "It is too stressful to make such a request."), ("O27", "I was worried the instructor might lower the grade further, or punish me in some other way."), ("O28", "Other reasons:"), ) author = 'Your name here' doc = """ Your app description """ class Constants(BaseConstants): name_in_url = 'my_class_info' players_per_group = None num_rounds = 3 class Subsession(BaseSubsession): pass # def creating_session(self): # play_round = self.round_number # self.session.vars['Class'] = play_round class Group(BaseGroup): pass class Player(BasePlayer): Q1 = models.StringField( initial=None, choices=['Spring 2013', 'Summer 2013', 'Fall 2013', 'Spring 2014', 'Summer 2014', 'Fall 2014', 'Spring 2015', 'Summer 2015', 'Fall 2015', 'Spring 2016', 'Summer 2016', 'Fall 2016', 'Spring 2017', 'Summer 2017', 'Fall 2017', 'Spring 2018', 'Summer 2018', 'Fall 2018'], label="When did you take this course?" ) Q2 = models.StringField( choices=['Yes', 'No'], label="Were the course credits counted towards fulfilling your primary major's requirements?" ) college = models.StringField( choices=[ 'Agriculture', 'Business', 'Health and Human Sciences', 'Liberal Arts', 'Natural Sciences', 'Veterinary Medicine and Biomedical Sciences', 'Engineering', 'Natural Resources', 'Other' ], label="Under which college was this course listed? College of _____." ) major_ag = models.StringField( choices=[ 'Agricultural and Resource Economics', 'Animal Sciences', 'Bio-agricultural Sciences & Pest Management', 'Horticulture & Landscape Architecture', 'Soil and Crop Sciences', 'Other' ], label="Department of" ) major_bz = models.StringField( choices=[ 'Accounting', 'Computer Information Systems', 'Finance and Real Estate', 'Management', 'Marketing', 'Other' ], label="Department of" ) major_hs = models.StringField( choices=[ 'Construction Management', 'Design and Merchandising', 'Food Science and Human Nutrition', 'Health and Exercise Science', 'Human Development and Family Studies' 'Occupational Therapy', 'School of Education', 'School of Social Work', 'Other' ], label="Department of" ) major_la = models.StringField( choices=[ 'Anthropology', 'Art and Art History', 'Communication Studies', 'Economics', 'English', 'Ethnic Studies', 'History', 'Journalism and Media Communication', 'Languages, Literatures & Cultures', 'Philosophy', 'Political Science', 'Sociology', 'Other' ], label="Department of" ) major_ns = models.StringField( choices=[ 'Biochemistry & Molecular Biology', 'Biology', 'Chemistry', 'Computer Science', 'Mathematics', 'Physics', 'Psychology', 'Statistics', 'Other' ], label="Department of" ) major_vm = models.StringField( choices=[ 'Biomedical Sciences', 'Clinical Sciences', 'Environmental & Radiological Health Sciences', 'Microbiology, Immunology & Pathology', 'Other' ], label="Department of" ) major_eg = models.StringField( choices=[ 'Atmospheric Science', 'Chemical and Biological Engineering', 'Civil and Environmental Engineering', 'Electrical and Computer Engineering', 'Mechanical Engineering', 'Other' ], label="Department of" ) major_nr = models.StringField( choices=[ 'Ecosystem Science & Sustainability', 'Fish/Wildlife/Conservation Biology', 'Forest & Rangeland Stewardship', 'Geosciences', 'Human Dimensions of Natural Resources', 'Other' ], label="Department of" ) major_other = models.StringField( choices=[ 'Intra-University', 'Undeclared', 'Other' ], label="Department of" ) Q5 = models.StringField( choices=[ 'Non-Hispanic white', 'Non-Hispanic black', 'Hispanic', 'Asian/Pacific Islander', 'Other', 'I do not know' ], widget=widgets.RadioSelectHorizontal, label="What was the race/ethnicity of the instructor?" ) Q6 = models.StringField( choices=['Female', 'Male'], widget=widgets.RadioSelectHorizontal, label="What was the sex of the instructor?" ) Q7 = models.StringField( choices=[ 'Full Professor', 'Associate Professor', 'Assistant Professor', 'Non-tenure track instructor', 'Graduate student', 'I do not know' ], widget=widgets.RadioSelectHorizontal, label="What was the ranking of the instructor of the course?" ) Q8 = models.IntegerField( label="Approximately how many students were in the class?" ) Q9 = models.IntegerField( min=0, max=100, widget=widgets.Slider( # attrs={'step': '1'} ), label="Of these students, what proportion were male?" ) Q10 = models.IntegerField( min=0, max=168, label="BEFORE the class BEGAN, how many hours per week did you expect to spend on studying for this course?" ) Q11 = models.IntegerField( min=0, max=168, label="How many hours per week on average did you ACTUALLY spend on studying for this course?" ) Q12 = models.IntegerField( min=0, max=100, widget=widgets.Slider( # attrs={'step': '1'} ), label="What was your attendance rate?" ) Q13 = models.StringField( choices=[ 'Never', 'Less than once a week', 'Once a week', 'Twice or more than twice a week' ], widget=widgets.RadioSelectHorizontal, label="How often did you meet with your instructor outside of the class throughout the semester?" ) Q14 = models.StringField( choices=[ 'A+', 'A', 'A-', 'B+', 'B', 'B-', 'C+', 'C', 'D', 'F' ], widget=widgets.RadioSelectHorizontal, label="BEFORE the class BEGAN, what was the grade you expected to receive for the course?" ) Q15 = models.StringField( choices=[ 'A+', 'A', 'A-', 'B+', 'B', 'B-', 'C+', 'C', 'D', 'F' ], widget=widgets.RadioSelectHorizontal, label="At the END of the SEMESTER, what was the grade you originally received for the course?" ) Q16 = models.IntegerField( min=0, max=100, widget=widgets.Slider( # attrs={'step': '1'} ), label='How much do you agree that the original grade you received reflected your performance in the class?' ) Q17 = models.StringField( choices=['Yes', 'No'], label="At the END of the SEMESTER, did you ask your instructor " "to regrade after you received the original grade?" ) Q17_10 = models.StringField(widget=forms.CheckboxSelectMultiple(choices=(OPTIONS1))) Q17_10_1 = models.LongStringField(label='Are there any other reasons we did not mention above?', blank=True) Q17_11_1 = models.IntegerField( min=0, max=100, label="Improvement in final grade" ) Q17_11_2 = models.IntegerField( min=0, max=100, label="No change in final grade" ) Q17_11_3 = models.IntegerField( min=0, max=100, label="Decrease in final grade" ) Q17_12 = models.StringField( choices=[ 'A+', 'A', 'A-', 'B+', 'B', 'B-', 'C+', 'C', 'D', 'F' ], widget=widgets.RadioSelectHorizontal, # label="After asking the instructor to reconsider your grade, what was the final result of your grade?" ) Q17_13 = models.IntegerField( min=0, max=10, widget=widgets.Slider( # attrs={'step': 1} ), label="Between 0 (not stressed at all) to 10 (extremely stressed), how stressed did you feel when you asked the instructor to change your grade?" ) Q17_20 = models.StringField(widget=forms.CheckboxSelectMultiple(choices=(OPTIONS2),)) Q17_20_1 = models.LongStringField(label='Are there any other reasons we did not mention above?', blank=True) Q17_21_1 = models.IntegerField( min=0, max=100, label="Improvement in final grade (0 - 100%)" ) Q17_21_2 = models.IntegerField( min=0, max=100, label="No change in final grade (0 - 100%)" ) Q17_21_3 = models.IntegerField( min=0, max=100, label="Decrease in final grade (0 - 100%)" ) Q17_22 = models.IntegerField( min=0, max=10, widget=widgets.Slider( # attrs={'step': '1'} ), label='Between 0 (not stressed at all) to 10 (extremely stressed), how stressed would you have felt if you has asked the instructor to change your grade?' ) Q18 = models.StringField( choices=['Yes', 'No'], label="" ) Q18_10 = models.StringField(widget=forms.CheckboxSelectMultiple(choices=(OPTIONS1))) Q18_10_1 = models.LongStringField(label='Are there any other reasons we did not mention above?', blank=True) Q18_11_1 = models.IntegerField( min=0, max=100, label="Improvement in grade (0 - 100%)" ) Q18_11_2 = models.IntegerField( min=0, max=100, label="No change in grade ( 0 - 100%)" ) Q18_11_3 = models.IntegerField( min=0, max=100, label="Decrease in grade (0 - 100%)" ) Q18_12 = models.StringField( choices=[ 'Improved', 'Not changed', 'Decreased', ], widget=widgets.RadioSelectHorizontal, label="After asking the instructor to reconsider your grade, " "what was the final result of your grade? The grade was ______. (Check one that applies)" ) Q18_13 = models.IntegerField( min=0, max=10, widget=widgets.Slider( # attrs={'step': 1} ), label="Between 0 (not stressed at all) to 10 (extremely stressed), how stressed did you feel " "when you asked the instructor to change your grade?" ) Q18_20 = models.StringField(widget=forms.CheckboxSelectMultiple(choices=(OPTIONS2),)) Q18_20_1 = models.LongStringField(label='Are there any other reasons we did not mention above?', blank=True) Q18_21_1 = models.IntegerField( min=0, max=100, label="Improvement in grade (0 - 100%)" ) Q18_21_2 = models.IntegerField( min=0, max=100, label="No change in grade (0 - 100%)" ) Q18_21_3 = models.IntegerField( min=0, max=100, label="Decrease in grade (0 - 100%)" ) Q18_22 = models.IntegerField( min=0, max=10, widget=widgets.Slider( ), label='Between 0 (not stressed at all) to 10 (extremely stressed), how stressed ' 'would you have felt if you has asked the instructor to change your grade?' )