def document_meta(request, docbox, document=None, pha=None, external_id=None, app_specific = False): """ The metadata for a single document The app-specific parameter needs to be specified in the URL route """ if not document: try: if docbox and docbox.record: full_external_id = Document.prepare_external_id(external_id, pha = pha, pha_specific = app_specific) # clear the pha argument if it's not app specific if not app_specific: pha = None document = docbox.record.documents.get(record=docbox.record, pha=pha, external_id = full_external_id) else: full_external_id = Document.prepare_external_id(external_id, pha = pha, pha_specific = app_specific, record_specific=False) document = Document.objects.get(record=None, pha=pha, external_id = full_external_id) except Document.DoesNotExist: raise Http404 except MultipleObjectsReturned: return HttpResponseBadRequest("Multiple external_ids returned, db is in a corrupted state") _set_doc_latest(document) # related stuff document.relates_to, document.is_related_from = _get_doc_relations(document) return render_template('single_document', {'doc' : document, 'record': document.record})
def _document_meta(record=None, carenet=None, document=None, pha=None, external_id=None, app_specific=False): """ The metadata for a single document """ if carenet: record = carenet.record if not document: full_external_id = Document.prepare_external_id(external_id, pha=pha, pha_specific=app_specific, record_specific=(record is not None)) if not full_external_id: raise Http404 if not app_specific: pha = None document = _get_document(record=record, pha=pha, external_id=full_external_id) if not document: raise Http404 _set_doc_latest(document) # related stuff document.relates_to, document.is_related_from = _get_doc_relations(document) return render_template('single_document', {'doc' : document, 'record': document.record})
def get_doc_obj_rels(doc_id): #print doc_id try: document = Document.objects.get(id=doc_id) document.relates_to, document.is_related_from = _get_doc_relations(document) return loader.get_template('document.xml').render(Context({'doc':document})) except Exception, e: return "Exception: " + str(e)
def get_doc_obj_rels(doc_id): print doc_id try: document = Document.objects.get(id=doc_id) document.relates_to, document.is_related_from = _get_doc_relations( document) return loader.get_template('document.xml').render( Context({'doc': document})) except Exception, e: return "Exception: " + str(e)
def get_doc_obj(doc_id): try: doc = Document.objects.get(id=doc_id) # append the doc metadata _set_doc_latest(doc) doc.relates_to, doc.is_related_from = _get_doc_relations(doc) return loader.get_template('document.xml').render(Context({'doc': doc, 'record': doc.record})) except: return ""
def get_doc_obj(doc_id): try: doc = Document.objects.get(id=doc_id) # append the doc metadata _set_doc_latest(doc) doc.relates_to, doc.is_related_from = _get_doc_relations(doc) return loader.get_template('document.xml').render( Context({ 'doc': doc, 'record': doc.record })) except: return ""
def _document_meta(record=None, carenet=None, document=None, pha=None, external_id=None, app_specific=False): """ The metadata for a single document """ if carenet: record = carenet.record if not document: full_external_id = Document.prepare_external_id( external_id, pha=pha, pha_specific=app_specific, record_specific=(record is not None)) if not full_external_id: raise Http404 if not app_specific: pha = None document = _get_document(record=record, pha=pha, external_id=full_external_id) if not document: raise Http404 _set_doc_latest(document) # related stuff document.relates_to, document.is_related_from = _get_doc_relations( document) return render_template('single_document', { 'doc': document, 'record': document.record })
def _document_meta(record=None, carenet=None, document=None, pha=None, external_id=None, app_specific=False): """ Fetch the metadata of a single document. Metadata includes: * id * date created * creator * the document that replaced this one * the document that this one replaces * the original document in the version chain * the latest document in the version chain * label * current status * nevershare status * related documents **ARGUMENTS:** * *record*: The :py:class:`~indivo.models.records_and_documents.Record` that the document is scoped to, if applicable. * *carenet*: The :py:class:`~indivo.models.shares.Carenet` that the document is shared into, if applicable. * *document*: The document to get metadata for, if it has been prefetched. .. Note:: One of *external_id* or *document* MUST be passed to this function, or it cannot retrieve a unique document. * *pha*: The :py:class:`~indivo.models.apps.PHA` object that the document is scoped to. Also serves to scope *external_id*, if present and *app_specific* is ``True``. * *external_id*: The external identifier of the document to re-label. .. Note:: One of *external_id* or *document* MUST be passed to this function, or it cannot retrieve a unique document. * *app_specific*: Whether or not the document is app-specific. The mere presence of the *pha* argument isn't enough to satisfy this question, as *pha* might have been passed in only to scope an external id for a non-app-specific document. **RETURNS:** * An HttpResponse object with an XML string describing the document metadata on success. **RAISES:** * :py:exc:`django.http.Http404` if *document* isn't passed and *external_id* doesn't identify an existing document. """ if carenet: record = carenet.record if not document: full_external_id = Document.prepare_external_id(external_id, pha=pha, pha_specific=app_specific, record_specific=(record is not None)) if not full_external_id: raise Http404 if not app_specific: pha = None document = _get_document(record=record, pha=pha, external_id=full_external_id) if not document: raise Http404 _set_doc_latest(document) # related stuff document.relates_to, document.is_related_from = _get_doc_relations(document) return render_template('single_document', {'doc' : document, 'record': document.record})