def set_element_form_choices(self, form): session = self.session form.term.choices = term_choice(session) form.individual.choices = individual_choice(session, None) # narrative? form.expression_type.choices = expression_type_choice(session) form.parent_link_property.choices = property_choice(session) return form
def handle_create_element(self, part_links, parts, req_post): logging.info("Hit Element create {0}".format(repr(req_post))) claim_id = req_post['claim'] assert self.ref_id == claim_id, "{0} != {1}".format(repr(self.ref_id), repr(claim_id)) session = self.session claim = session.query(Claim).filter_by(ref_id=claim_id).first() # TODO this or req_post['element'] ? e_choice = self.int_post_field('element_choice') if e_choice: parent_element = get_pelement(session, e_choice) participant = get_participant(session, parent_element.participant_id) else: # find the participant w/o elements participant = self.find_participant_without_elements(claim) self.set_claim_form(claim) self.set_participant_form(participant, parts) form = ElementCreate(req_post) form.expression_type.data = "None" form.term.choices = term_choice(session) form.individual.choices = individual_choice(session, None) # narrative? form.expression_type.choices = expression_type_choice(session) form.parent_link_property.choices = property_choice(session) form.element_choice.choices = element_choices(session, participant) self.element_form = form self.update_graph(claim, parts, part_links) self.set_hidden_fields(claim_id, participant.ref_id, req_post['element'])
def finish_element_form(self, form, element, choices): session = self.request.dbsession self.set_element_form_choices(form) form.element_choice.choices = choices if element.expression_type == 'individual': form.individual.choices = individual_choice(session, None) # need to get narrative elif element.expression_type == 'some_term': form.term.choices = term_choice(session) return form
def set_element_form(self, element, choices): """Initialize the form that displays participant elements.""" if element is None: sef = InactiveElementEdit() session = self.request.dbsession self.set_element_form_choices(sef) sef.element_choice.choices = choices sef.individual.choices = individual_choice(session, None) # need to get narrative sef.term.choices = term_choice(session) self.element_form = sef else: session = self.session sef = ElementEdit(None, element) if element.expression_type == 'individual': ind = get_pelements_individual(session, element.element_id) sef.individual.data = make_curie(ind) elif element.expression_type == 'some_term': term = get_pelements_term(session, element.element_id) sef.term.data = make_curie(term) self.element_form = self.finish_element_form(sef, element, choices)