Пример #1
0
def profile_edit(request, profile_uuid):
    """ Handles JSON requests for a profile
    """
    ipt = InputProfileTemplating()
    exists = ipt.check_exists(profile_uuid)
    if exists:
        # now check to see if the we have edit permissions
        proj_inp = ProjectInputs(ipt.project_uuid, request)
        if proj_inp.edit_permitted or request.user.is_superuser:
            rp = RootPath()
            base_url = rp.get_baseurl()
            temp_item = {'uuid': ipt.uuid,
                         'label': ipt.inp_prof.label,
                         'project_uuid': ipt.project_uuid,
                         'project': ipt.project,
                         'context': False,
                         'act_nav': 'profiles'}
            template = loader.get_template('edit/profiles/profile-edit.html')
            context = RequestContext(request,
                                     {'item': temp_item,
                                      'super_user': request.user.is_superuser,
                                      'icons': ItemBasicEdit.UI_ICONS,
                                      'field_group_vis': InputFieldGroup.GROUP_VIS,
                                      'base_url': base_url})
            return HttpResponse(template.render(context))
        else:
            json_output = json.dumps({'error': 'edit permission required'},
                                     indent=4,
                                     ensure_ascii=False)
            return HttpResponse(json_output,
                                content_type='application/json; charset=utf8',
                                status=401)
    else:
        raise Http404
Пример #2
0
def create_field_group(request, profile_uuid):
    """ Creates a field group for a given InputProfile
    """
    ipt = InputProfileTemplating()
    exists = ipt.check_exists(profile_uuid)
    if exists:
        if request.method == 'POST':
            # now check to see if the we have edit permissions
            proj_inp = ProjectInputs(ipt.project_uuid, request)
            if proj_inp.edit_permitted or request.user.is_superuser:
                mifg = ManageInputFieldGroup()
                mifg.project_uuid = ipt.project_uuid
                mifg.profile_uuid = profile_uuid
                result = mifg.create_update_from_post(request.POST)
                json_output = json.dumps(result, indent=4, ensure_ascii=False)
                return HttpResponse(
                    json_output, content_type='application/json; charset=utf8')
            else:
                json_output = json.dumps({'error': 'edit permission required'},
                                         indent=4,
                                         ensure_ascii=False)
                return HttpResponse(
                    json_output,
                    content_type='application/json; charset=utf8',
                    status=401)
        else:
            return HttpResponseForbidden
    else:
        raise Http404
Пример #3
0
def create_field_group(request, profile_uuid):
    """ Creates a field group for a given InputProfile
    """
    ipt = InputProfileTemplating()
    exists = ipt.check_exists(profile_uuid)
    if exists:
        if request.method == 'POST':
            # now check to see if the we have edit permissions
            proj_inp = ProjectInputs(ipt.project_uuid, request)
            if proj_inp.edit_permitted or request.user.is_superuser:
                mifg = ManageInputFieldGroup()
                mifg.project_uuid = ipt.project_uuid
                mifg.profile_uuid = profile_uuid
                result = mifg.create_update_from_post(request.POST)
                json_output = json.dumps(result,
                                         indent=4,
                                         ensure_ascii=False)
                return HttpResponse(json_output,
                                    content_type='application/json; charset=utf8')
            else:
                json_output = json.dumps({'error': 'edit permission required'},
                                         indent=4,
                                         ensure_ascii=False)
                return HttpResponse(json_output,
                                    content_type='application/json; charset=utf8',
                                    status=401)
        else:
            return HttpResponseForbidden
    else:
        raise Http404
Пример #4
0
def create_update_profle_item(request, profile_uuid, edit_uuid):
    """ handles POST requests to make
        or update an item with a given profile
    """
    try:
        inp_prof = InputProfile.objects.get(uuid=profile_uuid)
        project_uuid = inp_prof.project_uuid
    except InputProfile.DoesNotExist:
        inp_prof = False
        project_uuid = False
        raise Http404
    proj_inp = ProjectInputs(project_uuid, request)
    if proj_inp.manifest is not False:
        if request.method == 'POST':
            field_data = False
            if 'field_data' in request.POST:
                field_data_json = request.POST['field_data']
                try:
                    field_data = json.loads(field_data_json)
                except:
                    field_data = False
            if field_data is False:
                json_output = json.dumps(
                    {
                        'error':
                        'Need to POST "field_data" with JSON encoded text.'
                    },
                    indent=4,
                    ensure_ascii=False)
                return HttpResponse(
                    json_output,
                    content_type='application/json; charset=utf8',
                    status=400)
            if proj_inp.edit_permitted or request.user.is_superuser:
                ipt = InputProfileTemplating()
                profile_obj = ipt.make_json(profile_uuid)
                ipu = InputProfileUse()
                ipu.edit_uuid = edit_uuid
                ipu.item_type = profile_obj['item_type']
                ipu.profile_uuid = profile_uuid
                ipu.profile_obj = profile_obj
                ipu.project_uuid = project_uuid
                result = ipu.create_update(field_data)
                # result = ipu.test(field_data)
                result['errors'] = ipu.errors
                json_output = json.dumps(result, indent=4, ensure_ascii=False)
                return HttpResponse(
                    json_output, content_type='application/json; charset=utf8')
            else:
                json_output = json.dumps({'error': 'edit permission required'},
                                         indent=4,
                                         ensure_ascii=False)
                return HttpResponse(
                    json_output,
                    content_type='application/json; charset=utf8',
                    status=401)
        else:
            return HttpResponseForbidden
    else:
        raise Http404
Пример #5
0
def create_update_profle_item(request, profile_uuid, edit_uuid):
    """ handles POST requests to make
        or update an item with a given profile
    """
    try:
        inp_prof = InputProfile.objects.get(uuid=profile_uuid)
        project_uuid = inp_prof.project_uuid
    except InputProfile.DoesNotExist:
        inp_prof = False
        project_uuid = False
        raise Http404
    proj_inp = ProjectInputs(project_uuid, request)
    if proj_inp.manifest is not False:
        if request.method == 'POST':
            field_data = False
            if 'field_data' in request.POST:
                field_data_json = request.POST['field_data']
                try:
                    field_data = json.loads(field_data_json)
                except:
                    field_data = False
            if field_data is False:
                json_output = json.dumps({'error': 'Need to POST "field_data" with JSON encoded text.'},
                                         indent=4,
                                         ensure_ascii=False)
                return HttpResponse(json_output,
                                    content_type='application/json; charset=utf8',
                                    status=400)
            if proj_inp.edit_permitted or request.user.is_superuser:
                ipt = InputProfileTemplating()
                profile_obj = ipt.make_json(profile_uuid)
                ipu = InputProfileUse()
                ipu.edit_uuid = edit_uuid
                ipu.item_type = profile_obj['item_type']
                ipu.profile_uuid = profile_uuid
                ipu.profile_obj = profile_obj
                ipu.project_uuid = project_uuid
                result = ipu.create_update(field_data)
                # result = ipu.test(field_data)
                result['errors'] = ipu.errors
                json_output = json.dumps(result,
                                         indent=4,
                                         ensure_ascii=False)
                return HttpResponse(json_output,
                                    content_type='application/json; charset=utf8')
            else:
                json_output = json.dumps({'error': 'edit permission required'},
                                         indent=4,
                                         ensure_ascii=False)
                return HttpResponse(json_output,
                                    content_type='application/json; charset=utf8',
                                    status=401)
        else:
            return HttpResponseForbidden
    else:
        raise Http404
Пример #6
0
def check_profile_use(manifest):
    """ checks to see if the item
        was created using a input profile
    """
    output = False
    if ':' in manifest.source_id:
        source_ex = manifest.source_id.split(':')
        if (len(source_ex) == 2):
            profile_uuid = source_ex[1]
            ipt = InputProfileTemplating()
            exists = ipt.check_exists(profile_uuid)
            if exists:
                output = ipt.inp_prof
    return output
Пример #7
0
def html_view(request, uuid):
    """ Displays the HTML item editing interface """
    ocitem = OCitem()
    ocitem.get_item(uuid)
    if (ocitem.manifest is not False):
        rp = RootPath()
        base_url = rp.get_baseurl()
        temp_item = TemplateItem(request)
        temp_item.check_edit_permitted = True
        temp_item.read_jsonld_dict(ocitem.json_ld)
        if temp_item.edit_permitted:
            if 'alt' in request.GET:
                template = loader.get_template('edit/item-edit.html')
            else:
                template = loader.get_template('edit/view.html')
            context = RequestContext(
                request, {
                    'item': temp_item,
                    'profile': check_profile_use(ocitem.manifest),
                    'super_user': request.user.is_superuser,
                    'icons': ItemBasicEdit.UI_ICONS,
                    'base_url': base_url
                })
            return HttpResponse(template.render(context))
        else:
            template = loader.get_template('edit/view401.html')
            context = RequestContext(request, {
                'item': temp_item,
                'base_url': base_url
            })
            return HttpResponse(template.render(context), status=401)
    else:
        # not in the manifest, check to see if this is an data entry input profile
        ipt = InputProfileTemplating()
        exists = ipt.check_exists(uuid)
        if exists:
            rp = RootPath()
            base_url = rp.get_baseurl()
            return redirect(base_url + '/edit/inputs/profiles/' + uuid +
                            '/edit')
        else:
            raise Http404
Пример #8
0
def profile_item_list(request, profile_uuid):
    """ Handles JSON requests for a profile
    """
    ipt = InputProfileTemplating()
    exists = ipt.check_exists(profile_uuid)
    if exists:
        rp = RootPath()
        ipt.base_url = rp.get_baseurl()
        # now check to see if the we have edit permissions
        proj_inp = ProjectInputs(ipt.project_uuid, request)
        if proj_inp.edit_permitted or request.user.is_superuser:
            start = 0
            rows = 10
            sort = False
            last = False
            if 'start' in request.GET:
                start = request.GET['start']
            if 'rows' in request.GET:
                rows = request.GET['rows']
            if 'sort' in request.GET:
                sort = request.GET['sort']
            if 'last' in request.GET:
                last = True
            result = ipt.get_item_list(profile_uuid,
                                       start,
                                       rows,
                                       sort,
                                       last)
            json_output = json.dumps(result,
                                     indent=4,
                                     ensure_ascii=False)
            return HttpResponse(json_output,
                                content_type='application/json; charset=utf8')
        else:
            json_output = json.dumps({'error': 'edit permission required'},
                                     indent=4,
                                     ensure_ascii=False)
            return HttpResponse(json_output,
                                content_type='application/json; charset=utf8',
                                status=401)
    else:
        raise Http404
Пример #9
0
def json_view(request, profile_uuid):
    """ Handles JSON requests for a profile
    """
    ipt = InputProfileTemplating()
    exists = ipt.check_exists(profile_uuid)
    if exists:
        # now check to see if the we have edit permissions
        proj_inp = ProjectInputs(ipt.project_uuid, request)
        if proj_inp.edit_permitted or request.user.is_superuser:
            result = ipt.make_json(profile_uuid)
            json_output = json.dumps(result, indent=4, ensure_ascii=False)
            return HttpResponse(json_output,
                                content_type='application/json; charset=utf8')
        else:
            json_output = json.dumps({'error': 'edit permission required'},
                                     indent=4,
                                     ensure_ascii=False)
            return HttpResponse(json_output,
                                content_type='application/json; charset=utf8',
                                status=401)
    else:
        raise Http404
