core -the core Django app

Submodules

core.admin module

Customize django-admin interface.

class core.admin.AccountAliasMappingAdmin(model, admin_site)

Bases: core.admin.ClassificationAdmin

ModelAdmin for AccountAlias.

change_list_template = 'core/admin/accountaliasmapping/change_list.html'
changelist_view(*args, **kwargs)

Override changelist_view adding form to context.

get_urls()

Override get_urls adding upload_url path.

list_display = ('main_account_number', 'activity_number', 'alias')
property media
upload_csv(request)

Handle the uploaded CSV file.

property urls

Override get_urls adding upload_url path.

class core.admin.AccountAliasMappingCSVFileUploadForm(data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=<class 'django.forms.utils.ErrorList'>, label_suffix=None, empty_permitted=False, field_order=None, use_required_attribute=None, renderer=None)

Bases: django.forms.forms.Form

CSV Upload form for AccountAliasMappingAdmin.

Form fields:

  • csv_file: vælg venligst en fil (FileField)

property media

Return all media required to render the widgets on this form.

class core.admin.ActivityAdmin(model, admin_site)

Bases: django.contrib.admin.options.ModelAdmin

ModelAdmin for Activity.

account_alias(obj)

Get account alias.

account_number(obj)

Get account number.

property media
readonly_fields = ('account_number', 'account_alias')
class core.admin.ActivityCategoryAdmin(model, admin_site)

Bases: core.admin.ClassificationAdmin

ModelAdmin for ActivityCategory.

inlines = [<class 'core.admin.SectionInfoActivityCategoryInline'>]
list_display = ('category_id', 'name')
property media
class core.admin.ActivityDetailsAdmin(model, admin_site)

Bases: core.admin.ClassificationAdmin

Widgets: Filter_horizontal for many to many links, add search field.

exclude = ('supplementary_activity_for', 'main_activity_for', 'service_providers')
filter_horizontal = ('main_activities',)
inlines = (<class 'core.admin.SectionInfoInline'>, <class 'core.admin.SupplementaryActivityInline'>)
list_display = ('name', 'activity_id', 'active')
property media
search_fields = ('activity_id', 'name')
class core.admin.ActivityInline(parent_model, admin_site)

Bases: django.contrib.admin.options.TabularInline

ActivityInline for ServiceProviderAdmin.

extra = 0
has_add_permission(request, obj=None)

Override has_add_permission for InlineModelAdmin.

has_change_permission(request, obj=None)

Override has_change_permission for InlineModelAdmin.

has_delete_permission(request, obj=None)

Override has_delete_permission for InlineModelAdmin.

property media
model

alias of core.models.Activity

class core.admin.AppropriationAdmin(model, admin_site)

Bases: django.contrib.admin.options.ModelAdmin

ModelAdmin for Appropriation.

property media
class core.admin.ApprovalLevelAdmin(model, admin_site)

Bases: core.admin.ClassificationAdmin

ModelAdmin for ApprovalLevel.

list_display = ('name', 'active')
property media
class core.admin.CaseAdmin(model, admin_site)

Bases: django.contrib.admin.options.ModelAdmin

ModelAdmin for Case.

property media
class core.admin.ClassificationAdmin(model, admin_site)

Bases: django.contrib.admin.options.ModelAdmin

ModelAdmin for Classification models.

has_add_permission(request)

Override has_add_permission for ModelAdmin.

has_change_permission(request, obj=None)

Override has_change_permission for ModelAdmin.

has_delete_permission(request, obj=None)

Override has_delete_permission for ModelAdmin.

has_module_permission(request)

Override has_model_permission for ModelAdmin.

has_view_permission(request, obj=None)

Override has_view_permission for ModelAdmin.

property media
class core.admin.ClassificationInline(parent_model, admin_site)

Bases: django.contrib.admin.options.TabularInline

TabularInline for Classification inlines.

has_add_permission(request)

Override has_add_permission for InlineModelAdmin.

has_change_permission(request, obj=None)

Override has_change_permission for InlineModelAdmin.

has_delete_permission(request, obj=None)

Override has_delete_permission for InlineModelAdmin.

has_view_permission(request, obj=None)

Override has_view_permission for InlineModelAdmin.

property media
class core.admin.CustomUserAdmin(model, admin_site)

Bases: django.contrib.auth.admin.UserAdmin

Add team to user admin interface.

has_add_permission(request)

Override has_add_permission for ModelAdmin.

has_change_permission(request, obj=None)

Override has_change_permission for ModelAdmin.

has_delete_permission(request, obj=None)

Override has_delete_permission for ModelAdmin.

has_module_permission(request)

Override has_model_permission for ModelAdmin.

has_view_permission(request, obj=None)

Override has_view_permission for ModelAdmin.

property media
class core.admin.EffortAdmin(model, admin_site)

Bases: core.admin.ClassificationAdmin

ModelAdmin for Effort.

filter_horizontal = ('allowed_for_target_groups',)
list_display = ('name', 'active')
property media
class core.admin.EffortStepAdmin(model, admin_site)

Bases: core.admin.ClassificationAdmin

ModelAdmin for EffortStep.

inlines = (<class 'core.admin.SectionEffortStepProxyInline'>,)
list_display = ('name', 'list_sections', 'active')
list_sections(obj)

HTML list of sections for Django admin purposes.

property media
search_fields = ('name', 'number')
class core.admin.HistoricalRatePerDateInline(parent_model, admin_site)

Bases: core.admin.ClassificationInline

HistoricalRatePerDateInline for VariablerateAdmin.

can_delete = False
classes = ('collapse',)
exclude = ('history_change_reason',)
extra = 0
has_add_permission(request)

Override has_add_permission for HistoricalRatePerDateInline.

has_change_permission(request, obj=None)

Override has_change_permission for HistoricalRatePerDateInline.

property media
model

alias of core.proxies.HistoricalRatePerDateProxy

verbose_name = 'Historisk takst for datoer'
verbose_name_plural = 'Historiske takster for datoer'
class core.admin.InternalPaymentRecipientAdmin(model, admin_site)

Bases: core.admin.ClassificationAdmin

ModelAdmin for InternalPaymentRecipient.

list_display = ('name',)
property media
class core.admin.MainActivityDetailsInline(parent_model, admin_site)

Bases: core.admin.ClassificationInline

MainActivityDetailsInline for SectionAdmin.

extra = 0
property media
model

alias of core.models.SectionInfo

ordering = ('activity_details__name',)
verbose_name = 'Tilladt hovedydelse'
verbose_name_plural = 'Tilladte hovedydelser'
class core.admin.MunicipalityAdmin(model, admin_site)

Bases: core.admin.ClassificationAdmin

ModelAdmin for Municipality.

list_display = ('name', 'active')
property media
search_fields = ('name',)
class core.admin.PaymentAdmin(model, admin_site)

Bases: simple_history.admin.SimpleHistoryAdmin

ModelAdmin for Payment.

account_alias(obj)

Get account alias.

account_string(obj)

Get account string.

list_display = ('id', 'payment_id', 'account_string', 'date', 'paid', 'paid_date', 'payment_schedule_str')
list_filter = ('paid', 'payment_schedule__fictive', 'date', 'paid_date', 'payment_method', 'recipient_type')
property media
payment_id(obj)

Get payment ID from payment plan.

payment_schedule_str(obj)

Get related payment schedule link.

readonly_fields = ('payment_id', 'account_string', 'account_alias')
search_fields = ('payment_schedule__payment_id',)
class core.admin.PaymentDateExclusionAdmin(model, admin_site)

Bases: core.admin.ClassificationAdmin

ModelAdmin for PaymentDateExclusion.

list_display = ('date', 'weekday')
list_filter = (('date', <class 'django.contrib.admin.filters.DateFieldListFilter'>),)
property media
search_fields = ('date',)
weekday(obj)

Return translated weekday of date.

class core.admin.PaymentMethodDetails(model, admin_site)

Bases: django.contrib.admin.options.ModelAdmin

ModelAdmin for PaymentMethodDetails.

property media
class core.admin.PaymentScheduleAdmin(model, admin_site)

Bases: django.contrib.admin.options.ModelAdmin

Display read only fields on payment schedule.

account_alias(obj)

Get account alias.

account_string(obj)

Get account string.

list_display = ('id', 'payment_id', 'recipient_type', 'recipient_id', 'recipient_name', 'payment_frequency', 'payment_method', 'payment_type', 'payment_amount', 'account_string', 'fictive')
list_filter = ('payment_method', 'payment_type', 'payment_frequency', 'fictive')
property media
readonly_fields = ('payment_id', 'account_string', 'account_alias', 'price_per_unit')
search_fields = ('payment_id',)
class core.admin.PriceAdmin(model, admin_site)

Bases: core.admin.VariableRateAdmin

ModelAdmin for Price.

form

alias of core.admin.PriceForm

list_display = ('payment_schedule',)
property media
readonly_fields = ('payment_schedule',)
class core.admin.PriceForm(*args, **kwargs)

Bases: core.admin.VariableRateAdminForm

PriceForm for PriceAdmin.

property media

Return all media required to render the widgets on this form.

class core.admin.RateAdmin(model, admin_site)

Bases: core.admin.VariableRateAdmin

ModelAdmin for Rate.

exclude = ('needs_recalculation',)
form

alias of core.admin.RateForm

list_display = ('name', 'description')
property media
class core.admin.RateForm(*args, **kwargs)

Bases: core.admin.VariableRateAdminForm

RateForm for RateAdmin.

property media

Return all media required to render the widgets on this form.

class core.admin.RatePerDateInline(parent_model, admin_site)

Bases: core.admin.ClassificationInline

RatePerDateInline for VariablerateAdmin.

can_delete = False
extra = 0
has_add_permission(request)

Override has_add_permission for RatePerDateInline.

property media
model

alias of core.models.RatePerDate

readonly_fields = ['rate', 'start_date', 'end_date']
class core.admin.RelatedPersonAdmin(model, admin_site)

Bases: django.contrib.admin.options.ModelAdmin

ModelAdmin for RelatedPerson.

property media
class core.admin.SchoolDistrictAdmin(model, admin_site)

Bases: core.admin.ClassificationAdmin

ModelAdmin for SchoolDistrict.

list_display = ('name', 'active')
property media
class core.admin.SectionAdmin(model, admin_site)

Bases: core.admin.ClassificationAdmin

Add search field.

filter_horizontal = ('allowed_for_target_groups', 'allowed_for_steps')
inlines = (<class 'core.admin.MainActivityDetailsInline'>, <class 'core.admin.SupplementaryActivityDetailsInline'>)
list_display = ('paragraph', 'text', 'list_main_activity_for', 'list_supplementary_activity_for', 'active')
list_main_activity_for(obj)

HTML list of main activities for Django admin purposes.

list_supplementary_activity_for(obj)

HTML list of supplementary activities for Django admin purposes.

property media
search_fields = ('paragraph', 'text')
class core.admin.SectionEffortStepProxyInline(parent_model, admin_site)

Bases: core.admin.ClassificationInline

SectionEffortStepProxyInline for EffortStepAdmin.

extra = 0
property media
model

alias of core.proxies.SectionEffortStepProxy

verbose_name = 'Tilladt paragraf'
verbose_name_plural = 'Tilladte paragraffer'
class core.admin.SectionInfoActivityCategoryInline(parent_model, admin_site)

Bases: core.admin.ClassificationInline

SectionInfoInline for ActivityDetailsAdmin.

extra = 0
property media
model

alias of core.models.SectionInfo

class core.admin.SectionInfoAdmin(model, admin_site)

Bases: core.admin.ClassificationAdmin

ModelAdmin for SectionInfo.

list_display = ('activity_details', 'section', 'kle_number', 'activity_category')
property media
class core.admin.SectionInfoInline(parent_model, admin_site)

Bases: core.admin.ClassificationInline

SectionInfoInline for ActivityDetailsAdmin.

extra = 0
property media
model

alias of core.models.SectionInfo

verbose_name = 'Tilladt paragraf (for hovedydelse)'
verbose_name_plural = 'Tilladte paragraffer (for hovedydelse)'
class core.admin.ServiceProviderAdmin(model, admin_site)

Bases: core.admin.ClassificationAdmin

Add search fields.

inlines = [<class 'core.admin.ActivityInline'>]
list_display = ('name', 'cvr_number', 'active')
property media
search_fields = ('name', 'cvr_number')
class core.admin.SupplementaryActivityDetailsInline(parent_model, admin_site)

Bases: core.admin.ClassificationInline

SupplementaryActivityDetailsInline for SectionAdmin.

extra = 0
property media
model

alias of core.proxies.ActivityDetailsSectionProxy

