Commit 440eb4064dad768454d9aaae88f063a383b2b1a0
1 parent
42350cb0
Exists in
master
and in
39 other branches
Moving templates to project base
Showing
14 changed files
with
464 additions
and
464 deletions
Show diff stats
src/colab/deprecated/templates/404.html
src/colab/deprecated/templates/500.html
src/colab/deprecated/templates/base.html
@@ -1,163 +0,0 @@ | @@ -1,163 +0,0 @@ | ||
1 | -<!DOCTYPE html> | ||
2 | -{% load i18n browserid conversejs gravatar %} | ||
3 | -<html> | ||
4 | - <head> | ||
5 | - <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> | ||
6 | - | ||
7 | - <link rel="stylesheet" href="{{ STATIC_URL }}third-party/bootstrap/css/bootstrap.css" type="text/css" media="screen, projection" /> | ||
8 | - | ||
9 | - <link rel="stylesheet" href="{{ STATIC_URL }}css/screen.css" | ||
10 | - type="text/css" media="screen" charset="utf-8"/> | ||
11 | - <link rel="stylesheet" | ||
12 | - href="{{ STATIC_URL }}third-party/font-awesome/css/font-awesome.min.css" | ||
13 | - type="text/css" media="screen" charset="utf-8"/> | ||
14 | - | ||
15 | - <script type="text/javascript" src="{{ STATIC_URL }}third-party/jquery-2.0.3.min.js"></script> | ||
16 | - <script type="text/javascript" src="{{ STATIC_URL }}third-party/jquery.debouncedresize.js"></script> | ||
17 | - <script type="text/javascript" src="{{ STATIC_URL }}third-party/jquery.cookie.js"></script> | ||
18 | - <script src="{{ STATIC_URL }}third-party/bootstrap/js/bootstrap.js"></script> | ||
19 | - | ||
20 | - <script type="text/javascript" src="{{ STATIC_URL }}js/base.js"></script> | ||
21 | - | ||
22 | - {% conversejs_static %} | ||
23 | - | ||
24 | - | ||
25 | - {% block head_js %}{% endblock %} | ||
26 | - {% block head_css %}{% endblock %} | ||
27 | - | ||
28 | - {% block google_analytics %} | ||
29 | - <script type="text/javascript"> | ||
30 | - | ||
31 | - var _gaq = _gaq || []; | ||
32 | - _gaq.push(['_setAccount', 'UA-30841845-2']); | ||
33 | - _gaq.push(['_trackPageview']); | ||
34 | - | ||
35 | - (function() { | ||
36 | - var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; | ||
37 | - ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; | ||
38 | - var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); | ||
39 | - })(); | ||
40 | - | ||
41 | - </script> | ||
42 | - {% endblock %} | ||
43 | - | ||
44 | - </head> | ||
45 | - | ||
46 | - <body class="container"> | ||
47 | - {% browserid_info %} | ||
48 | - <div class="row"> | ||
49 | - </div> | ||
50 | - | ||
51 | - <nav class="navbar navbar-default navbar-fixed-top" role="navigation"> | ||
52 | - <div class="container"> | ||
53 | - <div class="navbar-header"> | ||
54 | - <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-main"> | ||
55 | - <span class="sr-only">Toggle navigation</span> | ||
56 | - <span class="icon-bar"></span> | ||
57 | - <span class="icon-bar"></span> | ||
58 | - <span class="icon-bar"></span> | ||
59 | - </button> | ||
60 | - <a class="navbar-brand" href="/"><img alt="Colab" src="/static/img/logo_nav.png"></a> | ||
61 | - </div> | ||
62 | - | ||
63 | - <div class="collapse navbar-collapse navbar-main"> | ||
64 | - <ul class="nav navbar-nav"> | ||
65 | - <li> | ||
66 | - <a href="{% url 'thread_list' %}">{% trans "Discussions" %}</a> | ||
67 | - </li> | ||
68 | - <li> | ||
69 | - <a href="http://colab.interlegis.gov.br/wiki" target="_blank">{% trans "Wiki" %}</a> | ||
70 | - </li> | ||
71 | - <li> | ||
72 | - <a href="http://listas.interlegis.gov.br/mailman/listinfo/" | ||
73 | - target="_blank">{% trans "Contribute" %}</a> | ||
74 | - </li> | ||
75 | - <li> | ||
76 | - <a href="http://colab.interlegis.leg.br/newticket" | ||
77 | - target="_blank">{% trans "Report a problem" %}</a> | ||
78 | - </li> | ||
79 | - <li> | ||
80 | - <a href="{% url "feedzilla_index" %}">{% trans "Planet" %}</a> | ||
81 | - </li> | ||
82 | - </ul> | ||
83 | - | ||
84 | - <ul class="nav navbar-nav navbar-right"> | ||
85 | - {% if not user.is_authenticated %} | ||
86 | - <li><a href="{% url 'signup' %}">{% trans "Register" %}</a></li> | ||
87 | - <li>{% browserid_login text='Login' next=request.path %}</li> | ||
88 | - {% else %} | ||
89 | - <li id="user-menu" class="dropdown"> | ||
90 | - <a href="#" class="dropdown-toggle" data-toggle="dropdown">{% gravatar user.email 40 %} <b class="caret"></b> </a> | ||
91 | - <ul class="dropdown-menu" role="menu"> | ||
92 | - <li> | ||
93 | - <div class="wrapper"> | ||
94 | - <div class="thumbnail">{% gravatar user.email 100 %}</div> | ||
95 | - <div class="user-info"> | ||
96 | - <span><b>{{ user.get_full_name }}</b></span> | ||
97 | - <span class="quiet">{{ user.email }}</span> | ||
98 | - </div> | ||
99 | - <div> | ||
100 | - <a class="btn btn-info pull-left" href="{% url 'user_profile' user.username %}">{% trans "My Profile" %}</a> | ||
101 | - {% browserid_logout text='Logout' link_class='btn btn-default pull-right' %} | ||
102 | - </div> | ||
103 | - </div> | ||
104 | - </li> | ||
105 | - </ul> | ||
106 | - </li> | ||
107 | - {% endif %} | ||
108 | - </ul> | ||
109 | - | ||
110 | - <form action="/search/" method="GET" id="search-form" class="navbar-form navbar-right hidden-xs hidden-sm" role="search"> | ||
111 | - <div class="form-group"> | ||
112 | - <label class="sr-only" for="header-searchbox">{% trans 'Search here...' %}</label> | ||
113 | - <input name="q" id="header-searchbox" | ||
114 | - class="form-control" value="{{ request.GET.q }}" | ||
115 | - type="search" placeholder="{% trans 'Search here...' %}" /> | ||
116 | - </div> | ||
117 | - <button type="submit" class="btn btn-default"><span class="glyphicon glyphicon-search"></span></button> | ||
118 | - </form> | ||
119 | - </div> | ||
120 | - </div> | ||
121 | - </nav> | ||
122 | - | ||
123 | - {% block messages %} | ||
124 | - {% for message in messages %} | ||
125 | - <div class="alert alert-dismissable {{ message.tags }}"> | ||
126 | - <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> | ||
127 | - {{ message }} | ||
128 | - </div> | ||
129 | - {% endfor %} | ||
130 | - <div id="alert-js" class="alert alert-dismissable alert-warning" hidden> | ||
131 | - <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> | ||
132 | - <span id="alert-message"></span> | ||
133 | - </div> | ||
134 | - {% endblock %} | ||
135 | - | ||
136 | - {% block header %}{% endblock %} | ||
137 | - | ||
138 | - <div> | ||
139 | - {% block main-content %} {% endblock %} | ||
140 | - </div> | ||
141 | - | ||
142 | - <div class="row"> </div> | ||
143 | - | ||
144 | - <div class="row"> | ||
145 | - {% block footer %} | ||
146 | - <p class="col-lg-12 text-center"><a href="{% url 'opendata' %}"><img src="{{ STATIC_URL }}img/opendata3.png"/></a></p> | ||
147 | - </div> | ||
148 | - <div class="row"> | ||
149 | - <p class="col-lg-12 text-center"> | ||
150 | - {% trans "The contents of this site is published under license" %} | ||
151 | - <a href="http://creativecommons.org/licenses/by-nc-sa/2.0/br/"> | ||
152 | - {% trans "Creative Commons - attribution, non-commercial" %} | ||
153 | - </a> | ||
154 | - </p> | ||
155 | - {% endblock %} | ||
156 | - </div> | ||
157 | - | ||
158 | - {% conversejs_chatpanel %} | ||
159 | - {% conversejs_initialize %} | ||
160 | - | ||
161 | - {% browserid_js %} | ||
162 | - </body> | ||
163 | -</html> |
src/colab/deprecated/templates/home.html
@@ -1,89 +0,0 @@ | @@ -1,89 +0,0 @@ | ||
1 | -{% extends "base.html" %} | ||
2 | -{% load i18n %} | ||
3 | - | ||
4 | -{% block head_js %} | ||
5 | - {% include "pizza-chart.html" with chart_div="collabs" chart_height=330 %} | ||
6 | -{% endblock %} | ||
7 | - | ||
8 | -{% block header %} | ||
9 | - <div class="row hidden-xs hidden-sm"> | ||
10 | - <div class="col-lg-2 col-lg-offset-5 text-center"> | ||
11 | - <img src="{{ STATIC_URL }}img/logo.png" /> | ||
12 | - </div> | ||
13 | - </div> | ||
14 | - | ||
15 | - <h3 class="text-center hidden-xs hidden-sm">{% trans "INTERLEGIS COMMUNITIES" %}</h3> | ||
16 | -{% endblock %} | ||
17 | - | ||
18 | -{% block main-content %} | ||
19 | - | ||
20 | - <div class="row"> | ||
21 | - <div class="col-lg-6 col-md-6"> | ||
22 | - <h3 class="column-align"> | ||
23 | - {% trans "Latest Collaborations" %} | ||
24 | - </h3> | ||
25 | - <a class="rss-icon" target="_blank" | ||
26 | - href="{% url 'rss_latest_colab' %}" | ||
27 | - title="{% trans 'RSS - Latest collaborations' %}"> | ||
28 | - </a> | ||
29 | - <ul class="message-list"> | ||
30 | - {% for doc in latest_docs %} | ||
31 | - {% include "message-preview.html" %} | ||
32 | - {% endfor %} | ||
33 | - </ul> | ||
34 | - <a class="column-align" | ||
35 | - href="{% url 'search' %}?o=modified+desc"> | ||
36 | - {% trans "View more collaborations..." %} | ||
37 | - </a> | ||
38 | - <div> </div> | ||
39 | - </div> | ||
40 | - | ||
41 | - | ||
42 | - <div class="col-lg-6 col-md-6"> | ||
43 | - <h3 class="column-align">{% trans "Collaboration Graph" %}</h3> | ||
44 | - <div id="collabs"></div> | ||
45 | - </div> | ||
46 | - </div> | ||
47 | - | ||
48 | - <div class="row"> | ||
49 | - <div class="col-lg-6 col-md-6"> | ||
50 | - <h3 class="column-align"> | ||
51 | - {% trans "Most Relevant Threads" %} | ||
52 | - </h3> | ||
53 | - <a class="rss-icon" target="_blank" | ||
54 | - href="{% url 'rss_hottest_threads' %}" | ||
55 | - title="{% trans "RSS - Most Relevant Threads" %}"> | ||
56 | - </a> | ||
57 | - <ul class="message-list"> | ||
58 | - {% for thread in hottest_threads %} | ||
59 | - {% include "message-preview.html" with doc=thread.latest_message %} | ||
60 | - {% endfor %} | ||
61 | - </ul> | ||
62 | - <a class="column-align" | ||
63 | - href="{% url 'thread_list' %}?order=hottest"> | ||
64 | - {% trans "View more discussions..." %} | ||
65 | - </a> | ||
66 | - <div> </div> | ||
67 | - </div> | ||
68 | - | ||
69 | - <div class="col-lg-6 col-md-6"> | ||
70 | - <h3 class="column-align"> | ||
71 | - {% trans "Latest Threads" %} | ||
72 | - </h3> | ||
73 | - <a class="rss-icon" target="_blank" | ||
74 | - href="{% url 'rss_latest_threads' %}" | ||
75 | - title="{% trans "RSS - Latest Threads" %}"> | ||
76 | - </a> | ||
77 | - <ul class="message-list"> | ||
78 | - {% for thread in latest_threads %} | ||
79 | - {% include "message-preview.html" with doc=thread.latest_message %} | ||
80 | - {% endfor %} | ||
81 | - </ul> | ||
82 | - <a class="column-align" href="{% url 'thread_list' %}"> | ||
83 | - {% trans "View more discussions..." %} | ||
84 | - </a> | ||
85 | - <div> </div> | ||
86 | - </div> | ||
87 | - </div> | ||
88 | - | ||
89 | -{% endblock %} |
src/colab/deprecated/templates/open-data.html
@@ -1,78 +0,0 @@ | @@ -1,78 +0,0 @@ | ||
1 | -{% extends "base.html" %} | ||
2 | -{% load i18n %} | ||
3 | - | ||
4 | -{% block main-content %} | ||
5 | - <div> | ||
6 | - <h2>{% trans "OpenData - Communities Interlegis" %}</h2> | ||
7 | - <p>{% blocktrans %}At this point the system Colab provides much of its data | ||
8 | - through its search engine.{% endblocktrans %}</p> | ||
9 | - <p>{% blocktrans %}If you are interested in integrating your system with the environment Colab | ||
10 | - and requires no other data provided by this API, please contact us via the ticketing | ||
11 | - system (you must be registered in order to create a ticket).{% endblocktrans %}</p> | ||
12 | - | ||
13 | - <h3>{% trans "Performing searches via the API" %}</h3> | ||
14 | - <p>{% trans "The Colab API searches works through an HTTP/REST always returning JSON objects with result." %} </p> | ||
15 | - <p>{% trans "The base URL used for the search is:" %} | ||
16 | - <a href="/api/search/">http://colab.interlegis.leg.br/api/search/</a></p> | ||
17 | - | ||
18 | - <h3>{% trans "Parameters:" %}</h3> | ||
19 | - <ul class="none indent-dois"> | ||
20 | - <li> | ||
21 | - <h4><i>{% trans "Query" %}</i> - q</h4> | ||
22 | - {% blocktrans %}The <i>query</i> is the "question" sent | ||
23 | - to the search server. A <i>query</i> consists of | ||
24 | - <b>field:value</b>, where the field represents a kind of system data, | ||
25 | - for example <b>collaborator</b> and represents the data stored | ||
26 | - by the system, for example <b>jeanferri</b>.{% endblocktrans %} | ||
27 | - {% trans "The following is a list of available fields to search:" %}<br/> | ||
28 | - <ul class="none indent-dois"> | ||
29 | - <li><b>Type</b>: {% trans "wiki, thread, ticket, changeset." %}</li> | ||
30 | - <li><b>Title</b>: {% trans "page name, title of the discussion or ticket, changeset description." %}</li> | ||
31 | - <li><b>Description</b>: {% trans "excerpt from the page or the discussion, description of the ticket or changeset." %}</li> | ||
32 | - <li><b>Creator</b>: {% trans "name of user who created the document." %}</li> | ||
33 | - <li><b>creator_real_name</b>: {% trans "real name who created the document." %}</li> | ||
34 | - <li><b>create</b>: {% trans "creation date." %}</li> | ||
35 | - <li><b>modified</b>: {% trans "modification date." %}</li> | ||
36 | - <li><b>mailinglist</b>: {% trans "mailing list (only for type thread)." %}</li> | ||
37 | - <li><b>name</b>: {% trans "name of the wiki page." %}</li> | ||
38 | - <li><b>comment</b>: {% trans "comments of tickets (all concatenated)." %}</li> | ||
39 | - <li><b>content</b>: {% trans "contents of wiki page or messages of the discussions (all concatenated)." %} </li> | ||
40 | - <li><b>keyword</b>: {% trans "keywords (ticket only)." %}</li> | ||
41 | - <li><b>milestone</b>: {% trans "milestone (ticket only)." %}</li> | ||
42 | - <li><b>priority</b>: {% trans "priority (ticket only)." %}</li> | ||
43 | - <li><b>component</b>: {% trans "component (ticket only)." %}</li> | ||
44 | - <li><b>version</b>: {% trans "version (ticket only)." %}</li> | ||
45 | - <li><b>severity</b>: {% trans "severity (ticket only)." %}</li> | ||
46 | - <li><b>owner</b>: {% trans "responsible (ticket only)." %}</li> | ||
47 | - <li><b>status</b>: {% trans "status (ticket only)." %}</li> | ||
48 | - <li><b>revision</b>: {% trans "review (ticket only)." %}</li> | ||
49 | - <li><b>subject</b>: {% trans "synonym for the title (for discussion)." %}</li> | ||
50 | - </ul> | ||
51 | - </li> | ||
52 | - <br/><hr/> | ||
53 | - | ||
54 | - <li> | ||
55 | - <h4>{% trans "Results per page - n" %} </h4> | ||
56 | - {% blocktrans %}Number of results to be displayed per page. | ||
57 | - Its value must be an integer between 1 and 500.{% endblocktrans %} | ||
58 | - <i>{% trans "Default: 50" %}</i>. | ||
59 | - </li> | ||
60 | - <br/><hr/> | ||
61 | - | ||
62 | - <li> | ||
63 | - <h4>{% trans "Page - p" %}</h4> | ||
64 | - {% blocktrans %}Page number that appears. Its value must be an | ||
65 | - integer equal to or greater than 1.{% endblocktrans %} <i>{% trans "Default: 1" %}</i>. | ||
66 | - </li> | ||
67 | - <br/><hr/> | ||
68 | - | ||
69 | - <li> | ||
70 | - <h4>{% trans "Order - o" %}</h4> | ||
71 | - {% blocktrans %}Order in which the results will be displayed. Its value must be | ||
72 | - a string in the <b>field direction</b> where the same field are | ||
73 | - presented in the <i>query</i> parameter and direction can be | ||
74 | - <b>asc</b> for ascending or <b>desc</b> for descending.{% endblocktrans %} <i>Default: score desc</i>. | ||
75 | - </li> | ||
76 | - <br/> | ||
77 | - </ul> | ||
78 | -{% endblock %} |
src/colab/deprecated/templates/pizza-chart.html
@@ -1,55 +0,0 @@ | @@ -1,55 +0,0 @@ | ||
1 | -{% load i18n %} | ||
2 | - | ||
3 | - <!--Load the AJAX API--> | ||
4 | - <script type="text/javascript" src="https://www.google.com/jsapi"></script> | ||
5 | - <script type="text/javascript"> | ||
6 | - | ||
7 | - // Load the Visualization API and the piechart package. | ||
8 | - google.load('visualization', '1.0', {'packages':['corechart']}); | ||
9 | - | ||
10 | - // Set a callback to run when the Google Visualization API is loaded. | ||
11 | - google.setOnLoadCallback(drawChart); | ||
12 | - | ||
13 | - // Callback that creates and populates a data table, | ||
14 | - // instantiates the pie chart, passes in the data and | ||
15 | - // draws it. | ||
16 | - function drawChart() { | ||
17 | - | ||
18 | - // Create the data table. | ||
19 | - var data = new google.visualization.DataTable(); | ||
20 | - data.addColumn('string', 'Topping'); | ||
21 | - data.addColumn('number', 'Slices'); | ||
22 | - data.addRows([ | ||
23 | - {% if type_count %} | ||
24 | - ['{% trans "Emails"%}', {% firstof type_count.thread '0' %}], | ||
25 | - ['{% trans "Tickets"%}', {% firstof type_count.ticket '0' %}], | ||
26 | - ['{% trans "Wiki"%}', {% firstof type_count.wiki '0' %}], | ||
27 | - ['{% trans "Code"%}', {% firstof type_count.changeset '0' %}], | ||
28 | - {% else %} | ||
29 | - ['{% trans "Willing to help" %}', 100], | ||
30 | - {% endif %} | ||
31 | - ]); | ||
32 | - | ||
33 | - // Set chart options | ||
34 | - var options = { | ||
35 | - height: '{{ chart_height }}', | ||
36 | - legend: { | ||
37 | - position: 'bottom', | ||
38 | - alignment: 'center', | ||
39 | - }, | ||
40 | - chartArea: { | ||
41 | - height: "85%", | ||
42 | - width: "95%", | ||
43 | - top: 10, | ||
44 | - }, | ||
45 | - }; | ||
46 | - | ||
47 | - // Instantiate and draw our chart, passing in some options. | ||
48 | - var chart = new google.visualization.PieChart(document.getElementById('{{ chart_div }}')); | ||
49 | - chart.draw(data, options); | ||
50 | - | ||
51 | - $(window).on("debouncedresize", function( event ) { | ||
52 | - chart.draw(data, options); | ||
53 | - }); | ||
54 | - } | ||
55 | - </script> |
src/colab/deprecated/templates/search.html
@@ -1,73 +0,0 @@ | @@ -1,73 +0,0 @@ | ||
1 | -{% extends "base.html" %} | ||
2 | -{% load i18n %} | ||
3 | -{% load append_to_get %} | ||
4 | -{% block main-content %} | ||
5 | - <div class="row"> | ||
6 | - <div class="col-lg-2"> | ||
7 | - <h2>{% trans "Search" %}</h2> | ||
8 | - </div> | ||
9 | - <span class="pull-right quiet"> | ||
10 | - {{ docs.numFound }} {% trans "documents found in" %} | ||
11 | - {{ docs.QTime|floatformat:3 }} {% trans "seconds" %} | ||
12 | - </span> | ||
13 | - </div> | ||
14 | - <hr/> | ||
15 | - | ||
16 | - <div class="row"> | ||
17 | - <div class="col-lg-2"> | ||
18 | - <h3>{% trans "Filters" %}</h3> | ||
19 | - | ||
20 | - <h4>{% trans "Types" %}</h4> | ||
21 | - | ||
22 | - <ul class="none indent"> | ||
23 | - <li {% ifequal type "wiki" %} title="{% trans "Remove filter" %}" {% endifequal %}> | ||
24 | - <span class="glyphicon glyphicon-file"></span> | ||
25 | - <a href="{% ifnotequal type "wiki" %} {% append_to_get type='wiki' %} {% else %} {% append_to_get type="" %} {% endifnotequal %}">{% trans "Wiki" %}</a> | ||
26 | - </li> | ||
27 | - <li {% ifequal type "thread" %} title="{% trans "Remove filter" %}" {% endifequal %}> | ||
28 | - <span class="glyphicon glyphicon-envelope"></span> | ||
29 | - <a href="{% ifnotequal type "thread" %} {% append_to_get type='thread' %} {% else %} {% append_to_get type="" %} {% endifnotequal %}">{% trans "Discussion" %}</a> | ||
30 | - </li> | ||
31 | - <li {% ifequal type "ticket" %} title="{% trans "Remove filter" %}" {% endifequal %}> | ||
32 | - <span class="glyphicon glyphicon-tag"></span> | ||
33 | - <a href="{% ifnotequal type "ticket" %} {% append_to_get type='ticket' %} {% else %} {% append_to_get type="" %} {% endifnotequal %}">{% trans "Ticket" %}</a> | ||
34 | - </li> | ||
35 | - <li {% ifequal type "changeset" %} title="{% trans "Remove filter" %}" {% endifequal %}> | ||
36 | - <span class="glyphicon glyphicon-align-right"></span> | ||
37 | - <a href="{% ifnotequal type "changeset" %} {% append_to_get type='changeset' %} {% else %} {% append_to_get type="" %} {% endifnotequal %}">{% trans "Changeset" %}</a> | ||
38 | - </li> | ||
39 | - </ul> | ||
40 | - </div> | ||
41 | - | ||
42 | - <div class="col-lg-10"> | ||
43 | - <ul class="none indent"> | ||
44 | - {% for doc in docs %} | ||
45 | - {% include "message-preview.html" %} | ||
46 | - {% empty %} | ||
47 | - <li class="text-center"> | ||
48 | - {% trans "No results for your search." %} | ||
49 | - </li> | ||
50 | - {% endfor %} | ||
51 | - </ul> | ||
52 | - | ||
53 | - {% if docs.numFound %} | ||
54 | - <div> | ||
55 | - <span> | ||
56 | - {% if docs.has_previous %} | ||
57 | - <a href="{% append_to_get p=docs.previous_page_number %}">{% trans "Previous" %}</a> | ||
58 | - {% endif %} | ||
59 | - | ||
60 | - <span> | ||
61 | - {% trans "Page" %} {{ docs.page_num }} {% trans "of" %} {{ docs.num_of_pages }} | ||
62 | - </span> | ||
63 | - | ||
64 | - {% if docs.has_next %} | ||
65 | - <a href="{% append_to_get p=docs.next_page_number %}">{% trans "Next" %}</a> | ||
66 | - {% endif %} | ||
67 | - </span> | ||
68 | - </div> | ||
69 | - </div> | ||
70 | - {% endif %} | ||
71 | - </div> | ||
72 | - | ||
73 | -{% endblock %} |
@@ -0,0 +1,163 @@ | @@ -0,0 +1,163 @@ | ||
1 | +<!DOCTYPE html> | ||
2 | +{% load i18n browserid conversejs gravatar %} | ||
3 | +<html> | ||
4 | + <head> | ||
5 | + <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> | ||
6 | + | ||
7 | + <link rel="stylesheet" href="{{ STATIC_URL }}third-party/bootstrap/css/bootstrap.css" type="text/css" media="screen, projection" /> | ||
8 | + | ||
9 | + <link rel="stylesheet" href="{{ STATIC_URL }}css/screen.css" | ||
10 | + type="text/css" media="screen" charset="utf-8"/> | ||
11 | + <link rel="stylesheet" | ||
12 | + href="{{ STATIC_URL }}third-party/font-awesome/css/font-awesome.min.css" | ||
13 | + type="text/css" media="screen" charset="utf-8"/> | ||
14 | + | ||
15 | + <script type="text/javascript" src="{{ STATIC_URL }}third-party/jquery-2.0.3.min.js"></script> | ||
16 | + <script type="text/javascript" src="{{ STATIC_URL }}third-party/jquery.debouncedresize.js"></script> | ||
17 | + <script type="text/javascript" src="{{ STATIC_URL }}third-party/jquery.cookie.js"></script> | ||
18 | + <script src="{{ STATIC_URL }}third-party/bootstrap/js/bootstrap.js"></script> | ||
19 | + | ||
20 | + <script type="text/javascript" src="{{ STATIC_URL }}js/base.js"></script> | ||
21 | + | ||
22 | + {% conversejs_static %} | ||
23 | + | ||
24 | + | ||
25 | + {% block head_js %}{% endblock %} | ||
26 | + {% block head_css %}{% endblock %} | ||
27 | + | ||
28 | + {% block google_analytics %} | ||
29 | + <script type="text/javascript"> | ||
30 | + | ||
31 | + var _gaq = _gaq || []; | ||
32 | + _gaq.push(['_setAccount', 'UA-30841845-2']); | ||
33 | + _gaq.push(['_trackPageview']); | ||
34 | + | ||
35 | + (function() { | ||
36 | + var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; | ||
37 | + ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; | ||
38 | + var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); | ||
39 | + })(); | ||
40 | + | ||
41 | + </script> | ||
42 | + {% endblock %} | ||
43 | + | ||
44 | + </head> | ||
45 | + | ||
46 | + <body class="container"> | ||
47 | + {% browserid_info %} | ||
48 | + <div class="row"> | ||
49 | + </div> | ||
50 | + | ||
51 | + <nav class="navbar navbar-default navbar-fixed-top" role="navigation"> | ||
52 | + <div class="container"> | ||
53 | + <div class="navbar-header"> | ||
54 | + <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-main"> | ||
55 | + <span class="sr-only">Toggle navigation</span> | ||
56 | + <span class="icon-bar"></span> | ||
57 | + <span class="icon-bar"></span> | ||
58 | + <span class="icon-bar"></span> | ||
59 | + </button> | ||
60 | + <a class="navbar-brand" href="/"><img alt="Colab" src="/static/img/logo_nav.png"></a> | ||
61 | + </div> | ||
62 | + | ||
63 | + <div class="collapse navbar-collapse navbar-main"> | ||
64 | + <ul class="nav navbar-nav"> | ||
65 | + <li> | ||
66 | + <a href="{% url 'thread_list' %}">{% trans "Discussions" %}</a> | ||
67 | + </li> | ||
68 | + <li> | ||
69 | + <a href="http://colab.interlegis.gov.br/wiki" target="_blank">{% trans "Wiki" %}</a> | ||
70 | + </li> | ||
71 | + <li> | ||
72 | + <a href="http://listas.interlegis.gov.br/mailman/listinfo/" | ||
73 | + target="_blank">{% trans "Contribute" %}</a> | ||
74 | + </li> | ||
75 | + <li> | ||
76 | + <a href="http://colab.interlegis.leg.br/newticket" | ||
77 | + target="_blank">{% trans "Report a problem" %}</a> | ||
78 | + </li> | ||
79 | + <li> | ||
80 | + <a href="{% url "feedzilla_index" %}">{% trans "Planet" %}</a> | ||
81 | + </li> | ||
82 | + </ul> | ||
83 | + | ||
84 | + <ul class="nav navbar-nav navbar-right"> | ||
85 | + {% if not user.is_authenticated %} | ||
86 | + <li><a href="{% url 'signup' %}">{% trans "Register" %}</a></li> | ||
87 | + <li>{% browserid_login text='Login' next=request.path %}</li> | ||
88 | + {% else %} | ||
89 | + <li id="user-menu" class="dropdown"> | ||
90 | + <a href="#" class="dropdown-toggle" data-toggle="dropdown">{% gravatar user.email 40 %} <b class="caret"></b> </a> | ||
91 | + <ul class="dropdown-menu" role="menu"> | ||
92 | + <li> | ||
93 | + <div class="wrapper"> | ||
94 | + <div class="thumbnail">{% gravatar user.email 100 %}</div> | ||
95 | + <div class="user-info"> | ||
96 | + <span><b>{{ user.get_full_name }}</b></span> | ||
97 | + <span class="quiet">{{ user.email }}</span> | ||
98 | + </div> | ||
99 | + <div> | ||
100 | + <a class="btn btn-info pull-left" href="{% url 'user_profile' user.username %}">{% trans "My Profile" %}</a> | ||
101 | + {% browserid_logout text='Logout' link_class='btn btn-default pull-right' %} | ||
102 | + </div> | ||
103 | + </div> | ||
104 | + </li> | ||
105 | + </ul> | ||
106 | + </li> | ||
107 | + {% endif %} | ||
108 | + </ul> | ||
109 | + | ||
110 | + <form action="/search/" method="GET" id="search-form" class="navbar-form navbar-right hidden-xs hidden-sm" role="search"> | ||
111 | + <div class="form-group"> | ||
112 | + <label class="sr-only" for="header-searchbox">{% trans 'Search here...' %}</label> | ||
113 | + <input name="q" id="header-searchbox" | ||
114 | + class="form-control" value="{{ request.GET.q }}" | ||
115 | + type="search" placeholder="{% trans 'Search here...' %}" /> | ||
116 | + </div> | ||
117 | + <button type="submit" class="btn btn-default"><span class="glyphicon glyphicon-search"></span></button> | ||
118 | + </form> | ||
119 | + </div> | ||
120 | + </div> | ||
121 | + </nav> | ||
122 | + | ||
123 | + {% block messages %} | ||
124 | + {% for message in messages %} | ||
125 | + <div class="alert alert-dismissable {{ message.tags }}"> | ||
126 | + <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> | ||
127 | + {{ message }} | ||
128 | + </div> | ||
129 | + {% endfor %} | ||
130 | + <div id="alert-js" class="alert alert-dismissable alert-warning" hidden> | ||
131 | + <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> | ||
132 | + <span id="alert-message"></span> | ||
133 | + </div> | ||
134 | + {% endblock %} | ||
135 | + | ||
136 | + {% block header %}{% endblock %} | ||
137 | + | ||
138 | + <div> | ||
139 | + {% block main-content %} {% endblock %} | ||
140 | + </div> | ||
141 | + | ||
142 | + <div class="row"> </div> | ||
143 | + | ||
144 | + <div class="row"> | ||
145 | + {% block footer %} | ||
146 | + <p class="col-lg-12 text-center"><a href="{% url 'opendata' %}"><img src="{{ STATIC_URL }}img/opendata3.png"/></a></p> | ||
147 | + </div> | ||
148 | + <div class="row"> | ||
149 | + <p class="col-lg-12 text-center"> | ||
150 | + {% trans "The contents of this site is published under license" %} | ||
151 | + <a href="http://creativecommons.org/licenses/by-nc-sa/2.0/br/"> | ||
152 | + {% trans "Creative Commons - attribution, non-commercial" %} | ||
153 | + </a> | ||
154 | + </p> | ||
155 | + {% endblock %} | ||
156 | + </div> | ||
157 | + | ||
158 | + {% conversejs_chatpanel %} | ||
159 | + {% conversejs_initialize %} | ||
160 | + | ||
161 | + {% browserid_js %} | ||
162 | + </body> | ||
163 | +</html> |
@@ -0,0 +1,89 @@ | @@ -0,0 +1,89 @@ | ||
1 | +{% extends "base.html" %} | ||
2 | +{% load i18n %} | ||
3 | + | ||
4 | +{% block head_js %} | ||
5 | + {% include "pizza-chart.html" with chart_div="collabs" chart_height=330 %} | ||
6 | +{% endblock %} | ||
7 | + | ||
8 | +{% block header %} | ||
9 | + <div class="row hidden-xs hidden-sm"> | ||
10 | + <div class="col-lg-2 col-lg-offset-5 text-center"> | ||
11 | + <img src="{{ STATIC_URL }}img/logo.png" /> | ||
12 | + </div> | ||
13 | + </div> | ||
14 | + | ||
15 | + <h3 class="text-center hidden-xs hidden-sm">{% trans "INTERLEGIS COMMUNITIES" %}</h3> | ||
16 | +{% endblock %} | ||
17 | + | ||
18 | +{% block main-content %} | ||
19 | + | ||
20 | + <div class="row"> | ||
21 | + <div class="col-lg-6 col-md-6"> | ||
22 | + <h3 class="column-align"> | ||
23 | + {% trans "Latest Collaborations" %} | ||
24 | + </h3> | ||
25 | + <a class="rss-icon" target="_blank" | ||
26 | + href="{% url 'rss_latest_colab' %}" | ||
27 | + title="{% trans 'RSS - Latest collaborations' %}"> | ||
28 | + </a> | ||
29 | + <ul class="message-list"> | ||
30 | + {% for doc in latest_docs %} | ||
31 | + {% include "message-preview.html" %} | ||
32 | + {% endfor %} | ||
33 | + </ul> | ||
34 | + <a class="column-align" | ||
35 | + href="{% url 'search' %}?o=modified+desc"> | ||
36 | + {% trans "View more collaborations..." %} | ||
37 | + </a> | ||
38 | + <div> </div> | ||
39 | + </div> | ||
40 | + | ||
41 | + | ||
42 | + <div class="col-lg-6 col-md-6"> | ||
43 | + <h3 class="column-align">{% trans "Collaboration Graph" %}</h3> | ||
44 | + <div id="collabs"></div> | ||
45 | + </div> | ||
46 | + </div> | ||
47 | + | ||
48 | + <div class="row"> | ||
49 | + <div class="col-lg-6 col-md-6"> | ||
50 | + <h3 class="column-align"> | ||
51 | + {% trans "Most Relevant Threads" %} | ||
52 | + </h3> | ||
53 | + <a class="rss-icon" target="_blank" | ||
54 | + href="{% url 'rss_hottest_threads' %}" | ||
55 | + title="{% trans "RSS - Most Relevant Threads" %}"> | ||
56 | + </a> | ||
57 | + <ul class="message-list"> | ||
58 | + {% for thread in hottest_threads %} | ||
59 | + {% include "message-preview.html" with doc=thread.latest_message %} | ||
60 | + {% endfor %} | ||
61 | + </ul> | ||
62 | + <a class="column-align" | ||
63 | + href="{% url 'thread_list' %}?order=hottest"> | ||
64 | + {% trans "View more discussions..." %} | ||
65 | + </a> | ||
66 | + <div> </div> | ||
67 | + </div> | ||
68 | + | ||
69 | + <div class="col-lg-6 col-md-6"> | ||
70 | + <h3 class="column-align"> | ||
71 | + {% trans "Latest Threads" %} | ||
72 | + </h3> | ||
73 | + <a class="rss-icon" target="_blank" | ||
74 | + href="{% url 'rss_latest_threads' %}" | ||
75 | + title="{% trans "RSS - Latest Threads" %}"> | ||
76 | + </a> | ||
77 | + <ul class="message-list"> | ||
78 | + {% for thread in latest_threads %} | ||
79 | + {% include "message-preview.html" with doc=thread.latest_message %} | ||
80 | + {% endfor %} | ||
81 | + </ul> | ||
82 | + <a class="column-align" href="{% url 'thread_list' %}"> | ||
83 | + {% trans "View more discussions..." %} | ||
84 | + </a> | ||
85 | + <div> </div> | ||
86 | + </div> | ||
87 | + </div> | ||
88 | + | ||
89 | +{% endblock %} |
@@ -0,0 +1,78 @@ | @@ -0,0 +1,78 @@ | ||
1 | +{% extends "base.html" %} | ||
2 | +{% load i18n %} | ||
3 | + | ||
4 | +{% block main-content %} | ||
5 | + <div> | ||
6 | + <h2>{% trans "OpenData - Communities Interlegis" %}</h2> | ||
7 | + <p>{% blocktrans %}At this point the system Colab provides much of its data | ||
8 | + through its search engine.{% endblocktrans %}</p> | ||
9 | + <p>{% blocktrans %}If you are interested in integrating your system with the environment Colab | ||
10 | + and requires no other data provided by this API, please contact us via the ticketing | ||
11 | + system (you must be registered in order to create a ticket).{% endblocktrans %}</p> | ||
12 | + | ||
13 | + <h3>{% trans "Performing searches via the API" %}</h3> | ||
14 | + <p>{% trans "The Colab API searches works through an HTTP/REST always returning JSON objects with result." %} </p> | ||
15 | + <p>{% trans "The base URL used for the search is:" %} | ||
16 | + <a href="/api/search/">http://colab.interlegis.leg.br/api/search/</a></p> | ||
17 | + | ||
18 | + <h3>{% trans "Parameters:" %}</h3> | ||
19 | + <ul class="none indent-dois"> | ||
20 | + <li> | ||
21 | + <h4><i>{% trans "Query" %}</i> - q</h4> | ||
22 | + {% blocktrans %}The <i>query</i> is the "question" sent | ||
23 | + to the search server. A <i>query</i> consists of | ||
24 | + <b>field:value</b>, where the field represents a kind of system data, | ||
25 | + for example <b>collaborator</b> and represents the data stored | ||
26 | + by the system, for example <b>jeanferri</b>.{% endblocktrans %} | ||
27 | + {% trans "The following is a list of available fields to search:" %}<br/> | ||
28 | + <ul class="none indent-dois"> | ||
29 | + <li><b>Type</b>: {% trans "wiki, thread, ticket, changeset." %}</li> | ||
30 | + <li><b>Title</b>: {% trans "page name, title of the discussion or ticket, changeset description." %}</li> | ||
31 | + <li><b>Description</b>: {% trans "excerpt from the page or the discussion, description of the ticket or changeset." %}</li> | ||
32 | + <li><b>Creator</b>: {% trans "name of user who created the document." %}</li> | ||
33 | + <li><b>creator_real_name</b>: {% trans "real name who created the document." %}</li> | ||
34 | + <li><b>create</b>: {% trans "creation date." %}</li> | ||
35 | + <li><b>modified</b>: {% trans "modification date." %}</li> | ||
36 | + <li><b>mailinglist</b>: {% trans "mailing list (only for type thread)." %}</li> | ||
37 | + <li><b>name</b>: {% trans "name of the wiki page." %}</li> | ||
38 | + <li><b>comment</b>: {% trans "comments of tickets (all concatenated)." %}</li> | ||
39 | + <li><b>content</b>: {% trans "contents of wiki page or messages of the discussions (all concatenated)." %} </li> | ||
40 | + <li><b>keyword</b>: {% trans "keywords (ticket only)." %}</li> | ||
41 | + <li><b>milestone</b>: {% trans "milestone (ticket only)." %}</li> | ||
42 | + <li><b>priority</b>: {% trans "priority (ticket only)." %}</li> | ||
43 | + <li><b>component</b>: {% trans "component (ticket only)." %}</li> | ||
44 | + <li><b>version</b>: {% trans "version (ticket only)." %}</li> | ||
45 | + <li><b>severity</b>: {% trans "severity (ticket only)." %}</li> | ||
46 | + <li><b>owner</b>: {% trans "responsible (ticket only)." %}</li> | ||
47 | + <li><b>status</b>: {% trans "status (ticket only)." %}</li> | ||
48 | + <li><b>revision</b>: {% trans "review (ticket only)." %}</li> | ||
49 | + <li><b>subject</b>: {% trans "synonym for the title (for discussion)." %}</li> | ||
50 | + </ul> | ||
51 | + </li> | ||
52 | + <br/><hr/> | ||
53 | + | ||
54 | + <li> | ||
55 | + <h4>{% trans "Results per page - n" %} </h4> | ||
56 | + {% blocktrans %}Number of results to be displayed per page. | ||
57 | + Its value must be an integer between 1 and 500.{% endblocktrans %} | ||
58 | + <i>{% trans "Default: 50" %}</i>. | ||
59 | + </li> | ||
60 | + <br/><hr/> | ||
61 | + | ||
62 | + <li> | ||
63 | + <h4>{% trans "Page - p" %}</h4> | ||
64 | + {% blocktrans %}Page number that appears. Its value must be an | ||
65 | + integer equal to or greater than 1.{% endblocktrans %} <i>{% trans "Default: 1" %}</i>. | ||
66 | + </li> | ||
67 | + <br/><hr/> | ||
68 | + | ||
69 | + <li> | ||
70 | + <h4>{% trans "Order - o" %}</h4> | ||
71 | + {% blocktrans %}Order in which the results will be displayed. Its value must be | ||
72 | + a string in the <b>field direction</b> where the same field are | ||
73 | + presented in the <i>query</i> parameter and direction can be | ||
74 | + <b>asc</b> for ascending or <b>desc</b> for descending.{% endblocktrans %} <i>Default: score desc</i>. | ||
75 | + </li> | ||
76 | + <br/> | ||
77 | + </ul> | ||
78 | +{% endblock %} |
@@ -0,0 +1,55 @@ | @@ -0,0 +1,55 @@ | ||
1 | +{% load i18n %} | ||
2 | + | ||
3 | + <!--Load the AJAX API--> | ||
4 | + <script type="text/javascript" src="https://www.google.com/jsapi"></script> | ||
5 | + <script type="text/javascript"> | ||
6 | + | ||
7 | + // Load the Visualization API and the piechart package. | ||
8 | + google.load('visualization', '1.0', {'packages':['corechart']}); | ||
9 | + | ||
10 | + // Set a callback to run when the Google Visualization API is loaded. | ||
11 | + google.setOnLoadCallback(drawChart); | ||
12 | + | ||
13 | + // Callback that creates and populates a data table, | ||
14 | + // instantiates the pie chart, passes in the data and | ||
15 | + // draws it. | ||
16 | + function drawChart() { | ||
17 | + | ||
18 | + // Create the data table. | ||
19 | + var data = new google.visualization.DataTable(); | ||
20 | + data.addColumn('string', 'Topping'); | ||
21 | + data.addColumn('number', 'Slices'); | ||
22 | + data.addRows([ | ||
23 | + {% if type_count %} | ||
24 | + ['{% trans "Emails"%}', {% firstof type_count.thread '0' %}], | ||
25 | + ['{% trans "Tickets"%}', {% firstof type_count.ticket '0' %}], | ||
26 | + ['{% trans "Wiki"%}', {% firstof type_count.wiki '0' %}], | ||
27 | + ['{% trans "Code"%}', {% firstof type_count.changeset '0' %}], | ||
28 | + {% else %} | ||
29 | + ['{% trans "Willing to help" %}', 100], | ||
30 | + {% endif %} | ||
31 | + ]); | ||
32 | + | ||
33 | + // Set chart options | ||
34 | + var options = { | ||
35 | + height: '{{ chart_height }}', | ||
36 | + legend: { | ||
37 | + position: 'bottom', | ||
38 | + alignment: 'center', | ||
39 | + }, | ||
40 | + chartArea: { | ||
41 | + height: "85%", | ||
42 | + width: "95%", | ||
43 | + top: 10, | ||
44 | + }, | ||
45 | + }; | ||
46 | + | ||
47 | + // Instantiate and draw our chart, passing in some options. | ||
48 | + var chart = new google.visualization.PieChart(document.getElementById('{{ chart_div }}')); | ||
49 | + chart.draw(data, options); | ||
50 | + | ||
51 | + $(window).on("debouncedresize", function( event ) { | ||
52 | + chart.draw(data, options); | ||
53 | + }); | ||
54 | + } | ||
55 | + </script> |
@@ -0,0 +1,73 @@ | @@ -0,0 +1,73 @@ | ||
1 | +{% extends "base.html" %} | ||
2 | +{% load i18n %} | ||
3 | +{% load append_to_get %} | ||
4 | +{% block main-content %} | ||
5 | + <div class="row"> | ||
6 | + <div class="col-lg-2"> | ||
7 | + <h2>{% trans "Search" %}</h2> | ||
8 | + </div> | ||
9 | + <span class="pull-right quiet"> | ||
10 | + {{ docs.numFound }} {% trans "documents found in" %} | ||
11 | + {{ docs.QTime|floatformat:3 }} {% trans "seconds" %} | ||
12 | + </span> | ||
13 | + </div> | ||
14 | + <hr/> | ||
15 | + | ||
16 | + <div class="row"> | ||
17 | + <div class="col-lg-2"> | ||
18 | + <h3>{% trans "Filters" %}</h3> | ||
19 | + | ||
20 | + <h4>{% trans "Types" %}</h4> | ||
21 | + | ||
22 | + <ul class="none indent"> | ||
23 | + <li {% ifequal type "wiki" %} title="{% trans "Remove filter" %}" {% endifequal %}> | ||
24 | + <span class="glyphicon glyphicon-file"></span> | ||
25 | + <a href="{% ifnotequal type "wiki" %} {% append_to_get type='wiki' %} {% else %} {% append_to_get type="" %} {% endifnotequal %}">{% trans "Wiki" %}</a> | ||
26 | + </li> | ||
27 | + <li {% ifequal type "thread" %} title="{% trans "Remove filter" %}" {% endifequal %}> | ||
28 | + <span class="glyphicon glyphicon-envelope"></span> | ||
29 | + <a href="{% ifnotequal type "thread" %} {% append_to_get type='thread' %} {% else %} {% append_to_get type="" %} {% endifnotequal %}">{% trans "Discussion" %}</a> | ||
30 | + </li> | ||
31 | + <li {% ifequal type "ticket" %} title="{% trans "Remove filter" %}" {% endifequal %}> | ||
32 | + <span class="glyphicon glyphicon-tag"></span> | ||
33 | + <a href="{% ifnotequal type "ticket" %} {% append_to_get type='ticket' %} {% else %} {% append_to_get type="" %} {% endifnotequal %}">{% trans "Ticket" %}</a> | ||
34 | + </li> | ||
35 | + <li {% ifequal type "changeset" %} title="{% trans "Remove filter" %}" {% endifequal %}> | ||
36 | + <span class="glyphicon glyphicon-align-right"></span> | ||
37 | + <a href="{% ifnotequal type "changeset" %} {% append_to_get type='changeset' %} {% else %} {% append_to_get type="" %} {% endifnotequal %}">{% trans "Changeset" %}</a> | ||
38 | + </li> | ||
39 | + </ul> | ||
40 | + </div> | ||
41 | + | ||
42 | + <div class="col-lg-10"> | ||
43 | + <ul class="none indent"> | ||
44 | + {% for doc in docs %} | ||
45 | + {% include "message-preview.html" %} | ||
46 | + {% empty %} | ||
47 | + <li class="text-center"> | ||
48 | + {% trans "No results for your search." %} | ||
49 | + </li> | ||
50 | + {% endfor %} | ||
51 | + </ul> | ||
52 | + | ||
53 | + {% if docs.numFound %} | ||
54 | + <div> | ||
55 | + <span> | ||
56 | + {% if docs.has_previous %} | ||
57 | + <a href="{% append_to_get p=docs.previous_page_number %}">{% trans "Previous" %}</a> | ||
58 | + {% endif %} | ||
59 | + | ||
60 | + <span> | ||
61 | + {% trans "Page" %} {{ docs.page_num }} {% trans "of" %} {{ docs.num_of_pages }} | ||
62 | + </span> | ||
63 | + | ||
64 | + {% if docs.has_next %} | ||
65 | + <a href="{% append_to_get p=docs.next_page_number %}">{% trans "Next" %}</a> | ||
66 | + {% endif %} | ||
67 | + </span> | ||
68 | + </div> | ||
69 | + </div> | ||
70 | + {% endif %} | ||
71 | + </div> | ||
72 | + | ||
73 | +{% endblock %} |