Пример #10
0
def profile_edit(request, profile_uuid):
    """ Handles JSON requests for a profile
    """
    ipt = InputProfileTemplating()
    exists = ipt.check_exists(profile_uuid)
    if exists:
        # now check to see if the we have edit permissions
        proj_inp = ProjectInputs(ipt.project_uuid, request)
        if proj_inp.edit_permitted or request.user.is_superuser:
            rp = RootPath()
            base_url = rp.get_baseurl()
            temp_item = {
                'uuid': ipt.uuid,
                'label': ipt.inp_prof.label,
                'project_uuid': ipt.project_uuid,
                'project': ipt.project,
                'context': False,
                'act_nav': 'profiles'
            }
            template = loader.get_template('edit/profiles/profile-edit.html')
            context = RequestContext(
                request, {
                    'item': temp_item,
                    'super_user': request.user.is_superuser,
                    'icons': ItemBasicEdit.UI_ICONS,
                    'field_group_vis': InputFieldGroup.GROUP_VIS,
                    'base_url': base_url
                })
            return HttpResponse(template.render(context))
        else:
            json_output = json.dumps({'error': 'edit permission required'},
                                     indent=4,
                                     ensure_ascii=False)
            return HttpResponse(json_output,
                                content_type='application/json; charset=utf8',
                                status=401)
    else:
        raise Http404
Пример #11
0
def json_view(request, profile_uuid):
    """ Handles JSON requests for a profile
    """
    ipt = InputProfileTemplating()
    exists = ipt.check_exists(profile_uuid)
    if exists:
        # now check to see if the we have edit permissions
        proj_inp = ProjectInputs(ipt.project_uuid, request)
        if proj_inp.edit_permitted or request.user.is_superuser:
            result = ipt.make_json(profile_uuid)
            json_output = json.dumps(result,
                                     indent=4,
                                     ensure_ascii=False)
            return HttpResponse(json_output,
                                content_type='application/json; charset=utf8')
        else:
            json_output = json.dumps({'error': 'edit permission required'},
                                     indent=4,
                                     ensure_ascii=False)
            return HttpResponse(json_output,
                                content_type='application/json; charset=utf8',
                                status=401)
    else:
        raise Http404
Пример #12
0
def profile_item_list(request, profile_uuid):
    """ Handles JSON requests for a profile
    """
    ipt = InputProfileTemplating()
    exists = ipt.check_exists(profile_uuid)
    if exists:
        rp = RootPath()
        ipt.base_url = rp.get_baseurl()
        # now check to see if the we have edit permissions
        proj_inp = ProjectInputs(ipt.project_uuid, request)
        if proj_inp.edit_permitted or request.user.is_superuser:
            start = 0
            rows = 10
            sort = False
            last = False
            if 'start' in request.GET:
                start = request.GET['start']
            if 'rows' in request.GET:
                rows = request.GET['rows']
            if 'sort' in request.GET:
                sort = request.GET['sort']
            if 'last' in request.GET:
                last = True
            result = ipt.get_item_list(profile_uuid, start, rows, sort, last)
            json_output = json.dumps(result, indent=4, ensure_ascii=False)
            return HttpResponse(json_output,
                                content_type='application/json; charset=utf8')
        else:
            json_output = json.dumps({'error': 'edit permission required'},
                                     indent=4,
                                     ensure_ascii=False)
            return HttpResponse(json_output,
                                content_type='application/json; charset=utf8',
                                status=401)
    else:
        raise Http404
