예제 #1
0
def arsiv_dosyalar(request):
    perm = general_methods.control_access(request)
    if not perm:
        logout(request)
        return redirect('accounts:login')

    dosya = Adosya.objects.none()
    dosya_form = AdosyaFormSearch()
    klasor_form = AklasorSearchForm()

    if request.method == 'POST':
        sirano = request.POST.get('sirano')
        location = request.POST.get('location')
        birim = request.POST.get('birim')
        klasor = request.POST.get('klasor')
        if not (klasor or sirano or location or birim):
            dosya = Adosya.objects.all()
        else:
            query = Q()
            if klasor:
                query &= Q(klasor__pk=klasor)
            if sirano:
                query &= Q(sirano=sirano)
            if location:
                query &= Q(klasor__location__pk=location)
            if birim:
                query &= Q(klasor__birim__pk=birim)
            dosya = Adosya.objects.filter(query)

    return render(request, 'arsiv/DosyaListesi.html', {
        'dosya': dosya,
        'klasor_form': klasor_form,
        'dosya_form': dosya_form
    })
예제 #2
0
def arsiv_klasorler(request):
    perm = general_methods.control_access(request)
    if not perm:
        logout(request)
        return redirect('accounts:login')
    klasor = Aklasor.objects.none()
    klasor_form = AklasorSearchForm()
    if request.method == 'POST':
        name = request.POST.get('name')
        sirano = request.POST.get('sirano')
        location = request.POST.get('location')
        birim = request.POST.get('birim')
        start = request.POST.get('startyear')
        finish = request.POST.get('finishyear')
        active = general_methods.controlGroup(request)
        if not (name or sirano or location or birim or finish or start):
            if active != 'Personel':
                klasor = Aklasor.objects.all()
            else:
                klasor =Aklasor.objects.filter(birim__employe=Employe.objects.get(user=request.user))
        else:
            query = Q()
            if name:
                query &= Q(name__icontains=name)
            if sirano:
                query &= Q(sirano=sirano)
            if location:
                query &= Q(location__pk=int(location))
            if birim:
                query &= Q(birim__pk=int(birim))
            if start:
                query &= Q(startyear__gte=start)
            if finish:
                query &= Q(finishyear__lte=finish)

            if active != 'Personel':
                klasor = Aklasor.objects.filter(query)
            else:
                klasor = Aklasor.objects.filter(birim__employe=Employe.objects.get(user=request.user)).filter(query)


    #
    # for item in klasor:
    #     parametre = Adosya.objects.filter(klasor=item)
    #     # print(parametre.values_list("title","title"))
    #     beka = {
    #         'pk': item.pk,
    #         'name': item.name,
    #         'parametre': parametre
    #     }
    #     birimler.append(beka)

    # arama alani yazılacak
    # if request.method == 'POST':
    #     if category_item_form.is_valid():
    #         category_item_form.save()
    #         return redirect('sbs:arsiv-birimEkle')

    return render(request, 'arsiv/KlasorListesi.html', {'klasor': klasor,
                                                        'klasor_form': klasor_form})