ordering = ('activitydetails__name',)
verbose_name = 'Tilladt følgeudgift'
verbose_name_plural = 'Tilladte følgeudgifter'
class core.admin.SupplementaryActivityInline(parent_model, admin_site)

Bases: core.admin.ClassificationInline

SupplementaryActivityInline for ActivityDetailsAdmin.

extra = 0
property media
model

alias of core.proxies.ActivityDetailsSectionProxy

verbose_name = 'Tilladt paragraf (for følgeudgift)'
verbose_name_plural = 'Tilladte paragraffer (for følgeudgift)'
class core.admin.TargetGroupAdmin(model, admin_site)

Bases: core.admin.ClassificationAdmin

ModelAdmin for TargetGroup with custom ModelForm.

fields = ('name', 'required_fields_for_case', 'active')
form

alias of core.admin.TargetGroupForm

list_display = ('name', 'active')
property media
class core.admin.TargetGroupForm(*args, **kwargs)

Bases: django.forms.models.ModelForm

Form for TargetGroup to set required_fields_for_case.

__init__(*args, **kwargs)

__init__ for TargetGroupForm.

Set initial value for required_fields_for_case.

clean_required_fields_for_case()

Clean required_fields_for_case as comma-separated string.

property media

Return all media required to render the widgets on this form.

required_fields_for_case_choices()

Define the choices for the required_fields_for_case field.

class core.admin.TeamAdmin(model, admin_site)

Bases: core.admin.ClassificationAdmin

ModelAdmin for Team.

property media
class core.admin.VariableRateAdmin(model, admin_site)

Bases: core.admin.ClassificationAdmin

ModelAdmin for VariableRate subclasses.

form

alias of core.admin.VariableRateAdminForm

inlines = [<class 'core.admin.RatePerDateInline'>, <class 'core.admin.HistoricalRatePerDateInline'>]
property media
save_model(request, obj, form, change)

Override save_model to set rate after model save.

class core.admin.VariableRateAdminForm(*args, **kwargs)

Bases: django.forms.models.ModelForm

Form for handling the specifics of date dependency.

__init__(*args, **kwargs)

__init__ for VariableRateAdminForm.

Set initial value for rate and start_date.

property media

Return all media required to render the widgets on this form.

core.apps module

Core app configuration.

class core.apps.CoreConfig(app_name, app_module)

Bases: django.apps.config.AppConfig

The core Django app.

name = 'core'
ready()

Defer import of signals until ready.

core.authentication module

Classes for handling CSRF authentication.

class core.authentication.CsrfExemptSessionAuthentication

Bases: rest_framework.authentication.SessionAuthentication

Override standard session to exempt request from CSRF validation.

This is OK from a security perspective since a new SAML token is issued with each API request.

enforce_csrf(request)

Override this function to do nothing.

core.filters module

Filters and filtersets for filtering in REST API.

Filters allow us to do basic search for objects on allowed field without adding the complexity of an entire search engine nor of custom queries.

class core.filters.ActivityFilter(data=None, queryset=None, *, relationship=None, **kwargs)

Bases: rest_framework_filters.filterset.FilterSet

Filter activities on status.

auto_filters = {}
base_filters = {'status': <django_filters.filters.ChoiceFilter object>}
declared_filters = {}
related_filters = {}
class core.filters.AllowedForStepsFilter(data=None, queryset=None, *, relationship=None, **kwargs)

Bases: rest_framework_filters.filterset.FilterSet

Filter sections on allowed effort steps.

auto_filters = {}
base_filters = {'active': <django_filters.rest_framework.filters.BooleanFilter object>, 'allowed_for_steps': <django_filters.filters.NumberFilter object>, 'allowed_for_target_groups': <django_filters.filters.ModelMultipleChoiceFilter object>, 'law_text_name': <django_filters.filters.CharFilter object>, 'paragraph': <django_filters.filters.CharFilter object>, 'text': <django_filters.filters.CharFilter object>}
declared_filters = {'allowed_for_steps': <django_filters.filters.NumberFilter object>}
filter_allowed_for_steps(qs, name, value)

Filter on “allowed_for_steps” relation.

related_filters = {}
class core.filters.AppropriationFilter(data=None, queryset=None, *, relationship=None, **kwargs)

Bases: rest_framework_filters.filterset.FilterSet

Filter appropriation.

auto_filters = {}
base_filters = {'case': <rest_framework_filters.filters.RelatedFilter object>, 'created': <django_filters.filters.IsoDateTimeFilter object>, 'main_activity__details__id': <django_filters.filters.NumberFilter object>, 'modified': <django_filters.filters.IsoDateTimeFilter object>, 'note': <django_filters.filters.CharFilter object>, 'sbsys_id': <django_filters.filters.CharFilter object>, 'section': <django_filters.filters.ModelChoiceFilter object>, 'user_created': <django_filters.filters.CharFilter object>, 'user_modified': <django_filters.filters.CharFilter object>}
declared_filters = {'case': <rest_framework_filters.filters.RelatedFilter object>, 'main_activity__details__id': <django_filters.filters.NumberFilter object>}
related_filters = {'case': <rest_framework_filters.filters.RelatedFilter object>}
class core.filters.CaseFilter(data=None, queryset=None, *, relationship=None, **kwargs)

Bases: rest_framework_filters.filterset.FilterSet

Filter cases on the “expired” field.

auto_filters = {}
base_filters = {'acting_municipality': <django_filters.filters.ModelChoiceFilter object>, 'assessment_comment': <django_filters.filters.CharFilter object>, 'case_worker': <rest_framework_filters.filters.RelatedFilter object>, 'cpr_number': <django_filters.filters.CharFilter object>, 'created': <django_filters.filters.IsoDateTimeFilter object>, 'district': <django_filters.filters.ModelChoiceFilter object>, 'effort_step': <django_filters.filters.ModelChoiceFilter object>, 'efforts': <django_filters.filters.ModelMultipleChoiceFilter object>, 'expired': <django_filters.rest_framework.filters.BooleanFilter object>, 'modified': <django_filters.filters.IsoDateTimeFilter object>, 'name': <django_filters.filters.CharFilter object>, 'note': <django_filters.filters.CharFilter object>, 'paying_municipality': <django_filters.filters.ModelChoiceFilter object>, 'residence_municipality': <django_filters.filters.ModelChoiceFilter object>, 'sbsys_id': <django_filters.filters.CharFilter object>, 'scaling_step': <django_filters.filters.ChoiceFilter object>, 'target_group': <django_filters.filters.ModelChoiceFilter object>, 'user_created': <django_filters.filters.CharFilter object>, 'user_modified': <django_filters.filters.CharFilter object>}
declared_filters = {'case_worker': <rest_framework_filters.filters.RelatedFilter object>, 'expired': <django_filters.rest_framework.filters.BooleanFilter object>}
filter_expired(queryset, name, value)

Filter out cases according to value.

related_filters = {'case_worker': <rest_framework_filters.filters.RelatedFilter object>}
class core.filters.CaseForAppropriationFilter(data=None, queryset=None, *, relationship=None, **kwargs)

Bases: rest_framework_filters.filterset.FilterSet

Filter cases on CPR number, team and case_worker.

auto_filters = {}
base_filters = {'case_worker': <django_filters.filters.ModelChoiceFilter object>, 'case_worker__team': <django_filters.filters.ModelChoiceFilter object>, 'cpr_number': <django_filters.filters.CharFilter object>, 'sbsys_id': <django_filters.filters.CharFilter object>}
declared_filters = {}
related_filters = {}
class core.filters.CaseForPaymentFilter(data=None, queryset=None, *, relationship=None, **kwargs)

Bases: rest_framework_filters.filterset.FilterSet

Filter cases on CPR number.

auto_filters = {}
base_filters = {'cpr_number': <django_filters.filters.CharFilter object>}
declared_filters = {}
related_filters = {}
class core.filters.PaymentFilter(data=None, queryset=None, *, relationship=None, **kwargs)

Bases: rest_framework_filters.filterset.FilterSet

Filter payments on payment plan, activity, case, dates, etc.

auto_filters = {}
base_filters = {'activity': <rest_framework_filters.filters.RelatedFilter object>, 'amount': <django_filters.filters.NumberFilter object>, 'case': <rest_framework_filters.filters.RelatedFilter object>, 'date': <django_filters.filters.DateFilter object>, 'date__gte': <django_filters.filters.DateFilter object>, 'date__lte': <django_filters.filters.DateFilter object>, 'date_month': <django_filters.filters.ChoiceFilter object>, 'date_week': <django_filters.filters.ChoiceFilter object>, 'date_year': <django_filters.filters.ChoiceFilter object>, 'note': <django_filters.filters.CharFilter object>, 'paid': <django_filters.rest_framework.filters.BooleanFilter object>, 'paid_amount': <django_filters.filters.NumberFilter object>, 'paid_date': <django_filters.filters.DateFilter object>, 'paid_date__gte': <django_filters.filters.DateFilter object>, 'paid_date__lte': <django_filters.filters.DateFilter object>, 'paid_date_or_date__gte': <django_filters.filters.DateFilter object>, 'paid_date_or_date__lte': <django_filters.filters.DateFilter object>, 'paid_date_or_date_month': <django_filters.filters.ChoiceFilter object>, 'paid_date_or_date_week': <django_filters.filters.ChoiceFilter object>, 'paid_date_or_date_year': <django_filters.filters.ChoiceFilter object>, 'payment_method': <django_filters.filters.ChoiceFilter object>, 'payment_schedule': <rest_framework_filters.filters.RelatedFilter object>, 'recipient_id': <django_filters.filters.CharFilter object>, 'recipient_name': <django_filters.filters.CharFilter object>, 'recipient_type': <django_filters.filters.ChoiceFilter object>, 'saved_account_alias': <django_filters.filters.CharFilter object>, 'saved_account_string': <django_filters.filters.CharFilter object>}
declared_filters = {'activity': <rest_framework_filters.filters.RelatedFilter object>, 'case': <rest_framework_filters.filters.RelatedFilter object>, 'date__gte': <django_filters.filters.DateFilter object>, 'date__lte': <django_filters.filters.DateFilter object>, 'date_month': <django_filters.filters.ChoiceFilter object>, 'date_week': <django_filters.filters.ChoiceFilter object>, 'date_year': <django_filters.filters.ChoiceFilter object>, 'paid_date__gte': <django_filters.filters.DateFilter object>, 'paid_date__lte': <django_filters.filters.DateFilter object>, 'paid_date_or_date__gte': <django_filters.filters.DateFilter object>, 'paid_date_or_date__lte': <django_filters.filters.DateFilter object>, 'paid_date_or_date_month': <django_filters.filters.ChoiceFilter object>, 'paid_date_or_date_week': <django_filters.filters.ChoiceFilter object>, 'paid_date_or_date_year': <django_filters.filters.ChoiceFilter object>, 'payment_schedule': <rest_framework_filters.filters.RelatedFilter object>}
filter_date_month(queryset, name, value)

Filter date on previous, current, next month.

filter_date_week(queryset, name, value)

Filter date on previous, current, next week.

filter_date_year(queryset, name, value)

Filter date on previous, current, next year.

filter_paid_date_or_date_gte(queryset, name, value)

Filter on value <= “best known payment date”.

filter_paid_date_or_date_lte(queryset, name, value)

Filter on value >= “best known payment date”.

filter_paid_date_or_date_month(queryset, name, value)

Filter best known payment date on previous, current, next month.

filter_paid_date_or_date_week(queryset, name, value)

Filter best known payment date on previous, current, next week.

filter_paid_date_or_date_year(queryset, name, value)

Filter best known payment date on previous, current, next year.

generic_time_choices = (('previous', 'Forrige'), ('current', 'Nuværende'), ('next', 'Næste'))
related_filters = {'activity': <rest_framework_filters.filters.RelatedFilter object>, 'case': <rest_framework_filters.filters.RelatedFilter object>, 'payment_schedule': <rest_framework_filters.filters.RelatedFilter object>}
class core.filters.PaymentScheduleFilter(data=None, queryset=None, *, relationship=None, **kwargs)

Bases: rest_framework_filters.filterset.FilterSet

Filter payment plans on ID.

auto_filters = {}
base_filters = {'payment_id': <django_filters.filters.NumberFilter object>}
declared_filters = {}
related_filters = {}
class core.filters.UserForCaseFilter(data=None, queryset=None, *, relationship=None, **kwargs)

Bases: rest_framework_filters.filterset.FilterSet

Filter cases on case worker team.

auto_filters = {}
base_filters = {'team': <django_filters.filters.ModelChoiceFilter object>}
declared_filters = {}
related_filters = {}

