Commit 7397ed196b1698eec3baefe63ad1dab572863593

Authored by Carlos Oliveira
2 parents 4dd503c7 c9c788dc

Merge pull request #96 from colab/colab_search

Colab search
colab/accounts/search_indexes.py
... ... @@ -22,6 +22,7 @@ class UserIndex(indexes.SearchIndex, indexes.Indexable):
22 22 google_talk = indexes.CharField(model_attr='google_talk', null=True,
23 23 stored=False)
24 24 webpage = indexes.CharField(model_attr='webpage', null=True, stored=False)
  25 + date_joined = indexes.DateTimeField(model_attr='date_joined')
25 26  
26 27 def get_model(self):
27 28 return User
... ...
colab/accounts/templates/search/user_search_preview.html 0 → 100644
... ... @@ -0,0 +1,17 @@
  1 +{% load i18n tz highlight gravatar date_format %}
  2 +
  3 +<div class="row">
  4 + <div class="col-md-2 center">
  5 + <a href="{% url 'user_profile' username=result.username %}">
  6 + {% block gravatar_img %}{% gravatar result.email 100 %}{% endblock gravatar_img %}
  7 + </a>
  8 + </div>
  9 + <div class="col-md-10">
  10 + <strong><a href="{% url 'user_profile' username=result.username %}"><h4>{{ result.name }}</h4></a></strong>
  11 + <small><strong>{% trans "Since" %}: {% date_format result.date_joined %}</strong></small><br>
  12 + <small>{% trans "Registered in" %}: <strong>{% trans "User" %}</strong></small><br>
  13 + </div>
  14 +</div>
  15 +<div class="row">
  16 + <hr>
  17 +</div>
0 18 \ No newline at end of file
... ...
colab/accounts/templatetags/date_format.py 0 → 100644
... ... @@ -0,0 +1,20 @@
  1 +from django import template
  2 +from django.utils.translation import ugettext as _
  3 +register = template.Library()
  4 +
  5 +
  6 +@register.simple_tag(takes_context=True)
  7 +def date_format(context, date):
  8 + formatted_date = _('%(m)s %(d)s %(y)s' % {'m': date.strftime('%B'),
  9 + 'd': date.day,
  10 + 'y': date.year})
  11 + return formatted_date
  12 +
  13 +
  14 +@register.simple_tag(takes_context=True)
  15 +def datetime_format(context, date):
  16 + formatted_date = date_format(context, date)
  17 + formatted_time = _('%(hour)s:%(min)s' % {'hour': date.hour,
  18 + 'min': date.strftime('%I')})
  19 + formatted_datetime = _('%s at %s' % (formatted_date, formatted_time))
  20 + return formatted_datetime
... ...
colab/locale/en/LC_MESSAGES/django.po
1 1 # SOME DESCRIPTIVE TITLE.
2 2 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3 3 # This file is distributed under the same license as the PACKAGE package.
4   -#
  4 +#
5 5 # Translators:
6 6 msgid ""
7 7 msgstr ""
8 8 "Project-Id-Version: colab\n"
9 9 "Report-Msgid-Bugs-To: \n"
10   -"POT-Creation-Date: 2015-09-01 13:15+0000\n"
  10 +"POT-Creation-Date: 2015-10-27 13:48+0000\n"
11 11 "PO-Revision-Date: 2015-09-04 19:21+0000\n"
12 12 "Last-Translator: Lucas Kanashiro Duarte <kanashiro.duarte@gmail.com>\n"
13 13 "Language-Team: English (http://www.transifex.com/colab/colab/language/en/)\n"
  14 +"Language: en\n"
14 15 "MIME-Version: 1.0\n"
15 16 "Content-Type: text/plain; charset=UTF-8\n"
16 17 "Content-Transfer-Encoding: 8bit\n"
17   -"Language: en\n"
18 18 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
19 19  
20   -#: accounts/admin.py:18
21   -msgid "Personal info"
22   -msgstr "Personal info"
  20 +#: colab-gitlab-plugin/tests/plugins.d/gitlab.py:21
  21 +#: colab-spb-plugin/tests/plugins.d/gitlab.py:21
  22 +msgid "Code"
  23 +msgstr "Code"
23 24  
24   -#: accounts/admin.py:24
25   -msgid "Permissions"
26   -msgstr "Permissions"
  25 +#: colab-gitlab-plugin/tests/plugins.d/gitlab.py:26
  26 +#: colab-spb-plugin/tests/plugins.d/gitlab.py:26
  27 +#, fuzzy
  28 +#| msgid "Gitlab Projects"
  29 +msgid "Public Projects"
  30 +msgstr "Gitlab Projects"
27 31  
28   -#: accounts/admin.py:28
29   -msgid "Important dates"
30   -msgstr "Important dates"
  32 +#: colab-gitlab-plugin/tests/plugins.d/gitlab.py:28
  33 +#: colab-noosfero-plugin/tests/plugins.d/noosfero.py:30
  34 +#: colab-spb-plugin/tests/plugins.d/gitlab.py:28
  35 +#: colab-spb-plugin/tests/plugins.d/noosfero.py:30
  36 +#, fuzzy
  37 +#| msgid "My Profile"
  38 +msgid "Profile"
  39 +msgstr "My Profile"
31 40  
32   -#: accounts/forms.py:37
33   -msgid "Social account does not exist"
34   -msgstr "Social account does not exist"
  41 +#: colab-gitlab-plugin/tests/plugins.d/gitlab.py:30
  42 +#: colab-spb-plugin/tests/plugins.d/gitlab.py:30
  43 +#, fuzzy
  44 +#| msgid "Gitlab Project"
  45 +msgid "New Project"
  46 +msgstr "Gitlab Project"
35 47  
36   -#: accounts/forms.py:65 accounts/forms.py:71 accounts/forms.py:77
37   -msgid "This field cannot be blank."
38   -msgstr "This field cannot be blank."
  48 +#: colab-gitlab-plugin/tests/plugins.d/gitlab.py:32
  49 +#: colab-spb-plugin/tests/plugins.d/gitlab.py:32
  50 +#, fuzzy
  51 +#| msgid "Gitlab Projects"
  52 +msgid "Projects"
  53 +msgstr "Gitlab Projects"
39 54  
40   -#: accounts/forms.py:118 accounts/templates/accounts/user_detail.html:38
41   -msgid "Bio"
42   -msgstr "Bio"
  55 +#: colab-gitlab-plugin/tests/plugins.d/gitlab.py:34
  56 +#: colab-spb-plugin/tests/plugins.d/gitlab.py:34
  57 +msgid "Groups"
  58 +msgstr "Groups"
43 59  
44   -#: accounts/forms.py:119
45   -msgid "Write something about you in 200 characters or less."
46   -msgstr "Write something about you in 200 characters or less."
  60 +#: colab-gitlab-plugin/tests/plugins.d/gitlab.py:36
  61 +#: colab-spb-plugin/tests/plugins.d/gitlab.py:36
  62 +#, fuzzy
  63 +#| msgid "Gitlab Issues"
  64 +msgid "Issues"
  65 +msgstr "Gitlab Issues"
47 66  
48   -#: accounts/forms.py:148
49   -msgid "Mailing lists"
50   -msgstr "Mailing lists"
  67 +#: colab-gitlab-plugin/tests/plugins.d/gitlab.py:38
  68 +#: colab-spb-plugin/tests/plugins.d/gitlab.py:38
  69 +#, fuzzy
  70 +#| msgid "Gitlab Merge Requests"
  71 +msgid "Merge Requests"
  72 +msgstr "Gitlab Merge Requests"
51 73  
52   -#: accounts/forms.py:161
53   -#, python-format
54   -msgid "Email already used. Is it you? Please <a href='%(url)s'>login</a>"
55   -msgstr "Email already used. Is it you? Please <a href='%(url)s'>login</a>"
  74 +#: colab-noosfero-plugin/tests/plugins.d/noosfero.py:21
  75 +#: colab-spb-plugin/tests/plugins.d/noosfero.py:21
  76 +msgid "Social"
  77 +msgstr ""
56 78  
57   -#: accounts/forms.py:163
58   -msgid "A user with that username already exists."
59   -msgstr "A user with that username already exists."
  79 +#: colab-noosfero-plugin/tests/plugins.d/noosfero.py:26
  80 +#: colab-spb-plugin/tests/plugins.d/noosfero.py:26
  81 +#, fuzzy
  82 +#| msgid "Username"
  83 +msgid "Users"
  84 +msgstr "Username"
60 85  
61   -#: accounts/forms.py:164 accounts/forms.py:401 accounts/forms.py:465
62   -msgid "The two password fields didn't match."
63   -msgstr "The two password fields didn't match."
  86 +#: colab-noosfero-plugin/tests/plugins.d/noosfero.py:28
  87 +#: colab-spb-plugin/tests/plugins.d/noosfero.py:28
  88 +msgid "Communities"
  89 +msgstr "Communities"
64 90  
65   -#: accounts/forms.py:166 accounts/forms.py:236 search/forms.py:38
66   -msgid "Username"
67   -msgstr "Username"
  91 +#: colab-noosfero-plugin/tests/plugins.d/noosfero.py:32
  92 +#: colab-spb-plugin/tests/plugins.d/noosfero.py:32
  93 +msgid "Control Panel"
  94 +msgstr ""
68 95  
69   -#: accounts/forms.py:173 accounts/forms.py:240 accounts/forms.py:277
70   -#: accounts/forms.py:467
71   -msgid "Password"
72   -msgstr "Password"
  96 +#~ msgid "Personal info"
  97 +#~ msgstr "Personal info"
73 98  
74   -#: accounts/forms.py:175
75   -msgid "Password confirmation"
76   -msgstr "Password confirmation"
  99 +#~ msgid "Permissions"
  100 +#~ msgstr "Permissions"
77 101  
78   -#: accounts/forms.py:237 accounts/models.py:78
79   -msgid "Required. 30 characters or fewer. Letters and digits."
80   -msgstr "Required. 30 characters or fewer. Letters and digits."
  102 +#~ msgid "Important dates"
  103 +#~ msgstr "Important dates"
81 104  
82   -#: accounts/forms.py:239
83   -msgid "This value may contain only letters and numbers."
84   -msgstr "This value may contain only letters and numbers."
  105 +#~ msgid "Social account does not exist"
  106 +#~ msgstr "Social account does not exist"
85 107  
86   -#: accounts/forms.py:241
87   -msgid ""
88   -"Raw passwords are not stored, so there is no way to see this user's "
89   -"password, but you can change the password using <a href=\"password/\">this "
90   -"form</a>."
91   -msgstr "Raw passwords are not stored, so there is no way to see this user's password, but you can change the password using <a href=\"password/\">this form</a>."
  108 +#~ msgid "This field cannot be blank."
  109 +#~ msgstr "This field cannot be blank."
92 110  
93   -#: accounts/forms.py:280
94   -#, python-format
95   -msgid ""
96   -"Please enter a correct %(username)s and password. Note that both fields may "
97   -"be case-sensitive."
98   -msgstr "Please enter a correct %(username)s and password. Note that both fields may be case-sensitive."
99   -
100   -#: accounts/forms.py:282
101   -msgid "This account is inactive."
102   -msgstr "This account is inactive."
103   -
104   -#: accounts/forms.py:345
105   -msgid "Email"
106   -msgstr "Email"
107   -
108   -#: accounts/forms.py:403
109   -msgid "New password"
110   -msgstr "New password"
111   -
112   -#: accounts/forms.py:405
113   -msgid "New password confirmation"
114   -msgstr "New password confirmation"
115   -
116   -#: accounts/forms.py:436
117   -msgid "Your old password was entered incorrectly. Please enter it again."
118   -msgstr "Your old password was entered incorrectly. Please enter it again."
119   -
120   -#: accounts/forms.py:439
121   -msgid "Old password"
122   -msgstr "Old password"
123   -
124   -#: accounts/forms.py:469
125   -msgid "Password (again)"
126   -msgstr "Password (again)"
127   -
128   -#: accounts/models.py:82
129   -msgid "Enter a valid username."
130   -msgstr "Enter a valid username."
131   -
132   -#: accounts/templates/accounts/manage_subscriptions.html:6
133   -msgid "Group Subscriptions"
134   -msgstr "Group Subscriptions"
135   -
136   -#: accounts/templates/accounts/manage_subscriptions.html:36
137   -msgid "Update subscriptions"
138   -msgstr "Update subscriptions"
139   -
140   -#: accounts/templates/accounts/user_create_form.html:5
141   -msgid "Sign up"
142   -msgstr "Sign up"
143   -
144   -#: accounts/templates/accounts/user_create_form.html:10
145   -#: accounts/templates/registration/login.html:14
146   -#: accounts/templates/registration/password_change_form_custom.html:12
147   -#: accounts/templates/registration/password_reset_confirm_custom.html:14
148   -#: accounts/templates/registration/password_reset_form_custom.html:9
149   -msgid "Please correct the errors below and try again."
150   -msgstr "Please correct the errors below and try again."
151   -
152   -#: accounts/templates/accounts/user_create_form.html:17
153   -msgid "Required fields"
154   -msgstr "Required fields"
155   -
156   -#: accounts/templates/accounts/user_create_form.html:29
157   -msgid "Personal Information"
158   -msgstr "Personal Information"
159   -
160   -#: accounts/templates/accounts/user_create_form.html:46
161   -msgid "Subscribe to groups"
162   -msgstr "Subscribe to groups"
163   -
164   -#: accounts/templates/accounts/user_create_form.html:60
165   -#: templates/base.html:100 templates/base.html.py:105 templates/header.html:40
166   -#: templates/header.html.py:45
167   -msgid "Register"
168   -msgstr "Register"
169   -
170   -#: accounts/templates/accounts/user_detail.html:8
171   -msgid "Messages"
172   -msgstr "Messages"
173   -
174   -#: accounts/templates/accounts/user_detail.html:9 templates/home.html:7
175   -msgid "Contributions"
176   -msgstr "Contributions"
177   -
178   -#: accounts/templates/accounts/user_detail.html:29
179   -msgid "edit profile"
180   -msgstr "edit profile"
181   -
182   -#: accounts/templates/accounts/user_detail.html:30
183   -msgid "group membership"
184   -msgstr "group membership"
185   -
186   -#: accounts/templates/accounts/user_detail.html:66
187   -msgid "Twitter account"
188   -msgstr "Twitter account"
189   -
190   -#: accounts/templates/accounts/user_detail.html:69
191   -msgid "Facebook account"
192   -msgstr "Facebook account"
193   -
194   -#: accounts/templates/accounts/user_detail.html:74
195   -msgid "Google talk account"
196   -msgstr "Google talk account"
197   -
198   -#: accounts/templates/accounts/user_detail.html:78
199   -msgid "Github account"
200   -msgstr "Github account"
201   -
202   -#: accounts/templates/accounts/user_detail.html:82
203   -msgid "Personal webpage"
204   -msgstr "Personal webpage"
205   -
206   -#: accounts/templates/accounts/user_detail.html:88
207   -msgid "Groups: "
208   -msgstr "Groups: "
209   -
210   -#: accounts/templates/accounts/user_detail.html:101
211   -msgid "Collaborations by Type"
212   -msgstr "Collaborations by Type"
213   -
214   -#: accounts/templates/accounts/user_detail.html:117
215   -msgid "Participation by Group"
216   -msgstr "Participation by Group"
217   -
218   -#: accounts/templates/accounts/user_detail.html:133
219   -msgid "Latest posted"
220   -msgstr "Latest posted"
221   -
222   -#: accounts/templates/accounts/user_detail.html:138
223   -msgid "There are no posts by this user so far."
224   -msgstr "There are no posts by this user so far."
225   -
226   -#: accounts/templates/accounts/user_detail.html:142
227   -msgid "View more posts..."
228   -msgstr "View more posts..."
229   -
230   -#: accounts/templates/accounts/user_detail.html:148
231   -msgid "Latest contributions"
232   -msgstr "Latest contributions"
233   -
234   -#: accounts/templates/accounts/user_detail.html:153
235   -msgid "No contributions of this user so far."
236   -msgstr "No contributions of this user so far."
237   -
238   -#: accounts/templates/accounts/user_detail.html:157
239   -msgid "View more contributions..."
240   -msgstr "View more contributions..."
241   -
242   -#: accounts/templates/accounts/user_update_form.html:65
243   -msgid "We sent a verification email to "
244   -msgstr "We sent a verification email to "
245   -
246   -#: accounts/templates/accounts/user_update_form.html:66
247   -msgid "Please follow the instructions in it."
248   -msgstr "Please follow the instructions in it."
249   -
250   -#: accounts/templates/accounts/user_update_form.html:110
251   -msgid "profile information"
252   -msgstr "profile information"
253   -
254   -#: accounts/templates/accounts/user_update_form.html:115
255   -msgid "Change your avatar at Gravatar.com"
256   -msgstr "Change your avatar at Gravatar.com"
257   -
258   -#: accounts/templates/accounts/user_update_form.html:142 search/utils.py:56
259   -msgid "Emails"
260   -msgstr "Emails"
261   -
262   -#: accounts/templates/accounts/user_update_form.html:151
263   -msgid "Primary"
264   -msgstr "Primary"
265   -
266   -#: accounts/templates/accounts/user_update_form.html:154
267   -msgid "Setting..."
268   -msgstr "Setting..."
269   -
270   -#: accounts/templates/accounts/user_update_form.html:154
271   -msgid "Set as Primary"
272   -msgstr "Set as Primary"
273   -
274   -#: accounts/templates/accounts/user_update_form.html:155
275   -msgid "Deleting..."
276   -msgstr "Deleting..."
277   -
278   -#: accounts/templates/accounts/user_update_form.html:155
279   -#: accounts/templates/accounts/user_update_form.html:167
280   -msgid "Delete"
281   -msgstr "Delete"
282   -
283   -#: accounts/templates/accounts/user_update_form.html:166
284   -msgid "Sending verification..."
285   -msgstr "Sending verification..."
286   -
287   -#: accounts/templates/accounts/user_update_form.html:166
288   -msgid "Verify"
289   -msgstr "Verify"
290   -
291   -#: accounts/templates/accounts/user_update_form.html:174
292   -msgid "Add another email address:"
293   -msgstr "Add another email address:"
294   -
295   -#: accounts/templates/accounts/user_update_form.html:177
296   -msgid "Add"
297   -msgstr "Add"
298   -
299   -#: accounts/templates/accounts/user_update_form.html:185
300   -#: accounts/templates/accounts/user_update_form.html:189
301   -#: accounts/templates/registration/password_change_form_custom.html:26
302   -#: accounts/templates/registration/password_reset_confirm_custom.html:28
303   -msgid "Change Password"
304   -msgstr "Change Password"
305   -
306   -#: accounts/templates/accounts/user_update_form.html:196
307   -msgid "Update"
308   -msgstr "Update"
309   -
310   -#: accounts/templates/registration/login.html:10
311   -#: accounts/templates/registration/password_change_form_custom.html:10
312   -#: accounts/templates/registration/password_reset_confirm_custom.html:12
313   -msgid "Please correct the error below and try again."
314   -msgstr "Please correct the error below and try again."
315   -
316   -#: accounts/templates/registration/login.html:34
317   -#: accounts/templates/registration/login.html:54 templates/base.html:99
318   -#: templates/base.html.py:101 templates/base.html:104
319   -#: templates/base.html.py:106 templates/header.html:39
320   -#: templates/header.html.py:41 templates/header.html:44
321   -#: templates/header.html.py:46
322   -msgid "Login"
323   -msgstr "Login"
324   -
325   -#: accounts/templates/registration/login.html:56
326   -msgid "Forgot Password?"
327   -msgstr "Forgot Password?"
328   -
329   -#: accounts/templates/registration/password_change_form_custom.html:54
330   -#: accounts/templates/registration/password_reset_confirm_custom.html:51
331   -msgid "Change my password"
332   -msgstr "Change my password"
333   -
334   -#: accounts/templates/registration/password_reset_confirm_custom.html:3
335   -msgid "Setting New password"
336   -msgstr "Setting New password"
337   -
338   -#: accounts/templates/registration/password_reset_form_custom.html:23
339   -msgid ""
340   -"Forgotten your password? Enter your email address below, and we'll email "
341   -"instructions for setting a new one."
342   -msgstr "Forgotten your password? Enter your email address below, and we'll email instructions for setting a new one."
  111 +#~ msgid "Bio"
  112 +#~ msgstr "Bio"
343 113  
344   -#: accounts/templates/registration/password_reset_form_custom.html:26
345   -msgid "Email address:"
346   -msgstr "Email address:"
  114 +#~ msgid "Write something about you in 200 characters or less."
  115 +#~ msgstr "Write something about you in 200 characters or less."
347 116  
348   -#: accounts/templates/registration/password_reset_form_custom.html:37
349   -msgid "Reset password"
350   -msgstr "Reset password"
  117 +#~ msgid "Mailing lists"
  118 +#~ msgstr "Mailing lists"
351 119  
352   -#: accounts/views.py:126
353   -msgid "Your profile has been created!"
354   -msgstr "Your profile has been created!"
  120 +#~ msgid "Email already used. Is it you? Please <a href='%(url)s'>login</a>"
  121 +#~ msgstr "Email already used. Is it you? Please <a href='%(url)s'>login</a>"
355 122  
356   -#: accounts/views.py:186
357   -msgid "Your password was changed."
358   -msgstr "Your password was changed."
  123 +#~ msgid "A user with that username already exists."
  124 +#~ msgstr "A user with that username already exists."
359 125  
360   -#: accounts/views.py:202
361   -msgid "Your password has been set. You may go ahead and log in now."
362   -msgstr "Your password has been set. You may go ahead and log in now."
  126 +#~ msgid "The two password fields didn't match."
  127 +#~ msgstr "The two password fields didn't match."
363 128  
364   -#: home/context_processors.py:20
365   -msgid "Fork me!"
366   -msgstr "Fork me!"
  129 +#~ msgid "Password"
  130 +#~ msgstr "Password"
367 131  
368   -#: plugins/gitlab/models.py:27
369   -msgid "Gitlab Project"
370   -msgstr "Gitlab Project"
  132 +#~ msgid "Password confirmation"
  133 +#~ msgstr "Password confirmation"
371 134  
372   -#: plugins/gitlab/models.py:28
373   -msgid "Gitlab Projects"
374   -msgstr "Gitlab Projects"
  135 +#~ msgid "Required. 30 characters or fewer. Letters and digits."
  136 +#~ msgstr "Required. 30 characters or fewer. Letters and digits."
375 137  
376   -#: plugins/gitlab/models.py:54
377   -msgid "Gitlab Group"
378   -msgstr "Gitlab Group"
  138 +#~ msgid "This value may contain only letters and numbers."
  139 +#~ msgstr "This value may contain only letters and numbers."
379 140  
380   -#: plugins/gitlab/models.py:55
381   -msgid "Gitlab Groups"
382   -msgstr "Gitlab Groups"
  141 +#~ msgid ""
  142 +#~ "Raw passwords are not stored, so there is no way to see this user's "
  143 +#~ "password, but you can change the password using <a href=\"password/"
  144 +#~ "\">this form</a>."
  145 +#~ msgstr ""
  146 +#~ "Raw passwords are not stored, so there is no way to see this user's "
  147 +#~ "password, but you can change the password using <a href=\"password/"
  148 +#~ "\">this form</a>."
383 149  
384   -#: plugins/gitlab/models.py:91
385   -msgid "Gitlab Merge Request"
386   -msgstr "Gitlab Merge Request"
  150 +#~ msgid ""
  151 +#~ "Please enter a correct %(username)s and password. Note that both fields "
  152 +#~ "may be case-sensitive."
  153 +#~ msgstr ""
  154 +#~ "Please enter a correct %(username)s and password. Note that both fields "
  155 +#~ "may be case-sensitive."
387 156  
388   -#: plugins/gitlab/models.py:92
389   -msgid "Gitlab Merge Requests"
390   -msgstr "Gitlab Merge Requests"
  157 +#~ msgid "This account is inactive."
  158 +#~ msgstr "This account is inactive."
391 159  
392   -#: plugins/gitlab/models.py:120
393   -msgid "Gitlab Issue"
394   -msgstr "Gitlab Issue"
  160 +#~ msgid "Email"
  161 +#~ msgstr "Email"
395 162  
396   -#: plugins/gitlab/models.py:121
397   -msgid "Gitlab Issues"
398   -msgstr "Gitlab Issues"
  163 +#~ msgid "New password"
  164 +#~ msgstr "New password"
399 165  
400   -#: plugins/gitlab/models.py:176 plugins/gitlab/models.py:177
401   -msgid "Gitlab Comments"
402   -msgstr "Gitlab Comments"
  166 +#~ msgid "New password confirmation"
  167 +#~ msgstr "New password confirmation"
403 168  
404   -#: plugins/noosfero/models.py:39
405   -msgid "Community"
406   -msgstr "Community"
  169 +#~ msgid "Your old password was entered incorrectly. Please enter it again."
  170 +#~ msgstr "Your old password was entered incorrectly. Please enter it again."
407 171  
408   -#: plugins/noosfero/models.py:40
409   -msgid "Communities"
410   -msgstr "Communities"
  172 +#~ msgid "Old password"
  173 +#~ msgstr "Old password"
411 174  
412   -#: plugins/noosfero/models.py:67
413   -msgid "Article"
414   -msgstr "Article"
415   -
416   -#: plugins/noosfero/models.py:68
417   -msgid "Articles"
418   -msgstr "Articles"
419   -
420   -#: rss/feeds.py:13
421   -msgid "Latest Discussions"
422   -msgstr "Latest Discussions"
423   -
424   -#: rss/feeds.py:32
425   -msgid "Discussions Most Relevance"
426   -msgstr "Discussions Most Relevance"
427   -
428   -#: rss/feeds.py:51
429   -msgid "Latest collaborations"
430   -msgstr "Latest collaborations"
431   -
432   -#: search/forms.py:16 search/templates/search/search.html:46
433   -#: templates/base.html:89 templates/header.html:29
434   -msgid "Search"
435   -msgstr "Search"
436   -
437   -#: search/forms.py:18
438   -msgid "Type"
439   -msgstr "Type"
440   -
441   -#: search/forms.py:19 search/views.py:20
442   -msgid "Author"
443   -msgstr "Author"
444   -
445   -#: search/forms.py:20
446   -msgid "Modified by"
447   -msgstr "Modified by"
448   -
449   -#: search/forms.py:22
450   -msgid "Status"
451   -msgstr "Status"
452   -
453   -#: search/forms.py:26 search/views.py:23
454   -msgid "Mailinglist"
455   -msgstr "Mailinglist"
456   -
457   -#: search/forms.py:30
458   -msgid "Milestone"
459   -msgstr "Milestone"
460   -
461   -#: search/forms.py:31
462   -msgid "Priority"
463   -msgstr "Priority"
464   -
465   -#: search/forms.py:32
466   -msgid "Component"
467   -msgstr "Component"
468   -
469   -#: search/forms.py:33
470   -msgid "Severity"
471   -msgstr "Severity"
472   -
473   -#: search/forms.py:34
474   -msgid "Reporter"
475   -msgstr "Reporter"
476   -
477   -#: search/forms.py:35
478   -msgid "Keywords"
479   -msgstr "Keywords"
480   -
481   -#: search/forms.py:36
482   -msgid "Collaborators"
483   -msgstr "Collaborators"
484   -
485   -#: search/forms.py:37
486   -msgid "Repository"
487   -msgstr "Repository"
488   -
489   -#: search/forms.py:39
490   -msgid "Name"
491   -msgstr "Name"
492   -
493   -#: search/forms.py:40
494   -msgid "Institution"
495   -msgstr "Institution"
496   -
497   -#: search/forms.py:41
498   -msgid "Role"
499   -msgstr "Role"
500   -
501   -#: search/forms.py:42 search/templates/search/includes/search_filters.html:132
502   -#: search/templates/search/includes/search_filters.html:134
503   -#: search/templates/search/includes/search_filters.html:166
504   -#: search/templates/search/includes/search_filters.html:167
505   -msgid "Since"
506   -msgstr "Since"
507   -
508   -#: search/forms.py:43 search/templates/search/includes/search_filters.html:141
509   -#: search/templates/search/includes/search_filters.html:143
510   -#: search/templates/search/includes/search_filters.html:170
511   -#: search/templates/search/includes/search_filters.html:171
512   -msgid "Until"
513   -msgstr "Until"
514   -
515   -#: search/forms.py:44
516   -msgid "Filename"
517   -msgstr "Filename"
518   -
519   -#: search/forms.py:45
520   -msgid "Used by"
521   -msgstr "Used by"
522   -
523   -#: search/forms.py:46
524   -msgid "File type"
525   -msgstr "File type"
526   -
527   -#: search/forms.py:47
528   -msgid "Size"
529   -msgstr "Size"
530   -
531   -#: search/templates/search/includes/search_filters.html:5
532   -#: search/templates/search/includes/search_filters.html:33
533   -#: search/templates/search/includes/search_filters.html:51
534   -#: search/templates/search/includes/search_filters.html:69
535   -msgid "Remove filter"
536   -msgstr "Remove filter"
537   -
538   -#: search/templates/search/includes/search_filters.html:88
539   -#: search/templates/search/includes/search_filters.html:152
540   -#: search/templates/search/includes/search_filters.html:176
541   -msgid "Filter"
542   -msgstr "Filter"
543   -
544   -#: search/templates/search/includes/search_filters.html:94
545   -msgid "Sort by"
546   -msgstr "Sort by"
547   -
548   -#: search/templates/search/includes/search_filters.html:111
549   -msgid "Types"
550   -msgstr "Types"
551   -
552   -#: search/templates/search/includes/search_filters.html:117 search/views.py:18
553   -msgid "Discussion"
554   -msgstr "Discussion"
555   -
556   -#: search/templates/search/search.html:5
557   -msgid "search"
558   -msgstr "search"
559   -
560   -#: search/templates/search/search.html:51
561   -msgid "documents found"
562   -msgstr "documents found"
563   -
564   -#: search/templates/search/search.html:62
565   -msgid "Search here"
566   -msgstr "Search here"
567   -
568   -#: search/templates/search/search.html:74
569   -#: search/templates/search/search.html:84
570   -msgid "Filters"
571   -msgstr "Filters"
572   -
573   -#: search/templates/search/search.html:105
574   -msgid "No results for your search."
575   -msgstr "No results for your search."
576   -
577   -#: search/templates/search/search.html:107
578   -msgid "You are searching for"
579   -msgstr "You are searching for"
580   -
581   -#: settings.py:113
582   -msgid "English"
583   -msgstr "English"
584   -
585   -#: settings.py:114
586   -msgid "Portuguese"
587   -msgstr "Portuguese"
588   -
589   -#: settings.py:115
590   -msgid "Spanish"
591   -msgstr "Spanish"
592   -
593   -#: settings.py:138
594   -msgid "Recent activity"
595   -msgstr "Recent activity"
596   -
597   -#: settings.py:142
598   -msgid "Relevance"
599   -msgstr "Relevance"
600   -
601   -#: settings.py:151
602   -msgid "Document"
603   -msgstr "Document"
604   -
605   -#: settings.py:153
606   -msgid "Presentation"
607   -msgstr "Presentation"
608   -
609   -#: settings.py:154
610   -msgid "Text"
611   -msgstr "Text"
612   -
613   -#: settings.py:155
614   -msgid "Code"
615   -msgstr "Code"
  175 +#~ msgid "Password (again)"
  176 +#~ msgstr "Password (again)"
