Beispiel #1
0
def resource_manager(request, resourcetypeid='', form_id='default', resourceid=''):

    if resourceid != '':
        resource = Resource(resourceid)
    elif resourcetypeid != '':
        resource = Resource({'entitytypeid': resourcetypeid})

    if form_id == 'default':
        form_id = resource.form_groups[0]['forms'][0]['id']

    form = resource.get_form(form_id)

    if request.method == 'DELETE':
        resource.delete_index()
        se = SearchEngineFactory().create()
        realtionships = resource.get_related_resources(return_entities=False)
        for realtionship in realtionships:
            se.delete(index='resource_relations', doc_type='all', id=realtionship.resourcexid)
            realtionship.delete()
        resource.delete()
        return JSONResponse({ 'success': True })

    if request.method == 'POST':
        data = JSONDeserializer().deserialize(request.POST.get('formdata', {}))
        form.update(data, request.FILES)

        with transaction.atomic():
            if resourceid != '':
                resource.delete_index()
            resource.save(user=request.user)
            resource.index()
            resourceid = resource.entityid

            return redirect('resource_manager', resourcetypeid=resourcetypeid, form_id=form_id, resourceid=resourceid)

    min_max_dates = models.Dates.objects.aggregate(Min('val'), Max('val'))
    
    if request.method == 'GET':
        if form != None:
            lang = request.GET.get('lang', settings.LANGUAGE_CODE)
            form.load(lang)
            return render(request, 'resource-manager.htm', {
                'form': form,
                'formdata': JSONSerializer().serialize(form.data),
                'form_template': 'views/forms/' + form_id + '.htm',
                'form_id': form_id,
                'resourcetypeid': resourcetypeid,
                'resourceid': resourceid,
                'main_script': 'resource-manager',
                'active_page': 'ResourceManger',
                'resource': resource,
                'resource_name': resource.get_primary_name(),
                'resource_type_name': resource.get_type_name(),
                'form_groups': resource.form_groups,
                'min_date': min_max_dates['val__min'].year if min_max_dates['val__min'] != None else 0,
                'max_date': min_max_dates['val__max'].year if min_max_dates['val__min'] != None else 1,
                'timefilterdata': JSONSerializer().serialize(Concept.get_time_filter_data()),
            })
        else:
            return HttpResponseNotFound('<h1>Arches form not found.</h1>')
Beispiel #2
0
def home_page(request):
    lang = request.GET.get('lang', settings.LANGUAGE_CODE)
    min_max_dates = models.Dates.objects.aggregate(Min('val'), Max('val'))
    return render(request, 'search.htm', {
        'main_script': 'search',
        'active_page': 'Search',
        'min_date': min_max_dates['val__min'].year if min_max_dates['val__min'] != None else 0,
        'max_date': min_max_dates['val__max'].year if min_max_dates['val__min'] != None else 1,
        'timefilterdata': JSONSerializer().serialize(Concept.get_time_filter_data()),
    })
Beispiel #3
0
def home_page(request):

    lang = request.GET.get('lang', settings.LANGUAGE_CODE)
    min_max_dates = get_min_max_extended_dates()
    
    return render_to_response('search.htm', {
            'main_script': 'search',
            'active_page': 'Search',
            'min_date': min_max_dates['val__min'] if min_max_dates['val__min'] != None else 0,
            'max_date': min_max_dates['val__max'] if min_max_dates['val__min'] != None else 1,
            'timefilterdata': JSONSerializer().serialize(Concept.get_time_filter_data())
        }, 
        context_instance=RequestContext(request))
Beispiel #4
0
def home_page(request):
    lang = request.GET.get('lang', settings.LANGUAGE_CODE)
    min_max_dates = models.Dates.objects.aggregate(Min('val'), Max('val'))

    return render_to_response('search.htm', {
            'main_script': 'search',
            'active_page': 'Search',
            'min_date': min_max_dates['val__min'].year if min_max_dates['val__min'] != None else 0,
            'max_date': min_max_dates['val__max'].year if min_max_dates['val__min'] != None else 1,
            'timefilterdata': JSONSerializer().serialize(Concept.get_time_filter_data()),
            'group_options': settings.SEARCH_GROUP_ROOTS
        }, 
        context_instance=RequestContext(request))