core.managers module

Custom query set managers.

class core.managers.ActivityQuerySet(model=None, query=None, using=None, hints=None)

Bases: django.db.models.query.QuerySet

QuerySet and Manager for the Activity model.

expired()

Only include expired activities.

ongoing()

Only include ongoing, i.e. non-expired Activities.

class core.managers.AppropriationQuerySet(model=None, query=None, using=None, hints=None)

Bases: django.db.models.query.QuerySet

QuerySet and Manager for the Appropriation model.

annotate_main_activity_details_id()

Annotate the main_activity__details__id as a subquery.

expired()

Only include expired Appropriations.

ongoing()

Only include ongoing, i.e. non-expired Appropriations.

class core.managers.CaseQuerySet(model=None, query=None, using=None, hints=None)

Bases: django.db.models.query.QuerySet

Distinguish between expired and ongoing cases.

expected_cases_for_report_list()

Filter cases for a report of granted AND expected cases.

expired()

Only include expired Cases.

ongoing()

Only include ongoing, i.e. non-expired Cases.

class core.managers.PaymentQuerySet(model=None, query=None, using=None, hints=None)

Bases: django.db.models.query.QuerySet

Handle payments properly - some are paid and others are not.

In general we should use the scheduled day and amount for unpaid payments and the paid date and paid amount for paid ones.

amount_case = <Case: CASE WHEN <Q: (AND: ('paid_amount__isnull', False))> THEN F(paid_amount), WHEN <Q: (AND: ('amount__isnull', False))> THEN F(amount), ELSE F(amount)>
amount_sum()

Sum over Payments with paid_amount overruling amount.

annotate_paid_date_or_date()

Annotate all payments with paid date or payment date.

expected_payments_for_report_list()

Filter payments for a report of granted AND expected payments.

granted_payments_for_report_list()

Filter payments for a report of only granted payments.

group_by_monthly_amounts()

Group by monthly amounts.

The output will look like this:

[
    {'date_month': '2019-07', 'amount': Decimal('3000.00')},
    {'date_month': '2019-08', 'amount': Decimal('1500.00')}
]
in_year(year=None)

Filter payments for a year.

paid_date_or_date_case = <Case: CASE WHEN <Q: (AND: ('paid_date__isnull', False))> THEN F(paid_date), WHEN <Q: (AND: ('date__isnull', False))> THEN F(date), ELSE F(date)>
paid_date_or_date_gte(date)

Return all payments with paid date or payment date >= date.

paid_date_or_date_lte(date)

Return all payments with paid date or payment date <= date.

strict_amount_sum()

Sum over Payments amount.

core.mixins module

Mixins to use in view classes.

class core.mixins.AuditMixin

Bases: object

Allow audit logging by intercepting all API requests.

finalize_response(request, response, *args, **kwargs)

Perform logging and continue normal operations.

log_methods = ('post', 'put', 'patch', 'delete')
logger = <Logger bevillingsplatform.audit (INFO)>
class core.mixins.AuditModelMixin(*args, **kwargs)

Bases: django.db.models.base.Model

Mixin for tracking created/modified datetime and user.

Parameters
  • created (DateTimeField) – Oprettet

  • modified (DateTimeField) – Modificeret

  • user_created (CharField) – Bruger der har oprettet

  • user_modified (CharField) – Bruger der har modificeret

created

Model field: oprettet

modified

Model field: modificeret

user_created

Model field: bruger der har oprettet

user_modified

Model field: bruger der har modificeret

class core.mixins.AuditModelViewSetMixin

Bases: object

Mixin for AuditModel Viewsets.

perform_create(serializer)

Set user_created on creation.

perform_update(serializer)

Set user_modified on modification.

class core.mixins.ClassificationViewSetMixin

Bases: object

Superclass for Classification Viewsets only exposing the active.

get_queryset()

Only expose active objects if user is not workflow or admin.

core.models module

These are the Django models, defining the database layout.

class core.models.AccountAliasMapping(*args, **kwargs)

Bases: django.db.models.base.Model

New version of the AccountAlias model.

Works as a lookup between the main_account and activity dimension strings and an alias.

Parameters
  • id (AutoField) – Id

  • main_account_number (CharField) – Hovedkontonummer. dimensionen ‘Hovedkonto’ i kontostrengen

  • activity_number (CharField) – Aktivitetsnummer. dimensionen ‘Aktivitet’ i kontostrengen

  • alias (CharField) – Kontoalias

exception DoesNotExist

Bases: django.core.exceptions.ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: django.core.exceptions.MultipleObjectsReturned

activity_number

Model field: aktivitetsnummer

alias

Model field: kontoalias

id

Model field: ID

main_account_number

Model field: hovedkontonummer

objects = <django.db.models.manager.Manager object>
class core.models.Activity(*args, **kwargs)

Bases: core.mixins.AuditModelMixin, django.db.models.base.Model

An activity is a specific service provided within an appropriation.

The details object contains the name, tolerance, etc. of the service.

Parameters
  • id (AutoField) – Id

  • created (DateTimeField) – Oprettet

  • modified (DateTimeField) – Modificeret

  • user_created (CharField) – Bruger der har oprettet

  • user_modified (CharField) – Bruger der har modificeret

  • details (ForeignKey to ActivityDetails) – Aktivitetsdetalje

  • status (CharField) – Status

  • approval_level (ForeignKey to ApprovalLevel) – Bevillingsniveau

  • approval_note (TextField) – Evt. bemærkning

  • approval_user (ForeignKey to User) – Bevilget af bruger

  • appropriation_date (DateField) – Bevillingsdato

  • start_date (DateField) – Startdato

  • end_date (DateField) – Slutdato

  • activity_type (CharField) – Type

  • modifies (ForeignKey to Activity) – Justeres af aktivitet

  • appropriation (ForeignKey to Appropriation) – Bevilling

  • service_provider (ForeignKey to ServiceProvider) – Leverandør

  • note (TextField) – Note

exception DoesNotExist

Bases: django.core.exceptions.ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: django.core.exceptions.MultipleObjectsReturned

property account_alias

Calculate the new account_alias to use with this activity.

property account_number

Calculate the account_number_new to use with this activity.

property activity_category

Get the activity category of this activity.

activity_type

Model field: type

property applicable_payments

Return payments that are not overruled by expected payments.

appropriation

Model field: bevilling, accesses the Appropriation model.

appropriation_date

Model field: bevillingsdato

appropriation_id

Model field: bevilling

approval_level

Model field: bevillingsniveau, accesses the ApprovalLevel model.

approval_level_id

Model field: bevillingsniveau

approval_note

Model field: evt. bemærkning

approval_user

Model field: bevilget af bruger, accesses the User model.

approval_user_id

Model field: bevilget af bruger

details

Model field: aktivitetsdetalje, accesses the ActivityDetails model.

details_id

Model field: aktivitetsdetalje

end_date

Model field: slutdato

get_activity_type_display(*, field=<django.db.models.fields.CharField: activity_type>)

Autogenerated: Shows the label of the activity_type

get_all_modified_by_activities()

Retrieve all modified_by objects recursively.

As the Django ORM doesn’t handle recursive objects and Python is slow, we can use a “WITH RECURSIVE” query in SQL to fetch the objects: https://www.postgresql.org/docs/current/queries-with.html

get_status_display(*, field=<django.db.models.fields.CharField: status>)

Autogenerated: Shows the label of the status

grant(approval_level, approval_note, approval_user)

Grant this activity - update payment info as needed.

id

Model field: ID

is_valid_activity_start_date()

Determine if a date is valid for a activity start_date.

modified_by

Model field: justeres af aktivitet, accesses the M2M Activity model.

modifies

Model field: justeres af aktivitet, accesses the Activity model.

modifies_id

Model field: justeres af aktivitet

property monthly_payment_plan

Calculate the payment plan for this activity, grouped by months.

note

Model field: note

objects = <django.db.models.manager.ManagerFromActivityQuerySet object>
payment_plan

Model field: aktivitet, accesses the PaymentSchedule model.

save(*args, **kwargs)

Save activity.

Also updates “modified” field on appropriation and payment_plan payments.

service_provider

Model field: leverandør, accesses the ServiceProvider model.

service_provider_id

Model field: leverandør

start_date

Model field: startdato

status

Model field: status

property total_cost

Calculate the total cost of this activity at all times.

property total_cost_full_year

Retrieve total amount expected for this year.

Extrapolate for the full year (January 1 - December 31).

total_cost_in_year(year=None)

Calculate total cost for a year for this activity.

total_expected_in_year(year=None)

Calculate total amount expected for a year.

As may be noted, this is redundant and identical to “total cost this year”. Maybe one of these functions should be removed, the redundancy is due to a desire for clarity as to what is returned in different contexts.

total_granted_in_year(year=None)

Calculate total amount granted on this activity for a year.

property triggers_payment_email

Decide if this activity triggers an email when saved.

validate_expected()

Validate this is a correct expected activity.

property vat_factor

Calculate the VAT factor for this activity.

class core.models.ActivityCategory(*args, **kwargs)

Bases: core.models.Classification

ActivityCategory associated with a SectionInfo (main_activity).

Parameters
  • id (AutoField) – Id

  • active (BooleanField) – Aktiv

  • category_id (CharField) – Kategori id

  • name (CharField) – Navn

exception DoesNotExist

Bases: django.core.exceptions.ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: django.core.exceptions.MultipleObjectsReturned

category_id

Model field: kategori ID

id

Model field: ID

name

Model field: navn

objects = <django.db.models.manager.Manager object>
section_infos

Model field: aktivitetskategori, accesses the M2M SectionInfo model.

class core.models.ActivityDetails(*args, **kwargs)

Bases: core.models.Classification

Class containing all types of activities offered.

Each type is associated with the legal sections for which it is allowed as well as the allowed main activitydetails and service providers.

Parameters
  • id (AutoField) – Id

  • active (BooleanField) – Aktiv

  • name (CharField) – Navn

  • description (TextField) – Beskrivelse

  • activity_id (CharField) – Aktivitets id

  • max_tolerance_in_percent (PositiveSmallIntegerField) – Max tolerance i procent

  • max_tolerance_in_dkk (PositiveIntegerField) – Max tolerance i dkk

  • main_activity_for (ManyToManyField) – Hovedaktivitet for paragraffer

  • supplementary_activity_for (ManyToManyField) – Følgeudgift for paragraffer

  • service_providers (ManyToManyField) – Leverandører

  • main_activities (ManyToManyField) – Hovedydelser. Denne aktivitetsdetalje kan være følgeudgift for disse hovedydelser.

exception DoesNotExist

Bases: django.core.exceptions.ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: django.core.exceptions.MultipleObjectsReturned

activity_id

Model field: aktivitets ID

activity_set

Model field: aktivitetsdetalje, accesses the M2M Activity model.

description

Model field: beskrivelse

id

Model field: ID

main_activities

Model field: hovedydelser, accesses the M2M ActivityDetails model.

main_activity_for

Model field: hovedaktivitet for paragraffer, accesses the M2M ActivityDetails model.

max_tolerance_in_dkk

Model field: max tolerance i DKK

max_tolerance_in_percent

Model field: max tolerance i procent

name

Model field: Navn

objects = <django.db.models.manager.Manager object>
sectioninfo_set

Model field: aktivitetsdetalje, accesses the M2M SectionInfo model.

service_providers

Model field: leverandører, accesses the M2M ActivityDetails model.

supplementary_activities

Model field: hovedydelser, accesses the M2M ActivityDetails model.

supplementary_activity_for

Model field: følgeudgift for paragraffer, accesses the M2M ActivityDetails model.

class core.models.Appropriation(*args, **kwargs)

Bases: core.mixins.AuditModelMixin, django.db.models.base.Model

An appropriation of funds in a Case - corresponds to a Sag in SBSYS.

Parameters
  • id (AutoField) – Id

  • created (DateTimeField) – Oprettet

  • modified (DateTimeField) – Modificeret

  • user_created (CharField) – Bruger der har oprettet

  • user_modified (CharField) – Bruger der har modificeret

  • sbsys_id (CharField) – Sbsys-id

  • section (ForeignKey to Section) – Paragraf

  • case (ForeignKey to Case) – Sag

  • note (TextField) – Supplerende oplysninger

exception DoesNotExist

Bases: django.core.exceptions.ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: django.core.exceptions.MultipleObjectsReturned

activities

Model field: bevilling, accesses the M2M Activity model.

case

Model field: sag, accesses the Case model.

case_id

Model field: sag

grant(activities, approval_level, approval_note, approval_user)

Grant all the given Activities.

property granted_from_date

Retrieve the start date of the main activity, if granted.

