Commit 86c6b973 authored by Michal Čihař's avatar Michal Čihař

Merge remote-tracking branch 'origin/master'

parents 3965aaf1 353f99b9
{% extends "base.html" %}
{% load i18n %}
{% load url from future %}
{% block breadcums %}
<li><a href="{{ project.get_absolute_url }}">{{ project }}</a></li>
<li><a href="{% url 'trans.views.show_dictionaries' project=project.slug %}">{% trans "dictionaries" %}</a></li>
{% endblock %}
{% block content %}
<ul>
{% for dict in dicts %}
<li><a href="{% url 'trans.views.show_dictionary' project=project.slug lang=dict.code %}">{{ dict }}</a></li>
{% endfor %}
</ul>
{% endblock %}
{% extends "base.html" %}
{% load i18n %}
{% load url from future %}
{% block breadcums %}
<li><a href="{{ project.get_absolute_url }}">{{ project }}</a></li>
<li><a href="{% url 'trans.views.show_dictionaries' project=project.slug %}">{% trans "dictionaries" %}</a></li>
<li><a href="{% url 'trans.views.show_dictionary' project=project.slug lang=language.code %}">{{ language }}</a></li>
{% endblock %}
{% block content %}
{% if words.object_list %}
<table>
<thead>
<tr>
<th>{% trans "Source" %}</th>
<th>{% trans "Translation" %}</th>
<th>{% trans "Actions" %}</th>
</tr>
</thead>
<tbody>
{% for word in words.object_list %}
<tr>
<td class="translatetext">{{ word.source }}</td>
<td class="translatetext">{{ word.target }}</td>
<td></td>
</tr>
{% endfor %}
</tbody>
</table>
<ul class="pages">
{% if words.has_previous %}
<li><a href="?page={{ words.previous_page_number }}">&laquo;</a></li>
{% else %}
<li class="disabled"><span>&laquo;</span></li>
{% endif %}
{% for page in words.paginator.page_range %}
<li {% if page = words.number %} class="active" {% endif %}><a href="?page={{ page }}">{{ page }}</a></li>
{% endfor %}
{% if words.has_next %}
<li><a href="?page={{ words.next_page_number }}">&raquo;</a></li>
{% else %}
<li class="disabled"><span>&raquo;</span></li>
{% endif %}
</ul>
{% endif %}
{% endblock %}
{% extends "base.html" %}
{% load i18n %}
{% load url from future %}
{% block breadcums %}
<li><a href="{{ object.get_absolute_url }}">{{ object }}</a></li>
......@@ -35,6 +36,15 @@
<h2>{% trans "Tools" %}</h2>
<div class="accordion">
<h3><a href="#">{% trans "Dictionaries" %}</a></h3>
<div>
<ul>
{% for dict in dicts %}
<li><a href="{% url 'trans.views.show_dictionary' project=object.slug lang=dict.code %}">{{ dict }}</a></li>
{% endfor %}
<li><a href="{% url 'trans.views.show_dictionaries' project=object.slug %}">Manage all dictionaries</a></li>
</ul>
</div>
{% include "git-tools.html" %}
</div>
......
......@@ -126,3 +126,23 @@ ins {
del {
background-color: #fc7979;
}
ul.pages {
display: block;
list-style: none;
margin: 0.5em;
padding: 1em;
}
ul.pages li {
display: inline-block;
}
ul.pages li a {
padding: 0.2em;
border: 1px solid #333;
}
ul.pages li.active a {
font-weight: bolder;
}
ul.pages li.disabled span {
padding: 0.2em;
border: 1px solid #333;
}
......@@ -9,7 +9,7 @@ from django.contrib import messages
from django.contrib.auth.decorators import login_required, permission_required
from django.contrib.auth.models import AnonymousUser
from django.db.models import Q, Count
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
from trans.models import Project, SubProject, Translation, Unit, Suggestion, Check, Dictionary, Change
from lang.models import Language
......@@ -123,11 +123,50 @@ def show_language(request, lang):
'object': obj,
}))
def show_dictionaries(request, project):
obj = get_object_or_404(Project, slug = project)
dicts = Dictionary.objects.filter(project = obj).values_list('language', flat = True).distinct()
return render_to_response('dictionaries.html', RequestContext(request, {
'title': _('Dictionaries'),
'dicts': Language.objects.filter(id__in = dicts),
'project': obj,
}))
def show_dictionary(request, project, lang):
prj = get_object_or_404(Project, slug = project)
lang = get_object_or_404(Language, code = lang)
words = Dictionary.objects.filter(project = prj, language = lang).order_by('source')
limit = request.GET.get('limit', 25)
page = request.GET.get('page', 1)
paginator = Paginator(words, limit)
try:
words = paginator.page(page)
except PageNotAnInteger:
# If page is not an integer, deliver first page.
words = paginator.page(1)
except EmptyPage:
# If page is out of range (e.g. 9999), deliver last page of results.
words = paginator.page(paginator.num_pages)
return render_to_response('dictionary.html', RequestContext(request, {
'title': _('%(language)s dictionary for %(project)s') % {'language': lang, 'project': prj},
'project': prj,
'language': lang,
'words': words,
}))
def show_project(request, project):
obj = get_object_or_404(Project, slug = project)
dicts = Dictionary.objects.filter(project = obj).values_list('language', flat = True).distinct()
return render_to_response('project.html', RequestContext(request, {
'object': obj,
'dicts': Language.objects.filter(id__in = dicts),
}))
def show_subproject(request, project, subproject):
......
......@@ -23,6 +23,10 @@ urlpatterns = patterns('',
url(r'^$', 'trans.views.home'),
url(r'^projects/$', 'django.views.generic.simple.redirect_to', {'url': '/'}),
url(r'^projects/(?P<project>[^/]*)/$', 'trans.views.show_project'),
url(r'^projects/(?P<project>[^/]*)/dictionary/$', 'trans.views.show_dictionaries'),
url(r'^projects/(?P<project>[^/]*)/dictionary/(?P<lang>[^/]*)/$', 'trans.views.show_dictionary'),
url(r'^projects/(?P<project>[^/]*)/(?P<subproject>[^/]*)/$', 'trans.views.show_subproject'),
url(r'^projects/(?P<project>[^/]*)/(?P<subproject>[^/]*)/(?P<lang>[^/]*)/$', 'trans.views.show_translation'),
url(r'^projects/(?P<project>[^/]*)/(?P<subproject>[^/]*)/(?P<lang>[^/]*)/translate/$', 'trans.views.translate'),
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment