Admin

Admin.

class controller.sentry.admin.AppAdmin(model, admin_site)[source]

Bases: ProjectLinkMixin, AdminConfirmMixin, ActionFormMixin, DjangoObjectActions, DynamicArrayMixin, ModelAdmin

App Admin.

actions: Optional[List[str]] = ['bump_sample_rate']
bump_sample_rate(request: HttpRequest, queryset: QuerySet[App], form: BumpForm = None) None[source]

This method is responsible for the bump sample rate action.

Parameters:
  • request (HttpRequest) – The request

  • queryset (QuerySet[App]) – The Apps to change

  • form (BumpForm) – The form

change_actions = ['bump_sample_rate', 'enable_disable_metrics']
changelist_actions = ['panic', 'unpanic']
enable_disable_metrics(request: HttpRequest, queryset: QuerySet[App], form: MetricForm = None) None[source]

This method is responsible for the enable/disable metrics action.

Parameters:
  • request (HttpRequest) – The request

  • queryset (QuerySet[App]) – The Apps to change

  • form (MetricForm) – The form

formfield_overrides = {<class 'django.db.models.JSONField'>: {'widget': <django_json_widget.widgets.JSONEditorWidget object>}}
get_active_status(obj: App) str[source]

This method return the status of the app based on last_seen.

Parameters:

obj (App) – The app

Returns:

is active

Return type:

bool

get_change_actions(request: HttpRequest, object_id: str, form_url: Optional[str]) list[str][source]

This method return allowed change actions.

Parameters:
  • request (HttpRequest) – The request

  • object_id (str) – The App reference

  • form_url (Optional[str]) – The form_url

Returns:

All possible actions

Return type:

list[str]

get_changelist_actions(request: HttpRequest) list[str][source]

This method return allowed changelist actions.

Parameters:

request (HttpRequest) – The request

Returns:

All possible actions

Return type:

list[str]

get_event_status(obj: App) str[source]

This method return a pretty event status html string.

Parameters:

obj (App) – The app

Returns:

The pretty status

Return type:

str

has_bump_sample_rate_permission(request: HttpRequest) bool[source]

This method return True if the user have the permission for bump sample rate action.

Parameters:

request (HttpRequest) – The request

Returns:

Is allowed

Return type:

bool

has_enable_disable_metrics_permission(request: HttpRequest) bool[source]

This method return True if the user have the permission for enable/disable metrics action.

Parameters:

request (HttpRequest) – The request

Returns:

Is allowed

Return type:

bool

has_panic_permission(request: HttpRequest) bool[source]

This method return True if the user have the permission for panic action.

Parameters:

request (HttpRequest) – The request

Returns:

Is allowed

Return type:

bool

has_unpanic_permission(request: HttpRequest) bool[source]

This method return True if the user have the permission for unpanic action.

Parameters:

request (HttpRequest) – The request

Returns:

Is allowed

Return type:

bool

inlines = [<class 'controller.sentry.inlines.AppEventInline'>]
list_display = ['reference', 'get_event_status', 'get_project', 'get_active_status', 'default_sample_rate', 'active_sample_rate', 'active_window_end', 'wsgi_collect_metrics', 'celery_collect_metrics']
list_filter = ['env', 'command', <class 'controller.sentry.filters.IsSpammingListFilter'>]
property media
ordering = ['reference', 'project__sentry_project_slug', 'env', 'command']
panic(request: HttpRequest, queryset: QuerySet[App]) None[source]

This method activate the panic mode.

Parameters:
  • request (HttpRequest) – The request

  • queryset (QuerySet[App]) – All the Apps (unused)

read_only_fields = ['last_seen']
save_model(request: HttpRequest, obj: App, form: ModelForm, change: bool) None[source]

This method is responsible to save app in the admin.

Parameters:
  • request (HttpRequest) – The request

  • obj (App) – The app to save

  • form (ModelForm) – form

  • change (bool) – change

search_fields = ['reference', 'project__sentry_project_slug', 'env', 'command']
unpanic(request: HttpRequest, queryset: QuerySet[App]) None[source]

This method deactivate the panic mode.

Parameters:
  • request (HttpRequest) – The request

  • queryset (QuerySet[App]) – All the Apps (unused)

class controller.sentry.admin.EventAdmin(model, admin_site)[source]

Bases: ProjectLinkMixin, AdminConfirmMixin, ActionFormMixin, DjangoObjectActions, DynamicArrayMixin, PrettyTypeMixin, ModelAdmin

Event Admin.

formfield_overrides = {<class 'django.db.models.JSONField'>: {'widget': <django_json_widget.widgets.JSONEditorWidget object>}}
list_display = ['reference', 'pretty_type', 'timestamp', 'get_project']
property media
ordering = ['reference', 'type', 'project__sentry_project_slug']
search_fields = ['reference', 'type', 'project__sentry_project_slug']
class controller.sentry.admin.ProjectAdmin(model, admin_site)[source]

Bases: ChartMixin, DynamicArrayMixin, ModelAdmin

Project Admin.

formfield_overrides = {<class 'django.db.models.JSONField'>: {'widget': <django_json_widget.widgets.JSONEditorWidget object>}}
get_chart_data(sentry_id)[source]

This method return the chart data.

Parameters:

sentry_id (str) – sentry id

Returns:

tuple of data and options

Return type:

Optional[Tuple[dict, dict]]

inlines = [<class 'controller.sentry.inlines.ProjectEventInline'>]
list_display = ['sentry_id', 'sentry_project_slug']
property media
ordering = ['sentry_id', 'sentry_project_slug']
save_model(request: HttpRequest, obj: Project, form: ModelForm[Project], change: dict) None[source]

This method is responsible to save project in the admin.

We hook into it to start a perform_detect task

Parameters:
  • request (HttpRequest) – The request

  • obj (Project) – The app to save

  • form (ModelForm[Project]) – form

  • change (bool) – change

search_fields = ['sentry_id', 'sentry_project_slug']