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
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
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
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
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
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
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
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