616 177  
617   -#: settings.py:157
618   -msgid "Compressed"
619   -msgstr "Compressed"
  178 +#~ msgid "Enter a valid username."
  179 +#~ msgstr "Enter a valid username."
620 180  
621   -#: settings.py:158
622   -msgid "Image"
623   -msgstr "Image"
  181 +#~ msgid "Group Subscriptions"
  182 +#~ msgstr "Group Subscriptions"
624 183  
625   -#: settings.py:160
626   -msgid "Spreadsheet"
627   -msgstr "Spreadsheet"
  184 +#~ msgid "Update subscriptions"
  185 +#~ msgstr "Update subscriptions"
628 186  
629   -#: templates/404.html:5
630   -msgid "Not found. Keep searching! :)"
631   -msgstr "Not found. Keep searching! :)"
  187 +#~ msgid "Sign up"
  188 +#~ msgstr "Sign up"
632 189  
633   -#: templates/500.html:2
634   -msgid "Ooopz... something went wrong!"
635   -msgstr "Ooopz... something went wrong!"
  190 +#~ msgid "Please correct the errors below and try again."
  191 +#~ msgstr "Please correct the errors below and try again."
636 192  
637   -#: templates/base.html:83 templates/header.html:21
638   -msgid "Groups"
639   -msgstr "Groups"
  193 +#~ msgid "Required fields"
  194 +#~ msgstr "Required fields"
640 195  
641   -#: templates/base.html:119 templates/header.html:59
642   -msgid "My Profile"
643   -msgstr "My Profile"
  196 +#~ msgid "Personal Information"
  197 +#~ msgstr "Personal Information"
  198 +
  199 +#~ msgid "Subscribe to groups"
  200 +#~ msgstr "Subscribe to groups"
  201 +
  202 +#~ msgid "Register"
  203 +#~ msgstr "Register"
  204 +
  205 +#~ msgid "Messages"
  206 +#~ msgstr "Messages"
  207 +
  208 +#~ msgid "Contributions"
  209 +#~ msgstr "Contributions"
  210 +
  211 +#~ msgid "edit profile"
  212 +#~ msgstr "edit profile"
  213 +
  214 +#~ msgid "group membership"
  215 +#~ msgstr "group membership"
  216 +
  217 +#~ msgid "Twitter account"
  218 +#~ msgstr "Twitter account"
  219 +
  220 +#~ msgid "Facebook account"
  221 +#~ msgstr "Facebook account"
  222 +
  223 +#~ msgid "Google talk account"
  224 +#~ msgstr "Google talk account"
  225 +
  226 +#~ msgid "Github account"
  227 +#~ msgstr "Github account"
  228 +
  229 +#~ msgid "Personal webpage"
  230 +#~ msgstr "Personal webpage"
  231 +
  232 +#~ msgid "Groups: "
  233 +#~ msgstr "Groups: "
  234 +
  235 +#~ msgid "Collaborations by Type"
  236 +#~ msgstr "Collaborations by Type"
  237 +
  238 +#~ msgid "Participation by Group"
  239 +#~ msgstr "Participation by Group"
  240 +
  241 +#~ msgid "Latest posted"
  242 +#~ msgstr "Latest posted"
  243 +
  244 +#~ msgid "There are no posts by this user so far."
  245 +#~ msgstr "There are no posts by this user so far."
  246 +
  247 +#~ msgid "View more posts..."
  248 +#~ msgstr "View more posts..."
  249 +
  250 +#~ msgid "Latest contributions"
  251 +#~ msgstr "Latest contributions"
  252 +
  253 +#~ msgid "No contributions of this user so far."
  254 +#~ msgstr "No contributions of this user so far."
  255 +
  256 +#~ msgid "View more contributions..."
  257 +#~ msgstr "View more contributions..."
  258 +
  259 +#~ msgid "We sent a verification email to "
  260 +#~ msgstr "We sent a verification email to "
  261 +
  262 +#~ msgid "Please follow the instructions in it."
  263 +#~ msgstr "Please follow the instructions in it."
  264 +
  265 +#~ msgid "profile information"
  266 +#~ msgstr "profile information"
  267 +
  268 +#~ msgid "Change your avatar at Gravatar.com"
  269 +#~ msgstr "Change your avatar at Gravatar.com"
  270 +
  271 +#~ msgid "Emails"
  272 +#~ msgstr "Emails"
  273 +
  274 +#~ msgid "Primary"
  275 +#~ msgstr "Primary"
  276 +
  277 +#~ msgid "Setting..."
  278 +#~ msgstr "Setting..."
  279 +
  280 +#~ msgid "Set as Primary"
  281 +#~ msgstr "Set as Primary"
  282 +
  283 +#~ msgid "Deleting..."
  284 +#~ msgstr "Deleting..."
  285 +
  286 +#~ msgid "Delete"
  287 +#~ msgstr "Delete"
  288 +
  289 +#~ msgid "Sending verification..."
  290 +#~ msgstr "Sending verification..."
  291 +
  292 +#~ msgid "Verify"
  293 +#~ msgstr "Verify"
  294 +
  295 +#~ msgid "Add another email address:"
  296 +#~ msgstr "Add another email address:"
  297 +
  298 +#~ msgid "Add"
  299 +#~ msgstr "Add"
  300 +
  301 +#~ msgid "Change Password"
  302 +#~ msgstr "Change Password"
  303 +
  304 +#~ msgid "Update"
  305 +#~ msgstr "Update"
  306 +
  307 +#~ msgid "Please correct the error below and try again."
  308 +#~ msgstr "Please correct the error below and try again."
  309 +
  310 +#~ msgid "Login"
  311 +#~ msgstr "Login"
  312 +
  313 +#~ msgid "Forgot Password?"
  314 +#~ msgstr "Forgot Password?"
  315 +
  316 +#~ msgid "Change my password"
  317 +#~ msgstr "Change my password"
  318 +
  319 +#~ msgid "Setting New password"
  320 +#~ msgstr "Setting New password"
  321 +
  322 +#~ msgid ""
  323 +#~ "Forgotten your password? Enter your email address below, and we'll email "
  324 +#~ "instructions for setting a new one."
  325 +#~ msgstr ""
  326 +#~ "Forgotten your password? Enter your email address below, and we'll email "
  327 +#~ "instructions for setting a new one."
  328 +
  329 +#~ msgid "Email address:"
  330 +#~ msgstr "Email address:"
  331 +
  332 +#~ msgid "Reset password"
  333 +#~ msgstr "Reset password"
  334 +
  335 +#~ msgid "Your profile has been created!"
  336 +#~ msgstr "Your profile has been created!"
  337 +
  338 +#~ msgid "Your password was changed."
  339 +#~ msgstr "Your password was changed."
  340 +
  341 +#~ msgid "Your password has been set. You may go ahead and log in now."
  342 +#~ msgstr "Your password has been set. You may go ahead and log in now."
  343 +
  344 +#~ msgid "Fork me!"
  345 +#~ msgstr "Fork me!"
  346 +
  347 +#~ msgid "Gitlab Group"
  348 +#~ msgstr "Gitlab Group"
  349 +
  350 +#~ msgid "Gitlab Groups"
  351 +#~ msgstr "Gitlab Groups"
  352 +
  353 +#~ msgid "Gitlab Merge Request"
  354 +#~ msgstr "Gitlab Merge Request"
  355 +
  356 +#~ msgid "Gitlab Issue"
  357 +#~ msgstr "Gitlab Issue"
  358 +
  359 +#~ msgid "Gitlab Comments"
  360 +#~ msgstr "Gitlab Comments"
  361 +
  362 +#~ msgid "Community"
  363 +#~ msgstr "Community"
  364 +
  365 +#~ msgid "Article"
  366 +#~ msgstr "Article"
  367 +
  368 +#~ msgid "Articles"
  369 +#~ msgstr "Articles"
  370 +
  371 +#~ msgid "Latest Discussions"
  372 +#~ msgstr "Latest Discussions"
  373 +
  374 +#~ msgid "Discussions Most Relevance"
  375 +#~ msgstr "Discussions Most Relevance"
  376 +
  377 +#~ msgid "Latest collaborations"
  378 +#~ msgstr "Latest collaborations"
  379 +
  380 +#~ msgid "Search"
  381 +#~ msgstr "Search"
  382 +
  383 +#~ msgid "Type"
  384 +#~ msgstr "Type"
  385 +
  386 +#~ msgid "Author"
  387 +#~ msgstr "Author"
  388 +
  389 +#~ msgid "Modified by"
  390 +#~ msgstr "Modified by"
  391 +
  392 +#~ msgid "Status"
  393 +#~ msgstr "Status"
  394 +
  395 +#~ msgid "Mailinglist"
  396 +#~ msgstr "Mailinglist"
  397 +
  398 +#~ msgid "Milestone"
  399 +#~ msgstr "Milestone"
  400 +
  401 +#~ msgid "Priority"
  402 +#~ msgstr "Priority"
  403 +
  404 +#~ msgid "Component"
  405 +#~ msgstr "Component"
  406 +
  407 +#~ msgid "Severity"
  408 +#~ msgstr "Severity"
  409 +
  410 +#~ msgid "Reporter"
  411 +#~ msgstr "Reporter"
  412 +
  413 +#~ msgid "Keywords"
  414 +#~ msgstr "Keywords"
  415 +
  416 +#~ msgid "Collaborators"
  417 +#~ msgstr "Collaborators"
  418 +
  419 +#~ msgid "Repository"
  420 +#~ msgstr "Repository"
  421 +
  422 +#~ msgid "Name"
  423 +#~ msgstr "Name"
  424 +
  425 +#~ msgid "Institution"
  426 +#~ msgstr "Institution"
  427 +
  428 +#~ msgid "Role"
  429 +#~ msgstr "Role"
  430 +
  431 +#~ msgid "Since"
  432 +#~ msgstr "Since"
  433 +
  434 +#~ msgid "Until"
  435 +#~ msgstr "Until"
  436 +
  437 +#~ msgid "Filename"
  438 +#~ msgstr "Filename"
  439 +
  440 +#~ msgid "Used by"
  441 +#~ msgstr "Used by"
  442 +
  443 +#~ msgid "File type"
  444 +#~ msgstr "File type"
  445 +
  446 +#~ msgid "Size"
  447 +#~ msgstr "Size"
  448 +
  449 +#~ msgid "Remove filter"
  450 +#~ msgstr "Remove filter"
  451 +
  452 +#~ msgid "Filter"
  453 +#~ msgstr "Filter"
  454 +
  455 +#~ msgid "Sort by"
  456 +#~ msgstr "Sort by"
  457 +
  458 +#~ msgid "Types"
  459 +#~ msgstr "Types"
  460 +
  461 +#~ msgid "Discussion"
  462 +#~ msgstr "Discussion"
  463 +
  464 +#~ msgid "search"
  465 +#~ msgstr "search"
  466 +
  467 +#~ msgid "documents found"
  468 +#~ msgstr "documents found"
  469 +
  470 +#~ msgid "Search here"
  471 +#~ msgstr "Search here"
  472 +
  473 +#~ msgid "Filters"
  474 +#~ msgstr "Filters"
  475 +
  476 +#~ msgid "No results for your search."
  477 +#~ msgstr "No results for your search."
  478 +
  479 +#~ msgid "You are searching for"
  480 +#~ msgstr "You are searching for"
  481 +
  482 +#~ msgid "English"
  483 +#~ msgstr "English"
  484 +
  485 +#~ msgid "Portuguese"
  486 +#~ msgstr "Portuguese"
  487 +
  488 +#~ msgid "Spanish"
  489 +#~ msgstr "Spanish"
  490 +
  491 +#~ msgid "Recent activity"
  492 +#~ msgstr "Recent activity"
  493 +
  494 +#~ msgid "Relevance"
  495 +#~ msgstr "Relevance"
  496 +
  497 +#~ msgid "Document"
  498 +#~ msgstr "Document"
  499 +
  500 +#~ msgid "Presentation"
  501 +#~ msgstr "Presentation"
  502 +
  503 +#~ msgid "Text"
  504 +#~ msgstr "Text"
  505 +
  506 +#~ msgid "Compressed"
  507 +#~ msgstr "Compressed"
  508 +
  509 +#~ msgid "Image"
  510 +#~ msgstr "Image"
  511 +
  512 +#~ msgid "Spreadsheet"
  513 +#~ msgstr "Spreadsheet"
  514 +
  515 +#~ msgid "Not found. Keep searching! :)"
  516 +#~ msgstr "Not found. Keep searching! :)"
  517 +
  518 +#~ msgid "Ooopz... something went wrong!"
  519 +#~ msgstr "Ooopz... something went wrong!"
644 520  
645   -#: templates/base.html:120 templates/base.html.py:121 templates/header.html:60
646   -#: templates/header.html.py:61
647   -msgid "Logout"
648   -msgstr "Logout"
  521 +#~ msgid "Logout"
  522 +#~ msgstr "Logout"