property granted_to_date

Retrieve the end date of the main activity, if granted.

id

Model field: ID

property main_activity

Return main activity, if any.

note

Model field: supplerende oplysninger

objects = <django.db.models.manager.ManagerFromAppropriationQuerySet object>
sbsys_id

Model field: SBSYS-ID

section

Model field: paragraf, accesses the Section model.

section_id

Model field: paragraf

property section_info

Return info for law section justifying this appropriation.

property status

Calculate appropriation status from status of activities.

property supplementary_activities

Return supplementary activities, if any.

total_expected_in_year(year=None)

Retrieve total amount expected in year for this Appropriation.

We take into account granted payments but overrule with expected amounts if they modify another activity.

total_granted_in_year(year=None)

Retrieve total amount granted in year for this Appropriation.

This includes both main and supplementary activities.

class core.models.ApprovalLevel(*args, **kwargs)

Bases: core.models.Classification

Organizational level on which an appropriation was approved.

Parameters
  • id (AutoField) – Id

  • active (BooleanField) – Aktiv

  • name (CharField) – Navn

exception DoesNotExist

Bases: django.core.exceptions.ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: django.core.exceptions.MultipleObjectsReturned

approved_activities

Model field: bevillingsniveau, accesses the M2M Activity model.

id

Model field: ID

name

Model field: navn

objects = <django.db.models.manager.Manager object>
class core.models.Case(*args, **kwargs)

Bases: core.mixins.AuditModelMixin, django.db.models.base.Model

A Case, covering one child - corresponding to a Hovedsag in SBSYS.

Parameters
  • id (AutoField) – Id

  • created (DateTimeField) – Oprettet

  • modified (DateTimeField) – Modificeret

  • user_created (CharField) – Bruger der har oprettet

  • user_modified (CharField) – Bruger der har modificeret

  • sbsys_id (CharField) – Sbsys-id

  • cpr_number (CharField) – Cpr-nummer

  • name (CharField) – Navn

  • case_worker (ForeignKey to User) – Sagsbehandler

  • district (ForeignKey to SchoolDistrict) – Skoledistrikt

  • paying_municipality (ForeignKey to Municipality) – Betalingskommune

  • acting_municipality (ForeignKey to Municipality) – Handlekommune

  • residence_municipality (ForeignKey to Municipality) – Bopælskommune

  • target_group (ForeignKey to TargetGroup) – Målgruppe

  • effort_step (ForeignKey to EffortStep) – Indsatstrappe

  • scaling_step (PositiveSmallIntegerField) – Skaleringstrappe

  • assessment_comment (TextField) – Supplerende oplysninger til vurdering

  • note (TextField) – Note

  • efforts (ManyToManyField) – Indsatser

exception DoesNotExist

Bases: django.core.exceptions.ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: django.core.exceptions.MultipleObjectsReturned

acting_municipality

Model field: handlekommune, accesses the Municipality model.

acting_municipality_id

Model field: handlekommune

appropriations

Model field: sag, accesses the M2M Appropriation model.

assessment_comment

Model field: supplerende oplysninger til vurdering

case_worker

Model field: sagsbehandler, accesses the User model.

case_worker_id

Model field: sagsbehandler

cpr_number

Model field: cpr-nummer

district

Model field: skoledistrikt, accesses the SchoolDistrict model.

district_id

Model field: skoledistrikt

effort_step

Model field: indsatstrappe, accesses the EffortStep model.

effort_step_id

Model field: indsatstrappe

efforts

Model field: indsatser, accesses the M2M Case model.

property expired

Determine if this case has expired.

A case is considered to be expired if all its associated activites have end date in the past. If it does not have any associated (non-deleted) activities, it is not considered to be expired.

get_scaling_step_display(*, field=<django.db.models.fields.PositiveSmallIntegerField: scaling_step>)

Autogenerated: Shows the label of the scaling_step

history = <simple_history.manager.HistoryManager object>
id

Model field: ID

name

Model field: navn

note

Model field: note

objects = <django.db.models.manager.ManagerFromCaseQuerySet object>
paying_municipality

Model field: betalingskommune, accesses the Municipality model.

paying_municipality_id

Model field: betalingskommune

related_persons

Model field: hovedsag, accesses the M2M RelatedPerson model.

residence_municipality

Model field: bopælskommune, accesses the Municipality model.

residence_municipality_id

Model field: bopælskommune

save_without_historical_record(*args, **kwargs)

Save model without saving a historical record

Make sure you know what you’re doing before you use this method.

sbsys_id

Model field: SBSYS-ID

scaling_step

Model field: skaleringstrappe

target_group

Model field: målgruppe, accesses the TargetGroup model.

target_group_id

Model field: målgruppe

class core.models.Classification(*args, **kwargs)

Bases: django.db.models.base.Model

Abstract base class for Classifications.

Parameters

active (BooleanField) – Aktiv

active

Model field: aktiv

class core.models.Effort(*args, **kwargs)

Bases: core.models.Classification

Effort for a Case.

Parameters
  • id (AutoField) – Id

  • active (BooleanField) – Aktiv

  • name (CharField) – Navn

  • description (CharField) – Beskrivelse

  • allowed_for_target_groups (ManyToManyField) – Målgrupper

exception DoesNotExist

Bases: django.core.exceptions.ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: django.core.exceptions.MultipleObjectsReturned

allowed_for_target_groups

Model field: målgrupper, accesses the M2M Effort model.

cases

Model field: indsatser, accesses the M2M Case model.

description

Model field: beskrivelse

id

Model field: ID

name

Model field: navn

objects = <django.db.models.manager.Manager object>
class core.models.EffortStep(*args, **kwargs)

Bases: core.models.Classification

Evaluation step for grading the effort deemed necessary in a Case.

Parameters
  • id (AutoField) – Id

  • active (BooleanField) – Aktiv

  • name (CharField) – Navn

  • number (PositiveIntegerField) – Nummer

exception DoesNotExist

Bases: django.core.exceptions.ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: django.core.exceptions.MultipleObjectsReturned

case_set

Model field: indsatstrappe, accesses the M2M Case model.

id

Model field: ID

name

Model field: navn

number

Model field: Nummer

objects = <django.db.models.manager.Manager object>
sections

Model field: trin i indsatstrappen, accesses the M2M Section model.

class core.models.HistoricalCase(id, created, modified, user_created, user_modified, scaling_step, assessment_comment, case_worker, effort_step, history_id, history_date, history_change_reason, history_type, history_user)

Bases: simple_history.models.HistoricalChanges, django.db.models.base.Model

Parameters
  • id (IntegerField) – Id

  • created (DateTimeField) – Oprettet

  • modified (DateTimeField) – Modificeret

  • user_created (CharField) – Bruger der har oprettet

  • user_modified (CharField) – Bruger der har modificeret

  • scaling_step (PositiveSmallIntegerField) – Skaleringstrappe

  • assessment_comment (TextField) – Supplerende oplysninger til vurdering

  • case_worker (ForeignKey to User) – Sagsbehandler

  • effort_step (ForeignKey to EffortStep) – Indsatstrappe

  • history_id (AutoField) – History id

  • history_date (DateTimeField) – History date

  • history_change_reason (CharField) – History change reason

  • history_type (CharField) – History type

  • history_user (ForeignKey to User) – History user

exception DoesNotExist

Bases: django.core.exceptions.ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: django.core.exceptions.MultipleObjectsReturned

assessment_comment

Model field: supplerende oplysninger til vurdering

case_worker

Model field: sagsbehandler, accesses the User model.

case_worker_id

Model field: sagsbehandler

created

Model field: oprettet

effort_step

Model field: indsatstrappe, accesses the EffortStep model.

effort_step_id

Model field: indsatstrappe

static get_default_history_user(instance)

Returns the user specified by get_user method for manually creating historical objects

get_history_type_display(*, field=<django.db.models.fields.CharField: history_type>)

Autogenerated: Shows the label of the history_type

get_next_by_history_date(*, field=<django.db.models.fields.DateTimeField: history_date>, is_next=True, **kwargs)

Autogenerated: Finds next instance based on history_date.

get_previous_by_history_date(*, field=<django.db.models.fields.DateTimeField: history_date>, is_next=False, **kwargs)

Autogenerated: Finds previous instance based on history_date.

get_scaling_step_display(*, field=<django.db.models.fields.PositiveSmallIntegerField: scaling_step>)

Autogenerated: Shows the label of the scaling_step

history_change_reason

Model field: history change reason

history_date

Model field: history date

history_id

Model field: history id

history_object
history_type

Model field: history type

history_user

Model field: history user, accesses the User model.

history_user_id

Model field: history user

id

Model field: ID

property instance
instance_type

alias of core.models.Case

modified

Model field: modificeret

property next_record

Get the next history record for the instance. None if last.

objects = <django.db.models.manager.Manager object>
property prev_record

Get the previous history record for the instance. None if first.

revert_url()

URL for this change in the default admin site.

scaling_step

Model field: skaleringstrappe

user_created

Model field: bruger der har oprettet

user_modified

Model field: bruger der har modificeret

class core.models.HistoricalPayment(id, paid_amount, paid, paid_date, saved_account_alias, history_id, history_date, history_change_reason, history_type, history_user)

Bases: simple_history.models.HistoricalChanges, django.db.models.base.Model

Parameters
  • id (IntegerField) – Id

  • paid_amount (DecimalField) – Betalt beløb

  • paid (BooleanField) – Betalt

  • paid_date (DateField) – Betalt på dato

  • saved_account_alias (CharField) – Gemt kontoalias

  • history_id (AutoField) – History id

  • history_date (DateTimeField) – History date

  • history_change_reason (CharField) – History change reason

  • history_type (CharField) – History type

  • history_user (ForeignKey to User) – History user

exception DoesNotExist

Bases: django.core.exceptions.ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: django.core.exceptions.MultipleObjectsReturned

static get_default_history_user(instance)

Returns the user specified by get_user method for manually creating historical objects

get_history_type_display(*, field=<django.db.models.fields.CharField: history_type>)

Autogenerated: Shows the label of the history_type

get_next_by_history_date(*, field=<django.db.models.fields.DateTimeField: history_date>, is_next=True, **kwargs)

Autogenerated: Finds next instance based on history_date.

get_previous_by_history_date(*, field=<django.db.models.fields.DateTimeField: history_date>, is_next=False, **kwargs)

Autogenerated: Finds previous instance based on history_date.

history_change_reason

Model field: history change reason

history_date

Model field: history date

history_id

Model field: history id

history_object
history_type

Model field: history type

history_user

Model field: history user, accesses the User model.

history_user_id

Model field: history user

id

Model field: ID

property instance
instance_type

alias of core.models.Payment

property next_record

Get the next history record for the instance. None if last.

objects = <django.db.models.manager.Manager object>
paid

Model field: betalt

paid_amount

Model field: betalt beløb

paid_date

Model field: betalt på dato

property prev_record

Get the previous history record for the instance. None if first.

revert_url()

URL for this change in the default admin site.

saved_account_alias

Model field: gemt kontoalias

class core.models.HistoricalRatePerDate(id, rate, start_date, end_date, changed_date, main_rate, changed_by, history_id, history_date, history_change_reason, history_type, history_user)

Bases: simple_history.models.HistoricalChanges, django.db.models.base.Model

Parameters
  • id (IntegerField) – Id

  • rate (DecimalField) – Takst

  • start_date (DateField) – Startdato

  • end_date (DateField) – Slutdato

  • changed_date (DateTimeField) – Changed date

  • main_rate (ForeignKey to VariableRate) – Main rate

  • changed_by (ForeignKey to User) – Ændret af

  • history_id (AutoField) – History id

  • history_date (DateTimeField) – Historik dato

  • history_change_reason (CharField) – History change reason

  • history_type (CharField) – Historik type

  • history_user (ForeignKey to User) – Historik bruger

exception DoesNotExist

Bases: django.core.exceptions.ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: django.core.exceptions.MultipleObjectsReturned

changed_by

Model field: Ændret af, accesses the User model.

changed_by_id

Model field: Ændret af

changed_date

Model field: changed date

end_date

Model field: slutdato

static get_default_history_user(instance)

Returns the user specified by get_user method for manually creating historical objects

get_history_type_display(*, field=<django.db.models.fields.CharField: history_type>)

Autogenerated: Shows the label of the history_type

get_next_by_history_date(*, field=<django.db.models.fields.DateTimeField: history_date>, is_next=True, **kwargs)

Autogenerated: Finds next instance based on history_date.

get_previous_by_history_date(*, field=<django.db.models.fields.DateTimeField: history_date>, is_next=False, **kwargs)

