Пример #1
0
def cropCorrectView(request, id):
    regionURL = "/ocve/getGroupedBarRegions/" + id + "/"
    zoomifyURL = settings.IIP_URL + "?zoomify=jp2/"
    p = None
    try:
        pi = PageImage.objects.get(id=id)
        p = pi.page
        pl = PageLegacy.objects.get(pageimage=pi)
        if pl.cfeoKey > 0:
            path = re.search("(.*?)_(.*)", pl.filename)
            oldPath = "jp2/cfeojp2-proc/" + path.group(1) + "/" + path.group(1) + "_" + path.group(2) + ".jp2"
            verifyImageDimensions(pi, oldPath)
            zoomifyURL = zoomifyURL +  oldPath + "/"
        elif pl.jp2 is not None and pl.jp2.__len__() > 0 and pl.jp2 != 'UNVERIFIED':
            #Correct system on which all legacy naming files will be moved
            path=pl.jp2
            if str(path).startswith("jp2")is False:
                path="jp2/"+path
            verifyImageDimensions(pi, path)
            zoomifyURL = zoomifyURL.replace("jp2/","") + pl.jp2 + "/"
        elif pl.storageStructure is not None and pl.storageStructure.__len__() > 0:
            path = re.search("(\d+)\/.*?\/(.*)", pl.storageStructure)
            sl = SourceLegacy.objects.get(source=p.sourcecomponent.source)
            oldPath = "jp2/ocvejp2-proc/" + path.group(1) + "/" + str(sl.witnessKey) + "/" + path.group(2) + ".jp2"
            verifyImageDimensions(pi, oldPath)
            zoomifyURL = zoomifyURL + oldPath + "/"
        zoomifyURL = pi.getZoomifyPath()
    except ObjectDoesNotExist:
        errormsg = 'Page key invalid'
        return render_to_response(errorPage, {'errormsg': errormsg})
    return render_to_response('dbmi/bareditor.html',
        {'mode': 1, 'regionURL': regionURL, 'pageimage': pi, 'page': p, 'zoomifyURL': zoomifyURL},
        context_instance=RequestContext(request))
Пример #2
0
def cropCorrectView(request, id):
    regionURL = "/ocve/getGroupedBarRegions/" + id + "/"
    zoomifyURL = settings.IIP_URL + "?zoomify=jp2/"
    p = None
    try:
        pi = PageImage.objects.get(id=id)
        p = pi.page
        pl = PageLegacy.objects.get(pageimage=pi)
        if pl.cfeoKey > 0:
            path = re.search("(.*?)_(.*)", pl.filename)
            oldPath = "jp2/cfeojp2-proc/" + path.group(1) + "/" + path.group(
                1) + "_" + path.group(2) + ".jp2"
            verifyImageDimensions(pi, oldPath)
            zoomifyURL = zoomifyURL + oldPath + "/"
        elif pl.jp2 is not None and pl.jp2.__len__(
        ) > 0 and pl.jp2 != 'UNVERIFIED':
            #Correct system on which all legacy naming files will be moved
            path = pl.jp2
            if str(path).startswith("jp2") is False:
                path = "jp2/" + path
            verifyImageDimensions(pi, path)
            zoomifyURL = zoomifyURL.replace("jp2/", "") + pl.jp2 + "/"
        elif pl.storageStructure is not None and pl.storageStructure.__len__(
        ) > 0:
            path = re.search("(\d+)\/.*?\/(.*)", pl.storageStructure)
            sl = SourceLegacy.objects.get(source=p.sourcecomponent.source)
            oldPath = "jp2/ocvejp2-proc/" + path.group(1) + "/" + str(
                sl.witnessKey) + "/" + path.group(2) + ".jp2"
            verifyImageDimensions(pi, oldPath)
            zoomifyURL = zoomifyURL + oldPath + "/"
        zoomifyURL = pi.getZoomifyPath()
    except ObjectDoesNotExist:
        errormsg = 'Page key invalid'
        return render_to_response(errorPage, {'errormsg': errormsg})
    return render_to_response('dbmi/bareditor.html', {
        'mode': 1,
        'regionURL': regionURL,
        'pageimage': pi,
        'page': p,
        'zoomifyURL': zoomifyURL
    },
                              context_instance=RequestContext(request))