예제 #3
0
def birimSearch(request):
    dosya = Adosya.objects.none()
    units = Abirim.objects.none()
    klasor = Aklasor.objects.none()
    klasor_form = AklasorSearchForm()

    if request.method == 'POST':
        name = request.POST.get('klasorname')
        sirano = request.POST.get('klasorsirano')
        location = request.POST.get('klasorlocation')
        birim = request.POST.get('klasorbirim')

        # genel arama alani
        if request.POST.get('search'):
            print('genel arama ')
            units |= Abirim.objects.filter(
                name__icontains=request.POST.get('search'))
            klasor |= Aklasor.objects.filter(
                name__icontains=request.POST.get('search'))
            try:
                dosya |= Adosya.objects.filter(
                    sirano=request.POST.get('search'))
            except:
                print('Sayisal degil')
            if klasor:
                for item in klasor:
                    units |= Abirim.objects.filter(pk=item.birim.pk)
            if dosya:
                for item in dosya:
                    klasor |= Aklasor.objects.filter(pk=item.klasor.pk)
                    units |= Abirim.objects.filter(pk=item.klasor.birim.pk)
            dosyaparametre = AdosyaParametre.objects.filter(
                value__contains=request.POST.get('search'))
            if dosyaparametre:
                for item in dosyaparametre:
                    dosya |= Adosya.objects.filter(pk=int(item.dosya.pk))
                    klasor |= Aklasor.objects.filter(pk=item.dosya.klasor.pk)
                    units |= Abirim.objects.filter(
                        pk=item.dosya.klasor.birim.pk)

        # dosya arama alani
        # if request.POST.get('searchdosya'):
        #     dosya |=Adosya.objects.filter(sirano=request.POST.get('searchdosya'))
        #     for item in dosya:
        #         klasor |= Aklasor.objects.filter(pk=item.klasor.pk)
        #         units |= Abirim.objects.filter(pk=item.klasor.birim.pk)
        # birim arama alani
        elif request.POST.get('searchbirim'):
            print('birim arama ')
            units = Abirim.objects.filter(pk=request.POST.get('searchbirim'))
            birimparametre = AbirimParametre.objects.filter(
                birim__id=int(request.POST.get('searchbirim')))
            if birimparametre:
                for item in birimparametre:
                    if request.POST.get(item.title):
                        print(request.POST.get(item.title))
                        dosyaParametre = AdosyaParametre.objects.filter(
                            value__icontains=request.POST.get(item.title))
                        for item in dosyaParametre:
                            dosya |= Adosya.objects.filter(
                                pk=int(item.dosya.pk))
                            klasor |= Aklasor.objects.filter(
                                pk=item.dosya.klasor.pk)
            if not (klasor):
                klasor = Aklasor.objects.filter(birim=Abirim.objects.get(
                    pk=request.POST.get('searchbirim')))
                dosya = Adosya.objects.filter(
                    klasor__birim__pk=request.POST.get('searchbirim'))

        # klasör arama alani

        elif (name or sirano or location or birim):
            print('klasor  arama ')
            query = Q()
            if name:
                query &= Q(name__icontains=name)
            if sirano:
                query &= Q(sirano=sirano)
            if location:
                query &= Q(location__pk=int(location))
            if birim:
                query &= Q(birim__pk=int(birim))
            klasor |= Aklasor.objects.filter(query)

            for item in klasor:
                units |= Abirim.objects.filter(pk=item.birim.pk)
        else:
            dosya = Adosya.objects.all()
            units = Abirim.objects.all()
            klasor = Aklasor.objects.all()

    dosyadizi = []

    for item in dosya.distinct():
        if AdosyaParametre.objects.filter(dosya=item):
            test = AdosyaParametre.objects.filter(dosya=item)[0]
            print(test.parametre)
            beka = {
                'pk': item.pk,
                'sirano': item.sirano,
                'parametre': test.parametre.title,
                'klasor_id': item.klasor.pk
            }
            dosyadizi.append(beka)

    return render(
        request, "arsiv/Arama.html", {
            'units': units.distinct(),
            'klasor': klasor.distinct(),
            'files': dosyadizi,
            'klasor_form': klasor_form
        })