649 523  
650   -#: templates/base.html:132 templates/base.html.py:135 templates/header.html:72
651   -#: templates/header.html.py:75
652   -msgid "Search here..."
653   -msgstr "Search here..."
  524 +#~ msgid "Search here..."
  525 +#~ msgstr "Search here..."
654 526  
655   -#: templates/base.html:149
656   -msgid "The login has failed. Please, try again."
657   -msgstr "The login has failed. Please, try again."
  527 +#~ msgid "The login has failed. Please, try again."
  528 +#~ msgstr "The login has failed. Please, try again."
658 529  
659   -#: templates/footer.html:6
660   -msgid "Last email imported at"
661   -msgstr "Last email imported at"
  530 +#~ msgid "Last email imported at"
  531 +#~ msgstr "Last email imported at"
662 532  
663   -#: templates/footer.html:12
664   -msgid "The contents of this site is published under license"
665   -msgstr "The contents of this site is published under license"
  533 +#~ msgid "The contents of this site is published under license"
  534 +#~ msgstr "The contents of this site is published under license"
666 535  
667   -#: templates/footer.html:15
668   -msgid "Creative Commons 4.0 Brasil - Atribuir Fonte - Compartilhar Igual"
669   -msgstr "Creative Commons 4.0 Brasil - Atribuir Fonte - Compartilhar Igual"
  536 +#~ msgid "Creative Commons 4.0 Brasil - Atribuir Fonte - Compartilhar Igual"
  537 +#~ msgstr "Creative Commons 4.0 Brasil - Atribuir Fonte - Compartilhar Igual"
670 538  
671   -#: templates/header.html:26
672   -msgid "Paste"
673   -msgstr "Paste"
  539 +#~ msgid "Paste"
  540 +#~ msgstr "Paste"
674 541  
675   -#: templates/home.html:17
676   -msgid "Latest Collaborations"
677   -msgstr "Latest Collaborations"
  542 +#~ msgid "Latest Collaborations"
  543 +#~ msgstr "Latest Collaborations"
678 544  
679   -#: templates/home.html:21
680   -msgid "RSS - Latest collaborations"
681   -msgstr "RSS - Latest collaborations"
  545 +#~ msgid "RSS - Latest collaborations"
  546 +#~ msgstr "RSS - Latest collaborations"
682 547  
683   -#: templates/home.html:30
684   -msgid "View more collaborations..."
685   -msgstr "View more collaborations..."
  548 +#~ msgid "View more collaborations..."
  549 +#~ msgstr "View more collaborations..."
686 550  
687   -#: templates/home.html:37
688   -msgid "Collaboration Graph"
689   -msgstr "Collaboration Graph"
  551 +#~ msgid "Collaboration Graph"
  552 +#~ msgstr "Collaboration Graph"
690 553  
691   -#: templates/home.html:48
692   -msgid "Most Relevant Threads"
693   -msgstr "Most Relevant Threads"
  554 +#~ msgid "Most Relevant Threads"
  555 +#~ msgstr "Most Relevant Threads"
694 556  
695   -#: templates/home.html:52
696   -msgid "RSS - Most Relevant Threads"
697   -msgstr "RSS - Most Relevant Threads"
  557 +#~ msgid "RSS - Most Relevant Threads"
  558 +#~ msgstr "RSS - Most Relevant Threads"
698 559  
699   -#: templates/home.html:60 templates/home.html.py:79
700   -msgid "View more discussions..."
701   -msgstr "View more discussions..."
  560 +#~ msgid "View more discussions..."
  561 +#~ msgstr "View more discussions..."
702 562  
703   -#: templates/home.html:67
704   -msgid "Latest Threads"
705   -msgstr "Latest Threads"
  563 +#~ msgid "Latest Threads"
  564 +#~ msgstr "Latest Threads"
706 565  
707   -#: templates/home.html:71
708   -msgid "RSS - Latest Threads"
709   -msgstr "RSS - Latest Threads"
  566 +#~ msgid "RSS - Latest Threads"
  567 +#~ msgstr "RSS - Latest Threads"
... ...
colab/locale/pt_BR/LC_MESSAGES/django.po
1 1 # SOME DESCRIPTIVE TITLE.
2 2 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3 3 # This file is distributed under the same license as the PACKAGE package.
4   -#
  4 +#
5 5 # Translators:
6 6 # Lucas Kanashiro Duarte <kanashiro.duarte@gmail.com>, 2015
7 7 # macártur de sousa carvalho <macartur.sc@gmail.com>, 2015
... ... @@ -10,703 +10,564 @@ msgid &quot;&quot;
10 10 msgstr ""
11 11 "Project-Id-Version: colab\n"
12 12 "Report-Msgid-Bugs-To: \n"
13   -"POT-Creation-Date: 2015-09-01 13:15+0000\n"
  13 +"POT-Creation-Date: 2015-10-27 13:48+0000\n"
14 14 "PO-Revision-Date: 2015-09-07 19:13+0000\n"
15 15 "Last-Translator: Lucas Kanashiro Duarte <kanashiro.duarte@gmail.com>\n"
16   -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/colab/colab/language/pt_BR/)\n"
  16 +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/colab/colab/"
  17 +"language/pt_BR/)\n"
  18 +"Language: pt_BR\n"
17 19 "MIME-Version: 1.0\n"
18 20 "Content-Type: text/plain; charset=UTF-8\n"
19 21 "Content-Transfer-Encoding: 8bit\n"
20   -"Language: pt_BR\n"
21 22 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
22 23  
23   -#: accounts/admin.py:18
24   -msgid "Personal info"
25   -msgstr "Informações Pessoais"
  24 +#: colab-gitlab-plugin/tests/plugins.d/gitlab.py:21
  25 +#: colab-spb-plugin/tests/plugins.d/gitlab.py:21
  26 +msgid "Code"
  27 +msgstr "Código"
26 28  
27   -#: accounts/admin.py:24
28   -msgid "Permissions"
29   -msgstr "Permissões"
  29 +#: colab-gitlab-plugin/tests/plugins.d/gitlab.py:26
  30 +#: colab-spb-plugin/tests/plugins.d/gitlab.py:26
  31 +#, fuzzy
  32 +#| msgid "Gitlab Projects"
  33 +msgid "Public Projects"
  34 +msgstr "Projetos no Gitlab"
30 35  
31   -#: accounts/admin.py:28
32   -msgid "Important dates"
33   -msgstr "Datas importantes"
  36 +#: colab-gitlab-plugin/tests/plugins.d/gitlab.py:28
  37 +#: colab-noosfero-plugin/tests/plugins.d/noosfero.py:30
  38 +#: colab-spb-plugin/tests/plugins.d/gitlab.py:28
  39 +#: colab-spb-plugin/tests/plugins.d/noosfero.py:30
  40 +#, fuzzy
  41 +#| msgid "My Profile"
  42 +msgid "Profile"
  43 +msgstr "Meu Perfil"
34 44  
35   -#: accounts/forms.py:37
36   -msgid "Social account does not exist"
37   -msgstr "Conta social não existe"
  45 +#: colab-gitlab-plugin/tests/plugins.d/gitlab.py:30
  46 +#: colab-spb-plugin/tests/plugins.d/gitlab.py:30
  47 +#, fuzzy
  48 +#| msgid "Gitlab Project"
  49 +msgid "New Project"
  50 +msgstr "Projeto no Gitlab"
38 51  
39   -#: accounts/forms.py:65 accounts/forms.py:71 accounts/forms.py:77
40   -msgid "This field cannot be blank."
41   -msgstr "Este campo não pode ficar em branco."
  52 +#: colab-gitlab-plugin/tests/plugins.d/gitlab.py:32
  53 +#: colab-spb-plugin/tests/plugins.d/gitlab.py:32
  54 +#, fuzzy
  55 +#| msgid "Gitlab Projects"
  56 +msgid "Projects"
  57 +msgstr "Projetos no Gitlab"
42 58  
43   -#: accounts/forms.py:118 accounts/templates/accounts/user_detail.html:38
44   -msgid "Bio"
45   -msgstr "Bio"
  59 +#: colab-gitlab-plugin/tests/plugins.d/gitlab.py:34
  60 +#: colab-spb-plugin/tests/plugins.d/gitlab.py:34
  61 +msgid "Groups"
  62 +msgstr "Grupos"
46 63  
47   -#: accounts/forms.py:119
48   -msgid "Write something about you in 200 characters or less."
49   -msgstr "Escreva algo sobre você em 200 caracteres ou menos."
  64 +#: colab-gitlab-plugin/tests/plugins.d/gitlab.py:36
  65 +#: colab-spb-plugin/tests/plugins.d/gitlab.py:36
  66 +#, fuzzy
  67 +#| msgid "Gitlab Issues"
  68 +msgid "Issues"
  69 +msgstr "Tíquetes no Gitlab"
50 70  
51   -#: accounts/forms.py:148
52   -msgid "Mailing lists"
53   -msgstr "Listas de e-mail"
  71 +#: colab-gitlab-plugin/tests/plugins.d/gitlab.py:38
  72 +#: colab-spb-plugin/tests/plugins.d/gitlab.py:38
  73 +#, fuzzy
  74 +#| msgid "Gitlab Merge Requests"
  75 +msgid "Merge Requests"
  76 +msgstr "Envio de Contribuições no Gitlab"
54 77  
55   -#: accounts/forms.py:161
56   -#, python-format
57   -msgid "Email already used. Is it you? Please <a href='%(url)s'>login</a>"
58   -msgstr "Este email ja está sendo utilizado.Caso seja o seu efetue o <a href='%(url)s'>login</a>"
  78 +#: colab-noosfero-plugin/tests/plugins.d/noosfero.py:21
  79 +#: colab-spb-plugin/tests/plugins.d/noosfero.py:21
  80 +msgid "Social"
  81 +msgstr "Social"
59 82  
60   -#: accounts/forms.py:163
61   -msgid "A user with that username already exists."
62   -msgstr "Já existe um usuário com este nome."
  83 +#: colab-noosfero-plugin/tests/plugins.d/noosfero.py:26
  84 +#: colab-spb-plugin/tests/plugins.d/noosfero.py:26
  85 +#, fuzzy
  86 +#| msgid "Username"
  87 +msgid "Users"
  88 +msgstr "Usuário"
63 89  
64   -#: accounts/forms.py:164 accounts/forms.py:401 accounts/forms.py:465
65   -msgid "The two password fields didn't match."
66   -msgstr "Os dois campos de senha não conferem."
  90 +#: colab-noosfero-plugin/tests/plugins.d/noosfero.py:28
  91 +#: colab-spb-plugin/tests/plugins.d/noosfero.py:28
  92 +msgid "Communities"
  93 +msgstr "Comunidades"
67 94  
68   -#: accounts/forms.py:166 accounts/forms.py:236 search/forms.py:38
69   -msgid "Username"
70   -msgstr "Usuário"
  95 +#: colab-noosfero-plugin/tests/plugins.d/noosfero.py:32
  96 +#: colab-spb-plugin/tests/plugins.d/noosfero.py:32
  97 +msgid "Control Panel"
  98 +msgstr "Painel de Controle"
71 99  
72   -#: accounts/forms.py:173 accounts/forms.py:240 accounts/forms.py:277
73   -#: accounts/forms.py:467
74   -msgid "Password"
75   -msgstr "Senha"
  100 +#~ msgid "Personal info"
  101 +#~ msgstr "Informações Pessoais"
76 102  
77   -#: accounts/forms.py:175
78   -msgid "Password confirmation"
79   -msgstr "Confirmação de senha"
  103 +#~ msgid "Permissions"
  104 +#~ msgstr "Permissões"
80 105  
81   -#: accounts/forms.py:237 accounts/models.py:78
82   -msgid "Required. 30 characters or fewer. Letters and digits."
83   -msgstr "Obrigatório. 30 caracteres ou menos. Letras ou digitos."
  106 +#~ msgid "Important dates"
  107 +#~ msgstr "Datas importantes"
84 108  
85   -#: accounts/forms.py:239
86   -msgid "This value may contain only letters and numbers."
87   -msgstr "Este campo pode conter apenas letras e números."
  109 +#~ msgid "Social account does not exist"
  110 +#~ msgstr "Conta social não existe"
88 111  
89   -#: accounts/forms.py:241
90   -msgid ""
91   -"Raw passwords are not stored, so there is no way to see this user's "
92   -"password, but you can change the password using <a href=\"password/\">this "
93   -"form</a>."
94   -msgstr "Senhas em claro não são armazenadas, então não será possível visualizar sua senha, no entanto você poderá modificar sua senha utilizando <a href=\\\"password/\\\">este formulário</a>."
  112 +#~ msgid "This field cannot be blank."
  113 +#~ msgstr "Este campo não pode ficar em branco."