Beispiel #5
0
def home_page(request):
    lang = request.GET.get("lang", settings.LANGUAGE_CODE)
    min_max_dates = models.Dates.objects.aggregate(Min("val"), Max("val"))

    return render_to_response(
        "search.htm",
        {
            "main_script": "search",
            "active_page": "Search",
            "min_date": min_max_dates["val__min"].year if min_max_dates["val__min"] != None else 0,
            "max_date": min_max_dates["val__max"].year if min_max_dates["val__min"] != None else 1,
            "timefilterdata": JSONSerializer().serialize(Concept.get_time_filter_data()),
        },
        context_instance=RequestContext(request),
    )
Beispiel #6
0
def home_page(request):
    lang = request.GET.get('lang', settings.LANGUAGE_CODE)
    min_max_dates = models.Dates.objects.aggregate(Min('val'), Max('val'))

    return render_to_response('search.htm', {
        'main_script':
        'search',
        'active_page':
        'Search',
        'min_date':
        min_max_dates['val__min'].year
        if min_max_dates['val__min'] != None else 0,
        'max_date':
        min_max_dates['val__max'].year
        if min_max_dates['val__min'] != None else 1,
        'timefilterdata':
        JSONSerializer().serialize(Concept.get_time_filter_data()),
        'group_options':
        settings.SEARCH_GROUP_ROOTS
    },
                              context_instance=RequestContext(request))
Beispiel #7
0
def resource_manager(request, resourcetypeid='', form_id='default', resourceid=''):

    ## get and check all permissions here
    permissions = request.user.get_all_permissions()
    res_perms = {k:[] for k in settings.RESOURCE_TYPE_CONFIGS().keys()}

    for k,v in res_perms.iteritems():
        for p in permissions:
            t,res = p.split(".")[:2]
            if k.startswith(res):
                v.append(t)

    if resourceid == '' and not 'CREATE' in res_perms[resourcetypeid]:
        return redirect(settings.LOGIN_URL)
    if not 'EDIT' in res_perms[resourcetypeid]:
        return redirect(settings.LOGIN_URL)
    ## finish permission testing

    if resourceid != '':
        resource = Resource(resourceid)
    elif resourcetypeid != '':
        resource = Resource({'entitytypeid': resourcetypeid})

    if form_id == 'default':
        form_id = resource.form_groups[0]['forms'][0]['id']

    form = resource.get_form(form_id)

    if request.method == 'DELETE':
        resource.delete_index()
        se = SearchEngineFactory().create()
        relationships = resource.get_related_resources(return_entities=False)
        for relationship in relationships:
            se.delete(index='resource_relations', doc_type='all', id=relationship.resourcexid)
            relationship.delete()
        resource.delete()
        return JSONResponse({ 'success': True })

    if request.method == 'POST':
        data = JSONDeserializer().deserialize(request.POST.get('formdata', {}))
        form.update(data, request.FILES)

        with transaction.atomic():
            if resourceid != '':
                resource.delete_index()
            resource.save(user=request.user)
            resource.index()
            resourceid = resource.entityid

            return redirect('resource_manager', resourcetypeid=resourcetypeid, form_id=form_id, resourceid=resourceid)

    min_max_dates = models.Dates.objects.aggregate(Min('val'), Max('val'))
    
    if request.method == 'GET':
        if form != None:
            lang = request.GET.get('lang', settings.LANGUAGE_CODE)
            form.load(lang)
            return render_to_response('resource-manager.htm', {
                    'form': form,
                    'formdata': JSONSerializer().serialize(form.data),
                    'form_template': 'views/forms/' + form_id + '.htm',
                    'form_id': form_id,
                    'resourcetypeid': resourcetypeid,
                    'resourceid': resourceid,
                    'main_script': 'resource-manager',
                    'active_page': 'ResourceManger',
                    'resource': resource,
                    'resource_name': resource.get_primary_name(),
                    'resource_type_name': resource.get_type_name(),
                    'form_groups': resource.form_groups,
                    'min_date': min_max_dates['val__min'].year if min_max_dates['val__min'] != None else 0,
                    'max_date': min_max_dates['val__max'].year if min_max_dates['val__min'] != None else 1,
                    'timefilterdata': JSONSerializer().serialize(Concept.get_time_filter_data()),
                },
                context_instance=RequestContext(request))
        else:
            return HttpResponseNotFound('<h1>Arches form not found.</h1>')