Autogenerated: Finds previous instance based on history_date.

history_change_reason

Model field: history change reason

history_date

Model field: historik dato

history_id

Model field: history id

history_object
history_type

Model field: historik type

history_user

Model field: historik bruger, accesses the User model.

history_user_id

Model field: historik bruger

id

Model field: ID

property instance
instance_type

alias of core.models.RatePerDate

main_rate

Model field: main rate, accesses the VariableRate model.

main_rate_id

Model field: main rate

property next_record

Get the next history record for the instance. None if last.

objects = <django.db.models.manager.Manager object>
property prev_record

Get the previous history record for the instance. None if first.

rate

Model field: takst

revert_url()

URL for this change in the default admin site.

start_date

Model field: startdato

class core.models.InternalPaymentRecipient(*args, **kwargs)

Bases: core.models.Classification

Recipient model for INTERNAL payment activities.

Parameters
  • id (AutoField) – Id

  • active (BooleanField) – Aktiv

  • name (CharField) – Navn

exception DoesNotExist

Bases: django.core.exceptions.ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: django.core.exceptions.MultipleObjectsReturned

id

Model field: ID

name

Model field: navn

objects = <django.db.models.manager.Manager object>
class core.models.Municipality(*args, **kwargs)

Bases: core.models.Classification

Represents a Danish municipality.

Parameters
  • id (AutoField) – Id

  • active (BooleanField) – Aktiv

  • name (CharField) – Navn

exception DoesNotExist

Bases: django.core.exceptions.ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: django.core.exceptions.MultipleObjectsReturned

acts_on

Model field: handlekommune, accesses the M2M Case model.

id

Model field: ID

name

Model field: navn

objects = <django.db.models.manager.Manager object>
pays_for

Model field: betalingskommune, accesses the M2M Case model.

resident_clients

Model field: bopælskommune, accesses the M2M Case model.

class core.models.Payment(*args, **kwargs)

Bases: django.db.models.base.Model

Represent an amount paid to a supplier - amount, recipient, date.

These may be entered manually, but ideally they should be imported from an accounts payable system.

Parameters
  • id (AutoField) – Id

  • date (DateField) – Betalingsdato

  • recipient_type (CharField) – Betalingsmodtager

  • recipient_id (CharField) – Id

  • recipient_name (CharField) – Navn

  • payment_method (CharField) – Betalingsmåde

  • amount (DecimalField) – Beløb

  • paid_amount (DecimalField) – Betalt beløb

  • paid (BooleanField) – Betalt

  • paid_date (DateField) – Betalt på dato

  • note (TextField) – Note

  • saved_account_string (CharField) – Gemt kontostreng

  • saved_account_alias (CharField) – Gemt kontoalias

  • payment_schedule (ForeignKey to PaymentSchedule) – Betalingsplan

exception DoesNotExist

Bases: django.core.exceptions.ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: django.core.exceptions.MultipleObjectsReturned

property account_alias

Return saved account alias if any, else calculate from schedule.

property account_string

Return saved account string if any, else calculate from schedule.

amount

Model field: beløb

date

Model field: betalingsdato

get_next_by_date(*, field=<django.db.models.fields.DateField: date>, is_next=True, **kwargs)

Autogenerated: Finds next instance based on date.

get_payment_method_display(*, field=<django.db.models.fields.CharField: payment_method>)

Autogenerated: Shows the label of the payment_method

get_previous_by_date(*, field=<django.db.models.fields.DateField: date>, is_next=False, **kwargs)

Autogenerated: Finds previous instance based on date.

get_recipient_type_display(*, field=<django.db.models.fields.CharField: recipient_type>)

Autogenerated: Shows the label of the recipient_type

history = <simple_history.manager.HistoryManager object>
id

Model field: ID

property is_payable_manually

Determine whether it is payable manually (in the frontend).

note

Model field: note

objects = <django.db.models.manager.ManagerFromPaymentQuerySet object>
paid

Model field: betalt

paid_amount

Model field: betalt beløb

paid_date

Model field: betalt på dato

payment_method

Model field: betalingsmåde

payment_schedule

Model field: betalingsplan, accesses the PaymentSchedule model.

payment_schedule_id

Model field: betalingsplan

recipient_id

Model field: ID

recipient_name

Model field: Navn

recipient_type

Model field: betalingsmodtager

save(*args, **kwargs)

Save this payment - validate payment method and completeness.

save_without_historical_record(*args, **kwargs)

Save model without saving a historical record

Make sure you know what you’re doing before you use this method.

saved_account_alias

Model field: gemt kontoalias

saved_account_string

Model field: gemt kontostreng

class core.models.PaymentDateExclusion(*args, **kwargs)

Bases: django.db.models.base.Model

Model for Prism payment exclusion dates.

Parameters
  • id (AutoField) – Id

  • date (DateField) – Dato

exception DoesNotExist

Bases: django.core.exceptions.ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: django.core.exceptions.MultipleObjectsReturned

date

Model field: dato

get_next_by_date(*, field=<django.db.models.fields.DateField: date>, is_next=True, **kwargs)

Autogenerated: Finds next instance based on date.

get_previous_by_date(*, field=<django.db.models.fields.DateField: date>, is_next=False, **kwargs)

Autogenerated: Finds previous instance based on date.

id

Model field: ID

objects = <django.db.models.manager.Manager object>
class core.models.PaymentMethodDetails(*args, **kwargs)

Bases: core.models.Classification

Contains extra information about a payment method.

Parameters
  • id (AutoField) – Id

  • active (BooleanField) – Aktiv

  • tax_card (CharField) – Skattekort

exception DoesNotExist

Bases: django.core.exceptions.ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: django.core.exceptions.MultipleObjectsReturned

get_tax_card_display(*, field=<django.db.models.fields.CharField: tax_card>)

Autogenerated: Shows the label of the tax_card

id

Model field: ID

objects = <django.db.models.manager.Manager object>
paymentschedule_set

Model field: betalingsmåde detalje, accesses the M2M PaymentSchedule model.

tax_card

Model field: skattekort

tax_card_choices = (('MAIN_CARD', 'Hovedkort'), ('SECONDARY_CARD', 'Bikort'))
class core.models.PaymentSchedule(*args, **kwargs)

Bases: django.db.models.base.Model

Schedule a payment for an Activity.

Parameters
  • id (AutoField) – Id

  • recipient_type (CharField) – Betalingsmodtager

  • recipient_id (CharField) – Id

  • recipient_name (CharField) – Navn

  • payment_method (CharField) – Betalingsmåde

  • payment_method_details (ForeignKey to PaymentMethodDetails) – Betalingsmåde detalje

  • activity (OneToOneField to Activity) – Aktivitet

  • payment_frequency (CharField) – Betalingsfrekvens

  • payment_date (DateField) – Betalingsdato. dette felt er obligatorisk for og angår kun engangsbetalinger

  • payment_day_of_month (IntegerField) – Betales d. dette felt er obligatorisk for og angår kun månedlige betalinger

  • payment_type (CharField) – Betalingstype

  • payment_units (DecimalField) – Betalingsenheder

  • payment_amount (DecimalField) – Beløb

  • fictive (BooleanField) – Fiktiv

  • payment_id (PositiveIntegerField) – Betalings-id

  • payment_cost_type (CharField) – Betalingspristype

  • payment_rate (ForeignKey to Rate) – Takst

BIWEEKLY = 'BIWEEKLY'
COMPANY = 'COMPANY'
DAILY = 'DAILY'
exception DoesNotExist

Bases: django.core.exceptions.ObjectDoesNotExist

FIXED_PRICE = 'FIXED'
GLOBAL_RATE_PRICE = 'GLOBAL_RATE'
INDIVIDUAL_PAYMENT = 'INDIVIDUAL_PAYMENT'
INTERNAL = 'INTERNAL'
MONTHLY = 'MONTHLY'
exception MultipleObjectsReturned

Bases: django.core.exceptions.MultipleObjectsReturned

ONE_TIME_PAYMENT = 'ONE_TIME_PAYMENT'
PERSON = 'PERSON'
PER_UNIT_PRICE = 'PER_UNIT'
RUNNING_PAYMENT = 'RUNNING_PAYMENT'
WEEKLY = 'WEEKLY'
property account_alias

Calculate account alias from activity.

property account_string

Calculate account string from activity.

activity

Model field: aktivitet, accesses the Activity model.

activity_id

Model field: aktivitet

calculate_per_payment_amount(vat_factor, date)

Calculate amount from payment type and units.

property can_be_paid

Determine whether payments on this schedule can be paid.

It is only allowed to pay payments associated with an approved activity, i.e. status GRANTED.

create_rrule(start, **kwargs)

Create a dateutil.rrule for this schedule specifically.

fictive

Model field: fiktiv

generate_payments(start, end=None, vat_factor=Decimal('100'))

Generate payments with a start and end date.

get_payment_cost_type_display(*, field=<django.db.models.fields.CharField: payment_cost_type>)

Autogenerated: Shows the label of the payment_cost_type

get_payment_frequency_display(*, field=<django.db.models.fields.CharField: payment_frequency>)

Autogenerated: Shows the label of the payment_frequency

get_payment_method_display(*, field=<django.db.models.fields.CharField: payment_method>)

Autogenerated: Shows the label of the payment_method

get_payment_type_display(*, field=<django.db.models.fields.CharField: payment_type>)

Autogenerated: Shows the label of the payment_type

get_recipient_type_display(*, field=<django.db.models.fields.CharField: recipient_type>)

Autogenerated: Shows the label of the recipient_type

id

Model field: ID

static is_payment_and_recipient_allowed(payment_method, recipient_type)

Determine if this combination of method and recipient is allowed.

is_ready_to_generate_payments()

Don’t generate payments unless object is ready.

Note: This is not a validation. It’s necessary because Django Rest Framework can perform partial saves and the post-save logic needs to be able to cope with that.

property next_payment

Return the next payment due starting from today, if any.

objects = <django.db.models.manager.Manager object>
payment_amount

Model field: beløb

payment_cost_choices = (('FIXED', 'fast beløb'), ('PER_UNIT', 'pris pr. enhed'), ('GLOBAL_RATE', 'takst'))
payment_cost_type

Model field: betalingspristype

payment_date

Model field: betalingsdato

payment_day_of_month

Model field: betales d.

payment_frequency

Model field: betalingsfrekvens

payment_frequency_choices = (('DAILY', 'Dagligt'), ('WEEKLY', 'Ugentligt'), ('BIWEEKLY', 'Hver 2. uge'), ('MONTHLY', 'Månedligt'))
payment_id

Model field: betalings-ID

payment_method

Model field: betalingsmåde

payment_method_details

Model field: betalingsmåde detalje, accesses the PaymentMethodDetails model.

payment_method_details_id

Model field: betalingsmåde detalje

payment_rate

Model field: takst, accesses the Rate model.

payment_rate_id

Model field: takst

payment_type

Model field: betalingstype

payment_type_choices = (('ONE_TIME_PAYMENT', 'Engangsudgift'), ('RUNNING_PAYMENT', 'Fast beløb, løbende'), ('INDIVIDUAL_PAYMENT', 'Individuel'))
payment_units

Model field: betalingsenheder

payments

Model field: betalingsplan, accesses the M2M Payment model.

property per_payment_amount

Amount per payment calculated w/ payment cost type.

price_per_unit

Model field: betalingsplan, accesses the Price model.

property rate_or_price_amount

Fetch current rate or per unit price amounts.

recalculate_prices()

Recalculate price on all payments.

recipient_choices = (('INTERNAL', 'Intern'), ('PERSON', 'Person'), ('COMPANY', 'Firma'))
recipient_id

Model field: ID

recipient_name

Model field: navn

recipient_type

Model field: betalingsmodtager

save(*args, **kwargs)

Save this payment schedule after validating payment method.

synchronize_payments(start, end, vat_factor=Decimal('100'))

Synchronize the payments of an activity for a new end_date.

class core.models.Price(*args, **kwargs)

Bases: core.models.VariableRate

An individual price on a payment plan.

Parameters
  • id (AutoField) – Id

  • variablerate_ptr (OneToOneField to VariableRate) – Variablerate ptr

  • payment_schedule (OneToOneField to PaymentSchedule) – Betalingsplan

exception DoesNotExist

Bases: core.models.VariableRate.DoesNotExist

exception MultipleObjectsReturned

Bases: core.models.VariableRate.MultipleObjectsReturned

payment_schedule

Model field: betalingsplan, accesses the PaymentSchedule model.

payment_schedule_id

Model field: betalingsplan

variablerate_ptr

Model field: variablerate ptr, accesses the VariableRate model.

variablerate_ptr_id

Model field: variablerate ptr

class core.models.Rate(*args, **kwargs)

Bases: core.models.VariableRate, core.models.Classification

A centrally fixed rate.

Parameters
  • id (AutoField) – Id

  • variablerate_ptr (OneToOneField to VariableRate) – Variablerate ptr

  • active (BooleanField) – Aktiv

  • name (CharField) – Navn

  • description (TextField) – Beskrivelse

  • needs_recalculation (BooleanField) – Skal genberegnes. dette felt sættes automatisk når en takst ændres

exception DoesNotExist

Bases: core.models.VariableRate.DoesNotExist

exception MultipleObjectsReturned

Bases: core.models.VariableRate.MultipleObjectsReturned

description

Model field: beskrivelse

name

Model field: navn

needs_recalculation

Model field: skal genberegnes

paymentschedule_set

Model field: takst, accesses the M2M PaymentSchedule model.

variablerate_ptr

Model field: variablerate ptr, accesses the VariableRate model.

variablerate_ptr_id

Model field: variablerate ptr

class core.models.RatePerDate(*args, **kwargs)

Bases: django.db.models.base.Model

Handle the date variation of VariableRates.

Parameters
  • id (AutoField) – Id

  • rate (DecimalField) – Takst

  • start_date (DateField) – Startdato

  • end_date (DateField) – Slutdato

  • main_rate (ForeignKey to VariableRate) – Main rate

  • changed_date (DateTimeField) – Changed date

  • changed_by (ForeignKey to User) – Ændret af

exception DoesNotExist

Bases: django.core.exceptions.ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: django.core.exceptions.MultipleObjectsReturned

changed_by

Model field: Ændret af, accesses the User model.

changed_by_id

Model field: Ændret af

changed_date

Model field: changed date

end_date

Model field: slutdato

history = <simple_history.manager.HistoryManager object>
id

Model field: ID

main_rate

Model field: main rate, accesses the VariableRate model.

main_rate_id

Model field: main rate

objects = <django.db.models.manager.Manager object>
rate

Model field: takst

save_without_historical_record(*args, **kwargs)

Save model without saving a historical record

Make sure you know what you’re doing before you use this method.

start_date

Model field: startdato

class core.models.RelatedPerson(*args, **kwargs)

Bases: core.mixins.AuditModelMixin, django.db.models.base.Model

A person related to a Case, e.g. as a parent or sibling.

Parameters
  • id (AutoField) – Id

  • created (DateTimeField) – Oprettet

  • modified (DateTimeField) – Modificeret

  • user_created (CharField) – Bruger der har oprettet

  • user_modified (CharField) – Bruger der har modificeret

  • relation_type (CharField) – Relation

  • cpr_number (CharField) – Cpr-nummer

  • name (CharField) – Navn

  • related_case (CharField) – Sbsys-sag

  • from_serviceplatformen (BooleanField) – Fra serviceplatformen

  • main_case (ForeignKey to Case) – Hovedsag

exception DoesNotExist

Bases: django.core.exceptions.ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: django.core.exceptions.MultipleObjectsReturned

cpr_number

Model field: cpr-nummer

from_serviceplatformen

Model field: fra Serviceplatformen

id

Model field: ID

main_case

Model field: hovedsag, accesses the Case model.

main_case_id

Model field: hovedsag

name

Model field: navn

objects = <django.db.models.manager.Manager object>
related_case

Model field: SBSYS-sag

relation_type

Model field: relation

Convert data from Serviceplatformen to our RelatedPerson model.

class core.models.SchoolDistrict(*args, **kwargs)

Bases: core.models.Classification

Represents a Danish school district.

Parameters
  • id (AutoField) – Id

  • active (BooleanField) – Aktiv

  • name (CharField) – Navn

exception DoesNotExist

Bases: django.core.exceptions.ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: django.core.exceptions.MultipleObjectsReturned

cases

Model field: skoledistrikt, accesses the M2M Case model.

id

Model field: ID

name

Model field: navn

objects = <django.db.models.manager.Manager object>
class core.models.Section(*args, **kwargs)

Bases: core.models.Classification

Law sections and the corresponding KLE codes.

Each section is associated with the target group for which it is allowed as well as the action steps allowed.

Parameters
  • id (AutoField) – Id

  • active (BooleanField) – Aktiv

  • paragraph (CharField) – Paragraf

  • text (TextField) – Forklarende tekst

  • law_text_name (CharField) – Lov tekst navn

  • allowed_for_target_groups (ManyToManyField) – Målgrupper

  • allowed_for_steps (ManyToManyField) – Trin i indsatstrappen

exception DoesNotExist

Bases: django.core.exceptions.ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: django.core.exceptions.MultipleObjectsReturned

allowed_for_steps

Model field: trin i indsatstrappen, accesses the M2M Section model.

allowed_for_target_groups

Model field: målgrupper, accesses the M2M Section model.

appropriations

Model field: paragraf, accesses the M2M Appropriation model.

id

Model field: ID

law_text_name

Model field: lov tekst navn

main_activities

Model field: hovedaktivitet for paragraffer, accesses the M2M ActivityDetails model.

objects = <django.db.models.manager.Manager object>
paragraph

Model field: paragraf

sectioninfo_set

Model field: paragraf, accesses the M2M SectionInfo model.

supplementary_activities

Model field: følgeudgift for paragraffer, accesses the M2M ActivityDetails model.

text

Model field: forklarende tekst

class core.models.SectionInfo(*args, **kwargs)

Bases: core.models.Classification

For a main activity, KLE no. and SBSYS ID for the relevant sections.

Parameters
  • id (AutoField) – Id

  • active (BooleanField) – Aktiv

  • activity_details (ForeignKey to ActivityDetails) – Aktivitetsdetalje

  • section (ForeignKey to Section) – Paragraf

  • activity_category (ForeignKey to ActivityCategory) – Aktivitetskategori

  • kle_number (CharField) – Kle-nummer

  • sbsys_template_id (CharField) – Sbsys skabelon-id

  • main_activity_main_account_number (CharField) – Hovedkontonummer for hovedaktivitet

  • supplementary_activity_main_account_number (CharField) – Hovedkontonummer for følgeudgift. Et hovedkontonummer der skal bruges, hvis en følgeudgift har denne aktivitetsdetalje som hovedydelse.

exception DoesNotExist

Bases: django.core.exceptions.ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: django.core.exceptions.MultipleObjectsReturned

activity_category

Model field: aktivitetskategori, accesses the ActivityCategory model.

activity_category_id

Model field: aktivitetskategori

activity_details

Model field: aktivitetsdetalje, accesses the ActivityDetails model.

activity_details_id

Model field: aktivitetsdetalje

get_main_activity_main_account_number()

Get the main activity main account number.

get_supplementary_activity_main_account_number()

Get the supplementary activity main account number.

If no such number exists, take the one for the main activity.

id

Model field: ID

kle_number

Model field: KLE-nummer

main_activity_main_account_number

Model field: hovedkontonummer for hovedaktivitet

objects = <django.db.models.manager.Manager object>
sbsys_template_id

Model field: SBSYS skabelon-id

section

Model field: paragraf, accesses the Section model.

section_id

Model field: paragraf

supplementary_activity_main_account_number

Model field: hovedkontonummer for følgeudgift

class core.models.ServiceProvider(*args, **kwargs)

Bases: core.models.Classification

Class containing information for a specific service provider.

Parameters
  • id (AutoField) – Id

  • active (BooleanField) – Aktiv

  • cvr_number (CharField) – Cvr-nummer

  • name (CharField) – Navn

  • business_code (CharField) – Branchekode

  • business_code_text (CharField) – Branchetekst

  • street (CharField) – Vejnavn

  • street_number (CharField) – Vejnummer

  • zip_code (CharField) – Postnummer

  • post_district (CharField) – Postdistrikt

  • status (CharField) – Status

  • vat_factor (DecimalField) – Momsfaktor

exception DoesNotExist

Bases: django.core.exceptions.ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: django.core.exceptions.MultipleObjectsReturned

activities

Model field: leverandør, accesses the M2M Activity model.

business_code

Model field: branchekode

business_code_text

Model field: branchetekst

cvr_number

Model field: cvr-nummer

id

Model field: ID

name

Model field: navn

objects = <django.db.models.manager.Manager object>
post_district

Model field: postdistrikt

status

Model field: status

street

Model field: vejnavn

street_number

Model field: vejnummer

supplied_activities

Model field: leverandører, accesses the M2M ActivityDetails model.

vat_factor

Model field: momsfaktor

static virk_to_service_provider(data)

Convert data from virk to our ServiceProvider model.

zip_code

Model field: postnummer

class core.models.TargetGroup(*args, **kwargs)

Bases: core.models.Classification

Target group for a Case.

Parameters
  • id (AutoField) – Id

  • active (BooleanField) – Aktiv

  • name (CharField) – Navn

  • required_fields_for_case (CharField) – Påkrævede felter på sag

exception DoesNotExist

Bases: django.core.exceptions.ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: django.core.exceptions.MultipleObjectsReturned

cases

Model field: målgruppe, accesses the M2M Case model.

efforts

Model field: målgrupper, accesses the M2M Effort model.

get_required_fields_for_case()

Return required_fields_for_case from CSV to list.

id

Model field: ID

name

Model field: navn

objects = <django.db.models.manager.Manager object>
required_fields_for_case

Model field: påkrævede felter på sag

sections

Model field: målgrupper, accesses the M2M Section model.

class core.models.Team(*args, **kwargs)

Bases: core.models.Classification

Represents a team in the administration.

Parameters
  • id (AutoField) – Id

  • active (BooleanField) – Aktiv

  • name (CharField) – Navn

  • leader (ForeignKey to User) – Leder

exception DoesNotExist

Bases: django.core.exceptions.ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: django.core.exceptions.MultipleObjectsReturned

id

Model field: ID

leader

Model field: leder, accesses the User model.

leader_id

Model field: leder

name

Model field: navn

objects = <django.db.models.manager.Manager object>
users

Model field: team, accesses the M2M User model.

class core.models.User(*args, **kwargs)

Bases: django.contrib.auth.models.AbstractUser

Customized user for handling login etc.

Parameters
  • id (AutoField) – Id

  • password (CharField) – Adgangskode

  • last_login (DateTimeField) – Sidst logget ind

  • is_superuser (BooleanField) – Superbrugerstatus. Bestemmer at denne bruger har alle rettigheder uden at tildele dem eksplicit.

  • username (CharField) – Brugernavn. Påkrævet. Højst 150 tegn. Kun bogstaver og cifre samt @/./+/-/_

  • first_name (CharField) – Fornavn

  • last_name (CharField) – Efternavn

  • email (EmailField) – E-mail-adresse

  • is_staff (BooleanField) – Admin-status. Bestemmer om brugeren kan logge ind på dette administrationswebsite.

  • is_active (BooleanField) – Aktiv. Bestemmer om brugeren skal behandles som aktiv. Fravælg dette frem for at slette en konto.

  • date_joined (DateTimeField) – Dato for registrering

  • team (ForeignKey to Team) – Team

  • profile (CharField) – Brugerprofil

  • groups (ManyToManyField) – Grupper. Grupperne som denne bruger hører til. En bruger får alle rettigheder givet til hver af hans/hendes grupper.

  • user_permissions (ManyToManyField) – Rettigheder. Specifikke rettigheder for denne bruger.

ADMIN = 'admin'
exception DoesNotExist

Bases: django.core.exceptions.ObjectDoesNotExist

EDIT = 'edit'
GRANT = 'grant'
exception MultipleObjectsReturned

Bases: django.core.exceptions.MultipleObjectsReturned

READONLY = 'readonly'
WORKFLOW_ENGINE = 'workflow_engine'
approved_activities

Model field: bevilget af bruger, accesses the M2M Activity model.

cases

Model field: sagsbehandler, accesses the M2M Case model.

get_next_by_date_joined(*, field=<django.db.models.fields.DateTimeField: date_joined>, is_next=True, **kwargs)

Autogenerated: Finds next instance based on date_joined.

get_previous_by_date_joined(*, field=<django.db.models.fields.DateTimeField: date_joined>, is_next=False, **kwargs)

Autogenerated: Finds previous instance based on date_joined.

get_profile_display(*, field=<django.db.models.fields.CharField: profile>)

Autogenerated: Shows the label of the profile

groups

Model field: grupper, accesses the M2M User model.

id

Model field: ID

is_workflow_engine_or_admin()

Return if user has workflow or admin permission.

logentry_set

Model field: bruger, accesses the M2M LogEntry model.

managed_teams

Model field: leder, accesses the M2M Team model.

classmethod max_profile(perms)

