class SimulatorStimulusFragment(ABCAdapterForm): def __init__(self, is_surface_simulation=False): super(SimulatorStimulusFragment, self).__init__() stimuli_index_class = StimuliRegionIndex if is_surface_simulation: stimuli_index_class = SpatioTemporalPatternIndex traited_field = Attr(stimuli_index_class, doc=SimulatorAdapterModel.stimulus.doc, label=SimulatorAdapterModel.stimulus.label, required=SimulatorAdapterModel.stimulus.required) self.stimulus = TraitDataTypeSelectField(traited_field, name='stimulus') def fill_trait(self, datatype): setattr(datatype, self.stimulus.name, self.stimulus.data) def fill_from_trait(self, trait): self.stimulus.from_trait(trait, self.stimulus.name) @staticmethod def prepare_stimulus_fragment(simulator, rendering_rules, is_surface_simulation, form_action_url, project_id): form = SimulatorStimulusFragment(is_surface_simulation) stimuli_fragment = AlgorithmService().prepare_adapter_form( form_instance=form, project_id=project_id) stimuli_fragment.fill_from_trait(simulator) rendering_rules.form = stimuli_fragment rendering_rules.form_action_url = form_action_url return rendering_rules.to_dict()
class SimulatorStimulusFragment(ABCAdapterForm): def __init__(self, project_id=None, is_surface_simulation=False): super(SimulatorStimulusFragment, self).__init__(project_id) stimuli_index_class = StimuliRegionIndex if is_surface_simulation: stimuli_index_class = SpatioTemporalPatternIndex traited_field = Attr(stimuli_index_class, doc=SimulatorAdapterModel.stimulus.doc, label=SimulatorAdapterModel.stimulus.label, required=SimulatorAdapterModel.stimulus.required) self.stimulus = TraitDataTypeSelectField(traited_field, self.project_id, name='stimulus') def fill_trait(self, datatype): setattr(datatype, self.stimulus.name, self.stimulus.data) def fill_from_trait(self, trait): self.stimulus.from_trait(trait, self.stimulus.name)