Merge pull request 'master' (#298) from master into Docker

Reviewed-on: SGD-Nord/konova#298
pull/380/head
mpeltriaux 2 years ago
commit 452b418ade

@ -52,7 +52,6 @@ class Command(BaseKonovaCommand):
self.__ema = Ema.objects.filter(**_filter) self.__ema = Ema.objects.filter(**_filter)
def perform_quality_check(self): def perform_quality_check(self):
# Interventions
_runs = [ _runs = [
(self.__interventions, InterventionQualityChecker), (self.__interventions, InterventionQualityChecker),
(self.__compensations, CompensationQualityChecker), (self.__compensations, CompensationQualityChecker),

@ -0,0 +1,66 @@
"""
Author: Michel Peltriaux
Organization: Struktur- und Genehmigungsdirektion Nord, Rhineland-Palatinate, Germany
Contact: ksp-servicestelle@sgdnord.rlp.de
Created on: 16.02.23
"""
from compensation.models import Compensation, EcoAccount
from compensation.utils.quality import CompensationQualityChecker, EcoAccountQualityChecker
from ema.models import Ema
from ema.utils.quality import EmaQualityChecker
from intervention.models import Intervention
from intervention.utils.quality import InterventionQualityChecker
from konova.management.commands.setup import BaseKonovaCommand
from user.models import User
class Command(BaseKonovaCommand):
help = "Runs quality check on recorded entries"
__interventions = []
__compensations = []
__ecoaccount = []
__ema = []
def handle(self, *args, **options):
self.__get_objects()
self.perform_quality_check()
def __get_objects(self):
_filter = {
"recorded_id__isnull": False,
}
self.__interventions = Intervention.objects.filter(**_filter)
self.__compensations = Compensation.objects.filter(
intervention__recorded_id__isnull=False
)
self.__ecoaccount = EcoAccount.objects.filter(**_filter)
self.__ema = Ema.objects.filter(**_filter)
def perform_quality_check(self):
""" Performs quality check and unrecords failing entries
"""
_runs = [
#(self.__interventions, InterventionQualityChecker),
(self.__compensations, CompensationQualityChecker),
#(self.__ecoaccount, EcoAccountQualityChecker),
#(self.__ema, EmaQualityChecker),
]
invalid_entries = set()
admin_user = User.objects.get(
username="kspRoot"
)
for run in _runs:
entries = run[0]
CheckerClass = run[1]
for entry in entries:
checker = CheckerClass(entry)
checker.run_check()
if not checker.valid and CheckerClass is CompensationQualityChecker:
invalid_entries.add(entry.intervention)
for e in invalid_entries:
e.set_unrecorded(user=admin_user)
self._write_warning(e.identifier)
Loading…
Cancel
Save