"""
Author: Michel Peltriaux
Organization: Struktur- und Genehmigungsdirektion Nord, Rhineland-Palatinate, Germany
Contact: ksp-servicestelle@sgdnord.rlp.de
Created on: 18.08.22

"""
from codelist.settings import CODELIST_COMPENSATION_ACTION_ID, CODELIST_COMPENSATION_ACTION_DETAIL_ID
from codelist.autocomplete.base import KonovaCodeAutocomplete


class CompensationActionCodeAutocomplete(KonovaCodeAutocomplete):
    """
    Due to limitations of the django dal package, we need to subclass for each code list
    """
    group_by_related = "parent"
    related_field_name = "long_name"

    def __init__(self, *args, **kwargs):
        self.c = CODELIST_COMPENSATION_ACTION_ID
        super().__init__(*args, **kwargs)

    def order_by(self, qs):
        return qs.order_by(
            "parent__long_name"
        )


class CompensationActionDetailCodeAutocomplete(KonovaCodeAutocomplete):
    """
    Due to limitations of the django dal package, we need to subclass for each code list
    """
    group_by_related = "parent"
    related_field_name = "long_name"
    paginate_by = 200

    def __init__(self, *args, **kwargs):
        self.c = CODELIST_COMPENSATION_ACTION_DETAIL_ID
        super().__init__(*args, **kwargs)

    def order_by(self, qs):
        return qs.order_by(
            "long_name"
        )