from otree.api import * doc = """ Your app description """ class C(BaseConstants): NAME_IN_URL = 'Givers_Meritocratic' PLAYERS_PER_GROUP = None NUM_ROUNDS = 30 class Subsession(BaseSubsession): pass class Group(BaseGroup): pass class Player(BasePlayer): comments = models.LongStringField(blank=True) consent = models.IntegerField(label="क्या आप इस सर्वे में भाग लेना चाहते है?", choices=[ [1, "हाँ"], [0, "नहीं"]], widget=widgets.RadioSelectHorizontal) male = models.IntegerField( choices=[ [1, "पुरुष"], [0, "महिला"], ], label="इस व्यक्ति पुरुष है या महिला?", widget=widgets.RadioSelectHorizontal, ) old = models.IntegerField( choices=[ [1, "वरिष्ठ"], [0, "वयस्क"], ], label="यह व्यक्ति वयस्क है या वरिष्ठ?", widget=widgets.RadioSelectHorizontal, ) in_group = models.IntegerField( choices=[ [1, "समूह में"], [0, "अकेले"],], label="यह व्यक्ति समूह में है या अकेले?", widget=widgets.RadioSelectHorizontal, ) with_child = models.IntegerField( choices=[ [1, "हाँ "], [0, "नहीं "], ], label="क्या इस व्यक्ति के साथ कोई छोटा बच्चा है (12 वर्ष से कम आयु का)?", widget=widgets.RadioSelectHorizontal, ) opinion_beggary = models.IntegerField(choices = [[1, "1 लोग भीख इसलिए माँगते हैं क्योंकि वो आलसी होते और मेहनत करके पैसा नहीं कमाना चाहते।"],[2, "2 लोग भीख इसलिए माँगते हैं क्योंकि वो आलसी होते और मेहनत करके पैसा नहीं कमाना चाहते।"], [3, "3 लोग भीख इसलिए माँगते हैं क्योंकि वो आलसी होते और मेहनत करके पैसा नहीं कमाना चाहते।"], [4, "4"], [5, "5"], [6, "6"], [7, "7"], [8, "8 लोग भीख इसलिए माँगते हैं क्योंकि उनके पास कमाई का कोई साधन नहीं होता।"], [9, "9 लोग भीख इसलिए माँगते हैं क्योंकि उनके पास कमाई का कोई साधन नहीं होता।"], [10, "10 लोग भीख इसलिए माँगते हैं क्योंकि उनके पास कमाई का कोई साधन नहीं होता।"], [999, "जवाब नहीं देना चाहते"]], label= "भीख माँगने का मुख्य कारण: मेहनत की कमी या कमाई के साधन की कमी?", widget=widgets.RadioSelect) age = models.IntegerField(min=18, max=999) monthly_expenditure = models.IntegerField(choices = [[1, "5000 रुपये से कम"], [2, "5000 रुपये से 10,000 रुपये के बीच में"],[3, "10,000 रुपये से 25,000 रुपये के बीच में"], [4, "25000 रुपये से 50,000 रुपये के बीच में"],[5, "50,000 रुपये से 75,000 रुपये के बीच में"], [6, "75,000 रुपये से 1,00,000 रुपये के बीच में"], [7, "1,00,000 रुपये से अधिक"], [999, "जवाब नहीं देना चाहते"]], label="आपका पिछले महीने का खर्च लगभग कितना हुआ?", widget=widgets.RadioSelect) education = models.IntegerField(choices = [[1, "प्राथमिक विद्यालय से कम (कक्षा 5 से कम)"],[2, "प्राथमिक विद्यालय (कक्षा 5 उत्तीर्ण)"],[3, "उच्चमाध्यमिक (कक्षा 8 उत्तीर्ण) विद्यालय"],[4, "माध्यमिक (कक्षा 10 उत्तीर्ण) विद्यालय"],[5, "हायर सेकेंडरी (कक्षा 12 उत्तीर्ण) स्कूल"],[7,"स्नातक (बीए. बीएससी, बी.टेक, आदि)"],[8, "पोस्ट ग्रेजुएशन (एमए, एमएससी, एम.टेक) या उससे ऊपर"],[9,"अन्य"], [999, "जवाब नहीं देना चाहते"]], label="आपने कहाँ तक शिक्षा हासिल की है?", widget=widgets.RadioSelect) education_other = models.StringField(blank=True) religion = models.IntegerField( choices=[ (1, "हिंदू"), (2, "मुस्लिम"), (3, "सिख"), (4, "ईसाई"), (5, "जैन"), (6, "बुद्धिस्ट"), (7, "किसी धर्म में नहीं मानते"), (8, "अन्य"), (999, "जवाब नहीं देना चाहते") ], label="आपका धर्म क्या है?", widget=widgets.RadioSelect) religion_other = models.StringField(blank=True) religiosity = models.IntegerField(choices=[[1, "बहुत ज्यादा जरूरी"],[2, "जरूरी"], [3, "थोड़ा जरूरी"], [4, "बिलकुल भी जरूरी नहीं"], [999, "जवाब नहीं देना चाहते"]],label="धर्म आपके जीवन में कितना ज़्यादा ज़रूरी है?",widget=widgets.RadioSelect) cumulativesum_consent_male = models.IntegerField() cumulativesum_consent_female = models.IntegerField() class Consent(Page): form_model = "player" form_fields = ['consent', 'male', 'old', 'in_group', 'with_child'] @staticmethod def before_next_page(player, timeout_happened): player.cumulativesum_consent_male = sum([p.consent for p in player.in_all_rounds() if p.male == 1]) player.cumulativesum_consent_female = sum([p.consent for p in player.in_all_rounds() if p.male == 0]) class Intro(Page): @staticmethod def is_displayed(player): return player.round_number == 1 class Survey(Page): form_model = "player" form_fields = ['opinion_beggary', 'age', 'education', 'education_other','monthly_expenditure', 'religion', 'religion_other','religiosity'] @staticmethod def is_displayed(player): return player.consent == 1 class Remaining(Page): form_model = "player" form_fields = ['comments'] @staticmethod def vars_for_template(player): return { 'remaining_male': max(0, 3 - player.cumulativesum_consent_male), 'remaining_female': max(0, 3 - player.cumulativesum_consent_female), 'total_remaining': max(0, 3 - player.cumulativesum_consent_male) + max(0, 3 - player.cumulativesum_consent_female), } page_sequence = [Intro, Consent, Survey, Remaining]