Build links: show existing links

This commit is contained in:
Edward Betts 2018-11-23 17:42:47 +00:00
parent 781b8a7c8d
commit 267dcc3a4d
2 changed files with 26 additions and 4 deletions

View file

@ -45,7 +45,7 @@ body, html {
<div class="card document" id="{{ name }}"> <div class="card document" id="{{ name }}">
<div class="card-header">{{ doc.raw_title() }}</div> <div class="card-header">{{ doc.raw_title() }}</div>
<div class="card-body"> <div class="card-body">
{%- for start, line in iter_lines(doc.text) if line != '\r\n' %} {% for start, line in iter_lines(doc.text) if line != '\r\n' %}
<p class="card-text margin-bottom-zero" data-start="{{ start }}">{{- nbsp_at_start(line) -}}</p> <p class="card-text margin-bottom-zero" data-start="{{ start }}">{{- nbsp_at_start(line) -}}</p>
{%- endfor -%} {%- endfor -%}
</div> </div>
@ -77,6 +77,19 @@ body, html {
</div> </div>
{% endif %} {% endif %}
{% if links %}
{% if links | count == 1 %}
<p>There is one link between these documents.</p>
{% else %}
<p>There are {{ links | count }} links between these documents.</p>
{% endif %}
<ul>
{% for link in links %}
<li><a href="{{ link.url }}">link: {{ link.hashid }}</a></li>
{% endfor %}
</ul>
{% endif %}
</div> </div>
<div class="col col2"> <div class="col col2">
{% if doc1 %} {% if doc1 %}

View file

@ -5,7 +5,7 @@ from flask_login import (login_user, current_user, logout_user,
from .forms import (LoginForm, SignupForm, AccountSettingsForm, from .forms import (LoginForm, SignupForm, AccountSettingsForm,
UploadSourceDocForm, SourceDocForm, ItemForm, UploadSourceDocForm, SourceDocForm, ItemForm,
ForgotPasswordForm, PasswordForm) ForgotPasswordForm, PasswordForm)
from .model import User, SourceDoc, Item, XanaDoc, XanaLink from .model import User, SourceDoc, Item, XanaDoc, XanaLink, Reference
from .url import get_url from .url import get_url
from .mail import send_mail from .mail import send_mail
from .edl import fulfil_edl_with_sources, fulfil_edl, parse_edl from .edl import fulfil_edl_with_sources, fulfil_edl, parse_edl
@ -18,7 +18,7 @@ from jinja2 import evalcontextfilter, Markup
from functools import wraps from functools import wraps
from .utils import nbsp_at_start from .utils import nbsp_at_start
from itsdangerous import URLSafeTimedSerializer from itsdangerous import URLSafeTimedSerializer
from sqlalchemy_continuum import version_class # from sqlalchemy_continuum import version_class
from pprint import pformat from pprint import pformat
import json import json
@ -282,6 +282,11 @@ def save_new_xanalink(doc1, doc2):
obj = XanaLink(user=current_user, text=text) obj = XanaLink(user=current_user, text=text)
session.add(obj) session.add(obj)
session.commit() session.commit()
ref1 = Reference(subject_id=obj.id, object_id=doc1.id)
ref2 = Reference(subject_id=obj.id, object_id=doc2.id)
session.add(ref1)
session.add(ref2)
session.commit()
@bp.route('/build_links', methods=['GET', 'POST']) @bp.route('/build_links', methods=['GET', 'POST'])
def build_links(): def build_links():
@ -298,6 +303,9 @@ def build_links():
save_new_xanalink(doc1, doc2) save_new_xanalink(doc1, doc2)
return redirect(url_for(request.endpoint, doc1=hashid1, doc2=hashid2)) return redirect(url_for(request.endpoint, doc1=hashid1, doc2=hashid2))
links = list({i for i in doc1.subjects} &
{i for i in doc2.subjects})
return render_template('build_links.html', return render_template('build_links.html',
iter_lines=iter_lines, iter_lines=iter_lines,
nbsp_at_start=nbsp_at_start, nbsp_at_start=nbsp_at_start,
@ -305,7 +313,8 @@ def build_links():
hashid1=hashid1, hashid1=hashid1,
hashid2=hashid2, hashid2=hashid2,
doc1=doc1, doc1=doc1,
doc2=doc2) doc2=doc2,
links=links)
@bp.route('/<username>/<hashid>') @bp.route('/<username>/<hashid>')
def view_item(username, hashid, raw=False): def view_item(username, hashid, raw=False):