95 114  
96   -#: accounts/forms.py:280
97   -#, python-format
98   -msgid ""
99   -"Please enter a correct %(username)s and password. Note that both fields may "
100   -"be case-sensitive."
101   -msgstr "Por favor entre com um %(username)s e senha. Note que ambos os campos diferenciam letras maiúsculas de minúsculas"
102   -
103   -#: accounts/forms.py:282
104   -msgid "This account is inactive."
105   -msgstr "Esta conta está inativa."
106   -
107   -#: accounts/forms.py:345
108   -msgid "Email"
109   -msgstr "Email"
110   -
111   -#: accounts/forms.py:403
112   -msgid "New password"
113   -msgstr "Nova senha"
114   -
115   -#: accounts/forms.py:405
116   -msgid "New password confirmation"
117   -msgstr "Confirmar nova senha"
118   -
119   -#: accounts/forms.py:436
120   -msgid "Your old password was entered incorrectly. Please enter it again."
121   -msgstr "Sua senha atual está incorreta. Por favor tente novamente."
122   -
123   -#: accounts/forms.py:439
124   -msgid "Old password"
125   -msgstr "Senha atual"
126   -
127   -#: accounts/forms.py:469
128   -msgid "Password (again)"
129   -msgstr "Senha (novamente)"
130   -
131   -#: accounts/models.py:82
132   -msgid "Enter a valid username."
133   -msgstr "Insira um nome de usuário válido."
134   -
135   -#: accounts/templates/accounts/manage_subscriptions.html:6
136   -msgid "Group Subscriptions"
137   -msgstr "Inscrições em grupos"
138   -
139   -#: accounts/templates/accounts/manage_subscriptions.html:36
140   -msgid "Update subscriptions"
141   -msgstr "Atualizar inscrições"
142   -
143   -#: accounts/templates/accounts/user_create_form.html:5
144   -msgid "Sign up"
145   -msgstr "Cadastrar"
146   -
147   -#: accounts/templates/accounts/user_create_form.html:10
148   -#: accounts/templates/registration/login.html:14
149   -#: accounts/templates/registration/password_change_form_custom.html:12
150   -#: accounts/templates/registration/password_reset_confirm_custom.html:14
151   -#: accounts/templates/registration/password_reset_form_custom.html:9
152   -msgid "Please correct the errors below and try again."
153   -msgstr "Por favor corrija os erros abaixo e tente novamente."
154   -
155   -#: accounts/templates/accounts/user_create_form.html:17
156   -msgid "Required fields"
157   -msgstr "Campos obrigatórios"
158   -
159   -#: accounts/templates/accounts/user_create_form.html:29
160   -msgid "Personal Information"
161   -msgstr "Informações pessoais"
162   -
163   -#: accounts/templates/accounts/user_create_form.html:46
164   -msgid "Subscribe to groups"
165   -msgstr "Inscreva-se nos grupos"
166   -
167   -#: accounts/templates/accounts/user_create_form.html:60
168   -#: templates/base.html:100 templates/base.html.py:105 templates/header.html:40
169   -#: templates/header.html.py:45
170   -msgid "Register"
171   -msgstr "Cadastre-se"
172   -
173   -#: accounts/templates/accounts/user_detail.html:8
174   -msgid "Messages"
175   -msgstr "Mensagens"
176   -
177   -#: accounts/templates/accounts/user_detail.html:9 templates/home.html:7
178   -msgid "Contributions"
179   -msgstr "Contribuições"
180   -
181   -#: accounts/templates/accounts/user_detail.html:29
182   -msgid "edit profile"
183   -msgstr "editar perfil"
184   -
185   -#: accounts/templates/accounts/user_detail.html:30
186   -msgid "group membership"
187   -msgstr "Inscrições nos grupos"
188   -
189   -#: accounts/templates/accounts/user_detail.html:66
190   -msgid "Twitter account"
191   -msgstr "Conta Twitter"
192   -
193   -#: accounts/templates/accounts/user_detail.html:69
194   -msgid "Facebook account"
195   -msgstr "Conta Facebook"
196   -
197   -#: accounts/templates/accounts/user_detail.html:74
198   -msgid "Google talk account"
199   -msgstr "Conta Google talk"
200   -
201   -#: accounts/templates/accounts/user_detail.html:78
202   -msgid "Github account"
203   -msgstr "Conta Github"
204   -
205   -#: accounts/templates/accounts/user_detail.html:82
206   -msgid "Personal webpage"
207   -msgstr "Página web pessoal"
208   -
209   -#: accounts/templates/accounts/user_detail.html:88
210   -msgid "Groups: "
211   -msgstr "Grupos: "
212   -
213   -#: accounts/templates/accounts/user_detail.html:101
214   -msgid "Collaborations by Type"
215   -msgstr "Colaborações por tipo"
216   -
217   -#: accounts/templates/accounts/user_detail.html:117
218   -msgid "Participation by Group"
219   -msgstr "Participação por grupo"
220   -
221   -#: accounts/templates/accounts/user_detail.html:133
222   -msgid "Latest posted"
223   -msgstr "Últimas postagens"
224   -
225   -#: accounts/templates/accounts/user_detail.html:138
226   -msgid "There are no posts by this user so far."
227   -msgstr "Não há posts deste usuário até agora."
228   -
229   -#: accounts/templates/accounts/user_detail.html:142
230   -msgid "View more posts..."
231   -msgstr "Ver mais postagens..."
232   -
233   -#: accounts/templates/accounts/user_detail.html:148
234   -msgid "Latest contributions"
235   -msgstr "Últimas colaborações"
236   -
237   -#: accounts/templates/accounts/user_detail.html:153
238   -msgid "No contributions of this user so far."
239   -msgstr "Não há contribuições deste usuário até agora."
240   -
241   -#: accounts/templates/accounts/user_detail.html:157
242   -msgid "View more contributions..."
243   -msgstr "Ver mais colaborações..."
244   -
245   -#: accounts/templates/accounts/user_update_form.html:65
246   -msgid "We sent a verification email to "
247   -msgstr "Enviamos um email de verificação para "
248   -
249   -#: accounts/templates/accounts/user_update_form.html:66
250   -msgid "Please follow the instructions in it."
251   -msgstr "Por favor, siga as instruções."
252   -
253   -#: accounts/templates/accounts/user_update_form.html:110
254   -msgid "profile information"
255   -msgstr "informações do perfil"
256   -
257   -#: accounts/templates/accounts/user_update_form.html:115
258   -msgid "Change your avatar at Gravatar.com"
259   -msgstr "Troque seu avatar em Gravatar.com"
260   -
261   -#: accounts/templates/accounts/user_update_form.html:142 search/utils.py:56
262   -msgid "Emails"
263   -msgstr "Emails"
264   -
265   -#: accounts/templates/accounts/user_update_form.html:151
266   -msgid "Primary"
267   -msgstr "Primário"
268   -
269   -#: accounts/templates/accounts/user_update_form.html:154
270   -msgid "Setting..."
271   -msgstr "Definindo..."
272   -
273   -#: accounts/templates/accounts/user_update_form.html:154
274   -msgid "Set as Primary"
275   -msgstr "Definir como Primário"
276   -
277   -#: accounts/templates/accounts/user_update_form.html:155
278   -msgid "Deleting..."
279   -msgstr "Apagando..."
280   -
281   -#: accounts/templates/accounts/user_update_form.html:155
282   -#: accounts/templates/accounts/user_update_form.html:167
283   -msgid "Delete"
284   -msgstr "Apagar"
285   -
286   -#: accounts/templates/accounts/user_update_form.html:166
287   -msgid "Sending verification..."
288   -msgstr "Enviando verificação..."
289   -
290   -#: accounts/templates/accounts/user_update_form.html:166
291   -msgid "Verify"
292   -msgstr "Verificar"
293   -
294   -#: accounts/templates/accounts/user_update_form.html:174
295   -msgid "Add another email address:"
296   -msgstr "Adicionar outro endereço de email"
297   -
298   -#: accounts/templates/accounts/user_update_form.html:177
299   -msgid "Add"
300   -msgstr "Adicionar"
301   -
302   -#: accounts/templates/accounts/user_update_form.html:185
303   -#: accounts/templates/accounts/user_update_form.html:189
304   -#: accounts/templates/registration/password_change_form_custom.html:26
305   -#: accounts/templates/registration/password_reset_confirm_custom.html:28
306   -msgid "Change Password"
307   -msgstr "Trocar senha"
308   -
309   -#: accounts/templates/accounts/user_update_form.html:196
310   -msgid "Update"
311   -msgstr "Atualizar"
312   -
313   -#: accounts/templates/registration/login.html:10
314   -#: accounts/templates/registration/password_change_form_custom.html:10
315   -#: accounts/templates/registration/password_reset_confirm_custom.html:12
316   -msgid "Please correct the error below and try again."
317   -msgstr "Por favor corrija o erro abaixo e tente novamente."
318   -
319   -#: accounts/templates/registration/login.html:34
320   -#: accounts/templates/registration/login.html:54 templates/base.html:99
321   -#: templates/base.html.py:101 templates/base.html:104
322   -#: templates/base.html.py:106 templates/header.html:39
323   -#: templates/header.html.py:41 templates/header.html:44
324   -#: templates/header.html.py:46
325   -msgid "Login"
326   -msgstr "Entrar"
327   -
328   -#: accounts/templates/registration/login.html:56
329   -msgid "Forgot Password?"
330   -msgstr "Esqueci minha Senha?"
331   -
332   -#: accounts/templates/registration/password_change_form_custom.html:54
333   -#: accounts/templates/registration/password_reset_confirm_custom.html:51
334   -msgid "Change my password"
335   -msgstr "Alterar minha senha"
336   -
337   -#: accounts/templates/registration/password_reset_confirm_custom.html:3
338   -msgid "Setting New password"
339   -msgstr "Definir Nova Senha"
340   -
341   -#: accounts/templates/registration/password_reset_form_custom.html:23
342   -msgid ""
343   -"Forgotten your password? Enter your email address below, and we'll email "
344   -"instructions for setting a new one."
345   -msgstr "Esqueceu sua senha? Digite seu email abaixo, e enviaremos instruções para redefinir sua senha."
  115 +#~ msgid "Bio"
  116 +#~ msgstr "Bio"
346 117  
347   -#: accounts/templates/registration/password_reset_form_custom.html:26
348   -msgid "Email address:"
349   -msgstr "Endereço de email: "
  118 +#~ msgid "Write something about you in 200 characters or less."
  119 +#~ msgstr "Escreva algo sobre você em 200 caracteres ou menos."
350 120  
351   -#: accounts/templates/registration/password_reset_form_custom.html:37
352   -msgid "Reset password"
353   -msgstr "Redefinir senha"
  121 +#~ msgid "Mailing lists"
  122 +#~ msgstr "Listas de e-mail"
354 123  
355   -#: accounts/views.py:126
356   -msgid "Your profile has been created!"
357   -msgstr "Seu perfil foi criado!"
  124 +#~ msgid "Email already used. Is it you? Please <a href='%(url)s'>login</a>"
  125 +#~ msgstr ""
  126 +#~ "Este email ja está sendo utilizado.Caso seja o seu efetue o <a "
  127 +#~ "href='%(url)s'>login</a>"
358 128  
359   -#: accounts/views.py:186
360   -msgid "Your password was changed."
361   -msgstr "Sua senha foi modificada."
  129 +#~ msgid "A user with that username already exists."
  130 +#~ msgstr "Já existe um usuário com este nome."
362 131  
363   -#: accounts/views.py:202
364   -msgid "Your password has been set. You may go ahead and log in now."
365   -msgstr "Sua senha foi modificada. Você já pode efetuar o login agora."
  132 +#~ msgid "The two password fields didn't match."
  133 +#~ msgstr "Os dois campos de senha não conferem."
366 134  
367   -#: home/context_processors.py:20
368   -msgid "Fork me!"
369   -msgstr "Fork me!"
  135 +#~ msgid "Password"
  136 +#~ msgstr "Senha"
370 137  
371   -#: plugins/gitlab/models.py:27
372   -msgid "Gitlab Project"
373   -msgstr "Projeto no Gitlab"
  138 +#~ msgid "Password confirmation"
  139 +#~ msgstr "Confirmação de senha"
374 140  
375   -#: plugins/gitlab/models.py:28
376   -msgid "Gitlab Projects"
377   -msgstr "Projetos no Gitlab"
  141 +#~ msgid "Required. 30 characters or fewer. Letters and digits."
  142 +#~ msgstr "Obrigatório. 30 caracteres ou menos. Letras ou digitos."
378 143  
379   -#: plugins/gitlab/models.py:54
380   -msgid "Gitlab Group"
381   -msgstr "Grupo no Gitlab"
  144 +#~ msgid "This value may contain only letters and numbers."
  145 +#~ msgstr "Este campo pode conter apenas letras e números."
382 146  
383   -#: plugins/gitlab/models.py:55
384   -msgid "Gitlab Groups"
385   -msgstr "Grupos no Gitlab"
  147 +#~ msgid ""
  148 +#~ "Raw passwords are not stored, so there is no way to see this user's "
  149 +#~ "password, but you can change the password using <a href=\"password/"
  150 +#~ "\">this form</a>."
  151 +#~ msgstr ""
  152 +#~ "Senhas em claro não são armazenadas, então não será possível visualizar "
  153 +#~ "sua senha, no entanto você poderá modificar sua senha utilizando <a href="
  154 +#~ "\\\"password/\\\">este formulário</a>."
386 155  
387   -#: plugins/gitlab/models.py:91
388   -msgid "Gitlab Merge Request"
389   -msgstr "Envio de Contribuição no Gitlab"
  156 +#~ msgid ""
  157 +#~ "Please enter a correct %(username)s and password. Note that both fields "
  158 +#~ "may be case-sensitive."
  159 +#~ msgstr ""
  160 +#~ "Por favor entre com um %(username)s e senha. Note que ambos os campos "
  161 +#~ "diferenciam letras maiúsculas de minúsculas"
390 162  
391   -#: plugins/gitlab/models.py:92
392   -msgid "Gitlab Merge Requests"
393   -msgstr "Envio de Contribuições no Gitlab"
  163 +#~ msgid "This account is inactive."
  164 +#~ msgstr "Esta conta está inativa."
394 165  
395   -#: plugins/gitlab/models.py:120
396   -msgid "Gitlab Issue"
397   -msgstr "Tíquete no Gitlab"
  166 +#~ msgid "Email"
  167 +#~ msgstr "Email"
398 168  
399   -#: plugins/gitlab/models.py:121
400   -msgid "Gitlab Issues"
401   -msgstr "Tíquetes no Gitlab"
  169 +#~ msgid "New password"
  170 +#~ msgstr "Nova senha"
402 171  
403   -#: plugins/gitlab/models.py:176 plugins/gitlab/models.py:177
404   -msgid "Gitlab Comments"
405   -msgstr "Comentários no Gitlab"
  172 +#~ msgid "New password confirmation"
  173 +#~ msgstr "Confirmar nova senha"
406 174  
407   -#: plugins/noosfero/models.py:39
408   -msgid "Community"
409   -msgstr "Comunidade"
  175 +#~ msgid "Your old password was entered incorrectly. Please enter it again."
  176 +#~ msgstr "Sua senha atual está incorreta. Por favor tente novamente."
410 177  
411   -#: plugins/noosfero/models.py:40
412   -msgid "Communities"
413   -msgstr "Comunidades"
  178 +#~ msgid "Old password"
  179 +#~ msgstr "Senha atual"