Return the profile (in “perms”) with the highest permissions.

IdPs can send more than one profile when using SAML. This function returns the “maximum” profile in the sense of the one with the most far-reaching permissions.

profile

Model field: brugerprofil

profile_choices = (('readonly', 'Kun læse'), ('edit', 'Læse og skrive'), ('grant', 'Bevilge'), ('workflow_engine', 'Redigere klassifikationer'), ('admin', 'Admin'))
rate_and_price_changes

Model field: Ændret af, accesses the M2M RatePerDate model.

team

Model field: team, accesses the Team model.

team_id

Model field: team

user_permissions

Model field: rettigheder, accesses the M2M User model.

class core.models.VariableRate(*args, **kwargs)

Bases: django.db.models.base.Model

Superclass for time-dependent rates and prices.

Parameters

id (AutoField) – Id

exception DoesNotExist

Bases: django.core.exceptions.ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: django.core.exceptions.MultipleObjectsReturned

static create_interval(start_date, end_date)

Create new interval for rates.

get_rate_amount(rate_date=datetime.date(2021, 12, 8))

Look up period in RatesPerDate.

id

Model field: ID

objects = <django.db.models.manager.Manager object>
price

Model field: variablerate ptr, accesses the Price model.

rate

Model field: variablerate ptr, accesses the Rate model.

property rate_amount

Look up period in RatesPerDate.

rates_per_date

Model field: main rate, accesses the M2M RatePerDate model.

set_rate_amount(amount, start_date=None, end_date=None)

Set amount, merge with existing periods.

core.permissions module

Custom permissions used by this app.

class core.permissions.DeletePaymentPermission

Bases: rest_framework.permissions.BasePermission

Check if a payment can be deleted.

has_object_permission(request, view, obj)

Payments on granted activities may not be deleted.

class core.permissions.EditPaymentPermission

Bases: rest_framework.permissions.BasePermission

Check if this payment may be edited by the current user.

has_object_permission(request, view, obj)

Check that this user is allowed to apply these changes.

class core.permissions.IsUserAllowed

Bases: rest_framework.permissions.BasePermission

Determine user’s frontend permissions i.e., in all API operations.

has_permission(request, view)

Allow depending on operation and user’s profile.

class core.permissions.NewPaymentPermission

Bases: core.permissions.IsUserAllowed

Check if adding a new payment is allowed.

has_permission(request, view)

Allow for individual payment plan and appropriation not granted.

core.serializers module

Data serializers used by the REST API.

class core.serializers.ActivityCategorySerializer(*args, **kwargs)

Bases: rest_framework.serializers.ModelSerializer

Serializer for the ActivityCategory model.

class core.serializers.ActivityDetailsSerializer(*args, **kwargs)

Bases: rest_framework.serializers.ModelSerializer

Serializer for the ActivityDetails model.

class core.serializers.ActivitySerializer(*args, **kwargs)

Bases: core.serializers.BaseActivitySerializer

Serializer for the Activity model.

class core.serializers.AppropriationSerializer(*args, **kwargs)

Bases: core.serializers.BaseAppropriationSerializer

Serializer for a single Appropriation model.

get_activities(appropriation)

Get activities on appropriation.

get_total_expected_next_year(obj)

Retrieve total expected amount for next year.

get_total_expected_previous_year(obj)

Retrieve total expected amount for previous year.

get_total_expected_this_year(obj)

Retrieve total expected amount for this year.

get_total_granted_next_year(obj)

Retrieve total granted amount for next year.

get_total_granted_previous_year(obj)

Retrieve total granted amount for previous year.

get_total_granted_this_year(obj)

Retrieve total granted amount for this year.

class core.serializers.ApprovalLevelSerializer(*args, **kwargs)

Bases: rest_framework.serializers.ModelSerializer

Serializer for the ApprovalLevel model.

class core.serializers.BaseActivitySerializer(*args, **kwargs)

Bases: drf_writable_nested.serializers.WritableNestedModelSerializer

Base Serializer for the Activity model.

create(validated_data)

Override create to handle existing service provider.

get_total_expected_next_year(obj)

Retrieve total expected amount for next year.

get_total_expected_previous_year(obj)

Retrieve total expected amount for previous year.

get_total_expected_this_year(obj)

Retrieve total expected amount for this year.

get_total_granted_next_year(obj)

Retrieve total granted amount for next year.

get_total_granted_previous_year(obj)

Retrieve total granted amount for previous year.

get_total_granted_this_year(obj)

Retrieve total granted amount for this year.

set_correct_service_provider_in_validated_data(validated_data)

Set the correct service provider in the validated_data.

If a service provider already exists with the CVR, we update it with the new data and assign it to the activity instead of creating a new one.

static setup_eager_loading(queryset)

Set up eager loading for improved performance.

update(instance, validated_data)

Override update to handle existing service provider.

validate(data)

Validate this activity - check end date is after start date, etc.

class core.serializers.BaseAppropriationSerializer(*args, **kwargs)

Bases: rest_framework.serializers.ModelSerializer

Base Serializer for the Appropriation model.

get_num_ongoing_activities(appropriation)

Get number of ongoing activities.

get_num_ongoing_draft_or_expected_activities(appropriation)

Get number of ongoing related draft or expected activities.

static setup_eager_loading(queryset)

Set up eager loading for improved performance.

class core.serializers.BasePaymentScheduleSerializer(*args, **kwargs)

Bases: drf_writable_nested.serializers.WritableNestedModelSerializer

Base Serializer for the PaymentSchedule model.

static setup_eager_loading(queryset)

Set up eager loading for improved performance.

validate(data)

Validate this payment schedule.

As for Payment, payment method, recipient type and various other things need to fit together.

class core.serializers.CaseSerializer(*args, **kwargs)

Bases: rest_framework.serializers.ModelSerializer

Serializer for the Case model.

Note validation to ensure that cases are always valid according to required_fields_for_case

get_num_ongoing_appropriations(case)

Get number of related ongoing appropriations.

get_num_ongoing_draft_or_expected_appropriations(case)

Get number of related expected or draft ongoing appropriations.

static setup_eager_loading(queryset)

Set up eager loading for improved performance.

validate(data)

Check if required fields for case are present.

class core.serializers.EffortSerializer(*args, **kwargs)

Bases: rest_framework.serializers.ModelSerializer

Serializer for the Effort model.

class core.serializers.EffortStepSerializer(*args, **kwargs)

Bases: rest_framework.serializers.ModelSerializer

Serializer for the EffortStep model.

class core.serializers.HistoricalCaseSerializer(*args, **kwargs)

Bases: rest_framework.serializers.ModelSerializer

Serializer for the historic/temporal dimension of a Case.

class core.serializers.HistoricalPaymentSerializer(*args, **kwargs)

Bases: rest_framework.serializers.ModelSerializer

Serializer for the historic/temporal dimension of a Payment.

class core.serializers.InternalPaymentRecipientSerializer(*args, **kwargs)

Bases: rest_framework.serializers.ModelSerializer

Serializer for the InternalPaymentRecipient model.

class core.serializers.ListActivitySerializer(*args, **kwargs)

Bases: core.serializers.BaseActivitySerializer

Serializer for the Activity model for a list.

class core.serializers.ListAppropriationSerializer(*args, **kwargs)

Bases: core.serializers.BaseAppropriationSerializer

Serializer for the Appropriation model for a list.

class core.serializers.MunicipalitySerializer(*args, **kwargs)

Bases: rest_framework.serializers.ModelSerializer

Serializer for the Municipality model.

class core.serializers.PaymentMethodDetailsSerializer(*args, **kwargs)

Bases: rest_framework.serializers.ModelSerializer

Serializer for the PaymentMethodDetails model.

class core.serializers.PaymentScheduleSerializer(*args, **kwargs)

Bases: core.serializers.BasePaymentScheduleSerializer

Serializer for the PaymentSchedule model.

class core.serializers.PaymentSerializer(*args, **kwargs)

Bases: rest_framework.serializers.ModelSerializer

Serializer for the Payment model.

Note the many options for filtering as well as the non-trivial validate function.

save()

Save instance, catch and sanitize ValidationError.

validate(data)

Validate this payment.

class core.serializers.PriceSerializer(*args, **kwargs)

Bases: drf_writable_nested.serializers.WritableNestedModelSerializer

Serializer for the Price model.

create(validated_data)

Set rate amount on Price.

update(instance, validated_data)

Update rate amount on Price for dates.

class core.serializers.RatePerDateSerializer(*args, **kwargs)

Bases: rest_framework.serializers.ModelSerializer

Serializer for the RatePerDate model.

class core.serializers.RateSerializer(*args, **kwargs)

Bases: rest_framework.serializers.ModelSerializer

Serializer for the Rate model.

class core.serializers.RelatedPersonSerializer(*args, **kwargs)

Bases: rest_framework.serializers.ModelSerializer

Serializer for the RelatedPerson model.

class core.serializers.SchoolDistrictSerializer(*args, **kwargs)

Bases: rest_framework.serializers.ModelSerializer

Serializer for the SchoolDistrict model.

class core.serializers.SectionInfoSerializer(*args, **kwargs)

Bases: rest_framework.serializers.ModelSerializer

Serializer for the SectionInfo model.

class core.serializers.SectionSerializer(*args, **kwargs)

Bases: rest_framework.serializers.ModelSerializer

Serializer for the Section model.

class core.serializers.ServiceProviderSerializer(*args, **kwargs)

Bases: drf_writable_nested.mixins.UniqueFieldsMixin, rest_framework.serializers.ModelSerializer

Serializer for the ServiceProvider model.

class core.serializers.TargetGroupSerializer(*args, **kwargs)

Bases: rest_framework.serializers.ModelSerializer

Serializer for the TargetGroup model.

to_representation(instance)

Convert required_fields_for_case to list.

class core.serializers.TeamSerializer(*args, **kwargs)

Bases: rest_framework.serializers.ModelSerializer

Serializer for the Team model.

class core.serializers.UserSerializer(*args, **kwargs)

Bases: rest_framework.serializers.ModelSerializer

Serializer for the User model.

core.signals module

Signals for acting on events occuring on model objects.

core.signals.generate_payments_on_post_save(sender, instance, created, **kwargs)

Generate payments for activity before saving.

core.signals.save_payment_schedule_on_save_price(sender, instance, created, **kwargs)

Save payment schedule too when saving price.

core.signals.send_activity_created_email_on_paymentschedule_create(sender, instance, created, **kwargs)

Send activity created email when PaymentSchedule is saved.

core.signals.send_activity_payment_email_on_delete(sender, instance, **kwargs)

Send payment email when Activity is deleted.

core.signals.send_activity_payment_email_on_save(sender, instance, created, **kwargs)

Send payment email when Activity is saved.

core.signals.set_needs_recalculation_on_save_rate(sender, instance, created, **kwargs)

Set “needs update” flag when changing a rate.

core.signals.set_payment_id_on_paymentschedule_save(sender, instance, created, **kwargs)

Set the payment_id as the PaymentSchedule ID on creation.

core.signals.set_saved_account_alias_on_payment_save(sender, instance, **kwargs)

Set the saved_account_alias on Payment save.

core.signals.set_saved_account_string_on_payment_save(sender, instance, **kwargs)

Set the saved_account_string on Payment save.

core.utils module

Utilities used by other parts of this app.

core.utils.create_rrule(payment_type, payment_frequency, payment_day_of_month, start, **kwargs)

Create a dateutil.rrule to generate dates for a payment schedule.

The rule should be based on payment_type/payment_frequency and start. Takes either “until” or “count” as kwargs.

core.utils.due_payments_for_prism(date)

Return payments which are due on date and should be sent to PRISM.

core.utils.due_payments_for_prism_with_exclusions(date)

Process payments with exclusions for PRISME.

We check the day after tomorrow for one or several payment date exclusions and include payments for those found.

core.utils.export_prism_payments_for_date(date=None)

Fetch due payments for prism and run the export functions.

core.utils.format_prism_financial_record(payment, line_no, record_no)

Format a single financial record for PRISM, on a single line.

This follows documentation provided by Ballerup Kommune based on KMD’s interface specification GQ311001Q for financial records (transaction type G69).

core.utils.format_prism_payment_record(payment, line_no, record_no)

Format a single payment record for PRISM, on a single line.

This follows documentation provided by Ballerup Kommune based on KMD’s interface specification GF200001Q for creditor records (transaction type G68).

core.utils.generate_cases_report()

Generate a cases report as CSV.

core.utils.generate_cases_report_list_v0(cases)

Generate a cases report list of cases dicts from cases.

core.utils.generate_payment_date_exclusion_dates(years=None)

