def extension_migrations_list(): ret = [] for extension_module in get_extension_modules(): migrations_dir = extension_migrations_dir(extension_module) if migrations_dir: ret.append(migrations_dir) return ret
def extension_migrations_list(): ret = [] for extension_module in get_extension_modules(): migrations_dir = get_extension_migrations_dir(extension_module) if os.path.exists(migrations_dir): ret.append(migrations_dir) return ret
def get_extension_mappings(object_type, related_type, related_ids): queries = [] for extension in get_extension_modules(): get_ids = getattr(extension, "contributed_get_ids_related_to", None) if callable(get_ids): queries.append(get_ids(object_type, related_type, related_ids)) return queries
def lookup_contributions(rolename): extension_modules = get_extension_modules() contributions = {} for extension_module in extension_modules: ext_contributions = getattr(extension_module, "ROLE_CONTRIBUTIONS", None) if ext_contributions: ext_role_contributions = ext_contributions.contributions_for(rolename) contribute_role_permissions(contributions, ext_role_contributions) return contributions
def lookup_role_implications(rolename, context_implication): extension_modules = get_extension_modules() role_implications = [] for extension_module in extension_modules: ext_implications = getattr(extension_module, "ROLE_IMPLICATIONS", None) if ext_implications: role_implications.extend( ext_implications.implications_for(rolename, context_implication)) return role_implications
def init_hooks(): """Initialize main and extensions related SQLAlchemy hooks.""" from ggrc.extensions import get_extension_modules from ggrc.models import hooks hooks.init_hooks() for extension_module in get_extension_modules(): ext_init_hooks = getattr(extension_module, 'init_hooks', None) if ext_init_hooks: ext_init_hooks()
def all_services(): from ggrc.extensions import get_extension_modules services = contributed_services() for extension_module in get_extension_modules(): contributions = getattr(extension_module, 'contributed_services', None) if contributions: if callable(contributions): contributions = contributions() services.extend(contributions) return services
def get_config_json(): """Get public app config""" with benchmark("Get config JSON"): public_config = dict(app.config.public_config) public_config.update(get_public_config()) for extension_module in get_extension_modules(): if hasattr(extension_module, 'get_public_config'): public_config.update( extension_module.get_public_config(get_current_user())) return json.dumps(public_config)
def all_object_views(): """Gets all object views defined in the application""" views = contributed_object_views() for extension_module in get_extension_modules(): contributions = getattr(extension_module, "contributed_object_views", None) if contributions: if callable(contributions): contributions = contributions() views.extend(contributions) return views
def lookup_declarations(declarations={}): if len(declarations) == 0: extension_modules = get_extension_modules() for extension_module in extension_modules: ext_declarations = getattr(extension_module, "ROLE_DECLARATIONS", None) if ext_declarations: declarations.update(ext_declarations.roles()) if len(declarations) == 0: declarations[None] = None if None in declarations: return {} else: return declarations
def init_all_views(app_): """Inits all views defined in the core module and submodules""" for entry in all_object_views(): entry.service_class.add_to(app_, '/{0}'.format(entry.url), entry.model_class, decorators=(login_required, )) init_extra_views(app_) for extension_module in get_extension_modules(): ext_extra_views = getattr(extension_module, "init_extra_views", None) if ext_extra_views: ext_extra_views(app_)
def all_services(): """Get services from all modules.""" from ggrc.extensions import get_extension_modules services = contributed_services() for extension_module in get_extension_modules(): contributions = getattr(extension_module, 'contributed_services', None) if contributions: if callable(contributions): contributions = contributions() services.extend(contributions) return services
def init_all_models(app): """Register all GGRC models services with the Flask application ``app``.""" from ggrc.extensions import get_extension_modules # Usually importing the module is enough, but just in case, also invoke # ``init_models`` init_models(app) for extension_module in get_extension_modules(): ext_init_models = getattr(extension_module, 'init_models', None) if ext_init_models: ext_init_models(app) init_hooks()
def init_all_views(app_): """Inits all views defined in the core module and submodules""" for entry in all_object_views(): entry.service_class.add_to( app_, '/{0}'.format(entry.url), entry.model_class, decorators=(login_required,) ) init_extra_views(app_) for extension_module in get_extension_modules(): ext_extra_views = getattr(extension_module, "init_extra_views", None) if ext_extra_views: ext_extra_views(app_)
def get_all_column_handlers(): """Search through all enabled modules for their contributed column handlers. Returns: extension_handlers (dict): dict of all extension handlers """ extension_handlers = GGRC_COLUMN_HANDLERS for extension_module in get_extension_modules(): contributed_handlers = getattr( extension_module, "contributed_column_handlers", None) if callable(contributed_handlers): extension_handlers.update(contributed_handlers()) elif isinstance(contributed_handlers, dict): extension_handlers.update(contributed_handlers) return extension_handlers
def _get_types(attr): """Get contributed attribute types. Args: attr: String containing selected type. Either contributed_importables or contributed_exportables. """ res = {} for extension_module in get_extension_modules(): contributed = getattr(extension_module, attr, None) if callable(contributed): res.update(contributed()) elif isinstance(contributed, dict): res.update(contributed) return res
def get_extensions_column_handlers(): """Search through all enabled modules for their contributed column handlers. Returns: result_handlers (dict): dict of all extension handlers """ result_handlers = deepcopy(_COLUMN_HANDLERS) for extension_module in get_extension_modules(): extension_handlers = getattr(extension_module, EXTENSION_HANDLERS_ATTR, None) if callable(extension_handlers): extension_handlers = extension_handlers() if isinstance(extension_handlers, dict): for key, value_dict in extension_handlers.iteritems(): result_handlers[key] = result_handlers.get(key, {}) result_handlers[key].update(value_dict) return result_handlers
def get_extensions_column_handlers(): """Search through all enabled modules for their contributed column handlers. Returns: result_handlers (dict): dict of all extension handlers """ result_handlers = deepcopy(_COLUMN_HANDLERS) for extension_module in get_extension_modules(): extension_handlers = getattr( extension_module, EXTENSION_HANDLERS_ATTR, None) if callable(extension_handlers): extension_handlers = extension_handlers() if isinstance(extension_handlers, dict): for key, value_dict in extension_handlers.iteritems(): result_handlers[key] = result_handlers.get(key, {}) result_handlers[key].update(value_dict) return result_handlers
def init_all_services(app): """Register all GGRC REST services with the Flask application ``app``.""" from ggrc.extensions import get_extension_modules from ggrc.login import login_required for entry in all_services(): entry.service_class.add_to( app, '/api/{0}'.format(entry.name), entry.model_class, decorators=(login_required,), ) init_extra_services(app) for extension_module in get_extension_modules(): ext_extra_services = getattr(extension_module, 'init_extra_services', None) if ext_extra_services: ext_extra_services(app)
def init_extension_blueprints(app_): for extension_module in extensions.get_extension_modules(): if hasattr(extension_module, 'blueprint'): app_.register_blueprint(extension_module.blueprint)