Пример #3
0
def editBars(request, id):
    regionURL = "/ocve/getBarRegions/" + str(id) + "/"
    zoomifyURL = settings.IIP_URL + "?zoomify="
    p = None
    regionString = ''
    editStatuses = EditStatus.objects.all()
    try:
        pi = PageImage.objects.get(id=id)
        p = pi.page
        pl = PageLegacy.objects.get(pageimage=pi)
        pages = PageImage.objects.filter(page__sourcecomponent__source=pi.page.sourcecomponent.source)

        #Redirect to the crop correct view if uncorrected before displaying editor
        if pl.cropCorrected == 0:
            return cropCorrectView(request, id)
        if pl.cfeoKey > 0:
            path = re.search("(.*?)_(.*)", pl.filename)
            oldPath = "jp2/cfeojp2-proc/" + path.group(1) + "/" + path.group(1) + "_" + path.group(2) + ".jp2"
            verifyImageDimensions(pi, oldPath)
            zoomifyURL = zoomifyURL +  oldPath + "/"
        elif pl.jp2 is not None and pl.jp2.__len__() > 0 and pl.jp2 != 'UNVERIFIED':
            #Correct system on which all legacy naming files will be moved
            path=pl.jp2
            if str(path).startswith("jp2")is False:
                path="jp2/"+path
            verifyImageDimensions(pi, path)
            zoomifyURL = zoomifyURL.replace("jp2/","") + pl.jp2 + "/"
        elif pl.storageStructure is not None and pl.storageStructure.__len__() > 0:
            path = re.search("(\d+)\/.*?\/(.*)", pl.storageStructure)
            sl = SourceLegacy.objects.get(source=p.sourcecomponent.source)
            oldPath = "jp2/ocvejp2-proc/" + path.group(1) + "/" + str(sl.witnessKey) + "/" + path.group(2) + ".jp2"
            verifyImageDimensions(pi, oldPath)
            zoomifyURL = zoomifyURL + oldPath + "/"
        zoomifyURL = pi.getZoomifyPath()

        #String of all bar numbers on page
        regions = barRegionsByPageImage(int(id))
        dels= BarRegion.objects.filter(pageimage__id=int(id)).filter(Q(y__lt=0) | Q(x__lt=0)|Q(width__lt=0)| Q(height__lt=0))
        dels.delete()
        for r in regions:
            label=''
            bars=r.bar.all()
            if bars.count() >0:
                bid=bars[0].id
                for b in bars:
                    if len(label)>0:
                        label+=', '
                    label+=b.barlabel
                regionString = regionString +'<span data-regionid=\"'+str(r.id)+'\">'+ label + '</span>, '

                #Next and previous page images
        try:
            before = p.orderno - 1
            prev = PageImage.objects.get(page__orderno=before, page__sourcecomponent=p.sourcecomponent)
        except ObjectDoesNotExist:
            prev = None
        try:
            after = p.orderno + 1
            next = PageImage.objects.get(page__orderno=after, page__sourcecomponent=p.sourcecomponent)
        except ObjectDoesNotExist:
            next = None
    except ObjectDoesNotExist:
        errormsg = 'Page key invalid'
        return render_to_response(errorPage, {'errormsg': errormsg})
    return render_to_response('dbmi/bareditor.html',
            {'mode': 0, 'statuses': editStatuses,'pages':pages,'pl':pl,'next': next, 'prev': prev, 'regionString': regionString,
         'regionURL': regionURL, 'pageimage': pi, 'page': p,'STATIC_URL': STATIC_URL,
         'zoomifyURL': zoomifyURL}, context_instance=RequestContext(request))
