def _add_modul(config, actions, dbsession): """Method to add the modul entries for the extension in the database. This includes a entry in the modules table and the configured actions. :config: Extension configuration as a dictionary :actions: List of ActionItems :dbsession: Database session """ # Set defaults name = config.get("name") clazzpath = config.get("clazzpath") str_repr = config.get("str_repr") or "%s|id" display = config.get("display") or "hidden" label = config.get("label") or name label_plural = config.get("label_plural") or label # Add modul modul = ModulItem(name=name) modul.clazzpath = clazzpath modul.label = label modul.str_repr = str_repr modul.label_plural = label_plural modul.display = display # Configure actions modul = _configure_actions(modul, config, actions, dbsession) dbsession.add(modul) dbsession.flush() transaction.commit() log.debug("Adding new modul '%s'" % name) return modul