Пример #13
0
def profile_use(request, profile_uuid, edit_uuid):
    """ Handle requests to use a profile to create
        or edit a record
    """
    ipt = InputProfileTemplating()
    exists = ipt.check_exists(profile_uuid)
    if exists:
        # now check to see if the we have edit permissions
        proj_inp = ProjectInputs(ipt.project_uuid, request)
        if proj_inp.edit_permitted or request.user.is_superuser:
            if edit_uuid != 'new':
                try:
                    edit_man = Manifest.objects.get(uuid=edit_uuid)
                except Manifest.DoesNotExist:
                    # trying to use this profile to edit something that
                    # does not exist
                    edit_man = False
                    raise Http404
            else:
                edit_uuid = proj_inp.mint_new_uuid()
                edit_man = False
            if 'prefix' in request.GET:
                prefix = request.GET['prefix']
            else:
                prefix = ''
            if 'id_len' in request.GET:
                try:
                    id_len = int(float(request.GET['id_len']))
                except:
                    id_len = False
            else:
                id_len = False
            rp = RootPath()
            base_url = rp.get_baseurl()
            temp_item = {'uuid': ipt.uuid,
                         'label': ipt.inp_prof.label,
                         'project_uuid': ipt.project_uuid,
                         'project': ipt.project,
                         'edit_man': edit_man,
                         'edit_uuid': edit_uuid,
                         'label_prefix': prefix,
                         'label_id_len': id_len,
                         'context': False,
                         'act_nav': 'profiles'}
            template = loader.get_template('edit/profiles/profile-use.html')
            context = RequestContext(request,
                                     {'item': temp_item,
                                      'super_user': request.user.is_superuser,
                                      'icons': ItemBasicEdit.UI_ICONS,
                                      'field_group_vis': InputFieldGroup.GROUP_VIS,
                                      'base_url': base_url})
            return HttpResponse(template.render(context))
        else:
            json_output = json.dumps({'error': 'edit permission required'},
                                     indent=4,
                                     ensure_ascii=False)
            return HttpResponse(json_output,
                                content_type='application/json; charset=utf8',
                                status=401)
    else:
        raise Http404
Пример #14
0
def profile_use(request, profile_uuid, edit_uuid):
    """ Handle requests to use a profile to create
        or edit a record
    """
    ipt = InputProfileTemplating()
    exists = ipt.check_exists(profile_uuid)
    if exists:
        # now check to see if the we have edit permissions
        proj_inp = ProjectInputs(ipt.project_uuid, request)
        if proj_inp.edit_permitted or request.user.is_superuser:
            if edit_uuid != 'new':
                try:
                    edit_man = Manifest.objects.get(uuid=edit_uuid)
                except Manifest.DoesNotExist:
                    # trying to use this profile to edit something that
                    # does not exist
                    edit_man = False
                    raise Http404
            else:
                edit_uuid = proj_inp.mint_new_uuid
                edit_man = False
            if 'prefix' in request.GET:
                prefix = request.GET['prefix']
            else:
                prefix = ''
            if 'id_len' in request.GET:
                try:
                    id_len = int(float(request.GET['id_len']))
                except:
                    id_len = False
            else:
                id_len = False
            rp = RootPath()
            base_url = rp.get_baseurl()
            temp_item = {
                'uuid': ipt.uuid,
                'label': ipt.inp_prof.label,
                'project_uuid': ipt.project_uuid,
                'project': ipt.project,
                'edit_man': edit_man,
                'edit_uuid': edit_uuid,
                'label_prefix': prefix,
                'label_id_len': id_len,
                'context': False,
                'act_nav': 'profiles'
            }
            template = loader.get_template('edit/profiles/profile-use.html')
            context = RequestContext(
                request, {
                    'item': temp_item,
                    'super_user': request.user.is_superuser,
                    'icons': ItemBasicEdit.UI_ICONS,
                    'field_group_vis': InputFieldGroup.GROUP_VIS,
                    'base_url': base_url
                })
            return HttpResponse(template.render(context))
        else:
            json_output = json.dumps({'error': 'edit permission required'},
                                     indent=4,
                                     ensure_ascii=False)
            return HttpResponse(json_output,
                                content_type='application/json; charset=utf8',
                                status=401)
    else:
        raise Http404