Пример #4
0
def editBars(request, id):
    regionURL = "/ocve/getBarRegions/" + str(id) + "/"
    zoomifyURL = settings.IIP_URL + "?zoomify="
    p = None
    regionString = ''
    editStatuses = EditStatus.objects.all()
    try:
        pi = PageImage.objects.get(id=id)
        p = pi.page
        pl = PageLegacy.objects.get(pageimage=pi)
        pages = PageImage.objects.filter(
            page__sourcecomponent__source=pi.page.sourcecomponent.source)

        #Redirect to the crop correct view if uncorrected before displaying editor
        if pl.cropCorrected == 0:
            return cropCorrectView(request, id)
        if pl.cfeoKey > 0:
            path = re.search("(.*?)_(.*)", pl.filename)
            oldPath = "jp2/cfeojp2-proc/" + path.group(1) + "/" + path.group(
                1) + "_" + path.group(2) + ".jp2"
            verifyImageDimensions(pi, oldPath)
            zoomifyURL = zoomifyURL + oldPath + "/"
        elif pl.jp2 is not None and pl.jp2.__len__(
        ) > 0 and pl.jp2 != 'UNVERIFIED':
            #Correct system on which all legacy naming files will be moved
            path = pl.jp2
            if str(path).startswith("jp2") is False:
                path = "jp2/" + path
            verifyImageDimensions(pi, path)
            zoomifyURL = zoomifyURL.replace("jp2/", "") + pl.jp2 + "/"
        elif pl.storageStructure is not None and pl.storageStructure.__len__(
        ) > 0:
            path = re.search("(\d+)\/.*?\/(.*)", pl.storageStructure)
            sl = SourceLegacy.objects.get(source=p.sourcecomponent.source)
            oldPath = "jp2/ocvejp2-proc/" + path.group(1) + "/" + str(
                sl.witnessKey) + "/" + path.group(2) + ".jp2"
            verifyImageDimensions(pi, oldPath)
            zoomifyURL = zoomifyURL + oldPath + "/"
        zoomifyURL = pi.getZoomifyPath()

        #String of all bar numbers on page
        regions = barRegionsByPageImage(int(id))
        dels = BarRegion.objects.filter(pageimage__id=int(id)).filter(
            Q(y__lt=0) | Q(x__lt=0) | Q(width__lt=0) | Q(height__lt=0))
        dels.delete()
        for r in regions:
            label = ''
            bars = r.bar.all()
            if bars.count() > 0:
                bid = bars[0].id
                for b in bars:
                    if len(label) > 0:
                        label += ', '
                    label += b.barlabel
                regionString = regionString + '<span data-regionid=\"' + str(
                    r.id) + '\">' + label + '</span>, '

                #Next and previous page images
        try:
            before = p.orderno - 1
            prev = PageImage.objects.get(
                page__orderno=before, page__sourcecomponent=p.sourcecomponent)
        except ObjectDoesNotExist:
            prev = None
        try:
            after = p.orderno + 1
            next = PageImage.objects.get(
                page__orderno=after, page__sourcecomponent=p.sourcecomponent)
        except ObjectDoesNotExist:
            next = None
    except ObjectDoesNotExist:
        errormsg = 'Page key invalid'
        return render_to_response(errorPage, {'errormsg': errormsg})
    return render_to_response('dbmi/bareditor.html', {
        'mode': 0,
        'statuses': editStatuses,
        'pages': pages,
        'pl': pl,
        'next': next,
        'prev': prev,
        'regionString': regionString,
        'regionURL': regionURL,
        'pageimage': pi,
        'page': p,
        'STATIC_URL': STATIC_URL,
        'zoomifyURL': zoomifyURL
    },
                              context_instance=RequestContext(request))