Commit 2a0c929982eeb3b1530754728b1963698f8908f1
Exists in
master
and in
39 other branches
Merge branch 'bootstrap' into haystack
Showing
14 changed files
with
136 additions
and
33 deletions
Show diff stats
requirements.txt
1 | -#https://www.djangoproject.com/download/1.6b1/tarball/ | |
1 | +#https://www.djangoproject.com/download/1.6b4/tarball/ | |
2 | 2 | Django==1.5.2 |
3 | 3 | South==0.8.1 |
4 | 4 | psycopg2==2.5.1 |
... | ... | @@ -25,11 +25,14 @@ git+https://github.com/TracyWebTech/django-revproxy/ |
25 | 25 | django-conversejs |
26 | 26 | |
27 | 27 | # Feedzilla (planet) and deps |
28 | -https://bitbucket.org/lorien/feedzilla/get/tip.tar.gz # Temporarily work around | |
28 | +feedzilla==0.22 | |
29 | 29 | django-common |
30 | 30 | django-taggit |
31 | -django-taggit-templatetags | |
32 | 31 | feedparser |
33 | 32 | lxml |
34 | 33 | grab |
35 | 34 | transliterate |
35 | + | |
36 | +# Diazo | |
37 | +diazo | |
38 | +#lxml | ... | ... |
src/colab/custom_settings.py
src/colab/urls.py
... | ... | @@ -43,10 +43,5 @@ urlpatterns = patterns('', |
43 | 43 | # Uncomment the next line to enable the admin: |
44 | 44 | url(r'^colab/admin/', include(admin.site.urls)), |
45 | 45 | |
46 | - # Trac URLs | |
47 | - url(u'^(?P<path>(?:admin|wiki|changeset|newticket|ticket|chrome|timeline|roadmap|browser|report|tags|query|about|prefs|log|attachment|raw-attachment).*)$', | |
48 | - 'revproxy.views.proxy', {'base_url': settings.COLAB_TRAC_URL}), | |
49 | - | |
50 | - # Jenkins URLs | |
51 | - url(u'^ci/(?P<path>.*)$', 'revproxy.views.proxy', {'base_url': settings.COLAB_CI_URL}), | |
46 | + url(r'^', include('proxy.urls')), | |
52 | 47 | ) | ... | ... |
src/planet/templates/feedzilla/base.html
... | ... | @@ -0,0 +1,45 @@ |
1 | +<rules | |
2 | + xmlns="http://namespaces.plone.org/diazo" | |
3 | + xmlns:css="http://namespaces.plone.org/diazo/css" | |
4 | + xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> | |
5 | + | |
6 | + <replace css:theme="#trac-css" content="//head/link" /> | |
7 | + <replace css:theme="#trac-js" content="//head/script" /> | |
8 | + | |
9 | + <before css:theme-children="#main-content" css:content="#main" /> | |
10 | + | |
11 | + <after theme-children="/html/head"> | |
12 | + <style> | |
13 | + .navbar .nav ul { font-size: 14px; text-align: left; padding: 5px 0; } | |
14 | + .navbar .nav li { border: 0; padding: 0; white-space: normal; display: list-item;} | |
15 | + :link:not(.btn), | |
16 | + :visited:not(.btn) { border: 0; color: rgb(66, 139, 202); } | |
17 | + :link, :visited { border: 0; } | |
18 | + h1 { font-size: 24px; margin: 0.15em 1em 0.5em 0px; } | |
19 | + h2 { font-size: 20px } | |
20 | + h3 { font-size: 16px } | |
21 | + h4 { font-size: 14px } | |
22 | + input[type="checkbox"], input[type="radio"] { margin: 0 4px; } | |
23 | + fieldset { padding: 1em; margin: 1em 0; border: 1px solid rgb(215, 215, 215); } | |
24 | + label { font-weight: 400; } | |
25 | + legend { margin-bottom: 0; width: auto; } | |
26 | + input, textarea, select { margin: 2px; } | |
27 | + | |
28 | + .wikitoolbar, | |
29 | + .wikitoolbar:before, | |
30 | + .wikitoolbar:after { | |
31 | + -moz-box-sizing: content-box; | |
32 | + -webkit-box-sizing: content-box; | |
33 | + } | |
34 | + .wikitoolbar :link, | |
35 | + .wikitoolbar :visited { | |
36 | + border-width: 1px; | |
37 | + border-style: solid; | |
38 | + border-color: #fff #fff #fff #ccc; | |
39 | + -moz-box-sizing: content-box; | |
40 | + -webkit-box-sizing: content-box; | |
41 | + } | |
42 | + </style> | |
43 | + </after> | |
44 | + | |
45 | +</rules> | ... | ... |
... | ... | @@ -0,0 +1,14 @@ |
1 | + | |
2 | +from django.conf.urls import patterns, include, url | |
3 | + | |
4 | +from .views import TracProxyView, JenkinsProxyView | |
5 | + | |
6 | + | |
7 | +urlpatterns = patterns('', | |
8 | + # Trac URLs | |
9 | + url(r'^(?P<path>(?:admin|wiki|changeset|newticket|ticket|chrome|timeline|roadmap|browser|report|tags|query|about|prefs|log|attachment|raw-attachment|diff).*)$', | |
10 | + TracProxyView.as_view()), | |
11 | + | |
12 | + # Jenkins URLs | |
13 | + url(r'^ci/(?P<path>.*)$', JenkinsProxyView.as_view()), | |
14 | +) | ... | ... |
... | ... | @@ -0,0 +1,26 @@ |
1 | + | |
2 | +import os | |
3 | + | |
4 | +from django.conf import settings | |
5 | + | |
6 | +from revproxy.views import ProxyView | |
7 | + | |
8 | + | |
9 | +CWD = os.path.abspath(os.path.dirname(__file__)) | |
10 | +DIAZO_RULES_DIR = os.path.join(CWD, 'diazo') | |
11 | + | |
12 | + | |
13 | +class TracProxyView(ProxyView): | |
14 | + base_url = settings.COLAB_TRAC_URL | |
15 | + add_remote_user = settings.REVPROXY_ADD_REMOTE_USER | |
16 | + diazo_theme_template = 'proxy/trac.html' | |
17 | + diazo_rules = os.path.join(DIAZO_RULES_DIR, 'trac.xml') | |
18 | + html5 = True | |
19 | + | |
20 | + | |
21 | +class JenkinsProxyView(ProxyView): | |
22 | + base_url = settings.COLAB_CI_URL | |
23 | + add_remote_user = settings.REVPROXY_ADD_REMOTE_USER | |
24 | + diazo_theme_template = 'base.html' | |
25 | + diazo_rules = os.path.join(DIAZO_RULES_DIR, 'jenkins.xml') | |
26 | + html5 = True | ... | ... |
src/static/css/screen.css
1 | 1 | |
2 | - | |
3 | 2 | body { |
4 | - padding-top: 70px; | |
3 | + padding-top: 57px; | |
5 | 4 | } |
6 | 5 | |
7 | - | |
8 | 6 | /* Header */ |
9 | 7 | |
10 | 8 | #header-searchbox { |
11 | - width: 140px; | |
9 | + width: 200px; | |
12 | 10 | } |
13 | 11 | |
14 | 12 | #header-hr { |
... | ... | @@ -16,7 +14,7 @@ body { |
16 | 14 | } |
17 | 15 | |
18 | 16 | .navbar-default .navbar-brand, |
19 | -.navbar a.dropdown-toggle { | |
17 | +.navbar a.dropdown-toggle.user { | |
20 | 18 | padding: 0; |
21 | 19 | margin-top: 5px; |
22 | 20 | margin-left: 10px; | ... | ... |
src/templates/base.html
... | ... | @@ -2,7 +2,8 @@ |
2 | 2 | {% load i18n browserid conversejs gravatar %} |
3 | 3 | <html> |
4 | 4 | <head> |
5 | - <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> | |
5 | + {% block head %} | |
6 | + <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> | |
6 | 7 | |
7 | 8 | <link rel="stylesheet" href="{{ STATIC_URL }}third-party/bootstrap/css/bootstrap.css" type="text/css" media="screen, projection" /> |
8 | 9 | |
... | ... | @@ -41,13 +42,14 @@ |
41 | 42 | </script> |
42 | 43 | {% endblock %} |
43 | 44 | |
45 | + {% endblock %} | |
44 | 46 | </head> |
45 | 47 | |
46 | 48 | <body class="container"> |
47 | 49 | {% browserid_info %} |
48 | - <div class="row"> | |
49 | - </div> | |
50 | 50 | |
51 | + | |
52 | + {% block navbar %} | |
51 | 53 | <nav class="navbar navbar-default navbar-fixed-top" role="navigation"> |
52 | 54 | <div class="container"> |
53 | 55 | <div class="navbar-header"> |
... | ... | @@ -66,19 +68,22 @@ |
66 | 68 | <a href="{% url 'thread_list' %}">{% trans "Discussions" %}</a> |
67 | 69 | </li> |
68 | 70 | <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 | 71 | <a href="{% url "feedzilla_index" %}">{% trans "Planet" %}</a> |
81 | 72 | </li> |
73 | + <li class="dropdown"> | |
74 | + <a href="#" class="dropdown-toggle" data-toggle="dropdown">{% trans "Contribute" %} <b class="caret"></b></a> | |
75 | + <ul class="dropdown-menu"> | |
76 | + <li><a href="/wiki">Wiki</a></li> | |
77 | + {% if user.is_active %} | |
78 | + <li><a href="/newticket">{% trans "New Ticket" %}</a></li> | |
79 | + {% endif %} | |
80 | + <li><a href="/timeline">{% trans "Timeline" %}</a></li> | |
81 | + <li><a href="/roadmap">{% trans "Roadmap" %}</a></li> | |
82 | + <li><a href="/browser">{% trans "Browse Source" %}</a></li> | |
83 | + <li><a href="/report">{% trans "View Tickets" %}</a></li> | |
84 | + <li><a href="/tags">{% trans "Tags" %}</a></li> | |
85 | + </ul> | |
86 | + </li> | |
82 | 87 | </ul> |
83 | 88 | |
84 | 89 | <ul class="nav navbar-nav navbar-right"> |
... | ... | @@ -87,7 +92,7 @@ |
87 | 92 | <li>{% browserid_login text='Login' next=request.path %}</li> |
88 | 93 | {% else %} |
89 | 94 | <li id="user-menu" class="dropdown"> |
90 | - <a href="#" class="dropdown-toggle" data-toggle="dropdown">{% gravatar user.email 40 %} <b class="caret"></b> </a> | |
95 | + <a href="#" class="dropdown-toggle user" data-toggle="dropdown">{% gravatar user.email 40 %} <b class="caret"></b> </a> | |
91 | 96 | <ul class="dropdown-menu" role="menu"> |
92 | 97 | <li> |
93 | 98 | <div class="wrapper"> |
... | ... | @@ -119,6 +124,7 @@ |
119 | 124 | </div> |
120 | 125 | </div> |
121 | 126 | </nav> |
127 | + {% endblock %} | |
122 | 128 | |
123 | 129 | {% block messages %} |
124 | 130 | {% for message in messages %} |
... | ... | @@ -135,8 +141,8 @@ |
135 | 141 | |
136 | 142 | {% block header %}{% endblock %} |
137 | 143 | |
138 | - <div> | |
139 | - {% block main-content %} {% endblock %} | |
144 | + <div id="main-content"> | |
145 | + {% block main-content %}{% endblock %} | |
140 | 146 | </div> |
141 | 147 | |
142 | 148 | <div class="row"> </div> | ... | ... |