示例#1
0
 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
示例#2
0
 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'])
示例#3
0
 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
示例#4
0
 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)