def get_user_admin_link(request: Request, resource: admins.UserAccountAdmin.Resource): """Get link to a user admin show view from the user owned account.""" user_account = resource.get_object() user = user_account.user admin = resource.get_admin() return get_admin_url_for_sqlalchemy_object(admin, user, "show")
def _get_user_navigate_target(view: CSVListing, column: listing.Column, obj: User) -> str: """Return the admin url to an User object. :param view: Current view. :param column: Listing Column :param obj: User object. :return: Admin url to the User object. """ request = view.request admin = request.admin return get_admin_url_for_sqlalchemy_object(admin, obj)
def user_admin_panel(context, request, **kwargs): """Admin panel for Users.""" dbsession = request.dbsession model_admin = context admin = model_admin.get_admin() model = model_admin.get_model() title = model_admin.title count = dbsession.query(model).count() latest_user = dbsession.query(model).order_by(model.id.desc()).first() latest_user_url = get_admin_url_for_sqlalchemy_object(admin, latest_user) return dict(locals(), **kwargs)
def user_admin_panel(context: UserAdmin, request: Request, **kwargs) -> dict: """Admin panel for Users. :param context: Model admin. :param request: Pyramid request. :param kwargs: Additional context to be passed to the panel. :return: Context for template rendering. """ dbsession = request.dbsession model_admin = context admin = model_admin.get_admin() model = model_admin.get_model() title = model_admin.title count = dbsession.query(model).count() latest_user = dbsession.query(model).order_by(model.id.desc()).first() latest_user_url = get_admin_url_for_sqlalchemy_object(admin, latest_user) return dict(locals(), **kwargs)
def admin_url(jinja_ctx, model_instance, *elements, **kw): """Link to model in admin interface. Takes an :term:`SQLAlchemy` model instance as a filter argument and resolves its admin page. This requires that a model admin has been correctly registered for SQLAlchemy model. Example: .. code-block:: html+jinja {% if request.user and request.user.is_admin %} <li> <a class="btn btn-danger" href="{{ choice|admin_url("edit") }}"> Edit in admin </a> </li> {% endif %} Another example: .. code-block:: html+jinja <li> <a class="btn btn-danger" href="{{ choice|admin_url }}"> View in admin </a> </li> """ request = jinja_ctx.get('request') if not request: raise RuntimeError("Not rendered with request") if elements: view_name = elements[0] else: view_name = None link = get_admin_url_for_sqlalchemy_object(request.admin, model_instance, view_name=view_name) return link
def _get_user_navigate_target(view, column, obj): request = view.request admin = request.admin return get_admin_url_for_sqlalchemy_object(admin, obj)