def edit_callback(values): from bauble.plugins.plants.species_editor import edit_species sp = values[0] if isinstance(sp, VernacularName): sp = sp.species return edit_species(model=sp) is not None
def add_species_callback(genera): session = db.Session() genus = session.merge(genera[0]) from bauble.plugins.plants.species_editor import edit_species result = edit_species(model=Species(genus=genus)) is not None session.close() return result
else: # we should never really even get here since we would have # to hit something besides "OK" and the above elif should # handle all the possible cases return False # respond to responses more_committed = None if response == self.RESPONSE_NEXT: self.presenter.cleanup() model = Genus(family=self.model.family) e = GenusEditor(model=model, parent=self.parent) more_committed = e.start() elif response == self.RESPONSE_OK_AND_ADD: sp = Species(genus=self.model) more_committed = edit_species(model=sp, parent=self.parent) if more_committed is not None: if isinstance(more_committed, list): self._committed.extend(more_committed) else: self._committed.append(more_committed) return True def start(self): if self.session.query(Family).count() == 0: msg = _('You must first add or import at least one Family into ' 'the database before you can add plants.') utils.message_dialog(msg) return