def status(request, project_uuid): """ View of the project status """ ocitem = OCitem() ocitem.get_item(project_uuid) ok_view = False if ocitem.manifest is not False: if ocitem.manifest.item_type == 'projects': ok_view = True if ok_view: 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: p_o = ProjectOverview(project_uuid) p_o.get_manifest_summary() p_o.get_person_list() # p_o. get_data_type_summary() template = loader.get_template('edit/project-status.html') context = { 'item': temp_item, 'super_user': request.user.is_superuser, 'icons': ItemBasicEdit.UI_ICONS, 'status': p_o, 'base_url': base_url, 'user': request.user } return HttpResponse(template.render(context, request)) else: template = loader.get_template('edit/view401.html') context = {'item': temp_item, 'base_url': base_url} return HttpResponse(template.render(context, request), status=401) else: raise Http404
def json_view(request, uuid): ocitem = OCitem() if 'hashes' in request.GET: ocitem.assertion_hashes = True ocitem.get_item(uuid, True) if(ocitem.manifest is not False): req_neg = RequestNegotiation('application/json') req_neg.supported_types = ['application/ld+json', 'application/vnd.geo+json'] if 'HTTP_ACCEPT' in request.META: req_neg.check_request_support(request.META['HTTP_ACCEPT']) if req_neg.supported: json_output = json.dumps(ocitem.json_ld, indent=4, ensure_ascii=False) if 'callback' in request.GET: funct = request.GET['callback'] return HttpResponse(funct + '(' + json_output + ');', content_type='application/javascript' + "; charset=utf8") else: return HttpResponse(json_output, content_type=req_neg.use_response_type + "; charset=utf8") else: # client wanted a mimetype we don't support return HttpResponse(req_neg.error_message, content_type=req_neg.use_response_type + "; charset=utf8", status=415) else: raise Http404
def html_view(request, uuid): ocitem = OCitem() ocitem.get_item(uuid) if(ocitem.manifest is not False): return HttpResponse("Hello, world. You're at the type htmlView of " + str(uuid)) else: raise Http404
def html_view(request, uuid): ocitem = OCitem() ocitem.get_item(uuid, True) if (ocitem.manifest is not False): rp = RootPath() base_url = rp.get_baseurl() temp_item = TemplateItem() temp_item.read_jsonld_dict(ocitem.json_ld) template = loader.get_template('projects/view.html') req_neg = RequestNegotiation('text/html') req_neg.supported_types = ['application/json', 'application/ld+json'] if 'HTTP_ACCEPT' in request.META: req_neg.check_request_support(request.META['HTTP_ACCEPT']) if req_neg.supported: if 'json' in req_neg.use_response_type: # content negotiation requested JSON or JSON-LD return HttpResponse(json.dumps(ocitem.json_ld, ensure_ascii=False, indent=4), content_type=req_neg.use_response_type + "; charset=utf8") else: context = RequestContext(request, { 'item': temp_item, 'base_url': base_url }) return HttpResponse(template.render(context)) else: # client wanted a mimetype we don't support return HttpResponse(req_neg.error_message, content_type=req_neg.use_response_type + "; charset=utf8", status=415) else: raise Http404
def html_view(request, uuid): 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.read_jsonld_dict(ocitem.json_ld) template = loader.get_template("media/view.html") if temp_item.view_permitted: req_neg = RequestNegotiation("text/html") req_neg.supported_types = ["application/json", "application/ld+json"] if "HTTP_ACCEPT" in request.META: req_neg.check_request_support(request.META["HTTP_ACCEPT"]) if req_neg.supported: if "json" in req_neg.use_response_type: # content negotiation requested JSON or JSON-LD return HttpResponse( json.dumps(ocitem.json_ld, ensure_ascii=False, indent=4), content_type=req_neg.use_response_type + "; charset=utf8", ) else: context = RequestContext(request, {"item": temp_item, "fullview": False, "base_url": base_url}) return HttpResponse(template.render(context)) else: # client wanted a mimetype we don't support return HttpResponse( req_neg.error_message, content_type=req_neg.use_response_type + "; charset=utf8", status=415 ) else: template = loader.get_template("items/view401.html") context = RequestContext(request, {"item": temp_item, "base_url": base_url}) return HttpResponse(template.render(context), status=401) else: raise Http404
def check_list_view(request, uuid): """ Displays the HTML item editing interface """ ocitem = OCitem() ocitem.get_item(uuid) if ocitem.manifest is not False: if ocitem.manifest.item_type == 'projects': 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: template = loader.get_template('edit/check-list.html') context = RequestContext( request, { 'item': temp_item, '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: raise Http404 else: raise Http404
def json_view(request, uuid): ocitem = OCitem() if 'hashes' in request.GET: ocitem.assertion_hashes = True ocitem.get_item(uuid, True) if (ocitem.manifest is not False): req_neg = RequestNegotiation('application/json') req_neg.supported_types = ['application/ld+json'] if 'HTTP_ACCEPT' in request.META: req_neg.check_request_support(request.META['HTTP_ACCEPT']) if req_neg.supported: json_output = json.dumps(ocitem.json_ld, indent=4, ensure_ascii=False) return HttpResponse(json_output, content_type=req_neg.use_response_type + "; charset=utf8") else: # client wanted a mimetype we don't support return HttpResponse(req_neg.error_message, content_type=req_neg.use_response_type + "; charset=utf8", status=415) else: raise Http404
def html_view(request, uuid): ocitem = OCitem() ocitem.get_item(uuid) if ocitem.manifest is not False: return HttpResponse("Hello, world. You're at the type htmlView of " + str(uuid)) else: raise Http404
def html_view(request, uuid): ocitem = OCitem() ocitem.get_item(uuid, True) if(ocitem.manifest is not False): rp = RootPath() base_url = rp.get_baseurl() temp_item = TemplateItem() temp_item.read_jsonld_dict(ocitem.json_ld) template = loader.get_template('projects/view.html') req_neg = RequestNegotiation('text/html') req_neg.supported_types = ['application/json', 'application/ld+json'] if 'HTTP_ACCEPT' in request.META: req_neg.check_request_support(request.META['HTTP_ACCEPT']) if req_neg.supported: if 'json' in req_neg.use_response_type: # content negotiation requested JSON or JSON-LD return HttpResponse(json.dumps(ocitem.json_ld, ensure_ascii=False, indent=4), content_type=req_neg.use_response_type + "; charset=utf8") else: context = RequestContext(request, {'item': temp_item, 'base_url': base_url}) return HttpResponse(template.render(context)) else: # client wanted a mimetype we don't support return HttpResponse(req_neg.error_message, content_type=req_neg.use_response_type + "; charset=utf8", status=415) else: raise Http404
def json_view(request, uuid): ocitem = OCitem() ocitem.get_item(uuid) if ocitem.manifest is not False: json_output = json.dumps(ocitem.json_ld, indent=4, ensure_ascii=False) return HttpResponse(json_output, content_type="application/json; charset=utf8") else: raise Http404
def make_oc_item(self, man_obj): """ makes an open context item for the image, so as to gather up all the needed metadata """ ocitem = OCitem() ocitem.get_item(man_obj.uuid) json_ld = ocitem.json_ld return json_ld
def json_view(request, uuid): ocitem = OCitem() ocitem.get_item(uuid) if(ocitem.manifest is not False): json_output = json.dumps(ocitem.json_ld, indent=4, ensure_ascii=False) return HttpResponse(json_output, content_type='application/json; charset=utf8') else: raise Http404
def html_view(request, uuid, full_view=False): request = RequestNegotiation().anonymize_request(request) # Handle some content negotiation for the item. req_neg = RequestNegotiation('text/html') req_neg.supported_types = [] if 'HTTP_ACCEPT' in request.META: req_neg.check_request_support(request.META['HTTP_ACCEPT']) if not req_neg.supported: # The client may be wanting a non-HTML representation, so # use the following function to get it. return items_graph(request, uuid, item_type=ITEM_TYPE) # Construnct the item ocitem = OCitem() ocitem.get_item(uuid) if not ocitem.manifest: # Did not find a record for the table, check for redirects r_url = RedirectURL() r_ok = r_url.get_direct_by_type_id(ITEM_TYPE, uuid) if r_ok: # found a redirect!! return redirect(r_url.redirect, permanent=r_url.permanent) # raise Http404 raise Http404 request.uuid = ocitem.manifest.uuid request.project_uuid = ocitem.manifest.project_uuid request.item_type = ocitem.manifest.item_type rp = RootPath() base_url = rp.get_baseurl() temp_item = TemplateItem(request) temp_item.read_jsonld_dict(ocitem.json_ld) if full_view: template = loader.get_template('media/full.html') else: template = loader.get_template('media/view.html') if not temp_item.view_permitted: # The client is not allowed to see this. template = loader.get_template('items/view401.html') context = { 'item': temp_item, 'base_url': base_url, 'user': request.user } return HttpResponse(template.render(context, request), status=401) # Now add templated item to the a response object context = { 'item': temp_item, 'fullview': full_view, 'base_url': base_url, 'user': request.user } response = HttpResponse(template.render(context, request)) patch_vary_headers(response, ['accept', 'Accept', 'content-type']) return response
def __init__(self, uuid): ''' Using our Python JSON-LD and other info provided in OCitem, build up dictionary of solr fields to index. ''' # First get core data structures self.oc_item = OCitem().get_item(uuid) self.context_path = self._get_context_path() # Store values here self.fields = {} self.fields['text'] = '' # Start of full-text field # Start processing and adding values... self._process_core_solr_fields() self._process_category() self._process_context_path() self._process_predicates() self._process_geo() self._process_chrono() self._process_text_content() self._process_dc_terms() self._process_dc_authorship() self._process_projects() self._process_persistent_ids() self._process_associated_linkedata() self.process_equivalent_linked_data() self._process_interest_score()
def layers_view(request, uuid): """View geospatial layers associated with a project. """ ocitem = OCitem() ocitem.get_item(uuid, True) if not ocitem.manifest: raise Http404 proj_layers = ProjectLayers(ocitem.manifest.uuid) proj_layers.get_geo_overlays() json_output = proj_layers.json_geo_overlay() if 'callback' in request.GET: funct = request.GET['callback'] return HttpResponse(funct + '(' + json_output + ');', content_type='application/javascript' + "; charset=utf8") return HttpResponse(json_output, content_type="application/json; charset=utf8")
def html_view(request, uuid): ocitem = OCitem() ocitem.get_item(uuid) if (ocitem.manifest is not False): # check to see if there's related data via API calls. Add if so. subj_s = SubjectSupplement(ocitem.json_ld) ocitem.json_ld = subj_s.get_catal_related() rp = RootPath() base_url = rp.get_baseurl() temp_item = TemplateItem(request) temp_item.read_jsonld_dict(ocitem.json_ld) template = loader.get_template('subjects/view.html') if temp_item.view_permitted: req_neg = RequestNegotiation('text/html') req_neg.supported_types = [ 'application/json', 'application/ld+json' ] if 'HTTP_ACCEPT' in request.META: req_neg.check_request_support(request.META['HTTP_ACCEPT']) if req_neg.supported: if 'json' in req_neg.use_response_type: # content negotiation requested JSON or JSON-LD return HttpResponse( json.dumps(ocitem.json_ld, ensure_ascii=False, indent=4), content_type=req_neg.use_response_type + "; charset=utf8") else: context = RequestContext(request, { 'item': temp_item, 'base_url': base_url }) return HttpResponse(template.render(context)) else: # client wanted a mimetype we don't support return HttpResponse(req_neg.error_message, content_type=req_neg.use_response_type + "; charset=utf8", status=415) else: template = loader.get_template('items/view401.html') context = RequestContext(request, {'item': temp_item}) return HttpResponse(template.render(context), status=401) else: raise Http404
def json_view(request, uuid): ocitem = OCitem() ocitem.get_item(uuid) if ocitem.manifest is not False: req_neg = RequestNegotiation("application/json") req_neg.supported_types = ["application/ld+json"] if "HTTP_ACCEPT" in request.META: req_neg.check_request_support(request.META["HTTP_ACCEPT"]) if req_neg.supported: json_output = json.dumps(ocitem.json_ld, indent=4, ensure_ascii=False) return HttpResponse(json_output, content_type=req_neg.use_response_type + "; charset=utf8") else: # client wanted a mimetype we don't support return HttpResponse( req_neg.error_message, content_type=req_neg.use_response_type + "; charset=utf8", status=415 ) else: raise Http404
def export_project_meta(self): """ Exports projects """ man_projs = Manifest.objects.filter(item_type='projects') for man_proj in man_projs: uuid = man_proj.uuid slug = man_proj.slug # proj_dir = self.prep_directory(slug) # proj_file = proj_dir + slug + '.json' proj_dir = self.prep_directory('draft-project-json-ld') proj_file = proj_dir + uuid + '.json' ocitem = OCitem() ocitem.get_item(uuid) json_output = json.dumps(ocitem.json_ld, indent=4, ensure_ascii=False) file = codecs.open(proj_file, 'w', 'utf-8') file.write(json_output) file.close()
def get_item_json_ld(self, item): """ gets metadata and uris """ output = False if 'uri' in item: tcheck = URImanagement.get_uuid_from_oc_uri(item['uri'], True) if tcheck is False: item_type = False else: uuid = tcheck['uuid'] item_type = tcheck['item_type'] ocitem = OCitem() ocitem.get_item(uuid) if ocitem.manifest is not False: output = ocitem.json_ld else: output = False 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 html_view(request, uuid): ocitem = OCitem() ocitem.get_item(uuid) if ocitem.manifest is not False: # check to see if there's related data via API calls. Add if so. subj_s = SubjectSupplement(ocitem.json_ld) ocitem.json_ld = subj_s.get_catal_related() rp = RootPath() base_url = rp.get_baseurl() temp_item = TemplateItem(request) temp_item.read_jsonld_dict(ocitem.json_ld) template = loader.get_template('subjects/view.html') if temp_item.view_permitted: req_neg = RequestNegotiation('text/html') req_neg.supported_types = ['application/json', 'application/ld+json', 'application/vnd.geo+json'] if 'HTTP_ACCEPT' in request.META: req_neg.check_request_support(request.META['HTTP_ACCEPT']) if req_neg.supported: if 'json' in req_neg.use_response_type: # content negotiation requested JSON or JSON-LD return HttpResponse(json.dumps(ocitem.json_ld, ensure_ascii=False, indent=4), content_type=req_neg.use_response_type + "; charset=utf8") else: context = RequestContext(request, {'item': temp_item, 'base_url': base_url}) return HttpResponse(template.render(context)) else: # client wanted a mimetype we don't support return HttpResponse(req_neg.error_message, content_type=req_neg.use_response_type + "; charset=utf8", status=415) else: template = loader.get_template('items/view401.html') context = RequestContext(request, {'item': temp_item}) return HttpResponse(template.render(context), status=401) else: raise Http404
def html_view(request, uuid): """ Displays the HTML item editing interface """ ocitem = OCitem() ocitem.get_item(uuid) if(ocitem.manifest is not False): temp_item = TemplateItem(request) temp_item.check_edit_permitted = True temp_item.read_jsonld_dict(ocitem.json_ld) if temp_item.edit_permitted: template = loader.get_template('edit/view.html') context = RequestContext(request, {'item': temp_item}) return HttpResponse(template.render(context)) else: template = loader.get_template('edit/view401.html') context = RequestContext(request, {'item': temp_item}) return HttpResponse(template.render(context), status=401) else: raise Http404
def html_view(request, uuid): request = RequestNegotiation().anonymize_request(request) # Handle some content negotiation for the item. req_neg = RequestNegotiation('text/html') req_neg.supported_types = [] if 'HTTP_ACCEPT' in request.META: req_neg.check_request_support(request.META['HTTP_ACCEPT']) if not req_neg.supported: # The client may be wanting a non-HTML representation, so # use the following function to get it. return items_graph(request, uuid, item_type=ITEM_TYPE) if request.GET.get('new') is not None: return html_view_new(request, uuid) ocitem = OCitem() ocitem.get_item(uuid, True) if not ocitem.manifest: # Did not find a record for the table, check for redirects r_url = RedirectURL() r_ok = r_url.get_direct_by_type_id(ITEM_TYPE, uuid) if r_ok: # found a redirect!! return redirect(r_url.redirect, permanent=r_url.permanent) # raise Http404 raise Http404 # Construnct item the JSON-LD request.uuid = ocitem.manifest.uuid request.project_uuid = ocitem.manifest.project_uuid request.item_type = ocitem.manifest.item_type rp = RootPath() base_url = rp.get_baseurl() proj_content = ProjectContent(ocitem.manifest.uuid, ocitem.manifest.slug, ocitem.json_ld) temp_item = TemplateItem() temp_item.proj_content = proj_content.get_project_content() temp_item.read_jsonld_dict(ocitem.json_ld) template = loader.get_template('projects/view.html') context = {'item': temp_item, 'base_url': base_url, 'user': request.user} response = HttpResponse(template.render(context, request)) patch_vary_headers(response, ['accept', 'Accept', 'content-type']) return response
def status(request, project_uuid): """ View of the project status """ ocitem = OCitem() ocitem.get_item(project_uuid) ok_view = False if ocitem.manifest is not False: if ocitem.manifest.item_type == 'projects': ok_view = True if ok_view: 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: p_o = ProjectOverview(project_uuid) p_o.get_manifest_summary() p_o.get_person_list() # p_o. get_data_type_summary() template = loader.get_template('edit/project-status.html') context = { 'item': temp_item, 'super_user': request.user.is_superuser, 'icons': ItemBasicEdit.UI_ICONS, 'status': p_o, 'base_url': base_url, 'user': request.user } return HttpResponse(template.render(context, request)) else: template = loader.get_template('edit/view401.html') context = { 'item': temp_item, 'base_url': base_url } return HttpResponse(template.render(context, request), status=401) else: raise Http404
def json_view_old(request, uuid): """ returns a json representation """ ocitem = OCitem() if 'hashes' in request.GET: ocitem.assertion_hashes = True ocitem.get_item(uuid) if ocitem.manifest is not False: request.uuid = ocitem.manifest.uuid request.project_uuid = ocitem.manifest.project_uuid request.item_type = ocitem.manifest.item_type req_neg = RequestNegotiation('application/json') req_neg.supported_types = [ 'application/ld+json', 'application/vnd.geo+json' ] if 'HTTP_ACCEPT' in request.META: req_neg.check_request_support(request.META['HTTP_ACCEPT']) if req_neg.supported: request.content_type = req_neg.use_response_type json_output = json.dumps(ocitem.json_ld, indent=4, ensure_ascii=False) if 'callback' in request.GET: funct = request.GET['callback'] return HttpResponse(funct + '(' + json_output + ');', content_type='application/javascript' + "; charset=utf8") else: return HttpResponse(json_output, content_type=req_neg.use_response_type + "; charset=utf8") else: # client wanted a mimetype we don't support return HttpResponse(req_neg.error_message, content_type=req_neg.use_response_type + "; charset=utf8", status=415) else: raise Http404
def status(request, project_uuid): """ View of the project status """ ocitem = OCitem() ocitem.get_item(project_uuid) ok_view = False if ocitem.manifest is not False: if ocitem.manifest.item_type == "projects": ok_view = True if ok_view: 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: p_o = ProjectOverview(project_uuid) p_o.get_manifest_summary() # p_o. get_data_type_summary() template = loader.get_template("edit/project-status.html") context = RequestContext( request, { "item": temp_item, "super_user": request.user.is_superuser, "icons": ItemBasicEdit.UI_ICONS, "status": p_o, "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: raise Http404
def get_json_ld_obj(self, uuid): """ gets the item's JSON-LD """ ocitem = OCitem().get_item(uuid) return ocitem.json_ld
def setUp(self): self.oc_item = OCitem().get_item( '9E474B89-E36B-4B9D-2D38-7C7CCBDBB030') self.json_ld = self.oc_item.json_ld self.oc_label = self.json_ld['label']
def setUp(self): self.oc_item = OCitem().get_item( 'FA6BFBFD-39EB-4474-A2D9-860B2D1B81A6') self.json_ld = self.oc_item.json_ld self.oc_label = self.json_ld['label']