示例#1
0
def search(request, topic_map):
    form_data = request.GET or None
    entity_types = EntityType.objects.all()
    form = EntitySearchForm(topic_map,
                            data=form_data,
                            entity_types=entity_types)
    results = []
    user_preferences = {}
    if form.is_valid():
        name = form.cleaned_data['name']
        entity_type_id = form.cleaned_data['entity_type']
        entity_type = None
        if entity_type_id:
            entity_type = EntityType.objects.get_by_identifier(entity_type_id)
        results_list = topic_map.lookup_entities(name, entity_type)
        paginator = Paginator(results_list, 10)
        page = request.GET.get('page')
        try:
            results = paginator.page(page)
        except PageNotAnInteger:
            results = paginator.page(1)
        except EmptyPage:
            results = paginator.page(paginator.num_pages)
        user_preferences = get_user_preferences(request)
    context_data = {
        'property_assertion_full_certainty': \
            topic_map.property_assertion_full_certainty,
        'search_form': form, 'search_results': results}
    context_data['user_is_editor'] = user_is_editor(request.user)
    context_data.update(user_preferences)
    return render_to_response('eats/display/search.html',
                              context_data,
                              context_instance=RequestContext(request))
示例#2
0
def search (request, topic_map):
    form_data = request.GET or None
    entity_types = EntityType.objects.all()
    form = EntitySearchForm(topic_map, data=form_data,
                            entity_types=entity_types)
    results = []
    user_preferences = {}
    if form.is_valid():
        name = form.cleaned_data['name']
        entity_type_id = form.cleaned_data['entity_type']
        entity_type = None
        if entity_type_id:
            entity_type = EntityType.objects.get_by_identifier(entity_type_id)
        results_list = topic_map.lookup_entities(name, entity_type)
        paginator = Paginator(results_list, 10)
        page = request.GET.get('page')
        try:
            results = paginator.page(page)
        except PageNotAnInteger:
            results = paginator.page(1)
        except EmptyPage:
            results = paginator.page(paginator.num_pages)
        user_preferences = get_user_preferences(request)
    context_data = {
        'property_assertion_full_certainty': \
            topic_map.property_assertion_full_certainty,
        'search_form': form, 'search_results': results}
    context_data['user_is_editor'] = user_is_editor(request.user)
    context_data.update(user_preferences)
    return render_to_response('eats/display/search.html', context_data,
                              context_instance=RequestContext(request))
示例#3
0
文件: display.py 项目: philgooch/eats
def entity_view (request, entity_id):
    try:
        entity = Entity.objects.get_by_identifier(entity_id)
    except Entity.DoesNotExist:
        raise Http404
    user_preferences = get_user_preferences(request)
    preferred_authority = user_preferences['preferred_authority']
    preferred_language = user_preferences['preferred_language']
    preferred_script = user_preferences['preferred_script']
    preferred_name = entity.get_preferred_name(
        authority=preferred_authority, language=preferred_language,
        script=preferred_script).name
    existence_dates = entity.get_existence_dates()
    entity_type_pas = entity.get_entity_types()
    name_pas = entity.get_eats_names()
    relationship_pas = entity.get_entity_relationships()
    note_pas = entity.get_notes()
    subject_identifier_pas = entity.get_subject_identifiers()
    context_data = {'entity': entity,
                    'preferred_authority': preferred_authority,
                    'preferred_language': preferred_language,
                    'preferred_name': preferred_name,
                    'preferred_script': preferred_script,
                    'existence_dates': existence_dates,
                    'entity_type_pas': entity_type_pas, 'name_pas': name_pas,
                    'note_pas': note_pas, 'relationship_pas': relationship_pas,
                    'subject_identifier_pas': subject_identifier_pas,
                    'site': Site.objects.get_current()}
    return render_to_response('eats/display/entity.html', context_data,
                              context_instance=RequestContext(request))
示例#4
0
def entity_view(request, topic_map, entity_id):
    try:
        entity = Entity.objects.get_by_identifier(entity_id)
    except Entity.DoesNotExist:
        raise Http404
    user_preferences = get_user_preferences(request)
    preferred_authority = user_preferences['preferred_authority']
    preferred_language = user_preferences['preferred_language']
    preferred_script = user_preferences['preferred_script']
    try:
        preferred_name_form = entity.get_preferred_name(
            authority=preferred_authority,
            language=preferred_language,
            script=preferred_script).name.assembled_form
    except AttributeError:
        preferred_name_form = UNNAMED_ENTITY_NAME
    existence_dates = entity.get_existence_dates()
    entity_type_pas = entity.get_entity_types()
    name_pas = entity.get_eats_names()
    relationship_pas = entity.get_entity_relationships()
    note_pas = entity.get_notes()
    subject_identifier_pas = entity.get_subject_identifiers()
    context_data = {
        'entity': entity,
        'preferred_authority': preferred_authority,
        'preferred_language': preferred_language,
        'preferred_name_form': preferred_name_form,
        'preferred_script': preferred_script,
        'existence_dates': existence_dates,
        'entity_type_pas': entity_type_pas,
        'name_pas': name_pas,
        'note_pas': note_pas,
        'property_assertion_full_certainty':
        topic_map.property_assertion_full_certainty,
        'relationship_pas': relationship_pas,
        'subject_identifier_pas': subject_identifier_pas,
        'site': Site.objects.get_current()
    }
    return render_to_response('eats/display/entity.html',
                              context_data,
                              context_instance=RequestContext(request))
示例#5
0
文件: display.py 项目: philgooch/eats
def search (request, topic_map):
    form_data = request.GET or None
    form = EntitySearchForm(data=form_data)
    results = []
    user_preferences = {}
    if form.is_valid():
        name = form.cleaned_data['name']
        results_list = topic_map.lookup_entities(name)
        paginator = Paginator(results_list, 10)
        page = request.GET.get('page')
        try:
            results = paginator.page(page)
        except PageNotAnInteger:
            results = paginator.page(1)
        except EmptyPage:
            results = paginator.page(paginator.num_pages)
        user_preferences = get_user_preferences(request)
    context_data = {'search_form': form, 'search_results': results}
    context_data['user_is_editor'] = user_is_editor(request.user)
    context_data.update(user_preferences)
    return render_to_response('eats/display/search.html', context_data,
                              context_instance=RequestContext(request))
示例#6
0
def entity_view (request, topic_map, entity_id):
    try:
        entity = Entity.objects.get_by_identifier(entity_id)
    except Entity.DoesNotExist:
        raise Http404
    user_preferences = get_user_preferences(request)
    preferred_authority = user_preferences['preferred_authority']
    preferred_language = user_preferences['preferred_language']
    preferred_script = user_preferences['preferred_script']
    try:
        preferred_name_form = entity.get_preferred_name(
            authority=preferred_authority, language=preferred_language,
            script=preferred_script).name.assembled_form
    except AttributeError:
        preferred_name_form = UNNAMED_ENTITY_NAME
    existence_dates = entity.get_existence_dates()
    entity_type_pas = entity.get_entity_types()
    name_pas = entity.get_eats_names()
    relationship_pas = entity.get_entity_relationships()
    note_pas = entity.get_notes()
    subject_identifier_pas = entity.get_subject_identifiers()
    context_data = {'entity': entity,
                    'preferred_authority': preferred_authority,
                    'preferred_language': preferred_language,
                    'preferred_name_form': preferred_name_form,
                    'preferred_script': preferred_script,
                    'existence_dates': existence_dates,
                    'entity_type_pas': entity_type_pas, 'name_pas': name_pas,
                    'note_pas': note_pas,
                    'property_assertion_full_certainty':
                        topic_map.property_assertion_full_certainty,
                    'relationship_pas': relationship_pas,
                    'subject_identifier_pas': subject_identifier_pas,
                    'site': Site.objects.get_current()}
    return render_to_response('eats/display/entity.html', context_data,
                              context_instance=RequestContext(request))
示例#7
0
文件: edit.py 项目: ajenhl/eats
    context_data['current_authority_form'] = current_authority_form
    context_data['existence_non_editable'] = existences.non_editable
    context_data['existence_formset'] = existences_formset
    context_data['entity_type_non_editable'] = entity_types.non_editable
    context_data['entity_type_formset'] = entity_types_formset
    context_data['name_non_editable'] = names.non_editable
    context_data['name_formset'] = names_formset
    context_data['note_formset'] = notes_formset
    context_data['note_non_editable'] = notes.non_editable
    context_data['entity_relationship_formset'] = entity_relationships_formset
    context_data['entity_relationship_non_editable'] = entity_relationships.non_editable
    context_data['subject_identifier_formset'] = subject_identifiers_formset
    context_data['subject_identifier_non_editable'] = subject_identifiers.non_editable
    context_data['property_assertion_full_certainty'] = \
        topic_map.property_assertion_full_certainty
    user_preferences = get_user_preferences(request)
    context_data.update(user_preferences)
    preferred_name_assertion = entity.get_preferred_name(
        user_preferences['preferred_authority'],
        user_preferences['preferred_language'],
        user_preferences['preferred_script'])
    if preferred_name_assertion:
        context_data['preferred_name'] = preferred_name_assertion.name.assembled_form
    else:
        context_data['preferred_name'] = UNNAMED_ENTITY_NAME
    return render(request, 'eats/edit/entity_change.html', context_data)

