from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants import random, os try: import fcntl except ModuleNotFoundError: pass def formatNicely(amount): return "{:.2f}".format(amount) # return "{:.2f}".format(amount).replace('.', ',') # for EUR class PageWithAmount(Page): def vars_for_template(self): if 'payment' in self.participant.vars: vft = {'nicePayment': formatNicely(self.participant.vars['payment']), 'emailEntered': self.player.email} else: vft = {'nicePayment': "Ein Fehler ist aufgetreten. Kontaktieren Sie bitte den Experimentleiter.", 'emailEntered': self.player.email} self.player.email = '[ENTFERNT]' return vft class Details(PageWithAmount): form_fields = ['email'] form_model = 'player' timeout_seconds = 5*60 def before_next_page(self): self.player.emergency_code = ''.join(random.choices(list('ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'), k=8)) if 'payment' in self.participant.vars: payment = str(self.participant.vars["payment"]) else: payment = "ERROR" self.group.get_players()[0].payment_data = self.group.get_players()[0].payment_data + "email: " + self.player.email + ", payment: " + payment + " | " class EndFeedback(PageWithAmount): pass page_sequence = [Details, EndFeedback]