Commit ca702a629868c6ad888e04237c89a23711826cfa
1 parent
b534565b
Exists in
master
and in
39 other branches
Merge com https://bitbucket.org/seocam/atu-colab/src/810a0e848fcd
git-svn-id: http://repositorio.interlegis.gov.br/colab/trunk@6208 bee1b3ed-c3eb-0310-9994-b88e04532788
Showing
13 changed files
with
87 additions
and
17 deletions
Show diff stats
colab/rss/feeds.py
@@ -19,7 +19,9 @@ class LatestThreadsFeeds(Feed): | @@ -19,7 +19,9 @@ class LatestThreadsFeeds(Feed): | ||
19 | return item.latest_message.url | 19 | return item.latest_message.url |
20 | 20 | ||
21 | def item_title(self, item): | 21 | def item_title(self, item): |
22 | - return item.latest_message.subject_clean | 22 | + title = '[' + item.mailinglist.name + '] ' |
23 | + title += item.latest_message.subject_clean | ||
24 | + return title | ||
23 | 25 | ||
24 | def item_description(self, item): | 26 | def item_description(self, item): |
25 | return item.latest_message.body | 27 | return item.latest_message.body |
@@ -36,7 +38,9 @@ class HottestThreadsFeeds(Feed): | @@ -36,7 +38,9 @@ class HottestThreadsFeeds(Feed): | ||
36 | return item.latest_message.url | 38 | return item.latest_message.url |
37 | 39 | ||
38 | def item_title(self, item): | 40 | def item_title(self, item): |
39 | - return item.latest_message.subject_clean | 41 | + title = '[' + item.mailinglist.name + '] ' |
42 | + title += item.latest_message.subject_clean | ||
43 | + return title | ||
40 | 44 | ||
41 | def item_description(self, item): | 45 | def item_description(self, item): |
42 | return item.latest_message.body | 46 | return item.latest_message.body |
colab/rss/urls.py
@@ -2,8 +2,8 @@ from django.conf.urls.defaults import patterns, url | @@ -2,8 +2,8 @@ from django.conf.urls.defaults import patterns, url | ||
2 | import feeds | 2 | import feeds |
3 | 3 | ||
4 | urlpatterns = patterns('', | 4 | urlpatterns = patterns('', |
5 | - url(r'threads/latest/$', feeds.LatestThreadsFeeds()), | ||
6 | - url(r'colab/latest/$', feeds.LatestColabFeeds()), | ||
7 | - url(r'threads/hottest/$', feeds.HottestThreadsFeeds()), | 5 | + url(r'threads/latest/$', feeds.LatestThreadsFeeds(), name='rss_latest_threads'), |
6 | + url(r'colab/latest/$', feeds.LatestColabFeeds(), name='rss_latest_colab'), | ||
7 | + url(r'threads/hottest/$', feeds.HottestThreadsFeeds(), name='rss_hottest_threads'), | ||
8 | ) | 8 | ) |
9 | 9 |
colab/settings.py
@@ -155,7 +155,7 @@ SOLR_SELECT_PATH = '/solr/select' | @@ -155,7 +155,7 @@ SOLR_SELECT_PATH = '/solr/select' | ||
155 | 155 | ||
156 | SOLR_COLAB_URI = 'http://colab.interlegis.gov.br' | 156 | SOLR_COLAB_URI = 'http://colab.interlegis.gov.br' |
157 | SOLR_BASE_QUERY = """ | 157 | SOLR_BASE_QUERY = """ |
158 | - (Type:changeset OR Type:ticket OR Type:wiki OR Type:thread) | 158 | + ((Type:changeset OR Type:ticket OR Type:wiki OR Type:thread) AND Title:["" TO *]) |
159 | """ | 159 | """ |
160 | 160 | ||
161 | from settings_local import * | 161 | from settings_local import * |
colab/static/css/screen.css
colab/static/img/COPYRIGHT
@@ -6,5 +6,6 @@ The icons listed bellow were copied from the Iconic icons package. The icons in | @@ -6,5 +6,6 @@ The icons listed bellow were copied from the Iconic icons package. The icons in | ||
6 | * wiki.png | 6 | * wiki.png |
7 | * x.png | 7 | * x.png |
8 | * plus.png | 8 | * plus.png |
9 | +* rss.png | ||
9 | 10 | ||
10 | The full Iconic package can be found here: https://github.com/downloads/somerandomdude/Iconic/iconic.zip | 11 | The full Iconic package can be found here: https://github.com/downloads/somerandomdude/Iconic/iconic.zip |
405 Bytes
colab/super_archives/views.py
@@ -56,7 +56,10 @@ def list_messages(request): | @@ -56,7 +56,10 @@ def list_messages(request): | ||
56 | threads = threads.filter(mailinglist__name=mail_list) | 56 | threads = threads.filter(mailinglist__name=mail_list) |
57 | 57 | ||
58 | paginator = Paginator(threads, 16) | 58 | paginator = Paginator(threads, 16) |
59 | - page = int(request.GET.get('p', '1')) | 59 | + try: |
60 | + page = int(request.GET.get('p', '1')) | ||
61 | + except ValueError: | ||
62 | + page = 1 | ||
60 | threads = paginator.page(page) | 63 | threads = paginator.page(page) |
61 | 64 | ||
62 | lists = MailingList.objects.all() | 65 | lists = MailingList.objects.all() |
colab/templates/base.html
@@ -44,6 +44,23 @@ | @@ -44,6 +44,23 @@ | ||
44 | </style> | 44 | </style> |
45 | 45 | ||
46 | {% endblock %} | 46 | {% endblock %} |
47 | + | ||
48 | + {% block google_analytics %} | ||
49 | + <script type="text/javascript"> | ||
50 | + | ||
51 | + var _gaq = _gaq || []; | ||
52 | + _gaq.push(['_setAccount', 'UA-30841845-2']); | ||
53 | + _gaq.push(['_trackPageview']); | ||
54 | + | ||
55 | + (function() { | ||
56 | + var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; | ||
57 | + ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; | ||
58 | + var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); | ||
59 | + })(); | ||
60 | + | ||
61 | + </script> | ||
62 | + {% endblock %} | ||
63 | + | ||
47 | </head> | 64 | </head> |
48 | 65 | ||
49 | <body class="container"> | 66 | <body class="container"> |
colab/templates/home.html
@@ -18,7 +18,11 @@ | @@ -18,7 +18,11 @@ | ||
18 | {% block main-content %} | 18 | {% block main-content %} |
19 | 19 | ||
20 | <div class="span-12 colborder"> | 20 | <div class="span-12 colborder"> |
21 | - <h3>{% trans "Últimas Colaborações" %}</h3> | 21 | + <h3>{% trans "Últimas Colaborações" %}<a class="rss" target="_blank" |
22 | + href="{% url rss_latest_colab %}" | ||
23 | + title="{% trans "RSS - Últimas Colaborações" %}"> | ||
24 | + <img src="{{ STATIC_URL }}img/rss.png" alt="RSS"/></a> | ||
25 | + </h3> | ||
22 | <ul> | 26 | <ul> |
23 | {% for doc in latest_docs %} | 27 | {% for doc in latest_docs %} |
24 | {% include "message-preview.html" %} | 28 | {% include "message-preview.html" %} |
@@ -39,7 +43,11 @@ | @@ -39,7 +43,11 @@ | ||
39 | <hr/> | 43 | <hr/> |
40 | 44 | ||
41 | <div class="span-12 colborder"> | 45 | <div class="span-12 colborder"> |
42 | - <h3>{% trans "Discussões Mais Relevantes" %}</h3> | 46 | + <h3>{% trans "Discussões Mais Relevantes" %}<a class="rss" target="_blank" |
47 | + href="{% url rss_hottest_threads %}" | ||
48 | + title="{% trans "RSS - Discussões Mais Relevantes" %}"> | ||
49 | + <img src="{{ STATIC_URL }}img/rss.png" alt="RSS"/></a> | ||
50 | + </h3> | ||
43 | <ul> | 51 | <ul> |
44 | {% for thread in hottest_threads %} | 52 | {% for thread in hottest_threads %} |
45 | {% include "message-preview.html" with doc=thread.latest_message %} | 53 | {% include "message-preview.html" with doc=thread.latest_message %} |
@@ -52,7 +60,11 @@ | @@ -52,7 +60,11 @@ | ||
52 | </div> | 60 | </div> |
53 | 61 | ||
54 | <div class="span-11 last"> | 62 | <div class="span-11 last"> |
55 | - <h3>{% trans "Últimas Discussões" %}</h3> | 63 | + <h3>{% trans "Últimas Discussões" %}<a class="rss" target="_blank" |
64 | + href="{% url rss_latest_threads %}" | ||
65 | + title="{% trans "RSS - Últimas Discussões" %}"> | ||
66 | + <img src="{{ STATIC_URL }}img/rss.png" alt="RSS"/></a> | ||
67 | + </h3> | ||
56 | <ul> | 68 | <ul> |
57 | {% for thread in latest_threads %} | 69 | {% for thread in latest_threads %} |
58 | {% include "message-preview.html" with doc=thread.latest_message %} | 70 | {% include "message-preview.html" with doc=thread.latest_message %} |
colab/urls.py
@@ -22,7 +22,7 @@ urlpatterns = patterns('', | @@ -22,7 +22,7 @@ urlpatterns = patterns('', | ||
22 | url(r'^user/hash/(?P<emailhash>[\w]+)$', | 22 | url(r'^user/hash/(?P<emailhash>[\w]+)$', |
23 | 'colab.views.userprofile.by_emailhash'), | 23 | 'colab.views.userprofile.by_emailhash'), |
24 | 24 | ||
25 | - url(r'^user/(?P<username>[\w]+)/edit/?$', | 25 | + url(r'^user/(?P<username>[\w@+.-]+)/edit/?$', |
26 | 'colab.views.userprofile.update', name='user_profile_update'), | 26 | 'colab.views.userprofile.update', name='user_profile_update'), |
27 | 27 | ||
28 | url(r'^search/$', 'colab.views.other.search', name='search'), | 28 | url(r'^search/$', 'colab.views.other.search', name='search'), |
colab/views/other.py
@@ -7,6 +7,7 @@ Created by Sergio Campos on 2012-01-10. | @@ -7,6 +7,7 @@ Created by Sergio Campos on 2012-01-10. | ||
7 | """ | 7 | """ |
8 | 8 | ||
9 | from django.template import RequestContext | 9 | from django.template import RequestContext |
10 | +from django.http import HttpResponseNotAllowed | ||
10 | from django.shortcuts import render_to_response | 11 | from django.shortcuts import render_to_response |
11 | from django.utils.translation import ugettext as _ | 12 | from django.utils.translation import ugettext as _ |
12 | 13 | ||
@@ -31,12 +32,21 @@ def home(request): | @@ -31,12 +32,21 @@ def home(request): | ||
31 | 32 | ||
32 | 33 | ||
33 | def search(request): | 34 | def search(request): |
34 | - if request.method == 'GET': | ||
35 | - query = request.GET.get('q') | ||
36 | - sort = request.GET.get('o') | ||
37 | - type_ = request.GET.get('type') | ||
38 | - page_number = int(request.GET.get('p', 1)) | 35 | + if request.method != 'GET': |
36 | + return HttpResponseNotAllowed(['GET']) | ||
37 | + | ||
38 | + query = request.GET.get('q') | ||
39 | + sort = request.GET.get('o') | ||
40 | + type_ = request.GET.get('type') | ||
41 | + try: | ||
42 | + page_number = int(request.GET.get('p', '1')) | ||
43 | + except ValueError: | ||
44 | + page_number = 1 | ||
45 | + | ||
46 | + try: | ||
39 | results_per_page = int(request.GET.get('per_page', 16)) | 47 | results_per_page = int(request.GET.get('per_page', 16)) |
48 | + except ValueError: | ||
49 | + results_per_page = 16 | ||
40 | 50 | ||
41 | filters = { | 51 | filters = { |
42 | 'Type': type_, | 52 | 'Type': type_, |
solr-conf/schema.xml
@@ -465,7 +465,7 @@ | @@ -465,7 +465,7 @@ | ||
465 | <field name="Type" type="string" indexed="true" | 465 | <field name="Type" type="string" indexed="true" |
466 | stored="true" required="true" multiValued="false"/> | 466 | stored="true" required="true" multiValued="false"/> |
467 | <field name="Title" type="text_ptbr" indexed="true" | 467 | <field name="Title" type="text_ptbr" indexed="true" |
468 | - stored="true" required="false" multiValued="false"/> | 468 | + stored="true" required="true" multiValued="false"/> |
469 | <field name="Description" type="text_ptbr" indexed="true" | 469 | <field name="Description" type="text_ptbr" indexed="true" |
470 | stored="true" required="false" multiValued="false"/> | 470 | stored="true" required="false" multiValued="false"/> |
471 | <field name="Creator" type="string" indexed="true" | 471 | <field name="Creator" type="string" indexed="true" |
@@ -0,0 +1,19 @@ | @@ -0,0 +1,19 @@ | ||
1 | +#!/bin/bash | ||
2 | + | ||
3 | +cd /usr/local/src/colab/ | ||
4 | +hg pull | ||
5 | +hg up | ||
6 | +rm -fR dist/ | ||
7 | +python setup.py sdist | ||
8 | + | ||
9 | +if [[ $1 == 'deps' ]] ; then | ||
10 | + # com dependencias | ||
11 | + /usr/local/django/colab/bin/pip install dist/*.gz -U | ||
12 | +else | ||
13 | + # sem dependencias | ||
14 | + /usr/local/django/colab/bin/pip install dist/*.gz -U --no-deps | ||
15 | +fi | ||
16 | + | ||
17 | +/usr/local/django/colab/bin/python colab/manage.py syncdb | ||
18 | +/usr/local/django/colab/bin/python colab/manage.py migrate | ||
19 | +touch /usr/local/django/colab/wsgi/colab.wsgi |