예제 #4
0
def birimSearch(request):
    active = general_methods.controlGroup(request)
    dosya = Adosya.objects.none()
    units = Abirim.objects.none()
    klasor = Aklasor.objects.none()
    klasor_form = AklasorSearchForm()

    dosyadizi = []
    dosyaX=[]
    backdata = None
    backsearch = None
    employe=Employe.objects.none()
    if active == 'Personel':
        employe = Employe.objects.get(user=request.user)

    if request.method == 'POST':
        name = request.POST.get('klasorname')
        sirano = request.POST.get('klasorsirano')
        location = request.POST.get('klasorlocation')
        birim = request.POST.get('klasorbirim')
        start = request.POST.get('klasorstartyear')
        finish = request.POST.get('klasorfinishyear')

        dosyaparametre=AdosyaParametre.objects.none()

        # genel arama alani
        if request.POST.get('search'):
            search = unicode_tr(request.POST.get('search')).upper()
            backdata = search
            backsearch = "genelArama"
            # print('genel arama ')
            if active != 'Personel':
                units |= Abirim.objects.filter(name__icontains=search)
                klasor |= Aklasor.objects.filter(name__icontains=search)
                try:
                    dosya |= Adosya.objects.filter(sirano=search)
                except:
                    print('Sayisal degil')
                if klasor:
                    for item in klasor:
                        units |= Abirim.objects.filter(pk=item.birim.pk)
                if dosya:
                    for item in dosya:
                        klasor |= Aklasor.objects.filter(pk=item.klasor.pk)
                        units |= Abirim.objects.filter(pk=item.klasor.birim.pk)
                dosyaparametre = AdosyaParametre.objects.filter(value__contains=search)
            else:
                employe=Employe.objects.get(user=request.user)
                units |= Abirim.objects.filter(employe=employe).filter(name__icontains=search)
                klasor |= Aklasor.objects.filter(birim__employe=employe).filter(name__icontains=search)
                try:
                    dosya |= Adosya.objects.filter(klasor__birim__employe=employe).filter(sirano=search)
                except:
                    print('Sayisal degil')
                if klasor:
                    for item in klasor:
                        units |= Abirim.objects.filter(employe=employe).filter(pk=item.birim.pk)
                if dosya:
                    for item in dosya:
                        klasor |= Aklasor.objects.filter(birim__employe=employe).filter(pk=item.klasor.pk)
                        units |= Abirim.objects.filter(employe=employe).filter(pk=item.klasor.birim.pk)
                dosyaparametre = AdosyaParametre.objects.filter(value__contains=search)

            if dosyaparametre:
                for item in dosyaparametre:
                    dosya |= Adosya.objects.filter(pk=int(item.dosya.pk))
                    klasor |= Aklasor.objects.filter(pk=item.dosya.klasor.pk)
                    units |= Abirim.objects.filter(pk=item.dosya.klasor.birim.pk)
                    beka = {
                        'pk': item.dosya.pk,
                        'sirano': item.dosya.sirano,
                        'parametre': search + '/' + item.parametre.title,
                        'klasor_id': item.dosya.klasor.pk,
                        'parametre':item.parametre.title,
                        'birim':item.parametre.birim.pk
                          }
                    dosyadizi.append(beka)

            if dosya:
                test=[]
                for item in dosya:
                    test.append(item.pk)

                for item in AdosyaParametre.objects.filter(dosya__in=test):
                    beka = {
                        'pk': item.dosya.pk,
                        'sirano': item.dosya.sirano,
                        'birim':item.parametre.birim.pk,
                        'value':item.value,
                        'title':item.parametre.title,
                          }
                    dosyaX.append(beka)
        # dosya arama alani
        # if request.POST.get('searchdosya'):
        #     dosya |=Adosya.objects.filter(sirano=request.POST.get('searchdosya'))
        #     for item in dosya:
        #         klasor |= Aklasor.objects.filter(pk=item.klasor.pk)
        #         units |= Abirim.objects.filter(pk=item.klasor.birim.pk)
        # birim arama alani
        elif request.POST.get('searchbirim'):
            # print('birim arama ')
            units=Abirim.objects.none()

            if active != 'Personel':
                units = Abirim.objects.filter(pk=request.POST.get('searchbirim'))
            else:
                units = Abirim.objects.filter(employe=Employe.objects.filter(user__last_name__icontains=request.user)).filter(pk=request.POST.get('searchbirim'))

            backdata = Abirim.objects.get(pk=request.POST.get('searchbirim')).pk
            backsearch = "birimArama"
            birimparametre = AbirimParametre.objects.filter(birim__id=int(request.POST.get('searchbirim')))
            if birimparametre:
                for item in birimparametre:
                    if request.POST.get(item.title):
                        # print(request.POST.get(item.title))

                        dosyaParametre = AdosyaParametre.objects.filter(
                            value__icontains=unicode_tr(request.POST.get(item.title)).upper())
                        for dosyapara in dosyaParametre:
                            dosya |= Adosya.objects.filter(pk=int(dosyapara.dosya.pk))
                            klasor |= Aklasor.objects.filter(pk=dosyapara.dosya.klasor.pk)

                            beka = {
                                'pk': dosyapara.dosya.pk,
                                'sirano': dosyapara.dosya.sirano,
                                'parametre': unicode_tr(
                                    request.POST.get(item.title)).upper() + '/' + dosyapara.parametre.title,
                                'klasor_id': dosyapara.dosya.klasor.pk
                            }
                            dosyadizi.append(beka)

            if not (klasor):
                if active != 'Personel':
                    klasor = Aklasor.objects.filter(birim=Abirim.objects.get(pk=request.POST.get('searchbirim')))
                    dosya = Adosya.objects.filter(klasor__birim__pk=request.POST.get('searchbirim'))
                else:
                    klasor = Aklasor.objects.filter(birim__employe=Employe.objects.filter(user=request.user)).filter(birim=Abirim.objects.get(pk=request.POST.get('searchbirim')))
                    dosya = Adosya.objects.filter(klasor__birim__employe=Employe.objects.get(user=request.user)).filter(klasor__birim__pk=request.POST.get('searchbirim'))


        # klasör arama alani

        elif (name or sirano or location or birim or start or finish):

            backdata = name + "/" + sirano + "/" + location + "/" + birim
            backsearch = "searchKlasor"
            # print('klasor  arama ')
            query = Q()
            if name:
                query &= Q(name__icontains=name)
            if sirano:
                query &= Q(sirano=sirano)
            if location:
                query &= Q(location__pk=int(location))
            if birim:
                query &= Q(birim__pk=int(birim))
            if start:
                query &= Q(startyear=int(start))
            if finish:
                query &= Q(finishyear=int(finish))

            if active != 'Personel':
                klasor |= Aklasor.objects.filter(query)
            else:
                klasor |= Aklasor.objects.filter(birim__employe=Employe.objects.get(user=request.user)).filter(query)


            for item in klasor:
                units |= Abirim.objects.filter(pk=item.birim.pk)
                #seçim olmazsa hepsini getir
        else:
            if active != 'Personel':
                units = Abirim.objects.all()
                klasor = Aklasor.objects.all()
                dosya = Adosya.objects.all()
            else:

                employe=Employe.objects.get(user=request.user)
                units |= Abirim.objects.filter(employe=employe)
                klasor |= Aklasor.objects.filter(birim__employe=employe)
                dosya = Adosya.objects.filter(klasor__birim__employe=employe)


    # if len(dosyadizi) == 0:
    #     for item in dosya.distinct():
    #         if AdosyaParametre.objects.filter(dosya=item):
    #             test = AdosyaParametre.objects.filter(dosya=item)[0]
    #             # print(test.parametre)
    #             beka = {
    #                 'pk': item.pk,
    #                 'sirano': item.sirano,
    #                 'klasor_id': item.klasor.pk
    #             }
    #             dosyadizi.append(beka)
    #             print(dosyadizi)
    return render(request, "arsiv/Arama.html",
                  {
                      'units': units.distinct(),
                      'klasor': klasor.distinct(),
                      # 'files': dosyadizi,
                      'dosya': dosya,
                      'klasor_form': klasor_form,
                      'backdata': backdata,
                      'backsearch': backsearch,
                      'employe':employe,
                      'dosyadizi':dosyadizi,
                      'dosyaX':dosyaX


                  })