Generate “default” dates for payment date exclusions for a number of years.

The default are danish holidays and weekends.

core.utils.generate_payments_report()

Generate a payments report as CSV.

core.utils.generate_payments_report_list_v0(payments, new_account_alias=False)

Generate a payments report list of payment dicts from payments.

core.utils.generate_payments_report_list_v1(payments)

Generate payments report list v1 (v0 with new_account_alias changes).

core.utils.generate_payments_report_list_v2(payments)

Generate payments report list v2 (v1 with note added).

core.utils.generate_payments_report_list_v3(payments)

Generate payments report list v3 (v2 with approval data added).

core.utils.generate_records_for_prism(due_payments)

Generate the list of records for writing to PRISM file.

core.utils.get_company_info_from_cvr(cvr_number)

Get CVR Data from Virk from a CVR number.

core.utils.get_company_info_from_search_term(search_term)

Get CVR Data from Virk from a generic search term.

core.utils.get_company_info_mock()

Use test data in place of the CVR Virk functions for develop/test.

core.utils.get_cpr_data(cpr)

Get CPR data from Serviceplatformen.

core.utils.get_cpr_data_mock(cpr)

Use test data in place of the real ‘get_cpr_data’ for develop/test.

core.utils.get_person_info(cpr)

Get CPR data on a person and his/her relations.

core.utils.parse_account_alias_mapping_data_from_csv_path(path)

Helper-function for parsing account alias mappings from a path.

core.utils.parse_account_alias_mapping_data_from_csv_string(string)

Parse account alias mapping data from a .csv StringIO.

Returns a list of (main_account_number, activity_number, alias) tuples for example: [ (645511002, 015035, BOS0000109), (528211011, 015038, BOS0000112) ]

core.utils.saml_before_login(user_data)

Hook called after userdata is received from IdP, before login.

core.utils.saml_create_user(user_data)

Hook called after user is created in DB, before login.

core.utils.send_activity_created_email(activity)

Send an email because an activity was created.

core.utils.send_activity_deleted_email(activity)

Send an email because an activity has been deleted.

core.utils.send_activity_email(subject, template, activity)

Send an email concerning an updated activity.

core.utils.send_activity_expired_email(activity)

Send an email because an activity has expired.

core.utils.send_activity_updated_email(activity)

Send an email because an activity was updated.

core.utils.send_appropriation(appropriation, included_activities=None)

Generate PDF and XML files from appropriation and send them to SBSYS.

Parameters
  • appropriation – the Appropriation from which to generate PDF and XML.

  • included_activities – Activities which should be explicitly included.

core.utils.validate_cvr(cvr)

Validate a cvr number string.

Note: this is merely a 8-digit number input validation and not a ‘real’ CVR validation

core.utils.write_prism_file_v0(filename, date, payments, tomorrow)

Write the actual PRISM file.

core.views module

Views and viewsets exposed by the REST interface.

class core.views.ActivityCategoryViewSet(**kwargs)

Bases: core.mixins.ClassificationViewSetMixin, core.views.ReadOnlyViewset

Expose activity categories in REST API.

queryset = QuerySet
serializer_class

alias of core.serializers.ActivityCategorySerializer

class core.views.ActivityDetailsViewSet(**kwargs)

Bases: core.mixins.ClassificationViewSetMixin, core.views.ReadOnlyViewset

Expose activity details in REST API.

filterset_fields = '__all__'
queryset = QuerySet
serializer_class

alias of core.serializers.ActivityDetailsSerializer

class core.views.ActivityViewSet(**kwargs)

Bases: core.mixins.AuditModelViewSetMixin, core.views.AuditViewSet

Expose activities in REST API.

destroy(request, *args, **kwargs)

Handle deletion according to their business logic.

Drafts are deleted, expectations are logically deleted, granted activities cannot be deleted.

filterset_fields = '__all__'
get_queryset()

Avoid Django’s default lazy loading to improve performance.

get_serializer_class()

Use a different Serializer depending on the action.

serializer_action_classes = {'list': <class 'core.serializers.ListActivitySerializer'>, 'retrieve': <class 'core.serializers.ActivitySerializer'>}
class core.views.AppropriationViewSet(**kwargs)

Bases: core.mixins.AuditModelViewSetMixin, core.views.AuditViewSet

Expose appropriations in REST API.

Note the custom action grant for approving an appropriation and all its activities.

filterset_class

alias of core.filters.AppropriationFilter

get_queryset()

Avoid Django’s default lazy loading to improve performance.

get_serializer_class()

Use a different Serializer depending on the action.

grant(request, pk=None)

Grant the specified activities on this appropriation.

serializer_action_classes = {'list': <class 'core.serializers.ListAppropriationSerializer'>, 'retrieve': <class 'core.serializers.AppropriationSerializer'>}
class core.views.ApprovalLevelViewSet(**kwargs)

Bases: core.mixins.ClassificationViewSetMixin, core.views.ReadOnlyViewset

Expose approval levels in REST API.

filterset_fields = '__all__'
queryset = QuerySet
serializer_class

alias of core.serializers.ApprovalLevelSerializer

class core.views.AuditViewSet(**kwargs)

Bases: core.mixins.AuditMixin, rest_framework.viewsets.ModelViewSet

Superclass for use by all model classes with audit fields.

All classes that can be written through the REST interface have audit fields.

authentication_classes = (<class 'core.authentication.CsrfExemptSessionAuthentication'>,)
permission_classes = (<class 'core.permissions.IsUserAllowed'>,)
class core.views.AuthenticatedGraphQLView(schema=None, executor=None, middleware=None, root_value=None, graphiql=False, pretty=False, batch=False, backend=None, subscription_path=None)

Bases: graphene_django.views.GraphQLView

GraphQLView with our Django Rest Framework authentication on top.

As found on: https://github.com/graphql-python/graphene/issues/249

classmethod as_view(*args, **kwargs)

Add the relevant DRF-view logic to the view.

parse_body(request)

Apparently graphene needs a body attribute.

class core.views.CaseViewSet(**kwargs)

Bases: core.mixins.AuditModelViewSetMixin, core.views.AuditViewSet

Viewset exposing Case in the REST API.

Note the custom actions history and change_case_worker.

change_case_worker(request)

Change the case_worker of several Cases.

Parameters
  • case_pks – A list of case pks.

  • case_worker_pk – the case worker pk to change to.

filterset_class

alias of core.filters.CaseFilter

get_queryset()

Avoid Django’s default lazy loading to improve performance.

history(request, pk=None)

Fetch history of HistoricalCases which we use as assessments.

perform_create(serializer)

Create new case - customized to set user.

queryset = CaseQuerySet
serializer_class

alias of core.serializers.CaseSerializer

class core.views.EffortStepViewSet(**kwargs)

Bases: core.mixins.ClassificationViewSetMixin, core.views.ReadOnlyViewset

Expose effort steps in REST API.

filterset_fields = '__all__'
queryset = QuerySet
serializer_class

alias of core.serializers.EffortStepSerializer

class core.views.EffortViewSet(**kwargs)

Bases: core.mixins.ClassificationViewSetMixin, core.views.ReadOnlyViewset

Expose efforts in REST API.

filterset_fields = '__all__'
queryset = QuerySet
serializer_class

alias of core.serializers.EffortSerializer

class core.views.FrontendSettingsView(**kwargs)

Bases: rest_framework.views.APIView

Expose a relevant selection of settings to the frontend.

authentication_classes = (<class 'core.authentication.CsrfExemptSessionAuthentication'>,)
get(request, format=None)

Expose the relevant settings.

class core.views.InternalPaymentRecipientViewSet(**kwargs)

Bases: core.mixins.ClassificationViewSetMixin, core.views.ReadOnlyViewset

Expose internal payment recipients in REST API.

queryset = QuerySet
serializer_class

alias of core.serializers.InternalPaymentRecipientSerializer

class core.views.MunicipalityViewSet(**kwargs)

Bases: core.mixins.ClassificationViewSetMixin, core.views.ReadOnlyViewset

Expose municipalities in REST API.

filterset_fields = '__all__'
queryset = QuerySet
serializer_class

alias of core.serializers.MunicipalitySerializer

class core.views.PaymentMethodDetailsViewSet(**kwargs)

Bases: core.mixins.ClassificationViewSetMixin, core.views.AuditViewSet

Expose payment method details in REST API.

queryset = QuerySet
serializer_class

alias of core.serializers.PaymentMethodDetailsSerializer

class core.views.PaymentScheduleViewSet(**kwargs)

Bases: core.views.AuditViewSet

Expose payment schedules in REST API.

get_queryset()

Avoid Django’s default lazy loading to improve performance.

serializer_class

alias of core.serializers.PaymentScheduleSerializer

class core.views.PaymentViewSet(**kwargs)

Bases: core.views.AuditViewSet

Expose payments in REST API.

Note, this viewset supports pagination.

filterset_class

alias of core.filters.PaymentFilter

filterset_fields = '__all__'
history(request, pk=None)

Fetch history of Payment.

pagination_class

alias of rest_framework.pagination.PageNumberPagination

permission_classes = (<class 'core.permissions.EditPaymentPermission'>, <class 'core.permissions.DeletePaymentPermission'>, <class 'core.permissions.NewPaymentPermission'>)
queryset = PaymentQuerySet
serializer_class

alias of core.serializers.PaymentSerializer

class core.views.PriceViewSet(**kwargs)

Bases: core.views.AuditViewSet

Expose Price objects in REST API.

queryset = QuerySet
serializer_class

alias of core.serializers.PriceSerializer

class core.views.RateViewSet(**kwargs)

Bases: core.mixins.ClassificationViewSetMixin, core.views.ReadOnlyViewset

Expose rates in REST API.

queryset = QuerySet
serializer_class

alias of core.serializers.RateSerializer

class core.views.ReadOnlyViewset(**kwargs)

Bases: rest_framework.viewsets.ReadOnlyModelViewSet

Superclass for use model classes that are read only through REST.

permission_classes = (<class 'core.permissions.IsUserAllowed'>,)
class core.views.RelatedPersonViewSet(**kwargs)

Bases: core.mixins.AuditModelViewSetMixin, core.views.AuditViewSet

Expose related persons - typically family relations - in REST API.

fetch_from_serviceplatformen(request)

Fetch relations for a person using the CPR from Serviceplatformen.

Returns the data as serialized RelatedPersons data.

GET params: cpr

filterset_fields = '__all__'
queryset = QuerySet
serializer_class

alias of core.serializers.RelatedPersonSerializer

class core.views.SchoolDistrictViewSet(**kwargs)

Bases: core.mixins.ClassificationViewSetMixin, core.views.ReadOnlyViewset

Expose school districts in REST API.

filterset_fields = '__all__'
queryset = QuerySet
serializer_class

alias of core.serializers.SchoolDistrictSerializer

class core.views.SectionInfoViewSet(**kwargs)

Bases: core.mixins.ClassificationViewSetMixin, core.views.ReadOnlyViewset

Expose section infos in REST API.

filterset_fields = '__all__'
queryset = QuerySet
serializer_class

alias of core.serializers.SectionInfoSerializer

class core.views.SectionViewSet(**kwargs)

Bases: core.mixins.ClassificationViewSetMixin, core.views.ReadOnlyViewset

Expose law sections in REST API.

filterset_class

alias of core.filters.AllowedForStepsFilter

queryset = QuerySet
serializer_class

alias of core.serializers.SectionSerializer

class core.views.ServiceProviderViewSet(**kwargs)

Bases: core.mixins.ClassificationViewSetMixin, rest_framework.viewsets.ModelViewSet

Expose service providers in REST API.

fetch_serviceproviders_from_virk(request)

Fetch serviceproviders using a generic search term from Virk.

Returns the data as serialized ServiceProvider data.

GET params: search_term

filterset_fields = '__all__'
queryset = QuerySet
serializer_class

alias of core.serializers.ServiceProviderSerializer

class core.views.TargetGroupViewSet(**kwargs)

Bases: core.mixins.ClassificationViewSetMixin, core.views.ReadOnlyViewset

Expose target groups in REST API.

queryset = QuerySet
serializer_class

alias of core.serializers.TargetGroupSerializer

class core.views.TeamViewSet(**kwargs)

Bases: core.mixins.ClassificationViewSetMixin, core.views.ReadOnlyViewset

Expose teams in REST API.

queryset = QuerySet
serializer_class

alias of core.serializers.TeamSerializer

class core.views.UserViewSet(**kwargs)

Bases: core.views.ReadOnlyViewset

Expose users in REST API.

queryset = QuerySet
serializer_class

alias of core.serializers.UserSerializer

Module contents

‘core’ package containing all functionality.