414 180  
415   -#: plugins/noosfero/models.py:67
416   -msgid "Article"
417   -msgstr "Artigo"
418   -
419   -#: plugins/noosfero/models.py:68
420   -msgid "Articles"
421   -msgstr "Artigos"
422   -
423   -#: rss/feeds.py:13
424   -msgid "Latest Discussions"
425   -msgstr "Últimas discussões"
426   -
427   -#: rss/feeds.py:32
428   -msgid "Discussions Most Relevance"
429   -msgstr "Discussões Mais Relevantes"
430   -
431   -#: rss/feeds.py:51
432   -msgid "Latest collaborations"
433   -msgstr "Últimas colaborações"
434   -
435   -#: search/forms.py:16 search/templates/search/search.html:46
436   -#: templates/base.html:89 templates/header.html:29
437   -msgid "Search"
438   -msgstr "Busca"
439   -
440   -#: search/forms.py:18
441   -msgid "Type"
442   -msgstr "Tipo"
443   -
444   -#: search/forms.py:19 search/views.py:20
445   -msgid "Author"
446   -msgstr "Autor"
447   -
448   -#: search/forms.py:20
449   -msgid "Modified by"
450   -msgstr "Modificado por"
451   -
452   -#: search/forms.py:22
453   -msgid "Status"
454   -msgstr "Status"
455   -
456   -#: search/forms.py:26 search/views.py:23
457   -msgid "Mailinglist"
458   -msgstr "Lista de discussão"
459   -
460   -#: search/forms.py:30
461   -msgid "Milestone"
462   -msgstr "Marco"
463   -
464   -#: search/forms.py:31
465   -msgid "Priority"
466   -msgstr "Prioridade"
467   -
468   -#: search/forms.py:32
469   -msgid "Component"
470   -msgstr "Componente"
471   -
472   -#: search/forms.py:33
473   -msgid "Severity"
474   -msgstr "Severidade"
475   -
476   -#: search/forms.py:34
477   -msgid "Reporter"
478   -msgstr "Relator"
479   -
480   -#: search/forms.py:35
481   -msgid "Keywords"
482   -msgstr "Palavras chave"
483   -
484   -#: search/forms.py:36
485   -msgid "Collaborators"
486   -msgstr "Colaboradores"
487   -
488   -#: search/forms.py:37
489   -msgid "Repository"
490   -msgstr "Repositório"
491   -
492   -#: search/forms.py:39
493   -msgid "Name"
494   -msgstr "Nome"
495   -
496   -#: search/forms.py:40
497   -msgid "Institution"
498   -msgstr "Instituição"
499   -
500   -#: search/forms.py:41
501   -msgid "Role"
502   -msgstr "Papel"
503   -
504   -#: search/forms.py:42 search/templates/search/includes/search_filters.html:132
505   -#: search/templates/search/includes/search_filters.html:134
506   -#: search/templates/search/includes/search_filters.html:166
507   -#: search/templates/search/includes/search_filters.html:167
508   -msgid "Since"
509   -msgstr "Desde"
510   -
511   -#: search/forms.py:43 search/templates/search/includes/search_filters.html:141
512   -#: search/templates/search/includes/search_filters.html:143
513   -#: search/templates/search/includes/search_filters.html:170
514   -#: search/templates/search/includes/search_filters.html:171
515   -msgid "Until"
516   -msgstr "Até"
517   -
518   -#: search/forms.py:44
519   -msgid "Filename"
520   -msgstr "Nome do arquivo"
521   -
522   -#: search/forms.py:45
523   -msgid "Used by"
524   -msgstr "Usado por"
525   -
526   -#: search/forms.py:46
527   -msgid "File type"
528   -msgstr "Tipo do arquivo"
529   -
530   -#: search/forms.py:47
531   -msgid "Size"
532   -msgstr "Tamanho"
533   -
534   -#: search/templates/search/includes/search_filters.html:5
535   -#: search/templates/search/includes/search_filters.html:33
536   -#: search/templates/search/includes/search_filters.html:51
537   -#: search/templates/search/includes/search_filters.html:69
538   -msgid "Remove filter"
539   -msgstr "Remover filtro"
540   -
541   -#: search/templates/search/includes/search_filters.html:88
542   -#: search/templates/search/includes/search_filters.html:152
543   -#: search/templates/search/includes/search_filters.html:176
544   -msgid "Filter"
545   -msgstr "Filtro"
546   -
547   -#: search/templates/search/includes/search_filters.html:94
548   -msgid "Sort by"
549   -msgstr "Ordenar por"
550   -
551   -#: search/templates/search/includes/search_filters.html:111
552   -msgid "Types"
553   -msgstr "Tipos"
554   -
555   -#: search/templates/search/includes/search_filters.html:117 search/views.py:18
556   -msgid "Discussion"
557   -msgstr "Discussão"
558   -
559   -#: search/templates/search/search.html:5
560   -msgid "search"
561   -msgstr "busca"
562   -
563   -#: search/templates/search/search.html:51
564   -msgid "documents found"
565   -msgstr "documentos encontrados"
566   -
567   -#: search/templates/search/search.html:62
568   -msgid "Search here"
569   -msgstr "Pesquise aqui"
570   -
571   -#: search/templates/search/search.html:74
572   -#: search/templates/search/search.html:84
573   -msgid "Filters"
574   -msgstr "Filtros"
575   -
576   -#: search/templates/search/search.html:105
577   -msgid "No results for your search."
578   -msgstr "Não há resultados para sua busca."
579   -
580   -#: search/templates/search/search.html:107
581   -msgid "You are searching for"
582   -msgstr "Você está procurando por"
583   -
584   -#: settings.py:113
585   -msgid "English"
586   -msgstr "Inglês"
587   -
588   -#: settings.py:114
589   -msgid "Portuguese"
590   -msgstr "Português"
591   -
592   -#: settings.py:115
593   -msgid "Spanish"
594   -msgstr "Espanhol"
595   -
596   -#: settings.py:138
597   -msgid "Recent activity"
598   -msgstr "Atividade recente"
599   -
600   -#: settings.py:142
601   -msgid "Relevance"
602   -msgstr "Relevância"
603   -
604   -#: settings.py:151
605   -msgid "Document"
606   -msgstr "Documento"
607   -
608   -#: settings.py:153
609   -msgid "Presentation"
610   -msgstr "Apresentação"
611   -
612   -#: settings.py:154
613   -msgid "Text"
614   -msgstr "Texto"
615   -
616   -#: settings.py:155
617   -msgid "Code"
618   -msgstr "Código"
  181 +#~ msgid "Password (again)"
  182 +#~ msgstr "Senha (novamente)"
619 183  
620   -#: settings.py:157
621   -msgid "Compressed"
622   -msgstr "Compactado"
  184 +#~ msgid "Enter a valid username."
  185 +#~ msgstr "Insira um nome de usuário válido."
623 186  
624   -#: settings.py:158
625   -msgid "Image"
626   -msgstr "Imagem"
  187 +#~ msgid "Group Subscriptions"
  188 +#~ msgstr "Inscrições em grupos"
627 189  
628   -#: settings.py:160
629   -msgid "Spreadsheet"
630   -msgstr "Planilha"
  190 +#~ msgid "Update subscriptions"
  191 +#~ msgstr "Atualizar inscrições"
631 192  
632   -#: templates/404.html:5
633   -msgid "Not found. Keep searching! :)"
634   -msgstr "Não encontrado. Continue procurando! :)"
  193 +#~ msgid "Sign up"
  194 +#~ msgstr "Cadastrar"
635 195  
636   -#: templates/500.html:2
637   -msgid "Ooopz... something went wrong!"
638   -msgstr "Ooopa... algo saiu errado!"
  196 +#~ msgid "Please correct the errors below and try again."
  197 +#~ msgstr "Por favor corrija os erros abaixo e tente novamente."
639 198  
640   -#: templates/base.html:83 templates/header.html:21
641   -msgid "Groups"
642   -msgstr "Grupos"
  199 +#~ msgid "Required fields"
  200 +#~ msgstr "Campos obrigatórios"
643 201  
644   -#: templates/base.html:119 templates/header.html:59
645   -msgid "My Profile"
646   -msgstr "Meu Perfil"
  202 +#~ msgid "Personal Information"
  203 +#~ msgstr "Informações pessoais"
  204 +
  205 +#~ msgid "Subscribe to groups"
  206 +#~ msgstr "Inscreva-se nos grupos"
  207 +
  208 +#~ msgid "Register"
  209 +#~ msgstr "Cadastre-se"
  210 +
  211 +#~ msgid "Messages"
  212 +#~ msgstr "Mensagens"
  213 +
  214 +#~ msgid "Contributions"
  215 +#~ msgstr "Contribuições"
  216 +
  217 +#~ msgid "edit profile"
  218 +#~ msgstr "editar perfil"
  219 +
  220 +#~ msgid "group membership"
  221 +#~ msgstr "Inscrições nos grupos"
  222 +
  223 +#~ msgid "Twitter account"
  224 +#~ msgstr "Conta Twitter"
  225 +
  226 +#~ msgid "Facebook account"
  227 +#~ msgstr "Conta Facebook"
  228 +
  229 +#~ msgid "Google talk account"
  230 +#~ msgstr "Conta Google talk"
  231 +
  232 +#~ msgid "Github account"
  233 +#~ msgstr "Conta Github"
  234 +
  235 +#~ msgid "Personal webpage"
  236 +#~ msgstr "Página web pessoal"
  237 +
  238 +#~ msgid "Groups: "
  239 +#~ msgstr "Grupos: "
  240 +
  241 +#~ msgid "Collaborations by Type"
  242 +#~ msgstr "Colaborações por tipo"
  243 +
  244 +#~ msgid "Participation by Group"
  245 +#~ msgstr "Participação por grupo"
  246 +
  247 +#~ msgid "Latest posted"
  248 +#~ msgstr "Últimas postagens"
  249 +
  250 +#~ msgid "There are no posts by this user so far."
  251 +#~ msgstr "Não há posts deste usuário até agora."
  252 +
  253 +#~ msgid "View more posts..."
  254 +#~ msgstr "Ver mais postagens..."
  255 +
  256 +#~ msgid "Latest contributions"
  257 +#~ msgstr "Últimas colaborações"
  258 +
  259 +#~ msgid "No contributions of this user so far."
  260 +#~ msgstr "Não há contribuições deste usuário até agora."
  261 +
  262 +#~ msgid "View more contributions..."
  263 +#~ msgstr "Ver mais colaborações..."
  264 +
  265 +#~ msgid "We sent a verification email to "
  266 +#~ msgstr "Enviamos um email de verificação para "
  267 +
  268 +#~ msgid "Please follow the instructions in it."
  269 +#~ msgstr "Por favor, siga as instruções."
  270 +
  271 +#~ msgid "profile information"
  272 +#~ msgstr "informações do perfil"
  273 +
  274 +#~ msgid "Change your avatar at Gravatar.com"
  275 +#~ msgstr "Troque seu avatar em Gravatar.com"
  276 +
  277 +#~ msgid "Emails"
  278 +#~ msgstr "Emails"
  279 +
  280 +#~ msgid "Primary"
  281 +#~ msgstr "Primário"
  282 +
  283 +#~ msgid "Setting..."
  284 +#~ msgstr "Definindo..."
  285 +
  286 +#~ msgid "Set as Primary"
  287 +#~ msgstr "Definir como Primário"
  288 +
  289 +#~ msgid "Deleting..."
  290 +#~ msgstr "Apagando..."
  291 +
  292 +#~ msgid "Delete"
  293 +#~ msgstr "Apagar"
  294 +
  295 +#~ msgid "Sending verification..."
  296 +#~ msgstr "Enviando verificação..."
  297 +
  298 +#~ msgid "Verify"
  299 +#~ msgstr "Verificar"
  300 +
  301 +#~ msgid "Add another email address:"
  302 +#~ msgstr "Adicionar outro endereço de email"
  303 +
  304 +#~ msgid "Add"
  305 +#~ msgstr "Adicionar"
  306 +
  307 +#~ msgid "Change Password"
  308 +#~ msgstr "Trocar senha"
  309 +
  310 +#~ msgid "Update"
  311 +#~ msgstr "Atualizar"
  312 +
  313 +#~ msgid "Please correct the error below and try again."
  314 +#~ msgstr "Por favor corrija o erro abaixo e tente novamente."
  315 +
  316 +#~ msgid "Login"
  317 +#~ msgstr "Entrar"
  318 +
  319 +#~ msgid "Forgot Password?"
  320 +#~ msgstr "Esqueci minha Senha?"
  321 +
  322 +#~ msgid "Change my password"
  323 +#~ msgstr "Alterar minha senha"
  324 +
  325 +#~ msgid "Setting New password"
  326 +#~ msgstr "Definir Nova Senha"
  327 +
  328 +#~ msgid ""
  329 +#~ "Forgotten your password? Enter your email address below, and we'll email "
  330 +#~ "instructions for setting a new one."
  331 +#~ msgstr ""
  332 +#~ "Esqueceu sua senha? Digite seu email abaixo, e enviaremos instruções para "
  333 +#~ "redefinir sua senha."
  334 +
  335 +#~ msgid "Email address:"
  336 +#~ msgstr "Endereço de email: "
  337 +
  338 +#~ msgid "Reset password"
  339 +#~ msgstr "Redefinir senha"
  340 +
  341 +#~ msgid "Your profile has been created!"
  342 +#~ msgstr "Seu perfil foi criado!"
  343 +
  344 +#~ msgid "Your password was changed."
  345 +#~ msgstr "Sua senha foi modificada."
  346 +
  347 +#~ msgid "Your password has been set. You may go ahead and log in now."
  348 +#~ msgstr "Sua senha foi modificada. Você já pode efetuar o login agora."
  349 +
  350 +#~ msgid "Fork me!"
  351 +#~ msgstr "Fork me!"
  352 +
  353 +#~ msgid "Gitlab Group"
  354 +#~ msgstr "Grupo no Gitlab"
  355 +
  356 +#~ msgid "Gitlab Groups"
  357 +#~ msgstr "Grupos no Gitlab"
  358 +
  359 +#~ msgid "Gitlab Merge Request"
  360 +#~ msgstr "Envio de Contribuição no Gitlab"
  361 +
  362 +#~ msgid "Gitlab Issue"
  363 +#~ msgstr "Tíquete no Gitlab"
  364 +
  365 +#~ msgid "Gitlab Comments"
  366 +#~ msgstr "Comentários no Gitlab"
  367 +
  368 +#~ msgid "Community"
  369 +#~ msgstr "Comunidade"
  370 +
  371 +#~ msgid "Article"
  372 +#~ msgstr "Artigo"
  373 +
  374 +#~ msgid "Articles"
  375 +#~ msgstr "Artigos"
  376 +
  377 +#~ msgid "Latest Discussions"
  378 +#~ msgstr "Últimas discussões"
  379 +
  380 +#~ msgid "Discussions Most Relevance"
  381 +#~ msgstr "Discussões Mais Relevantes"
  382 +
  383 +#~ msgid "Latest collaborations"
  384 +#~ msgstr "Últimas colaborações"
  385 +
  386 +#~ msgid "Search"
  387 +#~ msgstr "Busca"
  388 +
  389 +#~ msgid "Type"
  390 +#~ msgstr "Tipo"
  391 +
  392 +#~ msgid "Author"
  393 +#~ msgstr "Autor"
  394 +
  395 +#~ msgid "Modified by"
  396 +#~ msgstr "Modificado por"
  397 +
  398 +#~ msgid "Status"
  399 +#~ msgstr "Status"
  400 +
  401 +#~ msgid "Mailinglist"
  402 +#~ msgstr "Lista de discussão"
  403 +
  404 +#~ msgid "Milestone"
  405 +#~ msgstr "Marco"
  406 +
  407 +#~ msgid "Priority"
  408 +#~ msgstr "Prioridade"
  409 +
  410 +#~ msgid "Component"
  411 +#~ msgstr "Componente"
  412 +
  413 +#~ msgid "Severity"
  414 +#~ msgstr "Severidade"
  415 +
  416 +#~ msgid "Reporter"
  417 +#~ msgstr "Relator"
  418 +
  419 +#~ msgid "Keywords"
  420 +#~ msgstr "Palavras chave"
  421 +
  422 +#~ msgid "Collaborators"
  423 +#~ msgstr "Colaboradores"
  424 +
  425 +#~ msgid "Repository"
  426 +#~ msgstr "Repositório"
  427 +
  428 +#~ msgid "Name"
  429 +#~ msgstr "Nome"
  430 +
  431 +#~ msgid "Institution"
  432 +#~ msgstr "Instituição"
  433 +
  434 +#~ msgid "Role"
  435 +#~ msgstr "Papel"
  436 +
  437 +#~ msgid "Since"
  438 +#~ msgstr "Desde"
  439 +
  440 +#~ msgid "Until"
  441 +#~ msgstr "Até"
  442 +
  443 +#~ msgid "Filename"
  444 +#~ msgstr "Nome do arquivo"
  445 +
  446 +#~ msgid "Used by"
  447 +#~ msgstr "Usado por"
  448 +
  449 +#~ msgid "File type"
  450 +#~ msgstr "Tipo do arquivo"
  451 +
  452 +#~ msgid "Size"
  453 +#~ msgstr "Tamanho"
  454 +
  455 +#~ msgid "Remove filter"
  456 +#~ msgstr "Remover filtro"
  457 +
  458 +#~ msgid "Filter"
  459 +#~ msgstr "Filtro"
  460 +
  461 +#~ msgid "Sort by"
  462 +#~ msgstr "Ordenar por"
  463 +
  464 +#~ msgid "Types"
  465 +#~ msgstr "Tipos"
  466 +
  467 +#~ msgid "Discussion"
  468 +#~ msgstr "Discussão"
  469 +
  470 +#~ msgid "search"
  471 +#~ msgstr "busca"
  472 +
  473 +#~ msgid "documents found"
  474 +#~ msgstr "documentos encontrados"
  475 +
  476 +#~ msgid "Search here"
  477 +#~ msgstr "Pesquise aqui"
  478 +
  479 +#~ msgid "Filters"
  480 +#~ msgstr "Filtros"
  481 +
  482 +#~ msgid "No results for your search."
  483 +#~ msgstr "Não há resultados para sua busca."
  484 +
  485 +#~ msgid "You are searching for"
  486 +#~ msgstr "Você está procurando por"
  487 +
  488 +#~ msgid "English"
  489 +#~ msgstr "Inglês"
  490 +
  491 +#~ msgid "Portuguese"
  492 +#~ msgstr "Português"
  493 +
  494 +#~ msgid "Spanish"
  495 +#~ msgstr "Espanhol"
  496 +
  497 +#~ msgid "Recent activity"
  498 +#~ msgstr "Atividade recente"
  499 +
  500 +#~ msgid "Relevance"
  501 +#~ msgstr "Relevância"
  502 +
  503 +#~ msgid "Document"
  504 +#~ msgstr "Documento"
  505 +
  506 +#~ msgid "Presentation"
  507 +#~ msgstr "Apresentação"
  508 +
  509 +#~ msgid "Text"
  510 +#~ msgstr "Texto"
  511 +
  512 +#~ msgid "Compressed"
  513 +#~ msgstr "Compactado"
  514 +
  515 +#~ msgid "Image"
  516 +#~ msgstr "Imagem"
  517 +
  518 +#~ msgid "Spreadsheet"
  519 +#~ msgstr "Planilha"
  520 +
  521 +#~ msgid "Not found. Keep searching! :)"
  522 +#~ msgstr "Não encontrado. Continue procurando! :)"
  523 +
  524 +#~ msgid "Ooopz... something went wrong!"
  525 +#~ msgstr "Ooopa... algo saiu errado!"
