def form_valid(self, form): session_config_name = form.cleaned_data['session_config'] session_kwargs = { 'session_config_name': session_config_name, 'for_mturk': self.for_mturk } if self.for_mturk: session_kwargs['num_participants'] = ( form.cleaned_data['num_participants'] * settings.MTURK_NUM_PARTICIPANTS_MULTIPLE ) else: session_kwargs['num_participants'] = ( form.cleaned_data['num_participants']) # TODO: # Refactor when we upgrade to push if hasattr(self, "room"): session_kwargs['room_name'] = self.room.name post_data = self.request.POST config = SESSION_CONFIGS_DICT[session_config_name] edited_session_config_fields = {} for field in config.editable_fields(): old_value = config[field] html_field_name = config.html_field_name(field) # int/float/decimal are set to required in HTML # bool: # - if unchecked, its key will be missing. # - if checked, its value will be 'on'. # str: # - if blank, its value will be '' new_value_str = post_data.get(html_field_name) # don't use isinstance because that will catch bool also if type(old_value) is int: # in case someone enters 1.0 instead of 1 new_value = int(float(new_value_str)) else: new_value = type(old_value)(new_value_str) if old_value != new_value: edited_session_config_fields[field] = new_value # need to convert to float or string in order to serialize # through channels for k in ['participation_fee', 'real_world_currency_per_point']: if k in edited_session_config_fields: edited_session_config_fields[k] = float( edited_session_config_fields[k]) session_kwargs['edited_session_config_fields'] = edited_session_config_fields return create_session_and_redirect( session_kwargs)
def dispatch(self, request, *args, **kwargs): session_config_name = kwargs['session_config'] try: session_config = SESSION_CONFIGS_DICT[session_config_name] except KeyError: msg = 'Session config "{}" not found in settings.SESSION_CONFIGS.' raise ValueError(msg.format(session_config_name)) from None session_kwargs = { 'is_demo': True, 'session_config_name': session_config_name, 'num_participants': session_config['num_demo_participants'] } return create_session_and_redirect(session_kwargs)
def dispatch(self, request, session_config_name): try: session_config = SESSION_CONFIGS_DICT[session_config_name] except KeyError: msg = 'Session config "{}" not found in settings.SESSION_CONFIGS.' raise ValueError(msg.format(session_config_name)) from None session_kwargs = { 'is_demo': True, 'session_config_name': session_config_name, 'num_participants': session_config['num_demo_participants'] } use_browser_bots = session_config.get('use_browser_bots', False) return create_session_and_redirect(session_kwargs, use_browser_bots=use_browser_bots)
def form_valid(self, form): session_kwargs = { 'session_config_name': form.cleaned_data['session_config'], 'for_mturk': self.for_mturk } if self.for_mturk: session_kwargs['num_participants'] = ( form.cleaned_data['num_participants'] * settings.MTURK_NUM_PARTICIPANTS_MULTIPLE) else: session_kwargs['num_participants'] = ( form.cleaned_data['num_participants']) # TODO: # Refactor when we upgrade to push if hasattr(self, "room"): session_kwargs['room_name'] = self.room.name return create_session_and_redirect(session_kwargs)
def form_valid(self, form): session_kwargs = { 'session_config_name': form.cleaned_data['session_config'], 'for_mturk': self.for_mturk } if self.for_mturk: session_kwargs['num_participants'] = ( form.cleaned_data['num_participants'] * settings.MTURK_NUM_PARTICIPANTS_MULTIPLE ) else: session_kwargs['num_participants'] = ( form.cleaned_data['num_participants']) # TODO: # Refactor when we upgrade to push if hasattr(self, "room"): session_kwargs['room_name'] = self.room.name return create_session_and_redirect(session_kwargs)