@user_passes_test(user_is_editor)
@add_topic_map
def entity_delete (request, topic_map, entity_id):
    try:
示例#8
0
文件: edit.py 项目: philgooch/eats
def entity_change (request, topic_map, entity_id):
    entity = get_topic_or_404(Entity, entity_id)
    editor = request.user.eats_user
    context_data = {'entity': entity}
    authority = editor.get_current_authority()
    editable_authorities = editor.editable_authorities.all()
    authority_data = {'current_authority': authority.get_id()}
    entity_data = None
    if request.method == 'POST':
        if '_change_authority' in request.POST:
            authority_data = request.POST
        else:
            entity_data = request.POST
    current_authority_form = CurrentAuthorityForm(
        topic_map, editable_authorities, authority_data)
    existences = ExistencePropertyAssertions(topic_map, entity, authority,
                                             entity_data)
    entity_types = EntityTypePropertyAssertions(topic_map, entity, authority,
                                                entity_data)
    names = NamePropertyAssertions(topic_map, entity, authority, entity_data)
    notes = NotePropertyAssertions(topic_map, entity, authority, entity_data)
    entity_relationships = EntityRelationshipPropertyAssertions(
        topic_map, entity, authority, entity_data)
    subject_identifiers = SubjectIdentifierPropertyAssertions(
        topic_map, entity, authority, entity_data)
    existences_formset = existences.formset
    entity_types_formset = entity_types.formset
    names_formset = names.formset
    notes_formset = notes.formset
    entity_relationships_formset = entity_relationships.formset
    subject_identifiers_formset = subject_identifiers.formset
    if request.method == 'POST':
        redirect_url = reverse('entity-change', kwargs={'entity_id': entity_id})
        if '_change_authority' in request.POST:
            if current_authority_form.is_valid():
                authority_id = current_authority_form.cleaned_data[
                    'current_authority']
                authority = Authority.objects.get_by_identifier(authority_id)
                editor.set_current_authority(authority)
                return HttpResponseRedirect(redirect_url)
        else:
            formsets = (existences_formset, entity_types_formset,
                        names_formset, notes_formset,
                        entity_relationships_formset,
                        subject_identifiers_formset)
            is_valid = False
            for formset in formsets:
                is_valid = formset.is_valid()
                if not is_valid:
                    break
            if is_valid:
                for formset in formsets:
                    formset.save()
                return HttpResponseRedirect(redirect_url)
    context_data['current_authority_form'] = current_authority_form
    context_data['existence_non_editable'] = existences.non_editable
    context_data['existence_formset'] = existences_formset
    context_data['entity_type_non_editable'] = entity_types.non_editable
    context_data['entity_type_formset'] = entity_types_formset
    context_data['name_non_editable'] = names.non_editable
    context_data['name_formset'] = names_formset
    context_data['note_formset'] = notes_formset
    context_data['note_non_editable'] = notes.non_editable
    context_data['entity_relationship_formset'] = entity_relationships_formset
    context_data['entity_relationship_non_editable'] = entity_relationships.non_editable
    context_data['subject_identifier_formset'] = subject_identifiers_formset
    context_data['subject_identifier_non_editable'] = subject_identifiers.non_editable
    user_preferences = get_user_preferences(request)
    context_data.update(user_preferences)
    preferred_name_assertion = entity.get_preferred_name(
        user_preferences['preferred_authority'],
        user_preferences['preferred_language'],
        user_preferences['preferred_script'])
    if preferred_name_assertion:
        context_data['preferred_name'] = preferred_name_assertion.name.assembled_form
    else:
        context_data['preferred_name'] = '[unnamed entity]'
    return render_to_response('eats/edit/entity_change.html', context_data,
                              context_instance=RequestContext(request))
示例#9
0
def entity_change (request, topic_map, entity_id):
    entity = get_topic_or_404(Entity, entity_id)
    editor = request.user.eats_user
    context_data = {'entity': entity}
    authority = editor.get_current_authority()
    editable_authorities = editor.editable_authorities.all()
    authority_data = {'current_authority': authority.get_id()}
    entity_data = None
    if request.method == 'POST':
        if '_change_authority' in request.POST:
            authority_data = request.POST
        else:
            entity_data = request.POST
    current_authority_form = CurrentAuthorityForm(
        topic_map, editable_authorities, authority_data)
    existences = ExistencePropertyAssertions(topic_map, entity, authority,
                                             entity_data)
    entity_types = EntityTypePropertyAssertions(topic_map, entity, authority,
                                                entity_data)
    names = NamePropertyAssertions(topic_map, entity, authority, entity_data)
    notes = NotePropertyAssertions(topic_map, entity, authority, entity_data)
    entity_relationships = EntityRelationshipPropertyAssertions(
        topic_map, entity, authority, entity_data)
    subject_identifiers = SubjectIdentifierPropertyAssertions(
        topic_map, entity, authority, entity_data)
    existences_formset = existences.formset
    entity_types_formset = entity_types.formset
    names_formset = names.formset
    notes_formset = notes.formset
    entity_relationships_formset = entity_relationships.formset
    subject_identifiers_formset = subject_identifiers.formset
    if request.method == 'POST':
        redirect_url = reverse('entity-change', kwargs={'entity_id': entity_id})
        if '_change_authority' in request.POST:
            if current_authority_form.is_valid():
                authority_id = current_authority_form.cleaned_data[
                    'current_authority']
                authority = Authority.objects.get_by_identifier(authority_id)
                editor.set_current_authority(authority)
                return HttpResponseRedirect(redirect_url)
        else:
            formsets = (existences_formset, entity_types_formset,
                        names_formset, notes_formset,
                        entity_relationships_formset,
                        subject_identifiers_formset)
            is_valid = False
            for formset in formsets:
                is_valid = formset.is_valid()
                if not is_valid:
                    break
            if is_valid:
                for formset in formsets:
                    formset.save()
                return HttpResponseRedirect(redirect_url)
    context_data['current_authority_form'] = current_authority_form
    context_data['existence_non_editable'] = existences.non_editable
    context_data['existence_formset'] = existences_formset
    context_data['entity_type_non_editable'] = entity_types.non_editable
    context_data['entity_type_formset'] = entity_types_formset
    context_data['name_non_editable'] = names.non_editable
    context_data['name_formset'] = names_formset
    context_data['note_formset'] = notes_formset
    context_data['note_non_editable'] = notes.non_editable
    context_data['entity_relationship_formset'] = entity_relationships_formset
    context_data['entity_relationship_non_editable'] = entity_relationships.non_editable
    context_data['subject_identifier_formset'] = subject_identifiers_formset
    context_data['subject_identifier_non_editable'] = subject_identifiers.non_editable
    context_data['property_assertion_full_certainty'] = \
        topic_map.property_assertion_full_certainty
    user_preferences = get_user_preferences(request)
    context_data.update(user_preferences)
    preferred_name_assertion = entity.get_preferred_name(
        user_preferences['preferred_authority'],
        user_preferences['preferred_language'],
        user_preferences['preferred_script'])
    if preferred_name_assertion:
        context_data['preferred_name'] = preferred_name_assertion.name.assembled_form
    else:
        context_data['preferred_name'] = UNNAMED_ENTITY_NAME
    return render_to_response('eats/edit/entity_change.html', context_data,
                              context_instance=RequestContext(request))
示例#10
0
文件: display.py 项目: chungkky/eats
from eats.lib.views import get_topic_or_404
from eats.models import Authority, Entity, EntityRelationshipPropertyAssertion, EntityRelationshipType, EntityType, EntityTypePropertyAssertion


def home (request):
    context_data = {}
    context_data['user_is_editor'] = user_is_editor(request.user)
    return render(request, 'eats/display/home.html', context_data)

@add_topic_map
def entity_view (request, topic_map, entity_id):
    try:
        entity = get_topic_or_404(Entity, entity_id)
    except EATSMergedIdentifierException, e:
        return redirect('entity-view', entity_id=e.new_id, permanent=True)
    user_preferences = get_user_preferences(request)
    preferred_authority = user_preferences['preferred_authority']
    preferred_language = user_preferences['preferred_language']
    preferred_script = user_preferences['preferred_script']
    try:
        preferred_name_form = entity.get_preferred_name(
            authority=preferred_authority, language=preferred_language,
            script=preferred_script).name.assembled_form
    except AttributeError:
        preferred_name_form = UNNAMED_ENTITY_NAME
    existence_dates = entity.get_existence_dates()
    entity_type_pas = entity.get_entity_types()
    name_pas = entity.get_eats_names()
    relationship_pas = entity.get_entity_relationships()
    note_pas = entity.get_notes()
    subject_identifier_pas = entity.get_eats_subject_identifiers()