647 526  
648   -#: templates/base.html:120 templates/base.html.py:121 templates/header.html:60
649   -#: templates/header.html.py:61
650   -msgid "Logout"
651   -msgstr "Sair"
  527 +#~ msgid "Logout"
  528 +#~ msgstr "Sair"
652 529  
653   -#: templates/base.html:132 templates/base.html.py:135 templates/header.html:72
654   -#: templates/header.html.py:75
655   -msgid "Search here..."
656   -msgstr "Pesquise aqui..."
  530 +#~ msgid "Search here..."
  531 +#~ msgstr "Pesquise aqui..."
657 532  
658   -#: templates/base.html:149
659   -msgid "The login has failed. Please, try again."
660   -msgstr "O login falhou. Por favor, tente novamente."
  533 +#~ msgid "The login has failed. Please, try again."
  534 +#~ msgstr "O login falhou. Por favor, tente novamente."
661 535  
662   -#: templates/footer.html:6
663   -msgid "Last email imported at"
664   -msgstr "Último email importado em"
  536 +#~ msgid "Last email imported at"
  537 +#~ msgstr "Último email importado em"
665 538  
666   -#: templates/footer.html:12
667   -msgid "The contents of this site is published under license"
668   -msgstr "O conteúdo deste site está publicado sob a licença"
  539 +#~ msgid "The contents of this site is published under license"
  540 +#~ msgstr "O conteúdo deste site está publicado sob a licença"
669 541  
670   -#: templates/footer.html:15
671   -msgid "Creative Commons 4.0 Brasil - Atribuir Fonte - Compartilhar Igual"
672   -msgstr "Creative Commons 4.0 Brasil - Atribuir Fonte - Compartilhar Igual"
  542 +#~ msgid "Creative Commons 4.0 Brasil - Atribuir Fonte - Compartilhar Igual"
  543 +#~ msgstr "Creative Commons 4.0 Brasil - Atribuir Fonte - Compartilhar Igual"
673 544  
674   -#: templates/header.html:26
675   -msgid "Paste"
676   -msgstr "Cole aqui"
  545 +#~ msgid "Paste"
  546 +#~ msgstr "Cole aqui"
677 547  
678   -#: templates/home.html:17
679   -msgid "Latest Collaborations"
680   -msgstr "Últimas Colaborações"
  548 +#~ msgid "Latest Collaborations"
  549 +#~ msgstr "Últimas Colaborações"
681 550  
682   -#: templates/home.html:21
683   -msgid "RSS - Latest collaborations"
684   -msgstr "RSS - Últimas Colaborações"
  551 +#~ msgid "RSS - Latest collaborations"
  552 +#~ msgstr "RSS - Últimas Colaborações"
685 553  
686   -#: templates/home.html:30
687   -msgid "View more collaborations..."
688   -msgstr "Ver mais colaborações..."
  554 +#~ msgid "View more collaborations..."
  555 +#~ msgstr "Ver mais colaborações..."
689 556  
690   -#: templates/home.html:37
691   -msgid "Collaboration Graph"
692   -msgstr "Gráfico de Colaborações"
  557 +#~ msgid "Collaboration Graph"
  558 +#~ msgstr "Gráfico de Colaborações"
693 559  
694   -#: templates/home.html:48
695   -msgid "Most Relevant Threads"
696   -msgstr "Discussões Mais Relevantes"
  560 +#~ msgid "Most Relevant Threads"
  561 +#~ msgstr "Discussões Mais Relevantes"
697 562  
698   -#: templates/home.html:52
699   -msgid "RSS - Most Relevant Threads"
700   -msgstr "RSS - Discussões Mais Relevantes"
  563 +#~ msgid "RSS - Most Relevant Threads"
  564 +#~ msgstr "RSS - Discussões Mais Relevantes"
701 565  
702   -#: templates/home.html:60 templates/home.html.py:79
703   -msgid "View more discussions..."
704   -msgstr "Ver mais discussões..."
  566 +#~ msgid "View more discussions..."
  567 +#~ msgstr "Ver mais discussões..."
705 568  
706   -#: templates/home.html:67
707   -msgid "Latest Threads"
708   -msgstr "Últimas Discussões"
  569 +#~ msgid "Latest Threads"
  570 +#~ msgstr "Últimas Discussões"
709 571  
710   -#: templates/home.html:71
711   -msgid "RSS - Latest Threads"
712   -msgstr "RSS - Últimas Discussões"
  572 +#~ msgid "RSS - Latest Threads"
  573 +#~ msgstr "RSS - Últimas Discussões"
... ...
colab/search/templates/dashboard-message-preview.html 0 → 100644
... ... @@ -0,0 +1,3 @@
  1 +{% load i18n tz highlight search_preview_templates %}
  2 +{% get_dashboard_search_preview_templates result as template_target %}
  3 +{% include template_target %}
... ...
colab/search/templates/message-preview.html 0 → 100644
... ... @@ -0,0 +1,3 @@
  1 +{% load i18n tz highlight search_preview_templates %}
  2 +{% get_search_preview_templates result as template_target %}
  3 +{% include template_target %}
... ...
colab/search/templatetags/__init__.py 0 → 100644
colab/search/templatetags/search_preview_templates.py 0 → 100644
... ... @@ -0,0 +1,18 @@
  1 +from django import template
  2 +
  3 +
  4 +register = template.Library()
  5 +
  6 +
  7 +@register.assignment_tag
  8 +def get_search_preview_templates(model_indexed):
  9 + app_type = model_indexed.type
  10 +
  11 + return "search/{}_search_preview.html".format(app_type)
  12 +
  13 +
  14 +@register.assignment_tag
  15 +def get_dashboard_search_preview_templates(model_indexed):
  16 + app_type = model_indexed.type
  17 +
  18 + return "dashboard/{}_search_preview.html".format(app_type)
... ...
colab/search/tests.py
... ... @@ -1,130 +0,0 @@
1   -# -*- coding:utf-8 -*-
2   -
3   -import mock
4   -
5   -from colab.plugins.utils import filters_importer
6   -from django.test import TestCase, Client
7   -from django.core.management import call_command
8   -from colab.search.forms import ColabSearchForm
9   -
10   -
11   -class SearchViewTest(TestCase):
12   -
13   - fixtures = ['test_data.json']
14   -
15   - def setUp(self):
16   - call_command('rebuild_index', interactive=False, verbosity=0)
17   - self.client = Client()
18   -
19   - def tearDown(self):
20   - call_command('clear_index', interactive=False, verbosity=0)
21   -
22   - def test_search_thread(self):
23   - request = self.client.get('/search/?q=thread')
24   - thread_list = request.context['page'].object_list
25   -
26   - self.assertEqual(3, len(thread_list))
27   -
28   - condition = any('This is a repply to Thread 1 on list A' in
29   - t.description for t in thread_list)
30   - self.assertTrue(condition)
31   - condition = any('This is a repply to Thread 1 on list B' in
32   - t.description for t in thread_list)
33   - self.assertTrue(condition)
34   - condition = any('This is a repply to Thread 1 on list C' in
35   - t.description for t in thread_list)
36   - self.assertTrue(condition)
37   -
38   - def test_search_account_by_firstName(self):
39   - request = self.client.get('/search/?q=Chuck')
40   - user_list = request.context['page'].object_list
41   -
42   - self.assertEqual(1, len(user_list))
43   -
44   - self.assertIn('chucknorris@mail.com', user_list[0].object.email)
45   - self.assertIn('Chuck', user_list[0].object.first_name)
46   - self.assertIn('Norris', user_list[0].object.last_name)
47   - self.assertIn('chucknorris', user_list[0].object.username)
48   -
49   - def test_search_account_by_lastName(self):
50   - request = self.client.get('/search/?q=Norris')
51   - user_list = request.context['page'].object_list
52   -
53   - self.assertEqual(2, len(user_list))
54   -
55   - self.assertIn('heisenberg@mail.com', user_list[1].object.email)
56   - self.assertIn('Heisenberg', user_list[1].object.first_name)
57   - self.assertIn('Norris', user_list[1].object.last_name)
58   - self.assertIn('heisenbergnorris', user_list[1].object.username)
59   -
60   - self.assertIn('chucknorris@mail.com', user_list[0].object.email)
61   - self.assertIn('Chuck', user_list[0].object.first_name)
62   - self.assertIn('Norris', user_list[0].object.last_name)
63   - self.assertIn('chucknorris', user_list[0].object.username)
64   -
65   - def test_search_plugin_filters(self):
66   - plugin_filter = {
67   - 'plugin_name': {
68   - 'name': 'PluginData',
69   - 'icon': 'plugin_icon',
70   - 'fields': (
71   - ('field_1', 'Field1', ''),
72   - ('field_2', 'Field2', ''),
73   - ),
74   - },
75   - }
76   - filters_importer.import_plugin_filters = mock.Mock(
77   - return_value=plugin_filter)
78   -
79   - request = self.client.get('/search/?q=')
80   -
81   - value = [('plugin_name', 'PluginData', 'plugin_icon')]
82   -
83   - self.assertEqual(request.context['filters_options'], value)
84   -
85   - def test_search_dynamic_form_fields(self):
86   - plugin_filter = {
87   - 'plugin_name': {
88   - 'name': 'PluginData',
89   - 'icon': 'plugin_icon',
90   - 'fields': (
91   - ('field_1', 'Field1', ''),
92   - ('field_2', 'Field2', ''),
93   - ),
94   - },
95   - }
96   - filters_importer.import_plugin_filters = mock.Mock(
97   - return_value=plugin_filter)
98   -
99   - form = ColabSearchForm()
100   -
101   - self.assertIn('field_1', form.fields.keys())
102   - self.assertIn('field_2', form.fields.keys())
103   -
104   - def test_search_multiple_filters(self):
105   - request = self.client.get('/search/?q=&type=thread+user')
106   - user_list = request.context['page'].object_list
107   -
108   - self.assertEqual(6, len(user_list))
109   -
110   - self.assertIn('admin@mail.com', user_list[0].object.email)
111   - self.assertIn('admin', user_list[0].object.username)
112   -
113   - self.assertIn('chucknorris@mail.com', user_list[1].object.email)
114   - self.assertIn('Chuck', user_list[1].object.first_name)
115   - self.assertIn('Norris', user_list[1].object.last_name)
116   - self.assertIn('chucknorris', user_list[1].object.username)
117   -
118   - self.assertIn('heisenberg@mail.com', user_list[2].object.email)
119   - self.assertIn('Heisenberg', user_list[2].object.first_name)
120   - self.assertIn('Norris', user_list[2].object.last_name)
121   - self.assertIn('heisenbergnorris', user_list[2].object.username)
122   -
123   - self.assertIn('Admin Administrator', user_list[3].author)
124   - self.assertIn('Response to Thread 1A', user_list[3].title)
125   -
126   - self.assertIn('Admin Administrator', user_list[4].author)
127   - self.assertIn('Message 1 on Thread 1B', user_list[4].title)
128   -
129   - self.assertIn('Admin Administrator', user_list[5].author)
130   - self.assertIn('Message 1 on Thread 1C', user_list[5].title)
colab/search/tests/__init__.py 0 → 100644
colab/search/tests/test_search_view.py 0 → 100644
... ... @@ -0,0 +1,130 @@
  1 +# -*- coding:utf-8 -*-
  2 +
  3 +import mock
  4 +
  5 +from colab.plugins.utils import filters_importer
  6 +from django.test import TestCase, Client
  7 +from django.core.management import call_command
  8 +from colab.search.forms import ColabSearchForm
  9 +
  10 +
  11 +class SearchViewTest(TestCase):
  12 +
  13 + fixtures = ['test_data.json']
  14 +
  15 + def setUp(self):
  16 + call_command('rebuild_index', interactive=False, verbosity=0)
  17 + self.client = Client()
  18 +
  19 + def tearDown(self):
  20 + call_command('clear_index', interactive=False, verbosity=0)
  21 +
  22 + def test_search_thread(self):
  23 + request = self.client.get('/search/?q=thread')
  24 + thread_list = request.context['page'].object_list
  25 +
  26 + self.assertEqual(3, len(thread_list))
  27 +
  28 + condition = any('This is a repply to Thread 1 on list A' in
  29 + t.description for t in thread_list)
  30 + self.assertTrue(condition)
  31 + condition = any('This is a repply to Thread 1 on list B' in
  32 + t.description for t in thread_list)
  33 + self.assertTrue(condition)
  34 + condition = any('This is a repply to Thread 1 on list C' in
  35 + t.description for t in thread_list)
  36 + self.assertTrue(condition)
  37 +
  38 + def test_search_account_by_firstName(self):
  39 + request = self.client.get('/search/?q=Chuck')
  40 + user_list = request.context['page'].object_list
  41 +
  42 + self.assertEqual(1, len(user_list))
  43 +
  44 + self.assertIn('chucknorris@mail.com', user_list[0].object.email)
  45 + self.assertIn('Chuck', user_list[0].object.first_name)
  46 + self.assertIn('Norris', user_list[0].object.last_name)
  47 + self.assertIn('chucknorris', user_list[0].object.username)
  48 +
  49 + def test_search_account_by_lastName(self):
  50 + request = self.client.get('/search/?q=Norris')
  51 + user_list = request.context['page'].object_list
  52 +
  53 + self.assertEqual(2, len(user_list))
  54 +
  55 + self.assertIn('heisenberg@mail.com', user_list[1].object.email)
  56 + self.assertIn('Heisenberg', user_list[1].object.first_name)
  57 + self.assertIn('Norris', user_list[1].object.last_name)
  58 + self.assertIn('heisenbergnorris', user_list[1].object.username)
  59 +
  60 + self.assertIn('chucknorris@mail.com', user_list[0].object.email)
  61 + self.assertIn('Chuck', user_list[0].object.first_name)
  62 + self.assertIn('Norris', user_list[0].object.last_name)
  63 + self.assertIn('chucknorris', user_list[0].object.username)
  64 +
  65 + def test_search_plugin_filters(self):
  66 + plugin_filter = {
  67 + 'plugin_name': {
  68 + 'name': 'PluginData',
  69 + 'icon': 'plugin_icon',
  70 + 'fields': (
  71 + ('field_1', 'Field1', ''),
  72 + ('field_2', 'Field2', ''),
  73 + ),
  74 + },
  75 + }
  76 + filters_importer.import_plugin_filters = mock.Mock(
  77 + return_value=plugin_filter)
  78 +
  79 + request = self.client.get('/search/?q=')
  80 +
  81 + value = [('plugin_name', 'PluginData', 'plugin_icon')]
  82 +
  83 + self.assertEqual(request.context['filters_options'], value)
  84 +
  85 + def test_search_dynamic_form_fields(self):
  86 + plugin_filter = {
  87 + 'plugin_name': {
  88 + 'name': 'PluginData',
  89 + 'icon': 'plugin_icon',
  90 + 'fields': (
  91 + ('field_1', 'Field1', ''),
  92 + ('field_2', 'Field2', ''),
  93 + ),
  94 + },
  95 + }
  96 + filters_importer.import_plugin_filters = mock.Mock(
  97 + return_value=plugin_filter)
  98 +
  99 + form = ColabSearchForm()
  100 +
  101 + self.assertIn('field_1', form.fields.keys())
  102 + self.assertIn('field_2', form.fields.keys())
  103 +
  104 + def test_search_multiple_filters(self):
  105 + request = self.client.get('/search/?q=&type=thread+user')
  106 + user_list = request.context['page'].object_list
  107 +
  108 + self.assertEqual(6, len(user_list))
  109 +
  110 + self.assertIn('admin@mail.com', user_list[0].object.email)
  111 + self.assertIn('admin', user_list[0].object.username)
  112 +
  113 + self.assertIn('chucknorris@mail.com', user_list[1].object.email)
  114 + self.assertIn('Chuck', user_list[1].object.first_name)
  115 + self.assertIn('Norris', user_list[1].object.last_name)
  116 + self.assertIn('chucknorris', user_list[1].object.username)
  117 +
  118 + self.assertIn('heisenberg@mail.com', user_list[2].object.email)
  119 + self.assertIn('Heisenberg', user_list[2].object.first_name)
  120 + self.assertIn('Norris', user_list[2].object.last_name)
  121 + self.assertIn('heisenbergnorris', user_list[2].object.username)
  122 +
  123 + self.assertIn('Admin Administrator', user_list[3].author)
  124 + self.assertIn('Response to Thread 1A', user_list[3].title)
  125 +
  126 + self.assertIn('Admin Administrator', user_list[4].author)
  127 + self.assertIn('Message 1 on Thread 1B', user_list[4].title)
  128 +
  129 + self.assertIn('Admin Administrator', user_list[5].author)
  130 + self.assertIn('Message 1 on Thread 1C', user_list[5].title)
