* refactors function based report views into class based for EIV, OEK, EMA, KOM * introduces BaseReportView for proper inheritance of shared logic * refactors generating of qr codes into proper class
		
			
				
	
	
		
			46 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
"""
 | 
						|
Author: Michel Peltriaux
 | 
						|
Organization: Struktur- und Genehmigungsdirektion Nord, Rhineland-Palatinate, Germany
 | 
						|
Contact: ksp-servicestelle@sgdnord.rlp.de
 | 
						|
Created on: 19.08.22
 | 
						|
 | 
						|
"""
 | 
						|
from django.urls import reverse
 | 
						|
 | 
						|
from compensation.models import EcoAccount
 | 
						|
from compensation.views.compensation.report import BaseCompensationReportView
 | 
						|
from konova.sub_settings.django_settings import BASE_URL
 | 
						|
from konova.utils.qrcode import QrCode
 | 
						|
 | 
						|
 | 
						|
class EcoAccountReportView(BaseCompensationReportView):
 | 
						|
    _MODEL = EcoAccount
 | 
						|
    _TEMPLATE = "compensation/report/eco_account/report.html"
 | 
						|
 | 
						|
    def _get_report_context(self, obj):
 | 
						|
        report_url = BASE_URL + reverse("compensation:acc:report", args=(obj.id,))
 | 
						|
        qrcode_report = QrCode(report_url, 10)
 | 
						|
        qrcode_lanis = QrCode(obj.get_LANIS_link(), 7)
 | 
						|
 | 
						|
        # Reduce amount of db fetched data to the bare minimum we need in the template (deduction's intervention id and identifier)
 | 
						|
        deductions = obj.deductions.all() \
 | 
						|
            .distinct("intervention") \
 | 
						|
            .select_related("intervention") \
 | 
						|
            .values_list("intervention__id", "intervention__identifier", "intervention__title", named=True)
 | 
						|
 | 
						|
        report_context = {
 | 
						|
            "qrcode": {
 | 
						|
                "img": qrcode_report.get_img(),
 | 
						|
                "url": qrcode_report.get_content(),
 | 
						|
            },
 | 
						|
            "qrcode_lanis": {
 | 
						|
                "img": qrcode_lanis.get_img(),
 | 
						|
                "url": qrcode_lanis.get_content(),
 | 
						|
            },
 | 
						|
            "is_entry_shared": False,  # disables action buttons during rendering
 | 
						|
            "deductions": deductions,
 | 
						|
            "tables_scrollable": False,
 | 
						|
        }
 | 
						|
        report_context.update(self._get_compensation_report_context(obj))
 | 
						|
        return report_context
 |