def mangler_maskine_view(request, maskine=None, avid=None, version=None): if not maskine or not avid or not version: versioner = [] stoerrelse = 0 versioner_objs = Version.objects.filter( status='Modtaget', modtaget_kopieret=True, modtaget_modtagelse_godkendt=True, ).order_by('svarfrist') for version_obj in versioner_objs: av_obj = Arkiveringsversion.objects.filter( avid=version_obj.avid.avid).first() if len(Medie.objects.filter(versioner=version_obj, maskine=None)) > 0: if Medie.objects.filter(maskine=None): versioner.append({ "avid": av_obj.avid, "version": version_obj.nummer, "jnr": av_obj.jnr, "titel": av_obj.titel, "kategori": av_obj.kategori, "svarfrist": '{:%d-%m-%Y}'.format(version_obj.svarfrist) if version_obj.svarfrist != None else '', "stoerrelse": int(version_obj.stoerrelsemb / 1024), }) stoerrelse += version_obj.stoerrelsemb return render( request, 'arkiveringsversioner/mangler_maskine.html', { "bruger_rettigheder": rettigheder(request.user), "versioner": versioner, "samlet_stoerrelse": int(stoerrelse / 1024), }) if maskine or avid or version: _maskine_obj = Maskine.objects.get(navn=maskine) _arkiveringsversion_obj = Arkiveringsversion.objects.get(avid=avid) _version_obj = Version.objects.get(nummer=version, avid=_arkiveringsversion_obj) _medie_obj = Medie.objects.filter(versioner=_version_obj).first() _medie_obj.maskine = _maskine_obj _medie_obj.save() messages.success( request, f"Maskinen '{_maskine_obj.navn}' tildelt til version '{_version_obj.nummer}' af 'AVID.{_version_obj.avid}'" ) return redirect('arkiveringsversion_view', avid=avid, version=version)
def medier_view(request): _medier_objs = sorted(Medie.objects.all(), key=lambda _medie: _medie.navn) _medier = [] for _medie_obj in _medier_objs: versioner_objs = _medie_obj.versioner.all() versioner = [] for v in versioner_objs: versioner.append(v.avid.avid) _medier.append({ "pk": _medie_obj.pk, "navn": _medie_obj.navn, "producent": _medie_obj.producent, "kapacitet": _medie_obj.kapacitet, "versioner": versioner, "maskine": _medie_obj.maskine, }) print(_medier) return render(request, 'hardware/medier.html', { "bruger_rettigheder": rettigheder(request.user), "medier": _medier, })
def typer_view(request): _typer_objs = sorted(Type.objects.all(), key=lambda _type: _type.navn) return render(request, 'arkiveringsversioner/typer.html', { "bruger_rettigheder": rettigheder(request.user), "typer": _typer_objs, })
def brugere_view(request): _brugere = sorted(Bruger.objects.all(), key=lambda _bruger: _bruger.profil.initialer) return render(request, 'system/brugere.html', { "bruger_rettigheder": rettigheder(request.user), "brugere": _brugere, })
def grupper_view(request): _grupper_objs = Gruppe.objects.all().order_by(Lower('navn')) return render( request, 'system/grupper.html', { "bruger_rettigheder": rettigheder(request.user), "grupper": _grupper_objs, })
def leverandoerer_view(request): _leverandoerer_objs = sorted(Leverandoer.objects.all(), key=lambda _leverandoer: _leverandoer.navn) return render( request, 'arkiveringsversioner/leverandoerer.html', { "bruger_rettigheder": rettigheder(request.user), "leverandoerer": _leverandoerer_objs, })
def maskiner_view(request): _maskiner_objs = sorted(Maskine.objects.all(), key=lambda _maskine: _maskine.navn) return render( request, 'hardware/maskiner.html', { "bruger_rettigheder": rettigheder(request.user), "maskiner": _maskiner_objs, })
def tjek_rettigheder(user, rttghdr): if not user.is_authenticated: return False _rettigheder = rettigheder(user) if not rttghdr.issubset(_rettigheder): return False return True
def medie_view(request, pk=None): if request.method == 'GET': if pk: if Medie.objects.filter(pk=pk).exists(): _medie_obj = Medie.objects.get(pk=pk) return render( request, 'hardware/medie.html', { "bruger_rettigheder": rettigheder(request.user), "pk": _medie_obj.pk, "navn": _medie_obj.navn, "producent": _medie_obj.producent, "kapacitet": _medie_obj.kapacitet, "medie_type": _medie_obj.type, "ny": False, }) if not Medie.objects.filter(pk=pk).exists(): messages.error(request, "Det angivet medie findes ikke.") return redirect('medier_view') if not pk: messages.error(request, "Intet medie angivet.") return redirect('medier_view') if request.method == 'POST' and tjek_rettigheder( request.user, {'hardware_medie_rediger'}): if 'fortryd' in request.POST: return redirect('medier_view') _pk = request.POST['pk'] if 'pk' in request.POST else None _navn = request.POST['navn'].upper( ) if 'navn' in request.POST else None _producent = request.POST[ 'producent'] if 'producent' in request.POST else None _kapacitet = request.POST[ 'kapacitet'] if 'kapacitet' in request.POST else None _medie_type = request.POST[ 'medie_type'] if 'medie_type' in request.POST else None if _pk: _medie_obj = None _tjek_navn = False _tjek_kapacitet = False try: _pk = int(_pk) except ValueError: messages.error(request, f"Det angivet medie findes ikke.") return redirect('medier_view') if Medie.objects.filter(pk=_pk).exists(): _medie_obj = Medie.objects.get(pk=_pk) else: messages.error(request, f"Det angivet medie findes ikke.") return redirect('medier_view') if 'slet' in request.POST and tjek_rettigheder( request.user, {'hardware_medie_slet'}): messages.warning(request, f"Mediet '{_medie_obj.navn}' blev slettet.") _medie_obj.delete() return redirect('medier_view') if _navn != '' and Medie.objects.filter(navn=_navn).exists(): _navn_medie_obj = Medie.objects.filter(navn=_navn).first() if _medie_obj.pk == _navn_medie_obj.pk: _tjek_navn = True else: _tjek_navn = False messages.error( request, f"Et medie med navnet '{_navn}' findes allerede.") else: _tjek_navn = True if _kapacitet != '': try: _kapacitet = int(_kapacitet) _tjek_kapacitet = True except ValueError: _tjek_kapacitet = False messages.error(request, "'Kapacitet i GB' er ikke et heltal.") else: _kapacitet = 0 _tjek_kapacitet = True if not _tjek_navn or not _tjek_kapacitet: return render( request, 'hardware/medie.html', { "bruger_rettigheder": rettigheder(request.user), "pk": _pk, "navn": _navn, "producent": _producent, "kapacitet": _kapacitet, "medie_type": _medie_type, "ny": False, }) _medie_obj.navn = _navn.strip() _medie_obj.producent = _producent.strip() _medie_obj.kapacitet = _kapacitet _medie_obj.type = _medie_type _medie_obj.save() messages.success(request, f"Mediet '{_medie_obj.navn}' blev gemt.") return redirect('medier_view') if not _pk and tjek_rettigheder(request.user, {'hardware_medie_opret'}): _medie_obj = Medie.objects.create() messages.success(request, "Nyt medie blev oprettet.") return render( request, 'hardware/medie.html', { "bruger_rettigheder": rettigheder(request.user), "pk": _medie_obj.pk, "navn": _medie_obj.navn, "producent": _medie_obj.producent, "kapacitet": _medie_obj.kapacitet, "medie_type": _medie_obj.type, "ny": True, }) return redirect('medier_view') return redirect('medier_view')
def leverandoer_view(request, pk=None): if request.method == 'GET': if pk: if Leverandoer.objects.filter(pk=pk).exists(): _leverandoer_obj = Leverandoer.objects.get(pk=pk) return render( request, 'arkiveringsversioner/leverandoer.html', { "bruger_rettigheder": rettigheder(request.user), "pk": _leverandoer_obj.pk, "navn": _leverandoer_obj.navn, }) if not Leverandoer.objects.filter(pk=pk).exists(): messages.error(request, "Den angivet leverandør findes ikke.") return redirect('leverandoerer_view') if not pk: messages.error(request, "Ingen leverandør angivet.") return redirect('leverandoerer_view') if request.method == 'POST' and tjek_rettigheder( request.user, {'arkiveringsversioner_leverandør_rediger'}): if 'fortryd' in request.POST: return redirect('leverandoerer_view') _pk = request.POST['pk'] if 'pk' in request.POST else None _navn = request.POST['navn'] if 'navn' in request.POST else None if _pk: _leverandoer_obj = None _tjek_navn = False try: _pk = int(_pk) except ValueError: messages.error(request, f"Den angivet leverandør findes ikke.") return redirect('leverandoerer_view') if Leverandoer.objects.filter(pk=_pk).exists(): _leverandoer_obj = Leverandoer.objects.get(pk=_pk) else: messages.error(request, f"Den angivet leverandør findes ikke.") return redirect('leverandoerer_view') if 'slet' in request.POST and tjek_rettigheder( request.user, {'arkiveringsversioner_leverandør_slet'}): messages.warning( request, f"Leverandøren '{_leverandoer_obj.navn}' blev slettet.") _leverandoer_obj.delete() return redirect('leverandoerer_view') if _navn != '' and Leverandoer.objects.filter(navn=_navn).exists(): _navn_leverandoer_obj = Leverandoer.objects.filter( navn=_navn).first() if _leverandoer_obj.pk == _navn_leverandoer_obj.pk: _tjek_navn = True else: _tjek_navn = False messages.error( request, f"En leverandør med navnet '{_navn}' findes allerede.") else: _tjek_navn = True if not _tjek_navn: return render( request, 'arkiveringsversioner/leverandoer.html', { "bruger_rettigheder": rettigheder(request.user), "pk": _pk, "navn": _navn, }) _leverandoer_obj.navn = _navn.strip() _leverandoer_obj.save() messages.success( request, f"Leverandøren '{_leverandoer_obj.navn}' blev gemt.") return redirect('leverandoerer_view') if not _pk and tjek_rettigheder( request.user, {'arkiveringsversioner_leverandør_opret'}): _leverandoer_obj = Leverandoer.objects.create() messages.success(request, "Ny leverandør blev oprettet.") return render( request, 'arkiveringsversioner/leverandoer.html', { "bruger_rettigheder": rettigheder(request.user), "pk": _leverandoer_obj.pk, "navn": _leverandoer_obj.navn, "ny": True, }) return redirect('leverandoerer_view') return redirect('leverandoerer_view')
def bruger_view(request, initialer=None): if request.method == 'GET': if initialer: if Profil.objects.filter(initialer=initialer).exists(): _profil_obj = Profil.objects.get(initialer=initialer) _bruger_obj = Bruger.objects.get(profil=_profil_obj) _tildelte_grupper = [] for _gruppe_obj in Gruppe.objects.filter(bruger=_bruger_obj): _tildelte_grupper.append(_gruppe_obj.navn) return render( request, 'system/bruger.html', { "bruger_rettigheder": rettigheder(request.user), "initialer": _bruger_obj.profil.initialer, "fornavn": _bruger_obj.profil.fornavn, "mellemnavn": _bruger_obj.profil.mellemnavn, "efternavn": _bruger_obj.profil.efternavn, "adgangskode": '', "tildelte_grupper": sorted(_tildelte_grupper), "ny": False, "slet": False if 'SUPERUSER' in _tildelte_grupper else True }) if not Profil.objects.filter(initialer=initialer).exists(): messages.error(request, "Den angivet bruger findes ikke.") return redirect('brugere_view') if not initialer: return render( request, 'system/bruger.html', { "bruger_rettigheder": rettigheder(request.user), "initialer": '', "fornavn": '', "mellemnavn": '', "efternavn": '', "adgangskode": '', "ny": True, "slet": False, }) if request.method == 'POST' and tjek_rettigheder( request.user, {'system_bruger_rediger'}): if 'fortryd' in request.POST: return redirect('brugere_view') _ny = request.POST['ny'] if 'ny' in request.POST else 'False' _initialer = request.POST['initialer'].upper( ) if 'initialer' in request.POST else None _fornavn = request.POST[ 'fornavn'] if 'fornavn' in request.POST else None _mellemnavn = request.POST[ 'mellemnavn'] if 'mellemnavn' in request.POST else None _efternavn = request.POST[ 'efternavn'] if 'efternavn' in request.POST else None _adgangskode = request.POST[ 'adgangskode'] if 'adgangskode' in request.POST else None if _initialer: if len(_initialer) != 3: _grupper = [] for _gruppe_obj in Gruppe.objects.all(): _grupper.append(_gruppe_obj.navn) _tildelte_grupper = [] for _gruppe in _grupper: if _gruppe in request.POST: _tildelte_grupper.append(_gruppe) messages.error( request, f"Initialer skal altid udgøres af tre tegn. Hverken mere eller mindre. Tre tegn!" ) return render( request, 'system/bruger.html', { "bruger_rettigheder": rettigheder(request.user), "initialer": _initialer, "fornavn": _fornavn, "mellemnavn": _mellemnavn, "efternavn": _efternavn, "adgangskode": '', "tildelte_grupper": sorted(_tildelte_grupper), "ny": True, "slet": False, }) if Profil.objects.filter(initialer=_initialer).exists(): if 'slet' in request.POST and tjek_rettigheder( request.user, {'system_bruger_slet'}): _user_obj = User.objects.get(username=_initialer) _profil_obj = Profil.objects.get(initialer=_initialer) _bruger_obj = Bruger.objects.get(profil=_profil_obj) _tildelte_grupper = [] for _gruppe_obj in Gruppe.objects.filter( bruger=_bruger_obj): _tildelte_grupper.append(_gruppe_obj.navn) if 'SUPERUSER' in _tildelte_grupper: messages.error( request, f"Du kan ikke slette en bruger der er medlem af gruppen 'SUPERUSER'" ) return redirect('brugere_view') _user_obj.delete() _bruger_obj.delete() _profil_obj.delete() messages.warning(request, f"Brugeren '{_initialer}' blev slettet.") return redirect('brugere_view') if _ny == 'True': messages.error( request, f"Brugeren '{_initialer}' findes allerede.") return render( request, 'system/bruger.html', { "bruger_rettigheder": rettigheder(request.user), "fornavn": _fornavn, "mellemnavn": _mellemnavn, "efternavn": _efternavn, "adgangskode": '', "ny": True, "slet": False, }) if not _ny == 'True': _profil_obj = Profil.objects.get(initialer=_initialer) _bruger_obj = Bruger.objects.get(profil=_profil_obj) _bruger_obj.profil.fornavn = _fornavn if _fornavn != '' else _bruger_obj.profil.fornavn _bruger_obj.profil.mellemnavn = _mellemnavn if _mellemnavn != '' else _bruger_obj.profil.mellemnavn _bruger_obj.profil.efternavn = _efternavn if _efternavn != '' else _bruger_obj.profil.efternavn _bruger_obj.profil.save() if _adgangskode != '': _user_obj = User.objects.get(username=_initialer) _user_obj.set_password(_adgangskode) _user_obj.save() _grupper = [] for gruppe_obj in Gruppe.objects.all(): _grupper.append(gruppe_obj.navn) for _gruppe in _grupper: _post_gruppe = request.POST[ _gruppe] if _gruppe in request.POST else None if _post_gruppe: if not Gruppe.objects.filter( navn=_gruppe, bruger=_bruger_obj).first(): _gruppe_obj = Gruppe.objects.get(navn=_gruppe) _gruppe_obj.bruger.add(_bruger_obj) if not _post_gruppe: _gruppe_obj = Gruppe.objects.filter( navn=_gruppe, bruger=_bruger_obj).first() if _gruppe_obj: _gruppe_obj.bruger.remove(_bruger_obj) messages.success(request, f"Brugeren '{_initialer}' blev gemt.") return redirect('brugere_view') if not Profil.objects.filter( initialer=_initialer).exists() and tjek_rettigheder( request.user, {'system_bruger_opret'}): User.objects.create_user(username=_initialer) _profil_obj = Profil.objects.create(initialer=_initialer) _bruger_obj = Bruger.objects.create(profil=_profil_obj) _bruger_obj.profil.fornavn = _fornavn if _fornavn != '' else _bruger_obj.profil.fornavn _bruger_obj.profil.mellemnavn = _mellemnavn if _mellemnavn != '' else _bruger_obj.profil.mellemnavn _bruger_obj.profil.efternavn = _efternavn if _efternavn != '' else _bruger_obj.profil.efternavn _bruger_obj.profil.save() if _adgangskode: _user_obj = User.objects.get(username=_initialer) _user_obj.set_password(_adgangskode) _user_obj.save() _grupper = [] for gruppe_obj in Gruppe.objects.all(): _grupper.append(gruppe_obj.navn) for _gruppe in _grupper: _post_gruppe = request.POST[ _gruppe] if _gruppe in request.POST else None if _post_gruppe: if not Gruppe.objects.filter( navn=_gruppe, bruger=_bruger_obj).first(): _gruppe_obj = Gruppe.objects.get(navn=_gruppe) _gruppe_obj.bruger.add(_bruger_obj) if not _post_gruppe: _gruppe_obj = Gruppe.objects.filter( navn=_gruppe, bruger=_bruger_obj).first() if _gruppe_obj: _gruppe_obj.bruger.remove(_bruger_obj) messages.success(request, f"Brugeren '{_initialer}' blev oprettet.") return redirect('brugere_view') if not _initialer: messages.error(request, f"Udfyld venligst feltet 'Initialer'.") return render( request, 'system/bruger.html', { "bruger_rettigheder": rettigheder(request.user), "initialer": _initialer, "fornavn": _fornavn, "mellemnavn": _mellemnavn, "efternavn": _efternavn, "adgangskode": '', "ny": True, "slet": False, })
def system_view(request): return render(request, 'system/system.html', { "bruger_rettigheder": rettigheder(request.user), })
def forside_view(request): return render(request, 'forside/forside.html', { "bruger_rettigheder": rettigheder(request.user) })
def hardware_view(request): return render(request, 'hardware/hardware.html', { "bruger_rettigheder": rettigheder(request.user), })
def soeg_view(request, nulstil=0): _avid = request.GET.get( 'avid_soeg') if 'avid_soeg' in request.GET and request.GET.get( 'avid_soeg') != '' else None _jnr = request.GET.get( 'jnr_soeg') if 'jnr_soeg' in request.GET and request.GET.get( 'jnr_soeg') != '' else None _titel = request.GET.get( 'titel_soeg') if 'titel_soeg' in request.GET and request.GET.get( 'titel_soeg') != '' else None _land = request.GET.getlist( 'land_soeg') if 'land_soeg' in request.GET else None _status = request.GET.getlist( 'status_soeg') if 'status_soeg' in request.GET else None _kategori = request.GET.getlist( 'kategori_soeg') if 'kategori_soeg' in request.GET else None _klassifikation = request.GET.getlist( 'klassifikation_soeg' ) if 'klassifikation_soeg' in request.GET else None _type = request.GET.getlist( 'type_soeg') if 'type_soeg' in request.GET else None _arkivar = request.GET.getlist( 'arkivar_soeg') if 'arkivar_soeg' in request.GET else None _leverandoer = request.GET.getlist( 'leverandoer_soeg') if 'leverandoer_soeg' in request.GET else None _tester = request.GET.getlist( 'tester_soeg') if 'tester_soeg' in request.GET else None _afleveringsfrist_fra = datetime.strptime( request.GET.get('afleveringsfrist_fra_soeg'), '%d-%m-%Y').date( ) if 'afleveringsfrist_fra_soeg' in request.GET and request.GET.get( 'afleveringsfrist_fra_soeg') != '' else None _afleveringsfrist_til = datetime.strptime( request.GET.get('afleveringsfrist_til_soeg'), '%d-%m-%Y').date( ) if 'afleveringsfrist_til_soeg' in request.GET and request.GET.get( 'afleveringsfrist_til_soeg') != '' else None _modtaget_fra = datetime.strptime( request.GET.get('modtaget_fra_soeg'), '%d-%m-%Y').date( ) if 'modtaget_fra_soeg' in request.GET and request.GET.get( 'modtaget_fra_soeg') != '' else None _modtaget_til = datetime.strptime( request.GET.get('modtaget_til_soeg'), '%d-%m-%Y').date( ) if 'modtaget_til_soeg' in request.GET and request.GET.get( 'modtaget_til_soeg') != '' else None _adgang_fra = datetime.strptime( request.GET.get('adgang_fra_soeg'), '%d-%m-%Y').date( ) if 'adgang_fra_soeg' in request.GET and request.GET.get( 'adgang_fra_soeg') != '' else None _adgang_til = datetime.strptime( request.GET.get('adgang_til_soeg'), '%d-%m-%Y').date( ) if 'adgang_til_soeg' in request.GET and request.GET.get( 'adgang_til_soeg') != '' else None _svarfrist_fra = datetime.strptime( request.GET.get('svarfrist_fra_soeg'), '%d-%m-%Y').date( ) if 'svarfrist_fra_soeg' in request.GET and request.GET.get( 'svarfrist_fra_soeg') != '' else None _svarfrist_til = datetime.strptime( request.GET.get('svarfrist_til_soeg'), '%d-%m-%Y').date( ) if 'svarfrist_til_soeg' in request.GET and request.GET.get( 'svarfrist_til_soeg') != '' else None _genafleveringsfrist_fra = datetime.strptime( request.GET.get('genafleveringsfrist_fra_soeg'), '%d-%m-%Y').date( ) if 'genafleveringsfrist_fra_soeg' in request.GET and request.GET.get( 'genafleveringsfrist_fra_soeg') != '' else None _genafleveringsfrist_til = datetime.strptime( request.GET.get('genafleveringsfrist_til_soeg'), '%d-%m-%Y').date( ) if 'genafleveringsfrist_til_soeg' in request.GET and request.GET.get( 'genafleveringsfrist_til_soeg') != '' else None _svar_fra = datetime.strptime( request.GET.get('svar_fra_soeg'), '%d-%m-%Y').date( ) if 'svar_fra_soeg' in request.GET and request.GET.get( 'svar_fra_soeg') != '' else None _svar_til = datetime.strptime( request.GET.get('svar_til_soeg'), '%d-%m-%Y').date( ) if 'svar_til_soeg' in request.GET and request.GET.get( 'svar_til_soeg') != '' else None _enkelte_versioner = True if request.GET.get( 'enkelte_versioner') != None else False _vis_avid = True if request.GET.get('vis_avid') != None else False _vis_version = True if request.GET.get('vis_version') != None else False _vis_jnr = True if request.GET.get('vis_jnr') != None else False _vis_titel = True if request.GET.get('vis_titel') != None else False _vis_land = True if request.GET.get('vis_land') != None else False _vis_status = True if request.GET.get('vis_status') != None else False _vis_kategori = True if request.GET.get('vis_kategori') != None else False _vis_klassifikation = True if request.GET.get( 'vis_klassifikation') != None else False _vis_type = True if request.GET.get('vis_type') != None else False _vis_arkivar = True if request.GET.get('vis_arkivar') != None else False _vis_leverandoer = True if request.GET.get( 'vis_leverandoer') != None else False _vis_tester = True if request.GET.get('vis_tester') != None else False _vis_afleveringsfrist = True if request.GET.get( 'vis_afleveringsfrist') != None else False _vis_modtaget = True if request.GET.get('vis_modtaget') != None else False _vis_adgang = True if request.GET.get('vis_adgang') != None else False _vis_svarfrist = True if request.GET.get( 'vis_svarfrist') != None else False _vis_genafleveringsfrist = True if request.GET.get( 'vis_genafleveringsfrist') != None else False _vis_svar = True if request.GET.get('vis_svar') != None else False _sortering_avid = True if request.GET.get( 'sortering') == 'sortering_avid' else False _sortering_titel = True if request.GET.get( 'sortering') == 'sortering_titel' else False _sortering_status = True if request.GET.get( 'sortering') == 'sortering_status' else False _sortering_kategori = True if request.GET.get( 'sortering') == 'sortering_kategori' else False _sortering_klassifikation = True if request.GET.get( 'sortering') == 'sortering_klassifikation' else False _sortering_type = True if request.GET.get( 'sortering') == 'sortering_type' else False _sortering_afleveringsfrist = True if request.GET.get( 'sortering') == 'sortering_afleveringsfrist' else False _sortering_modtaget = True if request.GET.get( 'sortering') == 'sortering_modtaget' else False _sortering_adgang = True if request.GET.get( 'sortering') == 'sortering_adgang' else False _sortering_svarfrist = True if request.GET.get( 'sortering') == 'sortering_svarfrist' else False _sortering_genafleveringsfrist = True if request.GET.get( 'sortering') == 'sortering_genafleveringsfrist' else False _sortering_svar = True if request.GET.get( 'sortering') == 'sortering_svar' else False _sortering_faldende = True if request.GET.get( 'sortering_faldende') != None else False _bookmark = True if 'bookmark' in request.GET else False _resultat = list() _sorted_resultat = list() _arkiveringsversioner = set() if nulstil: _vis_avid = True _vis_version = True _vis_jnr = True _vis_titel = True _vis_status = True _vis_kategori = True if not nulstil: _avs_objs = Arkiveringsversion.objects.all() if _avid: _avs_objs = _avs_objs.filter(avid__icontains=_avid) if _jnr: _avs_objs = _avs_objs.filter(jnr__icontains=_jnr) if _titel: _avs_objs = _avs_objs.filter(titel__icontains=_titel) if _land: _avs_objs = _avs_objs.filter( qtq([Q(land=value) for value in _land])) if _kategori: _avs_objs = _avs_objs.filter( qtq([Q(kategori=value) for value in _kategori])) if _klassifikation: _avs_objs = _avs_objs.filter( qtq([Q(klassifikation=value) for value in _klassifikation])) if _type: _avs_objs = _avs_objs.filter( qtq([ Q(type=value) for value in [Type.objects.get(navn=value) for value in _type] ])) _version_objs = Version.objects.filter(avid__in=(av for av in _avs_objs)) if _status: _version_objs = _version_objs.filter( qtq([Q(status=value) for value in _status])) if _arkivar: _version_objs = _version_objs.filter( qtq([ Q(arkivar=Bruger.objects.get(profil=value)) for value in [ Profil.objects.get(initialer=value) for value in _arkivar ] ])) if _leverandoer: _version_objs = _version_objs.filter( qtq([ Q(leverandoer=value) for value in [ Leverandoer.objects.get(navn=value) for value in _leverandoer ] ])) if _tester: _version_objs = _version_objs.filter( qtq([ Q(tester=Bruger.objects.get(profil=value)) for value in [Profil.objects.get(initialer=value) for value in _tester] ])) if _afleveringsfrist_fra: _version_objs = _version_objs.filter( Q(afleveringsfrist__gte=_afleveringsfrist_fra) | ~Q(afleveringsfrist=None)) if _afleveringsfrist_til: _version_objs = _version_objs.filter( Q(afleveringsfrist__lte=_afleveringsfrist_til) | ~Q(afleveringsfrist=None)) if _modtaget_fra: _version_objs = _version_objs.filter( Q(modtaget__gte=_modtaget_fra) | ~Q(modtaget=None)) if _modtaget_til: _version_objs = _version_objs.filter( Q(modtaget__lte=_modtaget_til) | ~Q(modtaget=None)) if _adgang_fra: _version_objs = _version_objs.filter( Q(adgang__gte=_adgang_fra) | ~Q(adgang=None)) if _adgang_til: _version_objs = _version_objs.filter( Q(adgang__lte=_adgang_til) | ~Q(adgang=None)) if _svarfrist_fra: _version_objs = _version_objs.filter( Q(svarfrist__gte=_svarfrist_fra) | ~Q(svarfrist=None)) if _svarfrist_til: _version_objs = _version_objs.filter( Q(svarfrist__lte=_svarfrist_til) | ~Q(svarfrist=None)) if _genafleveringsfrist_fra: _version_objs = _version_objs.filter( Q(genafleveringsfrist__gte=_genafleveringsfrist_fra) | ~Q(genafleveringsfrist=None)) if _genafleveringsfrist_til: _version_objs = _version_objs.filter( Q(genafleveringsfrist__lte=_genafleveringsfrist_til) | ~Q(genafleveringsfrist=None)) if _svar_fra: _version_objs = _version_objs.filter( Q(svar__gte=_svar_fra) | ~Q(svar=None)) if _svar_til: _version_objs = _version_objs.filter( Q(svar__lte=_svar_til) | ~Q(svar=None)) if _enkelte_versioner: for version in _version_objs: _arkiveringsversioner.add(version.avid.avid) _resultat.append({ "avid": version.avid.avid, "version": version.nummer, "jnr": version.avid.jnr, "titel": version.avid.titel, "land": version.avid.land, "status": version.status, "kategori": version.avid.kategori, "klassifikation": version.avid.klassifikation, "type": version.avid.type if version.avid.type else '', "stoerrelse": int(version.stoerrelsemb / 1024), "arkivar": version.arkivar if version.arkivar else '', "leverandoer": version.leverandoer, "tester": version.tester if version.tester else '', "afleveringsfrist": '{:%d-%m-%Y}'.format(version.afleveringsfrist) if version.afleveringsfrist != None else '', "modtaget": '{:%d-%m-%Y}'.format(version.modtaget) if version.modtaget != None else '', "adgang": '{:%d-%m-%Y}'.format(version.adgang) if version.adgang != None else '', "svarfrist": '{:%d-%m-%Y}'.format(version.svarfrist) if version.svarfrist != None else '', "genafleveringsfrist": '{:%d-%m-%Y}'.format(version.genafleveringsfrist) if version.genafleveringsfrist != None else '', "svar": '{:%d-%m-%Y}'.format(version.svar) if version.svar != None else '', }) if not _enkelte_versioner: for version in _version_objs: _arkiveringsversioner.add(version.avid.avid) for avid in _arkiveringsversioner: av = Arkiveringsversion.objects.get(avid=avid) version_last = Version.objects.filter( avid=av).order_by('nummer').last() _resultat.append({ "avid": av.avid, "jnr": av.jnr, "version": version_last.nummer, "titel": av.titel, "land": av.land, "status": version_last.status, "kategori": av.kategori, "klassifikation": av.klassifikation, "type": av.type if av.type else '', "stoerrelse": int(version_last.stoerrelsemb / 1024), "arkivar": version_last.arkivar if version_last.arkivar else '', "leverandoer": version_last.leverandoer if version_last.leverandoer else '', "tester": version_last.tester if version_last.tester else '', "afleveringsfrist": '{:%d-%m-%Y}'.format(version_last.afleveringsfrist) if version_last.afleveringsfrist != None else '', "modtaget": '{:%d-%m-%Y}'.format(version_last.modtaget) if version_last.modtaget != None else '', "adgang": '{:%d-%m-%Y}'.format(version_last.adgang) if version_last.adgang != None else '', "svarfrist": '{:%d-%m-%Y}'.format(version_last.svarfrist) if version_last.svarfrist != None else '', "genafleveringsfrist": '{:%d-%m-%Y}'.format(version_last.genafleveringsfrist) if version_last.genafleveringsfrist != None else '', "svar": '{:%d-%m-%Y}'.format(version_last.svar) if version_last.svar != None else '', }) if _sortering_avid: if _sortering_faldende: _sorted_resultat = sorted(_resultat, key=lambda i: (i['avid'], i['version']), reverse=True) else: _sorted_resultat = sorted(_resultat, key=lambda i: (i['avid'], i['version'])) elif _sortering_titel: if _sortering_faldende: _sorted_resultat = sorted(_resultat, key=lambda i: (i['titel'], i['avid'], i['version']), reverse=True) else: _sorted_resultat = sorted(_resultat, key=lambda i: (i['titel'], i['avid'], i['version'])) elif _sortering_status: if _sortering_faldende: _sorted_resultat = sorted(_resultat, key=lambda i: (i['status'], i['avid'], i['version']), reverse=True) else: _sorted_resultat = sorted(_resultat, key=lambda i: (i['status'], i['avid'], i['version'])) elif _sortering_kategori: if _sortering_faldende: _sorted_resultat = sorted(_resultat, key=lambda i: (i['kategori'], i['avid'], i['version']), reverse=True) else: _sorted_resultat = sorted(_resultat, key=lambda i: (i['kategori'], i['avid'], i['version'])) elif _sortering_klassifikation: if _sortering_faldende: _sorted_resultat = sorted( _resultat, key=lambda i: (i['klassifikation'], i['avid'], i['version']), reverse=True) else: _sorted_resultat = sorted( _resultat, key=lambda i: (i['klassifikation'], i['avid'], i['version'])) elif _sortering_type: if _sortering_faldende: _sorted_resultat = sorted( _resultat, key=lambda i: (str(i['type']), i['avid'], i['version']), reverse=True) else: _sorted_resultat = sorted( _resultat, key=lambda i: (str(i['type']), i['avid'], i['version'])) elif _sortering_afleveringsfrist: if _sortering_faldende: _sorted_resultat = sorted( _resultat, key=lambda i: (notnonedate(i['afleveringsfrist']), i['avid'], i['version']), reverse=True) else: _sorted_resultat = sorted( _resultat, key=lambda i: (notnonedate(i['afleveringsfrist']), i['avid'], i['version'])) elif _sortering_modtaget: if _sortering_faldende: _sorted_resultat = sorted( _resultat, key=lambda i: (notnonedate(i['modtaget']), i['avid'], i['version']), reverse=True) else: _sorted_resultat = sorted( _resultat, key=lambda i: (notnonedate(i['modtaget']), i['avid'], i['version'])) elif _sortering_adgang: if _sortering_faldende: _sorted_resultat = sorted( _resultat, key=lambda i: (notnonedate(i['adgang']), i['avid'], i['version']), reverse=True) else: _sorted_resultat = sorted( _resultat, key=lambda i: (notnonedate(i['adgang']), i['avid'], i['version'])) elif _sortering_svarfrist: if _sortering_faldende: _sorted_resultat = sorted( _resultat, key=lambda i: (notnonedate(i['svarfrist']), i['avid'], i['version']), reverse=True) else: _sorted_resultat = sorted( _resultat, key=lambda i: (notnonedate(i['svarfrist']), i['avid'], i['version'])) elif _sortering_genafleveringsfrist: if _sortering_faldende: _sorted_resultat = sorted(_resultat, key=lambda i: (notnonedate(i['genafleveringsfrist']), i['avid'], i['version']), reverse=True) else: _sorted_resultat = sorted(_resultat, key=lambda i: (notnonedate(i['genafleveringsfrist']), i['avid'], i['version'])) elif _sortering_svar: if _sortering_faldende: _sorted_resultat = sorted( _resultat, key=lambda i: (notnonedate(i['svar']), i['avid'], i['version']), reverse=True) else: _sorted_resultat = sorted( _resultat, key=lambda i: (notnonedate(i['svar']), i['avid'], i['version'])) else: _sorted_resultat = _resultat _samlet_stoerrrelse = 0 for r in _sorted_resultat: _samlet_stoerrrelse += r['stoerrelse'] _samlet_stoerrrelse = str(int(_samlet_stoerrrelse)) return render( request, 'arkiveringsversioner/soeg.html', { "bruger_rettigheder": rettigheder(request.user), "avid": _avid, "jnr": _jnr, "titel": _titel, "land": _land, "status": _status, "kategori": _kategori, "klassifikation": _klassifikation, "type": _type, "arkivar": _arkivar, "leverandoer": _leverandoer, "tester": _tester, "afleveringsfrist_fra": _afleveringsfrist_fra, "afleveringsfrist_til": _afleveringsfrist_til, "modtaget_fra": _modtaget_fra, "modtaget_til": _modtaget_til, "adgang_fra": _adgang_fra, "adgang_til": _adgang_til, "svarfrist_fra": _svarfrist_fra, "svarfrist_til": _svarfrist_til, "genafleveringsfrist_fra": _genafleveringsfrist_fra, "genafleveringsfrist_til": _genafleveringsfrist_til, "svar_fra": _svar_fra, "svar_til": _svar_til, "enkelte_versioner": _enkelte_versioner, "nulstil": nulstil, "vis_avid": _vis_avid, "vis_version": _vis_version, "vis_jnr": _vis_jnr, "vis_titel": _vis_titel, "vis_land": _vis_land, "vis_status": _vis_status, "vis_kategori": _vis_kategori, "vis_klassifikation": _vis_klassifikation, "vis_type": _vis_type, "vis_arkivar": _vis_arkivar, "vis_leverandoer": _vis_leverandoer, "vis_tester": _vis_tester, "vis_afleveringsfrist": _vis_afleveringsfrist, "vis_modtaget": _vis_modtaget, "vis_adgang": _vis_adgang, "vis_svarfrist": _vis_svarfrist, "vis_genafleveringsfrist": _vis_genafleveringsfrist, "vis_svar": _vis_svar, "sortering_avid": _sortering_avid, "sortering_titel": _sortering_titel, "sortering_status": _sortering_status, "sortering_kategori": _sortering_kategori, "sortering_klassifikation": _sortering_klassifikation, "sortering_type": _sortering_type, "sortering_afleveringsfrist": _sortering_afleveringsfrist, "sortering_modtaget": _sortering_modtaget, "sortering_adgang": _sortering_adgang, "sortering_svarfrist": _sortering_svarfrist, "sortering_genafleveringsfrist": _sortering_genafleveringsfrist, "sortering_svar": _sortering_svar, "sortering_faldende": _sortering_faldende, "resultat": _sorted_resultat, "arkiveringsversioner": _arkiveringsversioner, "samlet_stoerrelse": _samlet_stoerrrelse, "bookmark": _bookmark, })
def arkiveringsversioner_view(request): return render(request, 'arkiveringsversioner/arkiveringsversioner.html', { "bruger_rettigheder": rettigheder(request.user), })
def arkiveringsversion_view(request, avid, version=0, nystatus=None): if avid == '0' and version == '0' and nystatus == 'opret': _avid = request.GET.get('avid_opret') if not Arkiveringsversion.objects.filter(avid=_avid).exists(): _arkiveringsversion_obj = Arkiveringsversion.objects.create( avid=_avid) _version_obj = Version.objects.create(nummer=1, avid=_arkiveringsversion_obj, status='Afventer aflevering') return redirect( f"/arkiveringsversioner/arkiveringsversion/{_avid}/") else: return redirect( f"/arkiveringsversioner/arkiveringsversion/{_avid}/") _url_error = False try: _avid = int(avid) except ValueError: messages.error( request, f"Det angivet AVID: '{avid}', overholder ikke reglerne for et sådant." ) _url_error = True try: _version = int(version) except ValueError: messages.error( request, f"Den angivet version: '{version}', overholder ikke reglerne for et sådant." ) _url_error = True _statusser = [ 'modtaget', 'klar_til_test', 'tilbagemeldt', 'begynd_test', 'godkendt_af_tester', 'afvent_genaflevering', 'parat_til_godkendelse', 'godkendt' ] _nystatus = {nystatus} if nystatus != None and not _nystatus.issubset(_statusser): messages.error(request, f"Den angivet status: '{nystatus}', er ikke kendt.") _url_error = True if _url_error: return redirect('arkiveringsversioner_view') if request.method == 'GET': _arkiveringsversion_obj = None _version_obj = None if Arkiveringsversion.objects.filter(avid=avid).exists(): _arkiveringsversion_obj = Arkiveringsversion.objects.get(avid=avid) _version = Version.objects.filter( avid=_arkiveringsversion_obj).order_by('nummer').last().nummer version = version if version != 0 else _version if Version.objects.filter(nummer=version, avid=_arkiveringsversion_obj).exists(): _version_obj = Version.objects.get( nummer=version, avid=_arkiveringsversion_obj) if not Version.objects.filter( nummer=version, avid=_arkiveringsversion_obj).exists(): messages.error( request, f"Den angivet version af arkiveringsversionen 'AVID.SA.{avid}' findes ikke." ) return redirect('arkiveringsversioner_view') _status_error = False _ny_status = None if nystatus != None: if _version_obj.status == 'Afventer aflevering': if nystatus != 'modtaget': _status_error = True else: _ny_status = 'Modtaget' if _version_obj.status == 'Modtaget': if nystatus != 'klar_til_test' and nystatus != 'tilbagemeldt': _status_error = True else: if nystatus == 'klar_til_test': _ny_status = 'Klar til test' if nystatus == 'tilbagemeldt': _ny_status = 'Tilbagemeldt' if _version_obj.status == 'Klar til test': if nystatus != 'begynd_test': _status_error = True else: _ny_status = 'Under test' if _version_obj.status == 'Under test': if nystatus != 'tilbagemeldt' and nystatus != 'godkendt_af_tester': _status_error = True else: if nystatus == 'tilbagemeldt': _ny_status = 'Tilbagemeldt' if nystatus == 'godkendt_af_tester': _ny_status = 'Godkendt af tester' if _version_obj.status == 'Tilbagemeldt': if nystatus != 'afvent_genaflevering': _status_error = True else: _ny_status = 'Afventer genaflevering' if _version_obj.status == 'Afventer genaflevering': if nystatus != 'modtaget': _status_error = True else: _ny_status = 'Modtaget' if _version_obj.status == 'Godkendt af tester': if nystatus != 'parat_til_godkendelse': _status_error = True else: _ny_status = 'Parat til godkendelse' if _version_obj.status == 'Parat til godkendelse': if nystatus != 'godkendt': _status_error = True else: _ny_status = 'Godkendt' if _status_error: messages.error(request, f"Det angivet statusskift er ikke tilladt.") return redirect( f"/arkiveringsversioner/arkiveringsversion/{avid}/{version}/" ) if _ny_status: if 'datoformodtagelse' in request.GET: _version_obj.modtaget = datetime.strptime( request.GET.get('datoformodtagelse'), '%d-%m-%Y').date() if 'genmodtagetdato' in request.GET: _version_obj.modtaget = datetime.strptime( request.GET.get('genmodtagetdato'), '%d-%m-%Y').date() if 'datofortilbagemelding' in request.GET: _version_obj.svar = datetime.strptime( request.GET.get('datofortilbagemelding'), '%d-%m-%Y').date() if 'datofortilbagemelding2' in request.GET: _version_obj.svar = datetime.strptime( request.GET.get('datofortilbagemelding2'), '%d-%m-%Y').date() if 'datoforafleveringsfrist' in request.GET: _version_obj.genafleveringsfrist = datetime.strptime( request.GET.get('datoforafleveringsfrist'), '%d-%m-%Y').date() if 'godkendelsesdato' in request.GET: _version_obj.svar = datetime.strptime( request.GET.get('godkendelsesdato'), '%d-%m-%Y').date() _version_obj.modtaget_kvitteret = False _version_obj.modtaget_journaliseret = False _version_obj.modtaget_kodeord = False _version_obj.modtaget_mangler_kodeord = False _version_obj.modtaget_ikke_krypteret = False _version_obj.modtaget_kopieret = False _version_obj.modtaget_modtagelse_godkendt = False _version_obj.modtaget_modtagelse_afvist = False _version_obj.modtaget_fileindex_kopieret = False _version_obj.modtaget_ada_startet = False _version_obj.modtaget_adatest_godkendt = False _version_obj.modtaget_adatest_afvist = False _version_obj.tilbagemeldt_nedpakket = False _version_obj.tilbagemeldt_maskine_renset = False _version_obj.godkendt_af_tester_fileindex_godkendt = False _version_obj.godkendt_af_tester_afvikler_dea = False _version_obj.godkendt_af_tester_afleveret_til_dea = False _version_obj.godkendt_af_tester_retur_fra_dea = False _version_obj.godkendt_af_tester_mary_kontrol = False _version_obj.godkendt_af_tester_meta_opdateret = False _version_obj.godkendt_af_tester_public_opdateret = False _version_obj.godkendt_af_tester_maskine_renset = False if _ny_status == 'Under test': _version_obj.test_begyndt = datetime.today() if _ny_status == 'Under test' or _ny_status == 'Tilbagemeldt': _profil_obj = Profil.objects.get( initialer=request.user.username) _bruger_obj = Bruger.objects.get(profil=_profil_obj) _version_obj.tester = _bruger_obj if _ny_status == 'Afventer genaflevering': _version_obj.modtaget_kvitteret = False _version_obj.modtaget_journaliseret = False _version_obj.modtaget_kodeord = False _version_obj.modtaget_mangler_kodeord = False _version_obj.modtaget_ikke_krypteret = False _version_obj.modtaget_kopieret = False _version_obj.modtaget_modtagelse_godkendt = False _version_obj.modtaget_modtagelse_afvist = False _version_obj.modtaget_fileindex_kopieret = False _version_obj.modtaget_ada_startet = False _version_obj.modtaget_adatest_godkendt = False _version_obj.modtaget_adatest_afvist = False _version_obj.tilbagemeldt_nedpakket = False _version_obj.tilbagemeldt_maskine_renset = False _version_obj.godkendt_af_tester_fileindex_godkendt = False _version_obj.godkendt_af_tester_afvikler_dea = False _version_obj.godkendt_af_tester_afleveret_til_dea = False _version_obj.godkendt_af_tester_retur_fra_dea = False _version_obj.godkendt_af_tester_mary_kontrol = False _version_obj.godkendt_af_tester_meta_opdateret = False _version_obj.godkendt_af_tester_public_opdateret = False _version_obj.godkendt_af_tester_maskine_renset = False _version_obj.save() Version.objects.create( nummer=_version_obj.nummer + 1, avid=_version_obj.avid, status='Afventer genaflevering', arkivar=_version_obj.arkivar, leverandoer=_version_obj.leverandoer, afleveringsfrist=_version_obj.genafleveringsfrist) return redirect( f"/arkiveringsversioner/arkiveringsversion/{avid}/") else: _version_obj.status = _ny_status _version_obj.save() return redirect( f"/arkiveringsversioner/arkiveringsversion/{avid}/{version}/" ) _tester_fuldenavn = '' if _version_obj.tester: if _version_obj.tester.profil.fornavn != '' and _version_obj.tester.profil.fornavn != None: _tester_fuldenavn += _version_obj.tester.profil.fornavn if _version_obj.tester.profil.mellemnavn != '' and _version_obj.tester.profil.mellemnavn != None: _tester_fuldenavn += ' ' _tester_fuldenavn += _version_obj.tester.profil.mellemnavn if _version_obj.tester.profil.efternavn != '' and _version_obj.tester.profil.efternavn != None: _tester_fuldenavn += ' ' _tester_fuldenavn += _version_obj.tester.profil.efternavn _arkivar_fuldenavn = '' if _version_obj.arkivar: if _version_obj.arkivar.profil.fornavn != '' and _version_obj.arkivar.profil.fornavn != None: _arkivar_fuldenavn += _version_obj.arkivar.profil.fornavn if _version_obj.arkivar.profil.mellemnavn != '' and _version_obj.arkivar.profil.mellemnavn != None: _arkivar_fuldenavn += ' ' _arkivar_fuldenavn += _version_obj.arkivar.profil.mellemnavn if _version_obj.arkivar.profil.efternavn != '' and _version_obj.arkivar.profil.efternavn != None: _arkivar_fuldenavn += ' ' _arkivar_fuldenavn += _version_obj.arkivar.profil.efternavn _seneste_version = True if _version_obj.nummer == Version.objects.filter( avid=_version_obj.avid).order_by( 'nummer').last().nummer else False _ibrugtaget_medier = [] _maskine = None _ibrugtaget_medier_objs = Medie.objects.filter( versioner=_version_obj).order_by('navn') for _ibrugtaget_medie_obj in _ibrugtaget_medier_objs: _ibrugtaget_medier.append({'tag': _ibrugtaget_medie_obj.navn}) if _ibrugtaget_medie_obj.maskine != None: _maskine = _ibrugtaget_medie_obj.maskine.navn _ibrugtaget_medier = json.dumps(_ibrugtaget_medier) return render( request, 'arkiveringsversioner/arkiveringsversion.html', { "bruger_rettigheder": rettigheder(request.user), "avid": _arkiveringsversion_obj.avid, "jnr": _arkiveringsversion_obj.jnr, "public": _arkiveringsversion_obj.public, "titel": _arkiveringsversion_obj.titel, "kategori": _arkiveringsversion_obj.kategori, "klassifikation": _arkiveringsversion_obj.klassifikation, "type": str(_arkiveringsversion_obj.type), "land": _arkiveringsversion_obj.land, "noterfraarkivar": _arkiveringsversion_obj.arkivar_noter, "noterfratester": _arkiveringsversion_obj.tester_noter, "versioner": Version.objects.filter(avid=_arkiveringsversion_obj), "version": int(version), "tester": _tester_fuldenavn, "arkivar": _arkivar_fuldenavn, "leverandoer": str(_version_obj.leverandoer), "stoerrelsemb": _version_obj.stoerrelsemb, "stoerrelsegb": int(_version_obj.stoerrelsemb / 1024), "afleveringsfrist": '{:%d-%m-%Y}'.format(_version_obj.afleveringsfrist) if _version_obj.afleveringsfrist != None else '', "modtaget": '{:%d-%m-%Y}'.format(_version_obj.modtaget) if _version_obj.modtaget != None else '', "adgang": '{:%d-%m-%Y}'.format(_version_obj.adgang) if _version_obj.adgang != None else '', "svarfrist": '{:%d-%m-%Y}'.format(_version_obj.svarfrist) if _version_obj.svarfrist != None else '', "svar": '{:%d-%m-%Y}'.format(_version_obj.svar) if _version_obj.svar != None else '', "status": _version_obj.status, "maskine": _maskine, "modtaget_kvitteret": _version_obj.modtaget_kvitteret, "modtaget_journaliseret": _version_obj.modtaget_journaliseret, "modtaget_kodeord": _version_obj.modtaget_kodeord, "modtaget_mangler_kodeord": _version_obj.modtaget_mangler_kodeord, "modtaget_ikke_krypteret": _version_obj.modtaget_ikke_krypteret, "modtaget_kopieret": _version_obj.modtaget_kopieret, "modtaget_modtagelse_godkendt": _version_obj.modtaget_modtagelse_godkendt, "modtaget_modtagelse_afvist": _version_obj.modtaget_modtagelse_afvist, "modtaget_fileindex_kopieret": _version_obj.modtaget_fileindex_kopieret, "modtaget_ada_startet": _version_obj.modtaget_ada_startet, "modtaget_adatest_godkendt": _version_obj.modtaget_adatest_godkendt, "modtaget_adatest_afvist": _version_obj.modtaget_adatest_afvist, "tilbagemeldt_nedpakket": _version_obj.tilbagemeldt_nedpakket, "tilbagemeldt_maskine_renset": _version_obj.tilbagemeldt_maskine_renset, "godkendt_af_tester_fileindex_godkendt": _version_obj.godkendt_af_tester_fileindex_godkendt, "godkendt_af_tester_afvikler_dea": _version_obj.godkendt_af_tester_afvikler_dea, "godkendt_af_tester_afleveret_til_dea": _version_obj.godkendt_af_tester_afleveret_til_dea, "godkendt_af_tester_retur_fra_dea": _version_obj.godkendt_af_tester_retur_fra_dea, "godkendt_af_tester_mary_kontrol": _version_obj.godkendt_af_tester_mary_kontrol, "godkendt_af_tester_meta_opdateret": _version_obj.godkendt_af_tester_meta_opdateret, "godkendt_af_tester_public_opdateret": _version_obj.godkendt_af_tester_public_opdateret, "godkendt_af_tester_maskine_renset": _version_obj.godkendt_af_tester_maskine_renset, "dagsdato": datetime.today().strftime('%d-%m-%Y'), "seneste_version": _seneste_version, "backtick": '`', "ibrugtaget_medier": _ibrugtaget_medier, }) if not Arkiveringsversion.objects.filter(avid=avid).exists(): messages.error(request, "Den angivet arkiveringsversion findes ikke.") return redirect('arkiveringsversioner_view') if request.method == 'POST': _avid = request.POST.get('avid') if 'avid' in request.POST else None _jnr = request.POST.get('jnr') if 'jnr' in request.POST else None _public_link = request.POST.get( 'public_link') if 'public_link' in request.POST else None _titel = request.POST.get('titel') if 'titel' in request.POST else None _kategori = request.POST.get( 'kategori') if 'kategori' in request.POST else None _klassifikation = request.POST.get( 'klassifikation') if 'klassifikation' in request.POST else None _type = Type.objects.get(navn=request.POST.get( 'type')) if 'type' in request.POST and request.POST.get( 'type') != '' else None _land = request.POST.get('land') if 'land' in request.POST else None _noterfraarkivar = request.POST[ 'noterfraarkivar'] if 'noterfraarkivar' in request.POST else None _noterfratester = request.POST[ 'noterfratester'] if 'noterfratester' in request.POST else None _version = request.POST.get( 'version') if 'version' in request.POST else None _tester = request.POST.get( 'tester') if 'tester' in request.POST else None _arkivar = request.POST.get( 'arkivar') if 'arkivar' in request.POST else None _leverandoer = Leverandoer.objects.get( navn=request.POST.get('leverandoer') ) if 'leverandoer' in request.POST and request.POST.get( 'leverandoer') != '' else None _stoerrelsemb = request.POST.get( 'stoerrelsemb') if 'stoerrelsemb' in request.POST else None _afleveringsfrist = datetime.strptime( request.POST.get('afleveringsfrist'), '%d-%m-%Y').date() if ( 'afleveringsfrist' in request.POST and request.POST.get('afleveringsfrist') != '') else None # _afleveringsfrist = datetime.strptime(request.POST.get('afleveringsfrist'), '%d-%m-%Y').date() if 'afleveringsfrist' in request.POST else None # _modtaget = datetime.strptime(request.POST.get('modtaget'), '%d-%m-%Y').date() if 'modtaget' in request.POST else None _adgang = datetime.strptime( request.POST.get('adgang'), '%d-%m-%Y').date() if ( 'adgang' in request.POST and request.POST.get('adgang') != '') else None # _svarfrist = datetime.strptime(request.POST.get('svarfrist'), '%d-%m-%Y').date() if 'svarfrist' in request.POST else None # _svar = datetime.strptime(request.POST.get('svar'), '%d-%m-%Y').date() if 'svar' in request.POST else None # _status = request.POST.get('status') if 'status' in request.POST else None _kvitteret = request.POST.get( 'kvitteret') if 'kvitteret' in request.POST else None _journaliseret = request.POST.get( 'journaliseret') if 'journaliseret' in request.POST else None _kodeord = request.POST.get( 'kodeord') if 'kodeord' in request.POST else None _kopieret = request.POST.get( 'kopieret') if 'kopieret' in request.POST else None _modtagelse = request.POST.get( 'modtagelse') if 'modtagelse' in request.POST else None _fileindex = request.POST.get( 'fileindex') if 'fileindex' in request.POST else None _ada_startet = request.POST.get( 'ada_startet') if 'ada_startet' in request.POST else None _ada = request.POST.get('ada') if 'ada' in request.POST else None _nedpakket = request.POST.get( 'nedpakket') if 'nedpakket' in request.POST else None _maskine_renset = request.POST.get( 'maskine_renset') if 'maskine_renset' in request.POST else None _fileindex_godkendt = request.POST.get( 'fileindex_godkendt' ) if 'fileindex_godkendt' in request.POST else None _dea = request.POST.get('dea') if 'dea' in request.POST else None _mary_kontrol = request.POST.get( 'mary_kontrol') if 'mary_kontrol' in request.POST else None _meta_opdateret = request.POST.get( 'meta_opdateret') if 'meta_opdateret' in request.POST else None _public_opdateret = request.POST.get( 'public_opdateret') if 'public_opdateret' in request.POST else None _godkendt_maskine_renset = request.POST.get( 'godkendt_maskine_renset' ) if 'godkendt_maskine_renset' in request.POST else None _medier = request.POST.get( 'av_medier') if 'av_medier' in request.POST else None _old_medier = request.POST.get( 'old_medier') if 'old_medier' in request.POST else None _arkiveringsversion_obj = None _version_obj = None if Arkiveringsversion.objects.filter(avid=_avid).exists(): _arkiveringsversion_obj = Arkiveringsversion.objects.get( avid=_avid) if Version.objects.filter(nummer=_version, avid=_arkiveringsversion_obj).exists(): _version_obj = Version.objects.get( nummer=_version, avid=_arkiveringsversion_obj) if not Version.objects.filter( nummer=_version, avid=_arkiveringsversion_obj).exists(): messages.error( request, f"Den angivet version af arkiveringsversionen 'AVID.SA.{avid}' findes ikke." ) return redirect('arkiveringsversioner_view') _arkiveringsversion_obj.jnr = _jnr if _jnr else _arkiveringsversion_obj.jnr _arkiveringsversion_obj.public = _public_link if _public_link else _arkiveringsversion_obj.public _arkiveringsversion_obj.titel = _titel if _titel else _arkiveringsversion_obj.titel _arkiveringsversion_obj.kategori = _kategori if _kategori != None else _arkiveringsversion_obj.kategori _arkiveringsversion_obj.klassifikation = _klassifikation if _klassifikation != None else _arkiveringsversion_obj.klassifikation _arkiveringsversion_obj.type = _type _arkiveringsversion_obj.land = _land if _land else _arkiveringsversion_obj.land _arkiveringsversion_obj.arkivar_noter = _noterfraarkivar if _noterfraarkivar != None else _arkiveringsversion_obj.arkivar_noter _arkiveringsversion_obj.tester_noter = _noterfratester if _noterfratester != None else _arkiveringsversion_obj.tester_noter _arkiveringsversion_obj.save() if _tester: _profil_obj = Profil.objects.get(initialer=_tester) _bruger_obj = Bruger.objects.get(profil=_profil_obj) _version_obj.tester = _bruger_obj elif _tester == '': _version_obj.tester = None if _arkivar: _profil_obj = Profil.objects.get(initialer=_arkivar) _bruger_obj = Bruger.objects.get(profil=_profil_obj) _version_obj.arkivar = _bruger_obj elif _arkivar == '': _version_obj.arkivar = None if _leverandoer: _version_obj.leverandoer = _leverandoer elif _leverandoer == None: _version_obj.leverandoer = None _version_obj.adgang = _adgang _version_obj.afleveringsfrist = _afleveringsfrist if _version_obj.adgang: _version_obj.svarfrist = add_days(_version_obj.adgang, 90) _version_obj.stoerrelsemb = _stoerrelsemb if _stoerrelsemb else _version_obj.stoerrelsemb _version_obj.modtaget_kvitteret = True if _kvitteret == 'kvitteret' else False _version_obj.modtaget_journaliseret = True if _journaliseret == 'journaliseret' else False if _kodeord == None: _version_obj.modtaget_kodeord = False _version_obj.modtaget_mangler_kodeord = False _version_obj.modtaget_ikke_krypteret = False elif _kodeord == 'modtaget': _version_obj.modtaget_kodeord = True _version_obj.modtaget_mangler_kodeord = False _version_obj.modtaget_ikke_krypteret = False elif _kodeord == 'mangler': _version_obj.modtaget_kodeord = False _version_obj.modtaget_mangler_kodeord = True _version_obj.modtaget_ikke_krypteret = False elif _kodeord == 'ikke_krypteret': _version_obj.modtaget_kodeord = False _version_obj.modtaget_mangler_kodeord = False _version_obj.modtaget_ikke_krypteret = True _version_obj.modtaget_kopieret = True if _kopieret == 'kopieret' else False if _modtagelse == None: _version_obj.modtaget_modtagelse_godkendt = False _version_obj.modtaget_modtagelse_afvist = False elif _modtagelse == 'godkendt': _version_obj.modtaget_modtagelse_godkendt = True _version_obj.modtaget_modtagelse_afvist = False elif _modtagelse == 'afvist': _version_obj.modtaget_modtagelse_godkendt = False _version_obj.modtaget_modtagelse_afvist = True _version_obj.modtaget_fileindex_kopieret = True if _fileindex == 'kopieret' else False _version_obj.modtaget_ada_startet = True if _ada_startet == 'startet' else False if _ada == None: _version_obj.modtaget_adatest_godkendt = False _version_obj.modtaget_adatest_afvist = False elif _ada == 'godkendt': _version_obj.modtaget_adatest_godkendt = True _version_obj.modtaget_adatest_afvist = False elif _ada == 'afvist': _version_obj.modtaget_adatest_godkendt = False _version_obj.modtaget_adatest_afvist = True _version_obj.tilbagemeldt_nedpakket = True if _nedpakket == 'nedpakket' else False _version_obj.tilbagemeldt_maskine_renset = True if _maskine_renset == 'maskine_renset' else False _version_obj.godkendt_af_tester_fileindex_godkendt = True if _fileindex_godkendt else False if _dea == None: _version_obj.godkendt_af_tester_afvikler_dea = False _version_obj.godkendt_af_tester_afleveret_til_dea = False _version_obj.godkendt_af_tester_retur_fra_dea = False elif _dea == 'afvikler': _version_obj.godkendt_af_tester_afvikler_dea = True _version_obj.godkendt_af_tester_afleveret_til_dea = False _version_obj.godkendt_af_tester_retur_fra_dea = False elif _dea == 'afleveret': _version_obj.godkendt_af_tester_afvikler_dea = False _version_obj.godkendt_af_tester_afleveret_til_dea = True _version_obj.godkendt_af_tester_retur_fra_dea = False elif _dea == 'retur': _version_obj.godkendt_af_tester_afvikler_dea = False _version_obj.godkendt_af_tester_afleveret_til_dea = False _version_obj.godkendt_af_tester_retur_fra_dea = True _version_obj.godkendt_af_tester_mary_kontrol = True if _mary_kontrol == 'mary_kontrol' else False _version_obj.godkendt_af_tester_meta_opdateret = True if _meta_opdateret == 'meta_opdateret' else False _version_obj.godkendt_af_tester_public_opdateret = True if _public_opdateret == 'public_opdateret' else False _version_obj.godkendt_af_tester_maskine_renset = True if _godkendt_maskine_renset == 'godkendt_maskine_renset' else False old_medier = [] if _old_medier: for m in json.loads(_old_medier): old_medier.append(m['tag'].upper()) for old_medie in old_medier: old_m = Medie.objects.filter(navn=old_medie).first() if old_m: old_m.versioner.remove(_version_obj) medier = [] if _medier: for m in json.loads(_medier): medier.append(m['tag'].upper()) for medie in medier: m = Medie.objects.filter(navn=medie).first() if m: m.versioner.add(_version_obj) else: messages.error(request, f"Mediet '{medie}' findes ikke.") if len(medier) > 0: _version_obj.modtaget_kopieret = True else: _version_obj.modtaget_kopieret = False _version_obj.save() print('_version_obj.tilbagemeldt_nedpakket:', _version_obj.tilbagemeldt_nedpakket) if _version_obj.tilbagemeldt_nedpakket: print() return redirect( f"/arkiveringsversioner/arkiveringsversion/{avid}/{version}/") if not Arkiveringsversion.objects.filter(avid=_avid).exists(): messages.error(request, "Den angivet arkiveringsversion findes ikke.") return redirect('arkiveringsversioner_view') return render(request, 'arkiveringsversioner/arkiveringsversioner.html', { "bruger_rettigheder": rettigheder(request.user), })
def profil_view(request, initialer=None): if request.method == 'GET': if Profil.objects.filter(initialer=request.user.username).exists(): profil_obj = Profil.objects.get(initialer=request.user.username) return render( request, 'system/profil.html', { "bruger_rettigheder": rettigheder(request.user), "profil": profil_obj }) if request.method == 'POST' and tjek_rettigheder( request.user, {'system_profil_rediger'}): if Profil.objects.filter(initialer=request.user.username).exists(): _profil_obj = Profil.objects.get(initialer=request.user.username) _user_obj = User.objects.get(username=request.user.username) _nuvaerende_adgangskode = request.POST[ 'nuvaerende_adgangskode'] if 'nuvaerende_adgangskode' in request.POST else None _ny_adgangskode = request.POST[ 'ny_adgangskode'] if 'ny_adgangskode' in request.POST else None _bekraeft_adgangskode = request.POST[ 'bekraeft_adgangskode'] if 'bekraeft_adgangskode' in request.POST else None _check_nuvaerende_adgangskode = False _check_ny_og_bekraeft_adgangskode = False if _nuvaerende_adgangskode: if _user_obj.check_password(_nuvaerende_adgangskode): _check_nuvaerende_adgangskode = True else: messages.error(request, "'Nuværende' adgangkode er forkert.") else: messages.error(request, "Feltet 'Nuværende' er tomt.") if not _ny_adgangskode: messages.error(request, "Feltet 'Ny' er tomt.") if not _bekraeft_adgangskode: messages.error(request, "Feltet 'Bekræft' er tomt.") if _ny_adgangskode and _bekraeft_adgangskode: if _ny_adgangskode == _bekraeft_adgangskode: _check_ny_og_bekraeft_adgangskode = True else: messages.error( request, "'Ny' afgangskode og 'Bekræft' adgangskode stemmer ikke overens." ) if _check_nuvaerende_adgangskode and _check_ny_og_bekraeft_adgangskode: _user_obj.set_password(_ny_adgangskode) _user_obj.save() return redirect('login_view') return render( request, 'system/profil.html', { "bruger_rettigheder": rettigheder(request.user), "profil": _profil_obj, "nuvaerende_adgangskode": _nuvaerende_adgangskode, "ny_adgangskode": _ny_adgangskode, "bekraeft_adgangskode": _bekraeft_adgangskode, }) return redirect('forside_view')
def maskine_view(request, pk=None): if request.method == 'GET': if pk: if Maskine.objects.filter(pk=pk).exists(): _maskine_obj = Maskine.objects.get(pk=pk) return render( request, 'hardware/maskine.html', { "bruger_rettigheder": rettigheder(request.user), "pk": _maskine_obj.pk, "navn": _maskine_obj.navn, "processor": _maskine_obj.processor, "bundkort": _maskine_obj.bundkort, "arbejdshukommelse": _maskine_obj.arbejdshukommelse, "maskine_type": _maskine_obj.type, "lokation": _maskine_obj.placering.lokation if _maskine_obj.placering else None, "lokale": _maskine_obj.placering.lokale if _maskine_obj.placering else None, "netvaerk": _maskine_obj.placering.netvaerk if _maskine_obj.placering else None, "kommentar": _maskine_obj.kommentar, "ny": False, }) if not Maskine.objects.filter(pk=pk).exists(): messages.error(request, "Den angivet maskine findes ikke.") return redirect('maskiner_view') if not pk: messages.error(request, "Ingen maskine angivet.") return redirect('maskiner_view') if request.method == 'POST' and tjek_rettigheder( request.user, {'hardware_maskine_rediger'}): if 'fortryd' in request.POST: return redirect('maskiner_view') _pk = request.POST['pk'] if 'pk' in request.POST else None _navn = request.POST['navn'].upper( ) if 'navn' in request.POST else None _processor = request.POST[ 'processor'] if 'processor' in request.POST else None _bundkort = request.POST[ 'bundkort'] if 'bundkort' in request.POST else None _arbejdshukommelse = request.POST[ 'arbejdshukommelse'] if 'arbejdshukommelse' in request.POST else None _type = request.POST[ 'maskine_type'] if 'maskine_type' in request.POST else None _lokation = request.POST[ 'lokation'] if 'lokation' in request.POST else None _lokale = request.POST['lokale'] if 'lokale' in request.POST else None _netvaerk = request.POST[ 'netvaerk'] if 'netvaerk' in request.POST else None _kommentar = request.POST.get('kommentar') if request.POST.get( 'kommentar') else '' if _pk: _maskine_obj = None _tjek_navn = False _tjek_arbejdshukommelse = False try: _pk = int(_pk) except ValueError: messages.error(request, f"Den angivet maskine findes ikke.") return redirect('maskiner_view') if Maskine.objects.filter(pk=_pk).exists(): _maskine_obj = Maskine.objects.get(pk=_pk) else: messages.error(request, f"Den angivet maskine findes ikke.") return redirect('maskiner_view') if 'slet' in request.POST and tjek_rettigheder( request.user, {'hardware_maskine_slet'}): messages.warning( request, f"Maskinen '{_maskine_obj.navn}' blev slettet.") _maskine_obj.placering.delete() _maskine_obj.delete() return redirect('maskiner_view') if _navn != '' and Maskine.objects.filter(navn=_navn).exists(): _navn_maskine_obj = Maskine.objects.filter(navn=_navn).first() if _maskine_obj.pk == _navn_maskine_obj.pk: _tjek_navn = True else: _tjek_navn = False messages.error( request, f"En maskine med navnet '{_navn}' findes allerede.") else: _tjek_navn = True if _arbejdshukommelse != '': try: _arbejdshukommelse = int(_arbejdshukommelse) _tjek_arbejdshukommelse = True except ValueError: _tjek_arbejdshukommelse = False messages.error( request, "'Arbejdshukommelse i GB' er ikke et heltal.") else: _arbejdshukommelse = 0 _tjek_arbejdshukommelse = True if not _tjek_navn or not _tjek_arbejdshukommelse: return render( request, 'hardware/maskine.html', { "bruger_rettigheder": rettigheder(request.user), "pk": _pk, "navn": _navn, "processor": _processor, "bundkort": _bundkort, "arbejdshukommelse": _arbejdshukommelse, "type": _type, "lokation": _lokation, "lokale": _lokale, "netvaerk": _netvaerk, "kommentar": _kommentar, "ny": False, }) _maskine_obj.navn = _navn.strip() _maskine_obj.processor = _processor.strip() _maskine_obj.bundkort = _bundkort.strip() _maskine_obj.arbejdshukommelse = _arbejdshukommelse _maskine_obj.type = _type _maskine_obj.placering.lokation = _lokation _maskine_obj.placering.lokale = _lokale _maskine_obj.placering.netvaerk = _netvaerk _maskine_obj.placering.save() _maskine_obj.kommentar = _kommentar _maskine_obj.save() messages.success(request, f"Maskinen '{_maskine_obj.navn}' blev gemt.") return redirect('maskiner_view') if not _pk and tjek_rettigheder(request.user, {'hardware_maskine_opret'}): _maskine_obj = Maskine.objects.create( placering=Placering.objects.create()) messages.success(request, "Ny maskine blev oprettet.") return render( request, 'hardware/maskine.html', { "bruger_rettigheder": rettigheder(request.user), "pk": _maskine_obj.pk, "navn": _maskine_obj.navn, "processor": _maskine_obj.processor, "bundkort": _maskine_obj.bundkort, "arbejdshukommelse": _maskine_obj.arbejdshukommelse, "type": _maskine_obj.type, "lokation": _maskine_obj.placering.lokation if _maskine_obj.placering else None, "lokale": _maskine_obj.placering.lokale if _maskine_obj.placering else None, "netvaerk": _maskine_obj.placering.netvaerk if _maskine_obj.placering else None, "kommentar": _maskine_obj.kommentar, "ny": True, }) return redirect('maskiner_view') return redirect('maskiner_view')
def statistik_view(request): return render(request, 'statistik/statistik.html', { "bruger_rettigheder": rettigheder(request.user), })