... ...
colab/search/tests/test_templatetags.py 0 → 100644
... ... @@ -0,0 +1,34 @@
  1 +# -*- coding:utf-8 -*-
  2 +
  3 +from django.test import TestCase
  4 +from colab.search.templatetags.search_preview_templates import (
  5 + get_search_preview_templates)
  6 +from mock import MagicMock, PropertyMock
  7 +
  8 +
  9 +class SearchTemplateTagsTest(TestCase):
  10 +
  11 + def setUp(self):
  12 + self.model_indexed_mock = MagicMock()
  13 + self.template_path = "{}/{}_search_preview.html"
  14 +
  15 + def set_mock_value(self, value):
  16 + type(self.model_indexed_mock).type = PropertyMock(return_value=value)
  17 +
  18 + def test_get_search_preview_templates_with_user(self):
  19 + self.set_mock_value("user")
  20 + include_path = get_search_preview_templates(self.model_indexed_mock)
  21 + self.assertEqual(include_path, self.template_path.format("search",
  22 + "user"))
  23 +
  24 + def test_get_search_preview_templates_with_thread(self):
  25 + self.set_mock_value("thread")
  26 + include_path = get_search_preview_templates(self.model_indexed_mock)
  27 + self.assertEqual(include_path,
  28 + self.template_path.format("search", "thread"))
  29 +
  30 + def test_get_search_preview_templates_with_plugin(self):
  31 + self.set_mock_value("plugin_model")
  32 + include_path = get_search_preview_templates(self.model_indexed_mock)
  33 + self.assertEqual(include_path,
  34 + self.template_path.format("search", "plugin_model"))
... ...
colab/super_archives/templates/dashboard/thread_search_preview.html 0 → 100644
... ... @@ -0,0 +1,69 @@
  1 +{% load i18n tz highlight %}
  2 +
  3 +<li class="preview-message">
  4 +<span class="glyphicon glyphicon-{{ result.icon_name }}" title="{{ result.type }}"></span>
  5 +
  6 +{% if result.tag %}
  7 +<a href="{% firstof result.mailinglist_url result.mailinglist.get_absolute_url result.url %}">
  8 + <span class="label label-primary">{{ result.tag }}</span>
  9 +</a>
  10 +{% endif %}
  11 +
  12 +{% if result.title %}
  13 + <a href="{{ result.url }}{% if result.type == 'thread' and result.latest_message_pk %}#msg-{{ result.latest_message_pk }}{% elif result.type == 'thread' and result.pk %}#msg-{{ result.pk }}{% endif %}" {% if result.latest_description %}title="{{ result.latest_description|escape|truncatechars:150 }}"{% elif result.description %}title="{{ result.description|escape|truncatechars:150 }}"{% endif %}>
  14 + <span class="subject">
  15 + <!-- a striptags filter was raising an error here because using with highlight -->
  16 + {% if query %}
  17 + {% highlight result.title with query max_length "1000" %}
  18 + {% else %}
  19 + {{ result.title }}
  20 + {% endif %}
  21 + </span>
  22 + </a>
  23 +{% endif %}
  24 +
  25 +{% if result.description %}
  26 + <!-- a striptags filter was raising an error here because using with highlight -->
  27 + <span class="quiet">- {% if query %}
  28 + {% highlight result.description with query max_length "150" %}
  29 + {% else %}
  30 + {% if result.latest_description %}
  31 + {{ result.latest_description|striptags|escape|truncatechars:150 }}
  32 + {% elif result.description %}
  33 + {{ result.description|striptags|escape|truncatechars:150 }}
  34 + {% endif %}
  35 + {% endif %}
  36 + </span>
  37 +{% endif %}
  38 +
  39 +{% if result.fullname or result.modified or result.modified_by %}
  40 + <div class="quiet">
  41 + {% if result.modified_by %}
  42 + <span class="pull-left">{% trans "by" %}
  43 + {% if result.modified_by_url %}
  44 + <a href="{{ result.modified_by_url }}">
  45 + {% else %}
  46 + <span>
  47 + {% endif %}
  48 +
  49 + {% if query %}
  50 + {% highlight result.modified_by with query %}
  51 + {% else %}
  52 + {{ result.modified_by }}
  53 + {% endif %}
  54 +
  55 + {% if result.modified_by_url %}
  56 + </a>
  57 + {% else %}
  58 + </span>
  59 + {% endif %}
  60 + </span>
  61 + {% else %}
  62 + <span class="pull-left">{% trans "by" %} {% trans "Anonymous" %}</span>
  63 + {% endif %}
  64 + {% if result.modified %}
  65 + <span class="pull-right">{{ result.modified|localtime|timesince }} {% trans "ago" %}</span>
  66 + {% endif %}
  67 + </div>
  68 +{% endif %}
  69 +</li>
0 70 \ No newline at end of file
... ...
colab/super_archives/templates/message-preview.html
... ... @@ -1,69 +0,0 @@
1   -{% load i18n tz highlight %}
2   -
3   -<li class="preview-message">
4   -<span class="glyphicon glyphicon-{{ result.icon_name }}" title="{{ result.type }}"></span>
5   -
6   -{% if result.tag %}
7   -<a href="{% firstof result.mailinglist_url result.mailinglist.get_absolute_url result.url %}">
8   - <span class="label label-primary">{{ result.tag }}</span>
9   -</a>
10   -{% endif %}
11   -
12   -{% if result.title %}
13   - <a href="{{ result.url }}{% if result.type == 'thread' and result.latest_message_pk %}#msg-{{ result.latest_message_pk }}{% elif result.type == 'thread' and result.pk %}#msg-{{ result.pk }}{% endif %}" {% if result.latest_description %}title="{{ result.latest_description|escape|truncatechars:150 }}"{% elif result.description %}title="{{ result.description|escape|truncatechars:150 }}"{% endif %}>
14   - <span class="subject">
15   - <!-- a striptags filter was raising an error here because using with highlight -->
16   - {% if query %}
17   - {% highlight result.title with query max_length "1000" %}
18   - {% else %}
19   - {{ result.title }}
20   - {% endif %}
21   - </span>
22   - </a>
23   -{% endif %}
24   -
25   -{% if result.description %}
26   - <!-- a striptags filter was raising an error here because using with highlight -->
27   - <span class="quiet">- {% if query %}
28   - {% highlight result.description with query max_length "150" %}
29   - {% else %}
30   - {% if result.latest_description %}
31   - {{ result.latest_description|striptags|escape|truncatechars:150 }}
32   - {% elif result.description %}
33   - {{ result.description|striptags|escape|truncatechars:150 }}
34   - {% endif %}
35   - {% endif %}
36   - </span>
37   -{% endif %}
38   -
39   -{% if result.fullname or result.modified or result.modified_by %}
40   - <div class="quiet">
41   - {% if result.modified_by %}
42   - <span class="pull-left">{% trans "by" %}
43   - {% if result.modified_by_url %}
44   - <a href="{{ result.modified_by_url }}">
45   - {% else %}
46   - <span>
47   - {% endif %}
48   -
49   - {% if query %}
50   - {% highlight result.modified_by with query %}
51   - {% else %}
52   - {{ result.modified_by }}
53   - {% endif %}
54   -
55   - {% if result.modified_by_url %}
56   - </a>
57   - {% else %}
58   - </span>
59   - {% endif %}
60   - </span>
61   - {% else %}
62   - <span class="pull-left">{% trans "by" %} {% trans "Anonymous" %}</span>
63   - {% endif %}
64   - {% if result.modified %}
65   - <span class="pull-right">{{ result.modified|localtime|timesince }} {% trans "ago" %}</span>
66   - {% endif %}
67   - </div>
68   -{% endif %}
69   -</li>
colab/super_archives/templates/search/thread_search_preview.html 0 → 100644
... ... @@ -0,0 +1,13 @@
  1 +{% load i18n tz highlight date_format %}
  2 +
  3 +<div class="row">
  4 + <div class="col-md-12">
  5 + <small>{% datetime_format result.modified %} - <a href="{{result.modified_by_url}}">{{ result.modified_by }}</a></small><br>
  6 + <h4><a href="{{result.url}}">{{ result.title }}</a></h4>
  7 + {% with result.latest_description|truncatewords:"85" as description %}
  8 + {{description | default_if_none:"a"}}<br>
  9 + {% endwith %}
  10 + <small>{% trans "Registred in" %}: <strong>{% trans "Discussion" %}</strong></small>
  11 + </div>
  12 + <hr>
  13 +</div>
... ...
colab/templates/home.html
... ... @@ -22,7 +22,7 @@
22 22 </a>
23 23 <ul class="message-list">
24 24 {% for result in latest_results %}
25   - {% include "message-preview.html" %}
  25 + {% include "dashboard-message-preview.html" %}
26 26 {% endfor %}
27 27 </ul>
28 28 <a class="column-align"
... ... @@ -53,7 +53,7 @@
53 53 </a>
54 54 <ul class="message-list">
55 55 {% for thread in hottest_threads %}
56   - {% include "message-preview.html" with result=thread %}
  56 + {% include "dashboard-message-preview.html" with result=thread %}
57 57 {% endfor %}
58 58 </ul>
59 59 <a href="{% url 'haystack_search' %}?type=thread">
... ... @@ -72,7 +72,7 @@
72 72 </a>
73 73 <ul class="message-list">
74 74 {% for thread in latest_threads %}
75   - {% include "message-preview.html" with result=thread.latest_message %}
  75 + {% include "dashboard-message-preview.html" with result=thread.latest_message %}
76 76 {% endfor %}
77 77 </ul>
78 78 <a href="{% url 'haystack_search' %}?type=thread&amp;order=latest">
... ...