Beispiel #8
0
def resource_manager(request,
                     resourcetypeid='',
                     form_id='default',
                     resourceid=''):

    if resourceid != '':
        resource = Resource(resourceid)
    elif resourcetypeid != '':
        resource = Resource({'entitytypeid': resourcetypeid})

    if form_id == 'default':
        form_id = resource.form_groups[0]['forms'][0]['id']

    form = resource.get_form(form_id)

    if request.method == 'DELETE':
        resource.delete_index()
        se = SearchEngineFactory().create()
        realtionships = resource.get_related_resources(return_entities=False)
        for realtionship in realtionships:
            se.delete(index='resource_relations',
                      doc_type='all',
                      id=realtionship.resourcexid)
            realtionship.delete()
        resource.delete()
        return JSONResponse({'success': True})

    if request.method == 'POST':
        data = JSONDeserializer().deserialize(request.POST.get('formdata', {}))
        form.set_user(request.user)
        form.update(data, request.FILES)

        with transaction.atomic():
            if resourceid != '':
                resource.delete_index()
            resource.save(user=request.user)
            resource.index()
            resourceid = resource.entityid

            if request.is_ajax():
                return JSONResponse({
                    "url":
                    reverse('resource_manager',
                            kwargs={
                                'resourcetypeid': resourcetypeid,
                                'form_id': form_id,
                                'resourceid': resourceid
                            })
                })

            return redirect('resource_manager',
                            resourcetypeid=resourcetypeid,
                            form_id=form_id,
                            resourceid=resourceid)

    min_max_dates = models.Dates.objects.aggregate(Min('val'), Max('val'))

    if request.method == 'GET':
        if form != None:

            ## geom will be a geojson FeatureCollection or 'null'
            geom = JSONSerializer().serialize(resource.get_geom())

            lang = request.GET.get('lang', request.LANGUAGE_CODE)
            form.load(lang)
            return render_to_response('resource-manager.htm', {
                'form':
                form,
                'formdata':
                JSONSerializer().serialize(form.data),
                'form_template':
                'views/forms/' + form_id + '.htm',
                'form_id':
                form_id,
                'resourcetypeid':
                resourcetypeid,
                'resourceid':
                resourceid,
                'main_script':
                'resource-manager',
                'active_page':
                'ResourceManger',
                'resource':
                resource,
                'resource_name':
                resource.get_primary_name(),
                'resource_type_name':
                resource.get_type_name(),
                'form_groups':
                resource.form_groups,
                'min_date':
                min_max_dates['val__min'].year
                if min_max_dates['val__min'] != None else 0,
                'max_date':
                min_max_dates['val__max'].year
                if min_max_dates['val__min'] != None else 1,
                'timefilterdata':
                JSONSerializer().serialize(Concept.get_time_filter_data()),
                'resource_icon':
                settings.RESOURCE_TYPE_CONFIGS()[resourcetypeid]['icon_class'],
                'resource_geom':
                geom,
                'child_resource':
                'HERITAGE_FEATURE.E24' if resourcetypeid
                == 'HERITAGE_RESOURCE_GROUP.E27' else 'HERITAGE_COMPONENT.B2'
            },
                                      context_instance=RequestContext(request))
        else:
            return HttpResponseNotFound('<h1>Arches form not found.</h1>')