-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
change Screening Missing OGTT report note model to a custom note mode…
…l, bump edc=0.6.4
- Loading branch information
Showing
20 changed files
with
877 additions
and
18 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2 changes: 2 additions & 0 deletions
2
meta_reports/admin/unmanaged/missing_screening_ogtt_admin/__init__.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
from .note_model_admin import MissingOgttNoteModelAdmin | ||
from .unmanaged_model_admin import MissingScreeningOgttAdmin |
53 changes: 53 additions & 0 deletions
53
meta_reports/admin/unmanaged/missing_screening_ogtt_admin/note_model_admin.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
from django.contrib import admin | ||
from django_audit_fields import audit_fieldset_tuple | ||
from edc_qareports.modeladmin_mixins import NoteModelAdminMixin | ||
|
||
from ....admin_site import meta_reports_admin | ||
from ....forms import MissingOgttNoteForm | ||
from ....models import MissingOgttNote | ||
|
||
|
||
@admin.register(MissingOgttNote, site=meta_reports_admin) | ||
class MissingOgttNoteModelAdmin( | ||
NoteModelAdminMixin, | ||
admin.ModelAdmin, | ||
): | ||
"""A modeladmin class for the Note model.""" | ||
|
||
form = MissingOgttNoteForm | ||
note_template_name = "edc_qareports/qa_report_note.html" | ||
|
||
fieldsets = ( | ||
( | ||
None, | ||
{"fields": ("subject_identifier", "report_datetime", "result_status")}, | ||
), | ||
( | ||
"OGTT", | ||
{ | ||
"fields": ( | ||
"fasting", | ||
"ogtt_base_datetime", | ||
"ogtt_datetime", | ||
"ogtt_value", | ||
"ogtt_units", | ||
) | ||
}, | ||
), | ||
( | ||
"Note", | ||
{ | ||
"fields": ( | ||
"note", | ||
"report_model", | ||
) | ||
}, | ||
), | ||
audit_fieldset_tuple, | ||
) | ||
|
||
radio_fields = { | ||
"ogtt_units": admin.VERTICAL, | ||
"result_status": admin.VERTICAL, | ||
"fasting": admin.VERTICAL, | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
from .missing_ogtt_note_form import MissingOgttNoteForm |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
from django import forms | ||
from edc_constants.constants import NO, YES | ||
from edc_form_validators import FormValidator, FormValidatorMixin | ||
from edc_glucose.form_validators import OgttFormValidatorMixin | ||
from edc_glucose.utils import validate_glucose_as_millimoles_per_liter | ||
|
||
from ..models import MissingOgttNote | ||
|
||
|
||
class MissingOgttNoteFormValidator(OgttFormValidatorMixin, FormValidator): | ||
|
||
def clean(self): | ||
self.applicable_if(YES, field="result_status", field_applicable="fasting") | ||
self.required_if(YES, NO, field="fasting", field_required="ogtt_base_datetime") | ||
self.required_if(YES, NO, field="fasting", field_required="ogtt_datetime") | ||
self.required_if(YES, NO, field="fasting", field_required="ogtt_value") | ||
self.applicable_if(YES, NO, field="fasting", field_applicable="ogtt_units") | ||
validate_glucose_as_millimoles_per_liter("ogtt", self.cleaned_data) | ||
self.validate_ogtt_dates() | ||
self.validate_ogtt_time_interval() | ||
|
||
|
||
class MissingOgttNoteForm(FormValidatorMixin, forms.ModelForm): | ||
form_validator_cls = MissingOgttNoteFormValidator | ||
|
||
class Meta: | ||
model = MissingOgttNote | ||
fields = "__all__" | ||
help_text = {"subject_identifier": "(read-only)", "name": "(read-only)"} | ||
widgets = { | ||
"report_model": forms.TextInput(attrs={"readonly": "readonly"}), | ||
"subject_identifier": forms.TextInput(attrs={"readonly": "readonly"}), | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
# Generated by Django 5.0.8 on 2024-08-23 13:42 | ||
|
||
import django_db_views.migration_functions | ||
import django_db_views.operations | ||
from django.db import migrations | ||
|
||
|
||
class Migration(migrations.Migration): | ||
|
||
dependencies = [ | ||
("meta_reports", "0033_auto_20240823_0012"), | ||
] | ||
|
||
operations = [ | ||
django_db_views.operations.ViewRunPython( | ||
code=django_db_views.migration_functions.ForwardViewMigration( | ||
"# noqa\n select *, uuid() as id, now() as created,\n 'meta_reports.missing_screening_ogtt_view' as report_model\n from (\n select screening_identifier, site_id, report_datetime as 'screening_datetime', fbg_datetime,\n converted_fbg_value as fbg_value, converted_ogtt_value as ogtt_value, repeat_glucose_performed as repeated,\n p3_ltfu, fbg2_value, ogtt2_value, fbg2_datetime, ogtt2_datetime, consented,\n screening_identifier as subject_identifier, id as original_id\n from meta_screening_subjectscreening\n where converted_fbg_value is not null and converted_ogtt_value is null and unsuitable_agreed != \"Yes\"\n ) as A\n order by screening_identifier", | ||
"missing_screening_ogtt_view", | ||
engine="django.db.backends.mysql", | ||
), | ||
reverse_code=django_db_views.migration_functions.BackwardViewMigration( | ||
"# noqa\n select *, uuid() as id, now() as created,\n 'meta_reports.missing_screening_ogtt_view' as report_model\n from (\n select screening_identifier, site_id, report_datetime as 'screening_datetime', fbg_datetime,\n converted_fbg_value as fbg_value, converted_ogtt_value as ogtt_value, repeat_glucose_performed as repeated,\n p3_ltfu, fbg2_value, ogtt2_value, fbg2_datetime, ogtt2_datetime, consented, \"\" as subject_identifier,\n id as original_id\n from meta_screening_subjectscreening\n where converted_fbg_value is not null and converted_ogtt_value is null and unsuitable_agreed != \"Yes\"\n ) as A\n order by screening_identifier", | ||
"missing_screening_ogtt_view", | ||
engine="django.db.backends.mysql", | ||
), | ||
atomic=False, | ||
), | ||
django_db_views.operations.ViewRunPython( | ||
code=django_db_views.migration_functions.ForwardViewMigration( | ||
"# noqa\n select *, get_random_uuid() as id, now() as created,\n 'meta_reports.missing_screening_ogtt_view' as report_model\n from (\n select screening_identifier, site_id, report_datetime as 'screening_datetime', fbg_datetime,\n converted_fbg_value as fbg_value, converted_ogtt_value as ogtt_value, repeat_glucose_performed as repeated,\n p3_ltfu, fbg2_value, ogtt2_value, fbg2_datetime, ogtt2_datetime, consented,\n screening_identifier as subject_identifier, id as original_id\n from meta_screening_subjectscreening\n where converted_fbg_value is not null and converted_ogtt_value is null and unsuitable_agreed != \"Yes\"\n ) as A\n order by screening_identifier", | ||
"missing_screening_ogtt_view", | ||
engine="django.db.backends.postgresql", | ||
), | ||
reverse_code=django_db_views.migration_functions.BackwardViewMigration( | ||
"# noqa\n select *, get_random_uuid() as id, now() as created,\n 'meta_reports.missing_screening_ogtt_view' as report_model\n from (\n select screening_identifier, site_id, report_datetime as 'screening_datetime', fbg_datetime,\n converted_fbg_value as fbg_value, converted_ogtt_value as ogtt_value, repeat_glucose_performed as repeated,\n p3_ltfu, fbg2_value, ogtt2_value, fbg2_datetime, ogtt2_datetime, consented, \"\" as subject_identifier,\n id as original_id\n from meta_screening_subjectscreening\n where converted_fbg_value is not null and converted_ogtt_value is null and unsuitable_agreed != \"Yes\"\n ) as A\n order by screening_identifier", | ||
"missing_screening_ogtt_view", | ||
engine="django.db.backends.postgresql", | ||
), | ||
atomic=False, | ||
), | ||
django_db_views.operations.ViewRunPython( | ||
code=django_db_views.migration_functions.ForwardViewMigration( | ||
"# noqa\nSELECT *, lower(\n hex(randomblob(4)) || '-' || hex(randomblob(2)) || '-' || '4' ||\n substr(hex( randomblob(2)), 2) || '-' ||\n substr('AB89', 1 + (abs(random()) % 4) , 1) ||\n substr(hex(randomblob(2)), 2) || '-' ||\n hex(randomblob(6))\n ) as id, datetime() as `created`,\n 'meta_reports.missing_screening_ogtt_view' as report_model\n from (\n select screening_identifier, site_id, report_datetime as 'screening_datetime', fbg_datetime,\n converted_fbg_value as fbg_value, converted_ogtt_value as ogtt_value, fbg2_value, ogtt2_value,\n repeat_glucose_performed as repeated, p3_ltfu, fbg2_datetime, ogtt2_datetime, consented,\n screening_identifier as subject_identifier, id as original_id\n from meta_screening_subjectscreening\n where converted_fbg_value is not null and converted_ogtt_value is null and unsuitable_agreed != \"Yes\"\n ) as A\n order by screening_identifier", | ||
"missing_screening_ogtt_view", | ||
engine="django.db.backends.sqlite3", | ||
), | ||
reverse_code=django_db_views.migration_functions.BackwardViewMigration( | ||
"# noqa\nSELECT *, lower(\n hex(randomblob(4)) || '-' || hex(randomblob(2)) || '-' || '4' ||\n substr(hex( randomblob(2)), 2) || '-' ||\n substr('AB89', 1 + (abs(random()) % 4) , 1) ||\n substr(hex(randomblob(2)), 2) || '-' ||\n hex(randomblob(6))\n ) as id, datetime() as `created`,\n 'meta_reports.missing_screening_ogtt_view' as report_model\n from (\n select screening_identifier, site_id, report_datetime as 'screening_datetime', fbg_datetime,\n converted_fbg_value as fbg_value, converted_ogtt_value as ogtt_value, fbg2_value, ogtt2_value,\n repeat_glucose_performed as repeated, p3_ltfu, fbg2_datetime, ogtt2_datetime, consented, \"\" as subject_identifier,\n id as original_id\n from meta_screening_subjectscreening\n where converted_fbg_value is not null and converted_ogtt_value is null and unsuitable_agreed != \"Yes\"\n ) as A\n order by screening_identifier", | ||
"missing_screening_ogtt_view", | ||
engine="django.db.backends.sqlite3", | ||
), | ||
atomic=False, | ||
), | ||
] |
Oops, something went wrong.