Compare View

switch
from
...
to
 
Commits (27)
@@ -50,8 +50,18 @@ First install the dependencies and than the project it self: @@ -50,8 +50,18 @@ First install the dependencies and than the project it self:
50 50
51 .. code-block:: 51 .. code-block::
52 52
53 - pip install -r requirements.txt  
54 - pip install . 53 + pip install -e .
  54 +
  55 +Development environment
  56 +-----------------------
  57 +
  58 +You must install vagrant to set up the development environment. With vagrant available you should run:
  59 +
  60 +.. code-block::
  61 +
  62 + vagrant up
  63 +
  64 +During the process you should choose the vagrant box that you want to use. In the end you should have a virtual machine with development environment set up.
55 65
56 66
57 67
@@ -60,13 +70,17 @@ Running Colab @@ -60,13 +70,17 @@ Running Colab
60 70
61 To run Colab with development server you will have to: 71 To run Colab with development server you will have to:
62 72
63 -1- Create the example configuration file: 73 +1- Log in virtual machine:
64 74
65 .. code-block:: 75 .. code-block::
66 76
67 - colab-admin initconfig > /etc/colab/settings.py 77 + vagrant ssh
68 78
69 -2- Edit the configuration file. Make sure you set everything you need including **database** credentials. 79 +2- Use colab virtualenv:
  80 +
  81 +.. code-block::
  82 +
  83 + workon colab
70 84
71 3- Run the development server: 85 3- Run the development server:
72 86
@@ -74,6 +88,7 @@ To run Colab with development server you will have to: @@ -74,6 +88,7 @@ To run Colab with development server you will have to:
74 88
75 colab-admin runserver 0.0.0.0:8000 89 colab-admin runserver 0.0.0.0:8000
76 90
  91 +Now you can access colab in your browser via http://localhost:8000
77 92
78 **NOTE**: In case you want to keep the configuration file else where just set the 93 **NOTE**: In case you want to keep the configuration file else where just set the
79 desired location in environment variable **COLAB_SETTINGS**. 94 desired location in environment variable **COLAB_SETTINGS**.
@@ -84,12 +99,33 @@ About test @@ -84,12 +99,33 @@ About test
84 How to write a test 99 How to write a test
85 -------------------- 100 --------------------
86 Inside of each folder on /vagrant/colab/<folder> you can create a folder called 101 Inside of each folder on /vagrant/colab/<folder> you can create a folder called
87 -"tests", and inside of it implements the code for test each file. 102 +"tests" and inside of it implements the code for test each file. Remember that you should create __init__.py file.
88 103
89 How to run the tests 104 How to run the tests
90 -------------------- 105 --------------------
91 106
92 Follow the steps below: 107 Follow the steps below:
93 108
94 -* Go to vagrant/colab/  
95 -* run: ./runtests.sh 109 +1- Log in virtual machine:
  110 +
  111 +.. code-block::
  112 +
  113 + vagrant ssh
  114 +
  115 +2- Use colab virtualenv:
  116 +
  117 +.. code-block::
  118 +
  119 + workon colab
  120 +
  121 +3- Enter into colab source code directory:
  122 +
  123 +.. code-block::
  124 +
  125 + cd /vagrant
  126 +
  127 +4- Run tests with setup.py:
  128 +
  129 +.. code-block::
  130 +
  131 + python setup.py test
colab/accounts/forms.py
@@ -237,6 +237,7 @@ class UserChangeForm(forms.ModelForm): @@ -237,6 +237,7 @@ class UserChangeForm(forms.ModelForm):
237 help_text=_("Required. 30 characters or fewer. Letters and digits."), 237 help_text=_("Required. 30 characters or fewer. Letters and digits."),
238 error_messages={ 238 error_messages={
239 'invalid': _("This value may contain only letters and numbers.")}) 239 'invalid': _("This value may contain only letters and numbers.")})
  240 + # TODO: remove this hardcoded URL from here
240 password = ReadOnlyPasswordHashField(label=_("Password"), 241 password = ReadOnlyPasswordHashField(label=_("Password"),
241 help_text=_("Raw passwords are not" 242 help_text=_("Raw passwords are not"
242 " stored, so there is no" 243 " stored, so there is no"
colab/accounts/templates/accounts/user_update_form.html
1 {% extends "base.html" %} 1 {% extends "base.html" %}
2 -{% load i18n gravatar %} 2 +{% load i18n gravatar plugins %}
3 3
4 {% block head_js %} 4 {% block head_js %}
5 <script> 5 <script>
@@ -102,6 +102,14 @@ $(function() { @@ -102,6 +102,14 @@ $(function() {
102 </script> 102 </script>
103 {% endblock %} 103 {% endblock %}
104 104
  105 +{% block head %}
  106 + {{ block.super }}
  107 +
  108 + {% for widget in widgets %}
  109 + {{ widget.get_header }}
  110 + {% endfor %}
  111 +
  112 +{% endblock %}
105 113
106 {% block main-content %} 114 {% block main-content %}
107 115
@@ -118,83 +126,115 @@ $(function() { @@ -118,83 +126,115 @@ $(function() {
118 <br> 126 <br>
119 <br> 127 <br>
120 128
121 - <form method="post">  
122 - {% csrf_token %}  
123 -  
124 - <div class="row">  
125 - <div class="col-lg-8 col-md-7 col-sm-12 col-xm-12">  
126 - {% for field in form %}  
127 - <div class="col-lg-6 col-md-6 col-sm-12 col-xm-12">  
128 - <div class="form-group{% if field.field.required %} required{% endif %}{% if field.errors %} alert alert-danger has-error{% endif %}">  
129 - <label for="{{ field.name }}" class="control-label">  
130 - {{ field.label }}  
131 - </label>  
132 - {{ field }}  
133 - {{ field.errors }}  
134 - </div>  
135 - </div>  
136 - {% endfor %}  
137 - </div> 129 + <!-- Start of navs -->
  130 + <ul class="nav nav-tabs">
  131 + <li class="active"><a data-toggle="pill" href="#profile">Profile</a></li>
  132 + {% for widget in widgets %}
  133 + <li>
  134 + <a data-toggle="pill" href="#{{ widget.identifier }}">{{ widget.name }}</a>
  135 + </li>
  136 + {% endfor %}
  137 + </ul>
  138 + <!-- End of navs -->
  139 + <style type="text/css">
  140 + .tab-pane{
  141 + border: 1px solid #DDD;
  142 + border-top: none;
  143 + padding: 10px;
  144 + }
138 145
139 - <div class="col-lg-4 col-md-5 col-sm-12 col-xm-12">  
140 - <div class="panel panel-default">  
141 - <div class="panel-heading">  
142 - <h3 class="panel-title">{% trans "Emails" %}</h3>  
143 - </div>  
144 - <div class="panel-body">  
145 - <ul class="unstyled-list emails">  
146 - {% for email in user_.emails.iterator %}  
147 - <li>  
148 - {% gravatar user_.email 30 %}  
149 - <span class="email-address">{{ email.address }}</span>  
150 - {% if email.address == user_.email %}  
151 - <span class="label label-success">{% trans "Primary" %}</span>  
152 - {% else %}  
153 - <div class="text-right">  
154 - <button class="btn btn-default set-primary" data-loading-text="{% trans 'Setting...' %}">{% trans "Set as Primary" %}</button>  
155 - <button class="btn btn-danger delete-email" data-loading-text="{% trans 'Deleting...' %}">{% trans "Delete" %}</button>  
156 - </div>  
157 - {% endif %}  
158 - <hr />  
159 - </li> 146 + .nav-tabs a:focus {
  147 + outline: none;
  148 + }
  149 + </style>
  150 + <div class="tab-content">
  151 + <div id="profile" class="tab-pane fade in active">
  152 + <form method="post">
  153 + {% csrf_token %}
  154 +
  155 + <div class="row">
  156 + <div class="col-lg-8 col-md-7 col-sm-12 col-xm-12">
  157 + {% for field in form %}
  158 + <div class="col-lg-6 col-md-6 col-sm-12 col-xm-12">
  159 + <div class="form-group{% if field.field.required %} required{% endif %}{% if field.errors %} alert alert-danger has-error{% endif %}">
  160 + <label for="{{ field.name }}" class="control-label">
  161 + {{ field.label }}
  162 + </label>
  163 + {{ field }}
  164 + {{ field.errors }}
  165 + </div>
  166 + </div>
160 {% endfor %} 167 {% endfor %}
161 - {% for email in user_.emails_not_validated.iterator %}  
162 - <li>  
163 - {% gravatar user_.email 30 %}  
164 - <span class="email-address">{{ email.address }}</span>  
165 - <div class="text-right">  
166 - <button class="btn btn-default verify-email" data-loading-text="{% trans 'Sending verification...' %}"><span class="icon-warning-sign"></span> {% trans "Verify" %}</button>  
167 - <button class="btn btn-danger delete-email">{% trans "Delete" %}</button> 168 + </div>
  169 +
  170 + <div class="col-lg-4 col-md-5 col-sm-12 col-xm-12">
  171 + <div class="panel panel-default">
  172 + <div class="panel-heading">
  173 + <h3 class="panel-title">{% trans "Emails" %}</h3>
  174 + </div>
  175 + <div class="panel-body">
  176 + <ul class="unstyled-list emails">
  177 + {% for email in user_.emails.iterator %}
  178 + <li>
  179 + {% gravatar user_.email 30 %}
  180 + <span class="email-address">{{ email.address }}</span>
  181 + {% if email.address == user_.email %}
  182 + <span class="label label-success">{% trans "Primary" %}</span>
  183 + {% else %}
  184 + <div class="text-right">
  185 + <button class="btn btn-default set-primary" data-loading-text="{% trans 'Setting...' %}">{% trans "Set as Primary" %}</button>
  186 + <button class="btn btn-danger delete-email" data-loading-text="{% trans 'Deleting...' %}">{% trans "Delete" %}</button>
  187 + </div>
  188 + {% endif %}
  189 + <hr />
  190 + </li>
  191 + {% endfor %}
  192 + {% for email in user_.emails_not_validated.iterator %}
  193 + <li>
  194 + {% gravatar user_.email 30 %}
  195 + <span class="email-address">{{ email.address }}</span>
  196 + <div class="text-right">
  197 + <button class="btn btn-default verify-email" data-loading-text="{% trans 'Sending verification...' %}"><span class="icon-warning-sign"></span> {% trans "Verify" %}</button>
  198 + <button class="btn btn-danger delete-email">{% trans "Delete" %}</button>
  199 + </div>
  200 + <hr />
  201 + </li>
  202 + {% endfor %}
  203 + </ul>
  204 + <div class="form-group">
  205 + <label for="new_email">{% trans "Add another email address:" %}</label>
  206 + <input id="new_email" name="new_email" class="form-control" autocomplete="off" />
168 </div> 207 </div>
169 - <hr />  
170 - </li>  
171 - {% endfor %}  
172 - </ul>  
173 - <div class="form-group">  
174 - <label for="new_email">{% trans "Add another email address:" %}</label>  
175 - <input id="new_email" name="new_email" class="form-control" autocomplete="off" /> 208 + <button class="btn btn-primary pull-right" id="add-email">{% trans "Add" %}</button>
  209 + </div>
176 </div> 210 </div>
177 - <button class="btn btn-primary pull-right" id="add-email">{% trans "Add" %}</button>  
178 </div> 211 </div>
179 - </div>  
180 - </div>  
181 - <div class="col-lg-4 col-md-5 col-sm-12 col-xm-12">  
182 - <div class="panel panel-default">  
183 - <div class="panel-heading">  
184 - <h3 class="panel-title">  
185 - {% trans 'Change Password' %}  
186 - </h3> 212 + <div class="col-lg-4 col-md-5 col-sm-12 col-xm-12">
  213 + <div class="panel panel-default">
  214 + <div class="panel-heading">
  215 + <h3 class="panel-title">
  216 + {% trans 'Change Password' %}
  217 + </h3>
  218 + </div>
  219 + <div class="panel-body">
  220 + <a href="{% url 'password_change' %}" class="btn btn-default btn-primary pull-right btn-block">{% trans "Change Password" %}</a>
  221 + </div>
  222 + </div>
187 </div> 223 </div>
188 - <div class="panel-body">  
189 - <a href="{% url 'password_change' %}" class="btn btn-default btn-primary pull-right btn-block">{% trans "Change Password" %}</a> 224 + </div>
  225 + <div class="row">
  226 + <div class="submit">
  227 + <button type="submit" class="btn btn-primary btn-lg btn-block">{% trans "Update" %}</button>
190 </div> 228 </div>
191 </div> 229 </div>
192 - </div> 230 + </form>
193 </div> 231 </div>
194 - <div class="row">  
195 - <div class="submit">  
196 - <button type="submit" class="btn btn-primary btn-lg btn-block">{% trans "Update" %}</button> 232 + {% for widget in widgets %}
  233 + <div id="{{ widget.identifier }}" class="tab-pane fade">
  234 + <h2>{{ widget.name }}</h2>
  235 + {{ widget.get_body }}
197 </div> 236 </div>
198 - </div>  
199 - </form> 237 + {% endfor %}
  238 + </div>
  239 +
200 {% endblock %} 240 {% endblock %}
colab/accounts/views.py
@@ -15,6 +15,7 @@ from colab.super_archives.models import (EmailAddress, @@ -15,6 +15,7 @@ from colab.super_archives.models import (EmailAddress,
15 EmailAddressValidation) 15 EmailAddressValidation)
16 from colab.search.utils import get_collaboration_data, get_visible_threads 16 from colab.search.utils import get_collaboration_data, get_visible_threads
17 from colab.accounts.models import User 17 from colab.accounts.models import User
  18 +from colab.widgets.widget_manager import WidgetManager
18 19
19 from .forms import (UserCreationForm, ListsForm, UserUpdateForm) 20 from .forms import (UserCreationForm, ListsForm, UserUpdateForm)
20 from .utils import mailman 21 from .utils import mailman
@@ -42,6 +43,12 @@ class UserProfileUpdateView(UserProfileBaseMixin, UpdateView): @@ -42,6 +43,12 @@ class UserProfileUpdateView(UserProfileBaseMixin, UpdateView):
42 43
43 return obj 44 return obj
44 45
  46 + def get_context_data(self, **kwargs):
  47 + context = {}
  48 + context['widgets'] = WidgetManager.get_widgets('profile', self.request)
  49 + context.update(kwargs)
  50 + return super(UserProfileUpdateView, self).get_context_data(**context)
  51 +
45 52
46 class UserProfileDetailView(UserProfileBaseMixin, DetailView): 53 class UserProfileDetailView(UserProfileBaseMixin, DetailView):
47 template_name = 'accounts/user_detail.html' 54 template_name = 'accounts/user_detail.html'
colab/locale/en/LC_MESSAGES/django.mo
No preview for this file type
colab/locale/en/LC_MESSAGES/django.po
1 # SOME DESCRIPTIVE TITLE. 1 # SOME DESCRIPTIVE TITLE.
2 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 2 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3 # This file is distributed under the same license as the PACKAGE package. 3 # This file is distributed under the same license as the PACKAGE package.
4 -# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.  
5 -#  
6 -#, fuzzy 4 +#
  5 +# Translators:
7 msgid "" 6 msgid ""
8 msgstr "" 7 msgstr ""
9 -"Project-Id-Version: PACKAGE VERSION\n" 8 +"Project-Id-Version: colab\n"
10 "Report-Msgid-Bugs-To: \n" 9 "Report-Msgid-Bugs-To: \n"
11 -"POT-Creation-Date: 2014-11-21 17:05+0000\n"  
12 -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"  
13 -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"  
14 -"Language-Team: LANGUAGE <LL@li.org>\n"  
15 -"Language: \n" 10 +"POT-Creation-Date: 2015-09-01 13:15+0000\n"
  11 +"PO-Revision-Date: 2015-09-04 19:21+0000\n"
  12 +"Last-Translator: Lucas Kanashiro Duarte <kanashiro.duarte@gmail.com>\n"
  13 +"Language-Team: English (http://www.transifex.com/colab/colab/language/en/)\n"
16 "MIME-Version: 1.0\n" 14 "MIME-Version: 1.0\n"
17 "Content-Type: text/plain; charset=UTF-8\n" 15 "Content-Type: text/plain; charset=UTF-8\n"
18 "Content-Transfer-Encoding: 8bit\n" 16 "Content-Transfer-Encoding: 8bit\n"
  17 +"Language: en\n"
  18 +"Plural-Forms: nplurals=2; plural=(n != 1);\n"
19 19
20 -#: accounts/admin.py:40 20 +#: accounts/admin.py:18
21 msgid "Personal info" 21 msgid "Personal info"
22 -msgstr "" 22 +msgstr "Personal info"
23 23
24 -#: accounts/admin.py:43 24 +#: accounts/admin.py:24
25 msgid "Permissions" 25 msgid "Permissions"
26 -msgstr "" 26 +msgstr "Permissions"
27 27
28 -#: accounts/admin.py:45 28 +#: accounts/admin.py:28
29 msgid "Important dates" 29 msgid "Important dates"
30 -msgstr "" 30 +msgstr "Important dates"
31 31
32 -#: accounts/forms.py:25 32 +#: accounts/forms.py:37
33 msgid "Social account does not exist" 33 msgid "Social account does not exist"
34 -msgstr "" 34 +msgstr "Social account does not exist"
35 35
36 -#: accounts/forms.py:61 accounts/templates/accounts/user_detail.html:38 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."
  39 +
  40 +#: accounts/forms.py:118 accounts/templates/accounts/user_detail.html:38
37 msgid "Bio" 41 msgid "Bio"
38 -msgstr "" 42 +msgstr "Bio"
39 43
40 -#: accounts/forms.py:62 44 +#: accounts/forms.py:119
41 msgid "Write something about you in 200 characters or less." 45 msgid "Write something about you in 200 characters or less."
42 -msgstr "" 46 +msgstr "Write something about you in 200 characters or less."
43 47
44 -#: accounts/forms.py:81 48 +#: accounts/forms.py:148
45 msgid "Mailing lists" 49 msgid "Mailing lists"
46 -msgstr "" 50 +msgstr "Mailing lists"
  51 +
  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>"
  56 +
  57 +#: accounts/forms.py:163
  58 +msgid "A user with that username already exists."
  59 +msgstr "A user with that username already exists."
  60 +
  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."
  64 +
  65 +#: accounts/forms.py:166 accounts/forms.py:236 search/forms.py:38
  66 +msgid "Username"
  67 +msgstr "Username"
47 68
48 -#: accounts/forms.py:88 69 +#: accounts/forms.py:173 accounts/forms.py:240 accounts/forms.py:277
  70 +#: accounts/forms.py:467
49 msgid "Password" 71 msgid "Password"
50 -msgstr "" 72 +msgstr "Password"
51 73
52 -#: accounts/forms.py:90 74 +#: accounts/forms.py:175
53 msgid "Password confirmation" 75 msgid "Password confirmation"
54 -msgstr "" 76 +msgstr "Password confirmation"
55 77
56 -#: accounts/forms.py:92  
57 -msgid "Enter the same password as above, for verification."  
58 -msgstr "" 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."
59 81
60 -#: accounts/forms.py:110  
61 -msgid "Password mismatch"  
62 -msgstr "" 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."
  85 +
  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>."
63 92
64 -#: accounts/management/commands/delete_invalid.py:42 93 +#: accounts/forms.py:280
65 #, python-format 94 #, python-format
66 -msgid "%(count)s users deleted."  
67 -msgstr "" 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."
68 99
69 -#: accounts/models.py:65  
70 -msgid "Required. 30 characters or fewer. Letters, digits and ./+/-/_ only."  
71 -msgstr "" 100 +#: accounts/forms.py:282
  101 +msgid "This account is inactive."
  102 +msgstr "This account is inactive."
72 103
73 -#: accounts/models.py:70  
74 -msgid "Enter a valid username."  
75 -msgstr "" 104 +#: accounts/forms.py:345
  105 +msgid "Email"
  106 +msgstr "Email"
76 107
77 -#: accounts/templates/accounts/change_password.html:8  
78 -msgid "Change XMPP Client and SVN Password"  
79 -msgstr "" 108 +#: accounts/forms.py:403
  109 +msgid "New password"
  110 +msgstr "New password"
80 111
81 -#: accounts/templates/accounts/change_password.html:17  
82 -#: accounts/templates/accounts/user_update_form.html:188  
83 -#: accounts/templates/accounts/user_update_form.html:195  
84 -msgid "Change Password"  
85 -msgstr "" 112 +#: accounts/forms.py:405
  113 +msgid "New password confirmation"
  114 +msgstr "New password confirmation"
86 115
87 -#: accounts/templates/accounts/login.html:7  
88 -msgid "To login please click in the link below:"  
89 -msgstr "" 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."
90 119
91 -#: accounts/templates/accounts/login.html:8 templates/base.html:182  
92 -#: templates/base.html.py:187  
93 -msgid "Login"  
94 -msgstr "" 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."
95 131
96 #: accounts/templates/accounts/manage_subscriptions.html:6 132 #: accounts/templates/accounts/manage_subscriptions.html:6
97 msgid "Group Subscriptions" 133 msgid "Group Subscriptions"
98 -msgstr "" 134 +msgstr "Group Subscriptions"
99 135
100 #: accounts/templates/accounts/manage_subscriptions.html:36 136 #: accounts/templates/accounts/manage_subscriptions.html:36
101 msgid "Update subscriptions" 137 msgid "Update subscriptions"
102 -msgstr "" 138 +msgstr "Update subscriptions"
103 139
104 #: accounts/templates/accounts/user_create_form.html:5 140 #: accounts/templates/accounts/user_create_form.html:5
105 msgid "Sign up" 141 msgid "Sign up"
106 -msgstr "" 142 +msgstr "Sign up"
107 143
108 #: accounts/templates/accounts/user_create_form.html:10 144 #: accounts/templates/accounts/user_create_form.html:10
109 -msgid "Please correct the errors below and try again"  
110 -msgstr "" 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."
111 151
112 #: accounts/templates/accounts/user_create_form.html:17 152 #: accounts/templates/accounts/user_create_form.html:17
113 msgid "Required fields" 153 msgid "Required fields"
114 -msgstr "" 154 +msgstr "Required fields"
115 155
116 #: accounts/templates/accounts/user_create_form.html:29 156 #: accounts/templates/accounts/user_create_form.html:29
117 msgid "Personal Information" 157 msgid "Personal Information"
118 -msgstr "" 158 +msgstr "Personal Information"
119 159
120 #: accounts/templates/accounts/user_create_form.html:46 160 #: accounts/templates/accounts/user_create_form.html:46
121 msgid "Subscribe to groups" 161 msgid "Subscribe to groups"
122 -msgstr "" 162 +msgstr "Subscribe to groups"
123 163
124 #: accounts/templates/accounts/user_create_form.html:60 164 #: accounts/templates/accounts/user_create_form.html:60
125 -#: templates/base.html:181 templates/base.html.py:186 165 +#: templates/base.html:100 templates/base.html.py:105 templates/header.html:40
  166 +#: templates/header.html.py:45
126 msgid "Register" 167 msgid "Register"
127 -msgstr "" 168 +msgstr "Register"
128 169
129 #: accounts/templates/accounts/user_detail.html:8 170 #: accounts/templates/accounts/user_detail.html:8
130 msgid "Messages" 171 msgid "Messages"
131 -msgstr "" 172 +msgstr "Messages"
132 173
133 -#: accounts/templates/accounts/user_detail.html:9 174 +#: accounts/templates/accounts/user_detail.html:9 templates/home.html:7
134 msgid "Contributions" 175 msgid "Contributions"
135 -msgstr "" 176 +msgstr "Contributions"
136 177
137 #: accounts/templates/accounts/user_detail.html:29 178 #: accounts/templates/accounts/user_detail.html:29
138 msgid "edit profile" 179 msgid "edit profile"
139 -msgstr "" 180 +msgstr "edit profile"
140 181
141 #: accounts/templates/accounts/user_detail.html:30 182 #: accounts/templates/accounts/user_detail.html:30
142 msgid "group membership" 183 msgid "group membership"
143 -msgstr "" 184 +msgstr "group membership"
144 185
145 -#: accounts/templates/accounts/user_detail.html:65 186 +#: accounts/templates/accounts/user_detail.html:66
146 msgid "Twitter account" 187 msgid "Twitter account"
147 -msgstr "" 188 +msgstr "Twitter account"
148 189
149 -#: accounts/templates/accounts/user_detail.html:68 190 +#: accounts/templates/accounts/user_detail.html:69
150 msgid "Facebook account" 191 msgid "Facebook account"
151 -msgstr "" 192 +msgstr "Facebook account"
152 193
153 -#: accounts/templates/accounts/user_detail.html:73 194 +#: accounts/templates/accounts/user_detail.html:74
154 msgid "Google talk account" 195 msgid "Google talk account"
155 -msgstr "" 196 +msgstr "Google talk account"
156 197
157 -#: accounts/templates/accounts/user_detail.html:77 198 +#: accounts/templates/accounts/user_detail.html:78
158 msgid "Github account" 199 msgid "Github account"
159 -msgstr "" 200 +msgstr "Github account"
160 201
161 -#: accounts/templates/accounts/user_detail.html:81 202 +#: accounts/templates/accounts/user_detail.html:82
162 msgid "Personal webpage" 203 msgid "Personal webpage"
163 -msgstr "" 204 +msgstr "Personal webpage"
164 205
165 -#: accounts/templates/accounts/user_detail.html:87 206 +#: accounts/templates/accounts/user_detail.html:88
166 msgid "Groups: " 207 msgid "Groups: "
167 -msgstr "" 208 +msgstr "Groups: "
168 209
169 -#: accounts/templates/accounts/user_detail.html:100 210 +#: accounts/templates/accounts/user_detail.html:101
170 msgid "Collaborations by Type" 211 msgid "Collaborations by Type"
171 -msgstr "" 212 +msgstr "Collaborations by Type"
172 213
173 -#: accounts/templates/accounts/user_detail.html:116 214 +#: accounts/templates/accounts/user_detail.html:117
174 msgid "Participation by Group" 215 msgid "Participation by Group"
175 -msgstr ""  
176 -  
177 -#: accounts/templates/accounts/user_detail.html:132  
178 -msgid "Badges"  
179 -msgstr "" 216 +msgstr "Participation by Group"
180 217
181 -#: accounts/templates/accounts/user_detail.html:151 218 +#: accounts/templates/accounts/user_detail.html:133
182 msgid "Latest posted" 219 msgid "Latest posted"
183 -msgstr "" 220 +msgstr "Latest posted"
184 221
185 -#: accounts/templates/accounts/user_detail.html:156 222 +#: accounts/templates/accounts/user_detail.html:138
186 msgid "There are no posts by this user so far." 223 msgid "There are no posts by this user so far."
187 -msgstr "" 224 +msgstr "There are no posts by this user so far."
188 225
189 -#: accounts/templates/accounts/user_detail.html:160 226 +#: accounts/templates/accounts/user_detail.html:142
190 msgid "View more posts..." 227 msgid "View more posts..."
191 -msgstr "" 228 +msgstr "View more posts..."
192 229
193 -#: accounts/templates/accounts/user_detail.html:166 230 +#: accounts/templates/accounts/user_detail.html:148
194 msgid "Latest contributions" 231 msgid "Latest contributions"
195 -msgstr "" 232 +msgstr "Latest contributions"
196 233
197 -#: accounts/templates/accounts/user_detail.html:171 234 +#: accounts/templates/accounts/user_detail.html:153
198 msgid "No contributions of this user so far." 235 msgid "No contributions of this user so far."
199 -msgstr "" 236 +msgstr "No contributions of this user so far."
200 237
201 -#: accounts/templates/accounts/user_detail.html:175 238 +#: accounts/templates/accounts/user_detail.html:157
202 msgid "View more contributions..." 239 msgid "View more contributions..."
203 -msgstr "" 240 +msgstr "View more contributions..."
204 241
205 #: accounts/templates/accounts/user_update_form.html:65 242 #: accounts/templates/accounts/user_update_form.html:65
206 msgid "We sent a verification email to " 243 msgid "We sent a verification email to "
207 -msgstr "" 244 +msgstr "We sent a verification email to "
208 245
209 #: accounts/templates/accounts/user_update_form.html:66 246 #: accounts/templates/accounts/user_update_form.html:66
210 msgid "Please follow the instructions in it." 247 msgid "Please follow the instructions in it."
211 -msgstr "" 248 +msgstr "Please follow the instructions in it."
212 249
213 #: accounts/templates/accounts/user_update_form.html:110 250 #: accounts/templates/accounts/user_update_form.html:110
214 msgid "profile information" 251 msgid "profile information"
215 -msgstr "" 252 +msgstr "profile information"
216 253
217 #: accounts/templates/accounts/user_update_form.html:115 254 #: accounts/templates/accounts/user_update_form.html:115
218 msgid "Change your avatar at Gravatar.com" 255 msgid "Change your avatar at Gravatar.com"
219 -msgstr "" 256 +msgstr "Change your avatar at Gravatar.com"
220 257
221 -#: accounts/templates/accounts/user_update_form.html:142 search/utils.py:8 258 +#: accounts/templates/accounts/user_update_form.html:142 search/utils.py:56
222 msgid "Emails" 259 msgid "Emails"
223 -msgstr "" 260 +msgstr "Emails"
224 261
225 #: accounts/templates/accounts/user_update_form.html:151 262 #: accounts/templates/accounts/user_update_form.html:151
226 msgid "Primary" 263 msgid "Primary"
227 -msgstr "" 264 +msgstr "Primary"
228 265
229 #: accounts/templates/accounts/user_update_form.html:154 266 #: accounts/templates/accounts/user_update_form.html:154
230 msgid "Setting..." 267 msgid "Setting..."
231 -msgstr "" 268 +msgstr "Setting..."
232 269
233 #: accounts/templates/accounts/user_update_form.html:154 270 #: accounts/templates/accounts/user_update_form.html:154
234 msgid "Set as Primary" 271 msgid "Set as Primary"
235 -msgstr "" 272 +msgstr "Set as Primary"
236 273
237 #: accounts/templates/accounts/user_update_form.html:155 274 #: accounts/templates/accounts/user_update_form.html:155
238 msgid "Deleting..." 275 msgid "Deleting..."
239 -msgstr "" 276 +msgstr "Deleting..."
240 277
241 #: accounts/templates/accounts/user_update_form.html:155 278 #: accounts/templates/accounts/user_update_form.html:155
242 #: accounts/templates/accounts/user_update_form.html:167 279 #: accounts/templates/accounts/user_update_form.html:167
243 msgid "Delete" 280 msgid "Delete"
244 -msgstr "" 281 +msgstr "Delete"
245 282
246 #: accounts/templates/accounts/user_update_form.html:166 283 #: accounts/templates/accounts/user_update_form.html:166
247 msgid "Sending verification..." 284 msgid "Sending verification..."
248 -msgstr "" 285 +msgstr "Sending verification..."
249 286
250 #: accounts/templates/accounts/user_update_form.html:166 287 #: accounts/templates/accounts/user_update_form.html:166
251 msgid "Verify" 288 msgid "Verify"
252 -msgstr "" 289 +msgstr "Verify"
253 290
254 #: accounts/templates/accounts/user_update_form.html:174 291 #: accounts/templates/accounts/user_update_form.html:174
255 msgid "Add another email address:" 292 msgid "Add another email address:"
256 -msgstr "" 293 +msgstr "Add another email address:"
257 294
258 #: accounts/templates/accounts/user_update_form.html:177 295 #: accounts/templates/accounts/user_update_form.html:177
259 msgid "Add" 296 msgid "Add"
260 -msgstr "" 297 +msgstr "Add"
261 298
262 -#: accounts/templates/accounts/user_update_form.html:193  
263 -msgid ""  
264 -"This feature is available only for those who need to change the password for "  
265 -"some reason as having an old user with the same username, forgot your "  
266 -"password to commit, usage of other XMPP Client for connection. Usually, you "  
267 -"won't need to change this password. Only change it if you are sure about "  
268 -"what you are doing."  
269 -msgstr "" 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"
270 305
271 -#: accounts/templates/accounts/user_update_form.html:203 306 +#: accounts/templates/accounts/user_update_form.html:196
272 msgid "Update" 307 msgid "Update"
273 -msgstr "" 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"
274 324
275 -#: accounts/views.py:148  
276 -msgid "Your profile has been created!"  
277 -msgstr "" 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"
278 337
279 -#: accounts/views.py:149 338 +#: accounts/templates/registration/password_reset_form_custom.html:23
280 msgid "" 339 msgid ""
281 -"You must login to validated your profile. Profiles not validated are deleted "  
282 -"in 24h."  
283 -msgstr "" 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."
284 343
285 -#: accounts/views.py:233  
286 -msgid "Could not change your password. Please, try again later."  
287 -msgstr "" 344 +#: accounts/templates/registration/password_reset_form_custom.html:26
  345 +msgid "Email address:"
  346 +msgstr "Email address:"
288 347
289 -#: accounts/views.py:242  
290 -msgid "You've changed your password successfully!"  
291 -msgstr "" 348 +#: accounts/templates/registration/password_reset_form_custom.html:37
  349 +msgid "Reset password"
  350 +msgstr "Reset password"
292 351
293 -#: settings.py:160  
294 -msgid "Image"  
295 -msgstr "" 352 +#: accounts/views.py:126
  353 +msgid "Your profile has been created!"
  354 +msgstr "Your profile has been created!"
296 355
297 -#: search/templates/search/includes/search_filters.html:122  
298 -msgid "Ticket"  
299 -msgstr "" 356 +#: accounts/views.py:186
  357 +msgid "Your password was changed."
  358 +msgstr "Your password was changed."
300 359
301 -#: search/forms.py:18  
302 -msgid "Type"  
303 -msgstr "" 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."
304 363
305 -#: home/context_processors.py:15 364 +#: home/context_processors.py:20
306 msgid "Fork me!" 365 msgid "Fork me!"
307 -msgstr "" 366 +msgstr "Fork me!"
  367 +
  368 +#: plugins/gitlab/models.py:27
  369 +msgid "Gitlab Project"
  370 +msgstr "Gitlab Project"
  371 +
  372 +#: plugins/gitlab/models.py:28
  373 +msgid "Gitlab Projects"
  374 +msgstr "Gitlab Projects"
  375 +
  376 +#: plugins/gitlab/models.py:54
  377 +msgid "Gitlab Group"
  378 +msgstr "Gitlab Group"
  379 +
  380 +#: plugins/gitlab/models.py:55
  381 +msgid "Gitlab Groups"
  382 +msgstr "Gitlab Groups"
  383 +
  384 +#: plugins/gitlab/models.py:91
  385 +msgid "Gitlab Merge Request"
  386 +msgstr "Gitlab Merge Request"
  387 +
  388 +#: plugins/gitlab/models.py:92
  389 +msgid "Gitlab Merge Requests"
  390 +msgstr "Gitlab Merge Requests"
  391 +
  392 +#: plugins/gitlab/models.py:120
  393 +msgid "Gitlab Issue"
  394 +msgstr "Gitlab Issue"
  395 +
  396 +#: plugins/gitlab/models.py:121
  397 +msgid "Gitlab Issues"
  398 +msgstr "Gitlab Issues"
  399 +
  400 +#: plugins/gitlab/models.py:176 plugins/gitlab/models.py:177
  401 +msgid "Gitlab Comments"
  402 +msgstr "Gitlab Comments"
  403 +
  404 +#: plugins/noosfero/models.py:39
  405 +msgid "Community"
  406 +msgstr "Community"
  407 +
  408 +#: plugins/noosfero/models.py:40
  409 +msgid "Communities"
  410 +msgstr "Communities"
  411 +
  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"
308 419
309 #: rss/feeds.py:13 420 #: rss/feeds.py:13
310 msgid "Latest Discussions" 421 msgid "Latest Discussions"
311 -msgstr "" 422 +msgstr "Latest Discussions"
312 423
313 #: rss/feeds.py:32 424 #: rss/feeds.py:32
314 msgid "Discussions Most Relevance" 425 msgid "Discussions Most Relevance"
315 -msgstr "" 426 +msgstr "Discussions Most Relevance"
316 427
317 #: rss/feeds.py:51 428 #: rss/feeds.py:51
318 msgid "Latest collaborations" 429 msgid "Latest collaborations"
319 -msgstr "" 430 +msgstr "Latest collaborations"
320 431
321 #: search/forms.py:16 search/templates/search/search.html:46 432 #: search/forms.py:16 search/templates/search/search.html:46
322 -#: templates/base.html:171 433 +#: templates/base.html:89 templates/header.html:29
323 msgid "Search" 434 msgid "Search"
324 -msgstr "" 435 +msgstr "Search"
  436 +
  437 +#: search/forms.py:18
  438 +msgid "Type"
  439 +msgstr "Type"
325 440
326 -#: search/forms.py:19 search/views.py:22 441 +#: search/forms.py:19 search/views.py:20
327 msgid "Author" 442 msgid "Author"
328 -msgstr "" 443 +msgstr "Author"
329 444
330 #: search/forms.py:20 445 #: search/forms.py:20
331 msgid "Modified by" 446 msgid "Modified by"
332 -msgstr "" 447 +msgstr "Modified by"
333 448
334 #: search/forms.py:22 449 #: search/forms.py:22
335 msgid "Status" 450 msgid "Status"
336 -msgstr "" 451 +msgstr "Status"
337 452
338 -#: search/forms.py:26 search/views.py:25 453 +#: search/forms.py:26 search/views.py:23
339 msgid "Mailinglist" 454 msgid "Mailinglist"
340 -msgstr "" 455 +msgstr "Mailinglist"
341 456
342 #: search/forms.py:30 457 #: search/forms.py:30
343 msgid "Milestone" 458 msgid "Milestone"
344 -msgstr "" 459 +msgstr "Milestone"
345 460
346 #: search/forms.py:31 461 #: search/forms.py:31
347 msgid "Priority" 462 msgid "Priority"
348 -msgstr "" 463 +msgstr "Priority"
349 464
350 #: search/forms.py:32 465 #: search/forms.py:32
351 msgid "Component" 466 msgid "Component"
352 -msgstr "" 467 +msgstr "Component"
353 468
354 #: search/forms.py:33 469 #: search/forms.py:33
355 msgid "Severity" 470 msgid "Severity"
356 -msgstr "" 471 +msgstr "Severity"
357 472
358 #: search/forms.py:34 473 #: search/forms.py:34
359 msgid "Reporter" 474 msgid "Reporter"
360 -msgstr "" 475 +msgstr "Reporter"
361 476
362 #: search/forms.py:35 477 #: search/forms.py:35
363 msgid "Keywords" 478 msgid "Keywords"
364 -msgstr "" 479 +msgstr "Keywords"
365 480
366 #: search/forms.py:36 481 #: search/forms.py:36
367 msgid "Collaborators" 482 msgid "Collaborators"
368 -msgstr "" 483 +msgstr "Collaborators"
369 484
370 -#: search/forms.py:37 templates/base.html:103 485 +#: search/forms.py:37
371 msgid "Repository" 486 msgid "Repository"
372 -msgstr ""  
373 -  
374 -#: search/forms.py:38  
375 -msgid "Username"  
376 -msgstr "" 487 +msgstr "Repository"
377 488
378 #: search/forms.py:39 489 #: search/forms.py:39
379 msgid "Name" 490 msgid "Name"
380 -msgstr "" 491 +msgstr "Name"
381 492
382 #: search/forms.py:40 493 #: search/forms.py:40
383 msgid "Institution" 494 msgid "Institution"
384 -msgstr "" 495 +msgstr "Institution"
385 496
386 #: search/forms.py:41 497 #: search/forms.py:41
387 msgid "Role" 498 msgid "Role"
388 -msgstr "" 499 +msgstr "Role"
389 500
390 -#: search/forms.py:42 search/templates/search/includes/search_filters.html:154  
391 -#: search/templates/search/includes/search_filters.html:156  
392 -#: search/templates/search/includes/search_filters.html:188  
393 -#: search/templates/search/includes/search_filters.html:189 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
394 msgid "Since" 505 msgid "Since"
395 -msgstr "" 506 +msgstr "Since"
396 507
397 -#: search/forms.py:43 search/templates/search/includes/search_filters.html:163  
398 -#: search/templates/search/includes/search_filters.html:165  
399 -#: search/templates/search/includes/search_filters.html:192  
400 -#: search/templates/search/includes/search_filters.html:193 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
401 msgid "Until" 512 msgid "Until"
402 -msgstr "" 513 +msgstr "Until"
403 514
404 #: search/forms.py:44 515 #: search/forms.py:44
405 msgid "Filename" 516 msgid "Filename"
406 -msgstr "" 517 +msgstr "Filename"
407 518
408 #: search/forms.py:45 519 #: search/forms.py:45
409 msgid "Used by" 520 msgid "Used by"
410 -msgstr "" 521 +msgstr "Used by"
411 522
412 #: search/forms.py:46 523 #: search/forms.py:46
413 msgid "File type" 524 msgid "File type"
414 -msgstr "" 525 +msgstr "File type"
415 526
416 #: search/forms.py:47 527 #: search/forms.py:47
417 msgid "Size" 528 msgid "Size"
418 -msgstr "" 529 +msgstr "Size"
419 530
420 #: search/templates/search/includes/search_filters.html:5 531 #: search/templates/search/includes/search_filters.html:5
421 #: search/templates/search/includes/search_filters.html:33 532 #: search/templates/search/includes/search_filters.html:33
422 #: search/templates/search/includes/search_filters.html:51 533 #: search/templates/search/includes/search_filters.html:51
423 #: search/templates/search/includes/search_filters.html:69 534 #: search/templates/search/includes/search_filters.html:69
424 msgid "Remove filter" 535 msgid "Remove filter"
425 -msgstr "" 536 +msgstr "Remove filter"
426 537
427 #: search/templates/search/includes/search_filters.html:88 538 #: search/templates/search/includes/search_filters.html:88
428 -#: search/templates/search/includes/search_filters.html:174  
429 -#: search/templates/search/includes/search_filters.html:198 539 +#: search/templates/search/includes/search_filters.html:152
  540 +#: search/templates/search/includes/search_filters.html:176
430 msgid "Filter" 541 msgid "Filter"
431 -msgstr "" 542 +msgstr "Filter"
432 543
433 #: search/templates/search/includes/search_filters.html:94 544 #: search/templates/search/includes/search_filters.html:94
434 msgid "Sort by" 545 msgid "Sort by"
435 -msgstr "" 546 +msgstr "Sort by"
436 547
437 #: search/templates/search/includes/search_filters.html:111 548 #: search/templates/search/includes/search_filters.html:111
438 msgid "Types" 549 msgid "Types"
439 -msgstr ""  
440 -  
441 -#: search/templates/search/includes/search_filters.html:118 search/utils.py:7  
442 -#: templates/open-data.html:130  
443 -msgid "Wiki"  
444 -msgstr ""  
445 -  
446 -#: search/templates/search/includes/search_filters.html:126  
447 -msgid "Changeset"  
448 -msgstr ""  
449 -  
450 -#: search/templates/search/includes/search_filters.html:130  
451 -msgid "User"  
452 -msgstr ""  
453 -  
454 -#: search/templates/search/includes/search_filters.html:134  
455 -msgid "Attachment"  
456 -msgstr "" 550 +msgstr "Types"
457 551
458 -#: search/templates/search/includes/search_filters.html:139 search/views.py:20 552 +#: search/templates/search/includes/search_filters.html:117 search/views.py:18
459 msgid "Discussion" 553 msgid "Discussion"
460 -msgstr "" 554 +msgstr "Discussion"
461 555
462 #: search/templates/search/search.html:5 556 #: search/templates/search/search.html:5
463 msgid "search" 557 msgid "search"
464 -msgstr "" 558 +msgstr "search"
465 559
466 #: search/templates/search/search.html:51 560 #: search/templates/search/search.html:51
467 msgid "documents found" 561 msgid "documents found"
468 -msgstr "" 562 +msgstr "documents found"
469 563
470 #: search/templates/search/search.html:62 564 #: search/templates/search/search.html:62
471 msgid "Search here" 565 msgid "Search here"
472 -msgstr "" 566 +msgstr "Search here"
473 567
474 #: search/templates/search/search.html:74 568 #: search/templates/search/search.html:74
475 #: search/templates/search/search.html:84 569 #: search/templates/search/search.html:84
476 msgid "Filters" 570 msgid "Filters"
477 -msgstr "" 571 +msgstr "Filters"
478 572
479 #: search/templates/search/search.html:105 573 #: search/templates/search/search.html:105
480 msgid "No results for your search." 574 msgid "No results for your search."
481 -msgstr "" 575 +msgstr "No results for your search."
482 576
483 #: search/templates/search/search.html:107 577 #: search/templates/search/search.html:107
484 msgid "You are searching for" 578 msgid "You are searching for"
485 -msgstr ""  
486 -  
487 -#: search/utils.py:9 settings.py:157  
488 -msgid "Code"  
489 -msgstr ""  
490 -  
491 -#: search/utils.py:10  
492 -msgid "Tickets"  
493 -msgstr ""  
494 -  
495 -#: search/utils.py:11  
496 -msgid "Attachments"  
497 -msgstr "" 579 +msgstr "You are searching for"
498 580
499 -#: settings.py:115 581 +#: settings.py:113
500 msgid "English" 582 msgid "English"
501 -msgstr "" 583 +msgstr "English"
502 584
503 -#: settings.py:116 585 +#: settings.py:114
504 msgid "Portuguese" 586 msgid "Portuguese"
505 -msgstr "" 587 +msgstr "Portuguese"
506 588
507 -#: settings.py:117 589 +#: settings.py:115
508 msgid "Spanish" 590 msgid "Spanish"
509 -msgstr "" 591 +msgstr "Spanish"
510 592
511 -#: settings.py:140 593 +#: settings.py:138
512 msgid "Recent activity" 594 msgid "Recent activity"
513 -msgstr "" 595 +msgstr "Recent activity"
514 596
515 -#: settings.py:144 597 +#: settings.py:142
516 msgid "Relevance" 598 msgid "Relevance"
517 -msgstr "" 599 +msgstr "Relevance"
518 600
519 -#: settings.py:153 601 +#: settings.py:151
520 msgid "Document" 602 msgid "Document"
521 -msgstr "" 603 +msgstr "Document"
522 604
523 -#: settings.py:155 605 +#: settings.py:153
524 msgid "Presentation" 606 msgid "Presentation"
525 -msgstr "" 607 +msgstr "Presentation"
526 608
527 -#: settings.py:156 609 +#: settings.py:154
528 msgid "Text" 610 msgid "Text"
529 -msgstr ""  
530 -  
531 -#: settings.py:159  
532 -msgid "Compressed"  
533 -msgstr ""  
534 -  
535 -#: settings.py:162  
536 -msgid "Spreadsheet"  
537 -msgstr ""  
538 -  
539 -#: settings.py:254  
540 -msgid "Planet Colab"  
541 -msgstr ""  
542 -  
543 -#: settings.py:255  
544 -msgid "Colab blog aggregator"  
545 -msgstr ""  
546 -  
547 -#: settings.py:288  
548 -msgid "One Time Snippet"  
549 -msgstr "" 611 +msgstr "Text"
550 612
551 -#: settings.py:289  
552 -msgid "In one hour"  
553 -msgstr "" 613 +#: settings.py:155
  614 +msgid "Code"
  615 +msgstr "Code"
554 616
555 -#: settings.py:290  
556 -msgid "In one week"  
557 -msgstr "" 617 +#: settings.py:157
  618 +msgid "Compressed"
  619 +msgstr "Compressed"
558 620
559 -#: settings.py:291  
560 -msgid "In one month"  
561 -msgstr "" 621 +#: settings.py:158
  622 +msgid "Image"
  623 +msgstr "Image"
562 624
563 -#: settings.py:292  
564 -msgid "Never"  
565 -msgstr "" 625 +#: settings.py:160
  626 +msgid "Spreadsheet"
  627 +msgstr "Spreadsheet"
566 628
567 #: templates/404.html:5 629 #: templates/404.html:5
568 msgid "Not found. Keep searching! :)" 630 msgid "Not found. Keep searching! :)"
569 -msgstr "" 631 +msgstr "Not found. Keep searching! :)"
570 632
571 #: templates/500.html:2 633 #: templates/500.html:2
572 msgid "Ooopz... something went wrong!" 634 msgid "Ooopz... something went wrong!"
573 -msgstr "" 635 +msgstr "Ooopz... something went wrong!"
574 636
575 -#: templates/base.html:87  
576 -msgid "Timeline"  
577 -msgstr ""  
578 -  
579 -#: templates/base.html:92 templates/base.html.py:110 637 +#: templates/base.html:83 templates/header.html:21
580 msgid "Groups" 638 msgid "Groups"
581 -msgstr ""  
582 -  
583 -#: templates/base.html:97  
584 -msgid "Blogs"  
585 -msgstr ""  
586 -  
587 -#: templates/base.html:105  
588 -msgid "Public Projects"  
589 -msgstr ""  
590 -  
591 -#: templates/base.html:107 templates/base.html.py:136  
592 -msgid "Profile"  
593 -msgstr ""  
594 -  
595 -#: templates/base.html:108  
596 -msgid "New Project"  
597 -msgstr ""  
598 -  
599 -#: templates/base.html:109  
600 -msgid "Projects"  
601 -msgstr ""  
602 -  
603 -#: templates/base.html:111  
604 -msgid "Issues"  
605 -msgstr ""  
606 -  
607 -#: templates/base.html:112  
608 -msgid "Merge Requests"  
609 -msgstr ""  
610 -  
611 -#: templates/base.html:120  
612 -msgid "Social"  
613 -msgstr ""  
614 -  
615 -#: templates/base.html:125  
616 -msgid "Users"  
617 -msgstr ""  
618 -  
619 -#: templates/base.html:130  
620 -msgid "Communities"  
621 -msgstr ""  
622 -  
623 -#: templates/base.html:141  
624 -msgid "Control panel"  
625 -msgstr "" 639 +msgstr "Groups"
626 640
627 -#: templates/base.html:150  
628 -msgid "Contribute"  
629 -msgstr ""  
630 -  
631 -#: templates/base.html:154  
632 -msgid "New Wiki Page"  
633 -msgstr ""  
634 -  
635 -#: templates/base.html:156  
636 -msgid "View Tickets"  
637 -msgstr ""  
638 -  
639 -#: templates/base.html:158  
640 -msgid "New Ticket"  
641 -msgstr ""  
642 -  
643 -#: templates/base.html:160  
644 -msgid "Roadmap"  
645 -msgstr ""  
646 -  
647 -#: templates/base.html:163  
648 -msgid "Browse Source"  
649 -msgstr ""  
650 -  
651 -#: templates/base.html:165  
652 -msgid "Continuous Integration"  
653 -msgstr ""  
654 -  
655 -#: templates/base.html:201 641 +#: templates/base.html:119 templates/header.html:59
656 msgid "My Profile" 642 msgid "My Profile"
657 -msgstr "" 643 +msgstr "My Profile"
658 644
659 -#: templates/base.html:202 645 +#: templates/base.html:120 templates/base.html.py:121 templates/header.html:60
  646 +#: templates/header.html.py:61
660 msgid "Logout" 647 msgid "Logout"
661 -msgstr "" 648 +msgstr "Logout"
662 649
663 -#: templates/base.html:214 templates/base.html.py:217 650 +#: templates/base.html:132 templates/base.html.py:135 templates/header.html:72
  651 +#: templates/header.html.py:75
664 msgid "Search here..." 652 msgid "Search here..."
665 -msgstr "" 653 +msgstr "Search here..."
666 654
667 -#: templates/base.html:231 655 +#: templates/base.html:149
668 msgid "The login has failed. Please, try again." 656 msgid "The login has failed. Please, try again."
669 -msgstr "" 657 +msgstr "The login has failed. Please, try again."
670 658
671 -#: templates/base.html:256 659 +#: templates/footer.html:6
672 msgid "Last email imported at" 660 msgid "Last email imported at"
673 -msgstr "" 661 +msgstr "Last email imported at"
674 662
675 -#: templates/base.html:263 663 +#: templates/footer.html:12
676 msgid "The contents of this site is published under license" 664 msgid "The contents of this site is published under license"
677 -msgstr "" 665 +msgstr "The contents of this site is published under license"
678 666
679 -#: templates/base.html:266 667 +#: templates/footer.html:15
680 msgid "Creative Commons 4.0 Brasil - Atribuir Fonte - Compartilhar Igual" 668 msgid "Creative Commons 4.0 Brasil - Atribuir Fonte - Compartilhar Igual"
681 -msgstr "" 669 +msgstr "Creative Commons 4.0 Brasil - Atribuir Fonte - Compartilhar Igual"
  670 +
  671 +#: templates/header.html:26
  672 +msgid "Paste"
  673 +msgstr "Paste"
682 674
683 #: templates/home.html:17 675 #: templates/home.html:17
684 msgid "Latest Collaborations" 676 msgid "Latest Collaborations"
685 -msgstr "" 677 +msgstr "Latest Collaborations"
686 678
687 #: templates/home.html:21 679 #: templates/home.html:21
688 msgid "RSS - Latest collaborations" 680 msgid "RSS - Latest collaborations"
689 -msgstr "" 681 +msgstr "RSS - Latest collaborations"
690 682
691 #: templates/home.html:30 683 #: templates/home.html:30
692 msgid "View more collaborations..." 684 msgid "View more collaborations..."
693 -msgstr "" 685 +msgstr "View more collaborations..."
694 686
695 #: templates/home.html:37 687 #: templates/home.html:37
696 msgid "Collaboration Graph" 688 msgid "Collaboration Graph"
697 -msgstr "" 689 +msgstr "Collaboration Graph"
698 690
699 #: templates/home.html:48 691 #: templates/home.html:48
700 msgid "Most Relevant Threads" 692 msgid "Most Relevant Threads"
701 -msgstr "" 693 +msgstr "Most Relevant Threads"
702 694
703 #: templates/home.html:52 695 #: templates/home.html:52
704 msgid "RSS - Most Relevant Threads" 696 msgid "RSS - Most Relevant Threads"
705 -msgstr "" 697 +msgstr "RSS - Most Relevant Threads"
706 698
707 #: templates/home.html:60 templates/home.html.py:79 699 #: templates/home.html:60 templates/home.html.py:79
708 msgid "View more discussions..." 700 msgid "View more discussions..."
709 -msgstr "" 701 +msgstr "View more discussions..."
710 702
711 #: templates/home.html:67 703 #: templates/home.html:67
712 msgid "Latest Threads" 704 msgid "Latest Threads"
713 -msgstr "" 705 +msgstr "Latest Threads"
714 706
715 #: templates/home.html:71 707 #: templates/home.html:71
716 msgid "RSS - Latest Threads" 708 msgid "RSS - Latest Threads"
717 -msgstr ""  
718 -  
719 -#: templates/open-data.html:6  
720 -msgid "OpenData - Communities"  
721 -msgstr ""  
722 -  
723 -#: templates/open-data.html:7  
724 -msgid ""  
725 -"If you are interested in any other data that is not provided by this API, "  
726 -"please contact us via the ticketing system (you must be registered in order "  
727 -"to create a ticket)."  
728 -msgstr ""  
729 -  
730 -#: templates/open-data.html:9  
731 -msgid "Retrieving data via API"  
732 -msgstr ""  
733 -  
734 -#: templates/open-data.html:10  
735 -msgid "Colab API works through HTTP/REST, always returning JSON objects."  
736 -msgstr ""  
737 -  
738 -#: templates/open-data.html:12  
739 -msgid "The base API URL is"  
740 -msgstr ""  
741 -  
742 -#: templates/open-data.html:19  
743 -msgid ""  
744 -"Each model listed below has a resource_uri field available, which is the "  
745 -"object's data URI."  
746 -msgstr ""  
747 -  
748 -#: templates/open-data.html:20  
749 -msgid ""  
750 -"The following list contains the available models to retrieve data and its "  
751 -"fields available for filtering"  
752 -msgstr ""  
753 -  
754 -#: templates/open-data.html:24 templates/open-data.html.py:39  
755 -#: templates/open-data.html:50 templates/open-data.html.py:62  
756 -#: templates/open-data.html:74 templates/open-data.html.py:95  
757 -msgid "Fields"  
758 -msgstr ""  
759 -  
760 -#: templates/open-data.html:25  
761 -msgid ""  
762 -"The email field is not shown for user's privacy, but you can use it to filter"  
763 -msgstr ""  
764 -  
765 -#: templates/open-data.html:27  
766 -msgid "The user's username"  
767 -msgstr ""  
768 -  
769 -#: templates/open-data.html:28  
770 -msgid "The user's email address"  
771 -msgstr ""  
772 -  
773 -#: templates/open-data.html:29  
774 -msgid "What is the user's institution"  
775 -msgstr ""  
776 -  
777 -#: templates/open-data.html:30  
778 -msgid "What is the user's role"  
779 -msgstr ""  
780 -  
781 -#: templates/open-data.html:31  
782 -msgid "The user's first name"  
783 -msgstr ""  
784 -  
785 -#: templates/open-data.html:32  
786 -msgid "The user's last name"  
787 -msgstr ""  
788 -  
789 -#: templates/open-data.html:33  
790 -msgid "A mini bio of the user"  
791 -msgstr ""  
792 -  
793 -#: templates/open-data.html:40  
794 -msgid ""  
795 -"The address field is not shown for user's privacy, but you can use it to "  
796 -"filter"  
797 -msgstr ""  
798 -  
799 -#: templates/open-data.html:42  
800 -msgid "It has a relationshop with the user described above"  
801 -msgstr ""  
802 -  
803 -#: templates/open-data.html:43  
804 -msgid "An email address"  
805 -msgstr ""  
806 -  
807 -#: templates/open-data.html:44  
808 -msgid "The user's real name"  
809 -msgstr ""  
810 -  
811 -#: templates/open-data.html:52  
812 -msgid "It has a relationship with the emailaddress described above"  
813 -msgstr ""  
814 -  
815 -#: templates/open-data.html:53  
816 -msgid "The message's body"  
817 -msgstr ""  
818 -  
819 -#: templates/open-data.html:54  
820 -msgid "The message's subject"  
821 -msgstr ""  
822 -  
823 -#: templates/open-data.html:55  
824 -msgid "The message's id"  
825 -msgstr ""  
826 -  
827 -#: templates/open-data.html:56  
828 -msgid "The message's received time"  
829 -msgstr ""  
830 -  
831 -#: templates/open-data.html:64  
832 -msgid "The revision's author username"  
833 -msgstr ""  
834 -  
835 -#: templates/open-data.html:65  
836 -msgid "When the revision's were created"  
837 -msgstr ""  
838 -  
839 -#: templates/open-data.html:66  
840 -msgid "The revision's key"  
841 -msgstr ""  
842 -  
843 -#: templates/open-data.html:67  
844 -msgid "The revision's message"  
845 -msgstr ""  
846 -  
847 -#: templates/open-data.html:68  
848 -msgid "The revision's repository name"  
849 -msgstr ""  
850 -  
851 -#: templates/open-data.html:76  
852 -msgid "The ticket's author username"  
853 -msgstr ""  
854 -  
855 -#: templates/open-data.html:77  
856 -msgid "The ticket's component"  
857 -msgstr ""  
858 -  
859 -#: templates/open-data.html:78  
860 -msgid "When the ticket's were created"  
861 -msgstr ""  
862 -  
863 -#: templates/open-data.html:79  
864 -msgid "The ticket's description"  
865 -msgstr ""  
866 -  
867 -#: templates/open-data.html:80  
868 -msgid "The ticket's id"  
869 -msgstr ""  
870 -  
871 -#: templates/open-data.html:81  
872 -msgid "The ticket's keywords"  
873 -msgstr ""  
874 -  
875 -#: templates/open-data.html:82  
876 -msgid "The ticket's milestone"  
877 -msgstr ""  
878 -  
879 -#: templates/open-data.html:83 templates/open-data.html.py:99  
880 -msgid "The time of the last modification"  
881 -msgstr ""  
882 -  
883 -#: templates/open-data.html:84  
884 -msgid "The username of the last user who modified the ticket"  
885 -msgstr ""  
886 -  
887 -#: templates/open-data.html:85  
888 -msgid "The ticket's priority"  
889 -msgstr ""  
890 -  
891 -#: templates/open-data.html:86  
892 -msgid "The ticket's severity"  
893 -msgstr ""  
894 -  
895 -#: templates/open-data.html:87  
896 -msgid "The ticket's status"  
897 -msgstr ""  
898 -  
899 -#: templates/open-data.html:88  
900 -msgid "The ticket's summary"  
901 -msgstr ""  
902 -  
903 -#: templates/open-data.html:89  
904 -msgid "The ticket's version"  
905 -msgstr ""  
906 -  
907 -#: templates/open-data.html:97  
908 -msgid "The wiki's author username"  
909 -msgstr ""  
910 -  
911 -#: templates/open-data.html:98  
912 -msgid "When the wiki's were created"  
913 -msgstr ""  
914 -  
915 -#: templates/open-data.html:100  
916 -msgid "The username of the last user who modified the wiki"  
917 -msgstr ""  
918 -  
919 -#: templates/open-data.html:101  
920 -msgid "The wiki's name"  
921 -msgstr ""  
922 -  
923 -#: templates/open-data.html:102  
924 -msgid "the wiki's content"  
925 -msgstr ""  
926 -  
927 -#: templates/open-data.html:109  
928 -msgid "Parameters"  
929 -msgstr ""  
930 -  
931 -#: templates/open-data.html:112  
932 -msgid "Results per page"  
933 -msgstr ""  
934 -  
935 -#: templates/open-data.html:113  
936 -msgid "Number of results to be displayed per page."  
937 -msgstr ""  
938 -  
939 -#: templates/open-data.html:114  
940 -msgid "Default: 20"  
941 -msgstr ""  
942 -  
943 -#: templates/open-data.html:118  
944 -msgid "Starts of n element"  
945 -msgstr ""  
946 -  
947 -#: templates/open-data.html:119  
948 -msgid "Where n is the index of the first result to appear in the page."  
949 -msgstr ""  
950 -  
951 -#: templates/open-data.html:120  
952 -msgid "Default: 0"  
953 -msgstr ""  
954 -  
955 -#: templates/open-data.html:122  
956 -msgid "Filtering"  
957 -msgstr ""  
958 -  
959 -#: templates/open-data.html:124  
960 -msgid "The field name"  
961 -msgstr ""  
962 -  
963 -#: templates/open-data.html:125  
964 -msgid ""  
965 -"If you are looking for a specific wiki, and you know the wiki's name, you "  
966 -"can filter it as below"  
967 -msgstr ""  
968 -  
969 -#: templates/open-data.html:126  
970 -msgid "WikiName"  
971 -msgstr ""  
972 -  
973 -#: templates/open-data.html:127  
974 -msgid ""  
975 -"Where &quot;name&quot; is the fieldname and &quot;WikiName&quot; is the "  
976 -"value you want to filter."  
977 -msgstr ""  
978 -  
979 -#: templates/open-data.html:128  
980 -msgid "Usage"  
981 -msgstr ""  
982 -  
983 -#: templates/open-data.html:129  
984 -msgid ""  
985 -"You can also filter using Django lookup fields with the double underscores, "  
986 -"just as below"  
987 -msgstr ""  
988 -  
989 -#: templates/open-data.html:131 templates/open-data.html.py:132  
990 -msgid "test"  
991 -msgstr ""  
992 -  
993 -#: templates/open-data.html:133  
994 -msgid "Usage with relationships"  
995 -msgstr ""  
996 -  
997 -#: templates/open-data.html:134  
998 -msgid ""  
999 -"You can use related fields to filter too. So, you can filter by any field of "  
1000 -"emailaddress using the 'from_address' field of message, which has a relation "  
1001 -"to emailaddress. You will achieve the related fields by using double "  
1002 -"underscore and the field's name. See the example below"  
1003 -msgstr ""  
1004 -  
1005 -#: templates/open-data.html:136  
1006 -msgid ""  
1007 -"So, real_name is a field of emailaddress, and you had access to this field "  
1008 -"by a message field called from_address and using double underscore to say "  
1009 -"you want to use a field of that relationship"  
1010 -msgstr ""  
1011 -  
1012 -#: templates/open-data.html:137  
1013 -msgid ""  
1014 -"Note: email filters must be exact. Which means that __contains, "  
1015 -"__startswith, __endswith and others won't work"  
1016 -msgstr ""  
1017 -  
1018 -#: templates/open-data.html:138  
1019 -msgid ""  
1020 -"Another example of usage with relations. Used to retrieve all messages of a "  
1021 -"given user, using the username or the email field"  
1022 -msgstr "" 709 +msgstr "RSS - Latest Threads"
colab/locale/pt_BR/LC_MESSAGES/django.mo
No preview for this file type
colab/locale/pt_BR/LC_MESSAGES/django.po
1 # SOME DESCRIPTIVE TITLE. 1 # SOME DESCRIPTIVE TITLE.
2 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 2 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3 # This file is distributed under the same license as the PACKAGE package. 3 # This file is distributed under the same license as the PACKAGE package.
4 -# 4 +#
5 # Translators: 5 # Translators:
  6 +# Lucas Kanashiro Duarte <kanashiro.duarte@gmail.com>, 2015
  7 +# macártur de sousa carvalho <macartur.sc@gmail.com>, 2015
6 # Sergio Oliveira <seocam@seocam.com>, 2014 8 # Sergio Oliveira <seocam@seocam.com>, 2014
7 msgid "" 9 msgid ""
8 msgstr "" 10 msgstr ""
9 "Project-Id-Version: colab\n" 11 "Project-Id-Version: colab\n"
10 "Report-Msgid-Bugs-To: \n" 12 "Report-Msgid-Bugs-To: \n"
11 -"POT-Creation-Date: 2015-01-21 13:55+0000\n"  
12 -"PO-Revision-Date: 2014-11-21 17:31+0000\n"  
13 -"Last-Translator: Sergio Oliveira <seocam@seocam.com>\n"  
14 -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/"  
15 -"colab/language/pt_BR/)\n"  
16 -"Language: pt_BR\n" 13 +"POT-Creation-Date: 2015-09-01 13:15+0000\n"
  14 +"PO-Revision-Date: 2015-09-07 19:13+0000\n"
  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"
17 "MIME-Version: 1.0\n" 17 "MIME-Version: 1.0\n"
18 "Content-Type: text/plain; charset=UTF-8\n" 18 "Content-Type: text/plain; charset=UTF-8\n"
19 "Content-Transfer-Encoding: 8bit\n" 19 "Content-Transfer-Encoding: 8bit\n"
  20 +"Language: pt_BR\n"
20 "Plural-Forms: nplurals=2; plural=(n > 1);\n" 21 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
21 22
22 -#: colab/accounts/admin.py:40 23 +#: accounts/admin.py:18
23 msgid "Personal info" 24 msgid "Personal info"
24 msgstr "Informações Pessoais" 25 msgstr "Informações Pessoais"
25 26
26 -#: colab/accounts/admin.py:43 27 +#: accounts/admin.py:24
27 msgid "Permissions" 28 msgid "Permissions"
28 msgstr "Permissões" 29 msgstr "Permissões"
29 30
30 -#: colab/accounts/admin.py:45 31 +#: accounts/admin.py:28
31 msgid "Important dates" 32 msgid "Important dates"
32 msgstr "Datas importantes" 33 msgstr "Datas importantes"
33 34
34 -#: colab/accounts/forms.py:25 35 +#: accounts/forms.py:37
35 msgid "Social account does not exist" 36 msgid "Social account does not exist"
36 msgstr "Conta social não existe" 37 msgstr "Conta social não existe"
37 38
38 -#: colab/accounts/forms.py:61 39 +#: accounts/forms.py:65 accounts/forms.py:71 accounts/forms.py:77
39 msgid "This field cannot be blank." 40 msgid "This field cannot be blank."
40 -msgstr ""  
41 -  
42 -#: colab/accounts/forms.py:67 colab/accounts/forms.py:128  
43 -msgid "Password"  
44 -msgstr "Senha" 41 +msgstr "Este campo não pode ficar em branco."
45 42
46 -#: colab/accounts/forms.py:68  
47 -msgid "Confirm Password "  
48 -msgstr "Confirmar senha"  
49 -  
50 -#: colab/accounts/forms.py:79  
51 -msgid "The two password fields didn't match."  
52 -msgstr ""  
53 -  
54 -#: colab/accounts/forms.py:96  
55 -#: colab/accounts/templates/accounts/user_detail.html:38 43 +#: accounts/forms.py:118 accounts/templates/accounts/user_detail.html:38
56 msgid "Bio" 44 msgid "Bio"
57 msgstr "Bio" 45 msgstr "Bio"
58 46
59 -#: colab/accounts/forms.py:97 47 +#: accounts/forms.py:119
60 msgid "Write something about you in 200 characters or less." 48 msgid "Write something about you in 200 characters or less."
61 msgstr "Escreva algo sobre você em 200 caracteres ou menos." 49 msgstr "Escreva algo sobre você em 200 caracteres ou menos."
62 50
63 -#: colab/accounts/forms.py:121 51 +#: accounts/forms.py:148
64 msgid "Mailing lists" 52 msgid "Mailing lists"
65 msgstr "Listas de e-mail" 53 msgstr "Listas de e-mail"
66 54
67 -#: colab/accounts/forms.py:130 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>"
  59 +
  60 +#: accounts/forms.py:163
  61 +msgid "A user with that username already exists."
  62 +msgstr "Já existe um usuário com este nome."
  63 +
  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."
  67 +
  68 +#: accounts/forms.py:166 accounts/forms.py:236 search/forms.py:38
  69 +msgid "Username"
  70 +msgstr "Usuário"
  71 +
  72 +#: accounts/forms.py:173 accounts/forms.py:240 accounts/forms.py:277
  73 +#: accounts/forms.py:467
  74 +msgid "Password"
  75 +msgstr "Senha"
  76 +
  77 +#: accounts/forms.py:175
68 msgid "Password confirmation" 78 msgid "Password confirmation"
69 msgstr "Confirmação de senha" 79 msgstr "Confirmação de senha"
70 80
71 -#: colab/accounts/forms.py:132  
72 -msgid "Enter the same password as above, for verification."  
73 -msgstr "Digite a mesma senha que acima, para verificação." 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."
74 84
75 -#: colab/accounts/forms.py:150  
76 -msgid "Password mismatch"  
77 -msgstr "Senhas diferentes" 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."
78 88
79 -#: colab/accounts/models.py:66  
80 -msgid "Required. 30 characters or fewer. Letters, digits and ./+/-/_ only."  
81 -msgstr ""  
82 -"Obrigatório. 30 caracteres ou menos. Letras, números e ./+/-/_ somente." 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>."
83 95
84 -#: colab/accounts/models.py:71  
85 -msgid "Enter a valid username."  
86 -msgstr "Insira um nome de usuário válido." 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"
87 102
88 -#: colab/accounts/templates/accounts/change_password.html:8  
89 -msgid "Change XMPP Client and SVN Password"  
90 -msgstr "Trocar senha do Repositório e do Mensageiro"  
91 -  
92 -#: colab/accounts/templates/accounts/change_password.html:17  
93 -#: colab/accounts/templates/accounts/user_update_form.html:186  
94 -#: colab/accounts/templates/accounts/user_update_form.html:190  
95 -#: colab/accounts/templates/accounts/user_update_form.html:202  
96 -#: colab/accounts/templates/accounts/user_update_form.html:209  
97 -#: colab/accounts/templates/registration/password_change_form_custom.html:27  
98 -#: colab/accounts/templates/registration/password_reset_confirm_custom.html:29  
99 -msgid "Change Password"  
100 -msgstr "Trocar senha" 103 +#: accounts/forms.py:282
  104 +msgid "This account is inactive."
  105 +msgstr "Esta conta está inativa."
101 106
102 -#: colab/accounts/templates/accounts/login.html:7  
103 -msgid "To login please click in the link below:"  
104 -msgstr "Para acessar por favor clique no link abaixo:" 107 +#: accounts/forms.py:345
  108 +msgid "Email"
  109 +msgstr "Email"
105 110
106 -#: colab/accounts/templates/accounts/login.html:8  
107 -#: colab/accounts/templates/registration/login.html:34  
108 -#: colab/accounts/templates/registration/login.html:54  
109 -#: colab/templates/base.html:185 colab/templates/base.html.py:190  
110 -#: colab/templates/base.html:194 colab/templates/base.html.py:199  
111 -msgid "Login"  
112 -msgstr "Entrar" 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."
113 122
114 -#: colab/accounts/templates/accounts/manage_subscriptions.html:6 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
115 msgid "Group Subscriptions" 136 msgid "Group Subscriptions"
116 msgstr "Inscrições em grupos" 137 msgstr "Inscrições em grupos"
117 138
118 -#: colab/accounts/templates/accounts/manage_subscriptions.html:36 139 +#: accounts/templates/accounts/manage_subscriptions.html:36
119 msgid "Update subscriptions" 140 msgid "Update subscriptions"
120 msgstr "Atualizar inscrições" 141 msgstr "Atualizar inscrições"
121 142
122 -#: colab/accounts/templates/accounts/user_create_form.html:5 143 +#: accounts/templates/accounts/user_create_form.html:5
123 msgid "Sign up" 144 msgid "Sign up"
124 msgstr "Cadastrar" 145 msgstr "Cadastrar"
125 146
126 -#: colab/accounts/templates/accounts/user_create_form.html:10  
127 -#: colab/accounts/templates/registration/login.html:14  
128 -#: colab/accounts/templates/registration/password_change_form_custom.html:13  
129 -#: colab/accounts/templates/registration/password_reset_confirm_custom.html:15  
130 -#: colab/accounts/templates/registration/password_reset_form_custom.html:9 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
131 msgid "Please correct the errors below and try again." 152 msgid "Please correct the errors below and try again."
132 -msgstr "Por favor, corrija os erros abaixo e tente novamente." 153 +msgstr "Por favor corrija os erros abaixo e tente novamente."
133 154
134 -#: colab/accounts/templates/accounts/user_create_form.html:17 155 +#: accounts/templates/accounts/user_create_form.html:17
135 msgid "Required fields" 156 msgid "Required fields"
136 msgstr "Campos obrigatórios" 157 msgstr "Campos obrigatórios"
137 158
138 -#: colab/accounts/templates/accounts/user_create_form.html:29 159 +#: accounts/templates/accounts/user_create_form.html:29
139 msgid "Personal Information" 160 msgid "Personal Information"
140 msgstr "Informações pessoais" 161 msgstr "Informações pessoais"
141 162
142 -#: colab/accounts/templates/accounts/user_create_form.html:46 163 +#: accounts/templates/accounts/user_create_form.html:46
143 msgid "Subscribe to groups" 164 msgid "Subscribe to groups"
144 msgstr "Inscreva-se nos grupos" 165 msgstr "Inscreva-se nos grupos"
145 166
146 -#: colab/accounts/templates/accounts/user_create_form.html:60  
147 -#: colab/templates/base.html:189 colab/templates/base.html.py:198 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
148 msgid "Register" 170 msgid "Register"
149 msgstr "Cadastre-se" 171 msgstr "Cadastre-se"
150 172
151 -#: colab/accounts/templates/accounts/user_detail.html:8 173 +#: accounts/templates/accounts/user_detail.html:8
152 msgid "Messages" 174 msgid "Messages"
153 msgstr "Mensagens" 175 msgstr "Mensagens"
154 176
155 -#: colab/accounts/templates/accounts/user_detail.html:9  
156 -#: colab/templates/home.html:7 177 +#: accounts/templates/accounts/user_detail.html:9 templates/home.html:7
157 msgid "Contributions" 178 msgid "Contributions"
158 msgstr "Contribuições" 179 msgstr "Contribuições"
159 180
160 -#: colab/accounts/templates/accounts/user_detail.html:29 181 +#: accounts/templates/accounts/user_detail.html:29
161 msgid "edit profile" 182 msgid "edit profile"
162 msgstr "editar perfil" 183 msgstr "editar perfil"
163 184
164 -#: colab/accounts/templates/accounts/user_detail.html:30 185 +#: accounts/templates/accounts/user_detail.html:30
165 msgid "group membership" 186 msgid "group membership"
166 msgstr "Inscrições nos grupos" 187 msgstr "Inscrições nos grupos"
167 188
168 -#: colab/accounts/templates/accounts/user_detail.html:65 189 +#: accounts/templates/accounts/user_detail.html:66
169 msgid "Twitter account" 190 msgid "Twitter account"
170 msgstr "Conta Twitter" 191 msgstr "Conta Twitter"
171 192
172 -#: colab/accounts/templates/accounts/user_detail.html:68 193 +#: accounts/templates/accounts/user_detail.html:69
173 msgid "Facebook account" 194 msgid "Facebook account"
174 msgstr "Conta Facebook" 195 msgstr "Conta Facebook"
175 196
176 -#: colab/accounts/templates/accounts/user_detail.html:73 197 +#: accounts/templates/accounts/user_detail.html:74
177 msgid "Google talk account" 198 msgid "Google talk account"
178 -msgstr "Conta Google" 199 +msgstr "Conta Google talk"
179 200
180 -#: colab/accounts/templates/accounts/user_detail.html:77 201 +#: accounts/templates/accounts/user_detail.html:78
181 msgid "Github account" 202 msgid "Github account"
182 msgstr "Conta Github" 203 msgstr "Conta Github"
183 204
184 -#: colab/accounts/templates/accounts/user_detail.html:81 205 +#: accounts/templates/accounts/user_detail.html:82
185 msgid "Personal webpage" 206 msgid "Personal webpage"
186 msgstr "Página web pessoal" 207 msgstr "Página web pessoal"
187 208
188 -#: colab/accounts/templates/accounts/user_detail.html:87 209 +#: accounts/templates/accounts/user_detail.html:88
189 msgid "Groups: " 210 msgid "Groups: "
190 msgstr "Grupos: " 211 msgstr "Grupos: "
191 212
192 -#: colab/accounts/templates/accounts/user_detail.html:100 213 +#: accounts/templates/accounts/user_detail.html:101
193 msgid "Collaborations by Type" 214 msgid "Collaborations by Type"
194 msgstr "Colaborações por tipo" 215 msgstr "Colaborações por tipo"
195 216
196 -#: colab/accounts/templates/accounts/user_detail.html:116 217 +#: accounts/templates/accounts/user_detail.html:117
197 msgid "Participation by Group" 218 msgid "Participation by Group"
198 msgstr "Participação por grupo" 219 msgstr "Participação por grupo"
199 220
200 -#: colab/accounts/templates/accounts/user_detail.html:132  
201 -msgid "Badges"  
202 -msgstr "Medalhas"  
203 -  
204 -#: colab/accounts/templates/accounts/user_detail.html:151 221 +#: accounts/templates/accounts/user_detail.html:133
205 msgid "Latest posted" 222 msgid "Latest posted"
206 msgstr "Últimas postagens" 223 msgstr "Últimas postagens"
207 224
208 -#: colab/accounts/templates/accounts/user_detail.html:156 225 +#: accounts/templates/accounts/user_detail.html:138
209 msgid "There are no posts by this user so far." 226 msgid "There are no posts by this user so far."
210 msgstr "Não há posts deste usuário até agora." 227 msgstr "Não há posts deste usuário até agora."
211 228
212 -#: colab/accounts/templates/accounts/user_detail.html:160 229 +#: accounts/templates/accounts/user_detail.html:142
213 msgid "View more posts..." 230 msgid "View more posts..."
214 msgstr "Ver mais postagens..." 231 msgstr "Ver mais postagens..."
215 232
216 -#: colab/accounts/templates/accounts/user_detail.html:166 233 +#: accounts/templates/accounts/user_detail.html:148
217 msgid "Latest contributions" 234 msgid "Latest contributions"
218 msgstr "Últimas colaborações" 235 msgstr "Últimas colaborações"
219 236
220 -#: colab/accounts/templates/accounts/user_detail.html:171 237 +#: accounts/templates/accounts/user_detail.html:153
221 msgid "No contributions of this user so far." 238 msgid "No contributions of this user so far."
222 -msgstr "Não há posts deste usuário até agora." 239 +msgstr "Não há contribuições deste usuário até agora."
223 240
224 -#: colab/accounts/templates/accounts/user_detail.html:175 241 +#: accounts/templates/accounts/user_detail.html:157
225 msgid "View more contributions..." 242 msgid "View more contributions..."
226 msgstr "Ver mais colaborações..." 243 msgstr "Ver mais colaborações..."
227 244
228 -#: colab/accounts/templates/accounts/user_update_form.html:65 245 +#: accounts/templates/accounts/user_update_form.html:65
229 msgid "We sent a verification email to " 246 msgid "We sent a verification email to "
230 msgstr "Enviamos um email de verificação para " 247 msgstr "Enviamos um email de verificação para "
231 248
232 -#: colab/accounts/templates/accounts/user_update_form.html:66 249 +#: accounts/templates/accounts/user_update_form.html:66
233 msgid "Please follow the instructions in it." 250 msgid "Please follow the instructions in it."
234 msgstr "Por favor, siga as instruções." 251 msgstr "Por favor, siga as instruções."
235 252
236 -#: colab/accounts/templates/accounts/user_update_form.html:110 253 +#: accounts/templates/accounts/user_update_form.html:110
237 msgid "profile information" 254 msgid "profile information"
238 msgstr "informações do perfil" 255 msgstr "informações do perfil"
239 256
240 -#: colab/accounts/templates/accounts/user_update_form.html:115 257 +#: accounts/templates/accounts/user_update_form.html:115
241 msgid "Change your avatar at Gravatar.com" 258 msgid "Change your avatar at Gravatar.com"
242 msgstr "Troque seu avatar em Gravatar.com" 259 msgstr "Troque seu avatar em Gravatar.com"
243 260
244 -#: colab/accounts/templates/accounts/user_update_form.html:142  
245 -#: colab/search/utils.py:8 261 +#: accounts/templates/accounts/user_update_form.html:142 search/utils.py:56
246 msgid "Emails" 262 msgid "Emails"
247 -msgstr "E-mails" 263 +msgstr "Emails"
248 264
249 -#: colab/accounts/templates/accounts/user_update_form.html:151 265 +#: accounts/templates/accounts/user_update_form.html:151
250 msgid "Primary" 266 msgid "Primary"
251 msgstr "Primário" 267 msgstr "Primário"
252 268
253 -#: colab/accounts/templates/accounts/user_update_form.html:154 269 +#: accounts/templates/accounts/user_update_form.html:154
254 msgid "Setting..." 270 msgid "Setting..."
255 msgstr "Definindo..." 271 msgstr "Definindo..."
256 272
257 -#: colab/accounts/templates/accounts/user_update_form.html:154 273 +#: accounts/templates/accounts/user_update_form.html:154
258 msgid "Set as Primary" 274 msgid "Set as Primary"
259 msgstr "Definir como Primário" 275 msgstr "Definir como Primário"
260 276
261 -#: colab/accounts/templates/accounts/user_update_form.html:155 277 +#: accounts/templates/accounts/user_update_form.html:155
262 msgid "Deleting..." 278 msgid "Deleting..."
263 -msgstr "Deletando..." 279 +msgstr "Apagando..."
264 280
265 -#: colab/accounts/templates/accounts/user_update_form.html:155  
266 -#: colab/accounts/templates/accounts/user_update_form.html:167 281 +#: accounts/templates/accounts/user_update_form.html:155
  282 +#: accounts/templates/accounts/user_update_form.html:167
267 msgid "Delete" 283 msgid "Delete"
268 msgstr "Apagar" 284 msgstr "Apagar"
269 285
270 -#: colab/accounts/templates/accounts/user_update_form.html:166 286 +#: accounts/templates/accounts/user_update_form.html:166
271 msgid "Sending verification..." 287 msgid "Sending verification..."
272 msgstr "Enviando verificação..." 288 msgstr "Enviando verificação..."
273 289
274 -#: colab/accounts/templates/accounts/user_update_form.html:166 290 +#: accounts/templates/accounts/user_update_form.html:166
275 msgid "Verify" 291 msgid "Verify"
276 msgstr "Verificar" 292 msgstr "Verificar"
277 293
278 -#: colab/accounts/templates/accounts/user_update_form.html:174 294 +#: accounts/templates/accounts/user_update_form.html:174
279 msgid "Add another email address:" 295 msgid "Add another email address:"
280 -msgstr "Adicionar outro endereço de e-mail" 296 +msgstr "Adicionar outro endereço de email"
281 297
282 -#: colab/accounts/templates/accounts/user_update_form.html:177 298 +#: accounts/templates/accounts/user_update_form.html:177
283 msgid "Add" 299 msgid "Add"
284 msgstr "Adicionar" 300 msgstr "Adicionar"
285 301
286 -#: colab/accounts/templates/accounts/user_update_form.html:207  
287 -msgid ""  
288 -"This feature is available only for those who need to change the password for "  
289 -"some reason as having an old user with the same username, forgot your "  
290 -"password to commit, usage of other XMPP Client for connection. Usually, you "  
291 -"won't need to change this password. Only change it if you are sure about "  
292 -"what you are doing."  
293 -msgstr ""  
294 -"Este recurso está disponível para quem precisa trocar a senha por algum "  
295 -"motivo como ter um usuário antigo com mesmo nome de usuário, esqueceu da "  
296 -"senha antiga para commit, uso de outro cliente XMPP para conexão. "  
297 -"Normalmente, você não terá que trocar essa senha. Somente troque essa senha "  
298 -"se tiver certeza do que está fazendo." 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"
299 308
300 -#: colab/accounts/templates/accounts/user_update_form.html:217 309 +#: accounts/templates/accounts/user_update_form.html:196
301 msgid "Update" 310 msgid "Update"
302 msgstr "Atualizar" 311 msgstr "Atualizar"
303 312
304 -#: colab/accounts/templates/registration/login.html:10  
305 -#: colab/accounts/templates/registration/password_change_form_custom.html:11  
306 -#: colab/accounts/templates/registration/password_reset_confirm_custom.html:12 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
307 msgid "Please correct the error below and try again." 316 msgid "Please correct the error below and try again."
308 -msgstr "Por favor, corrija o erro abaixo e tente novamente." 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"
309 327
310 -#: colab/accounts/templates/registration/login.html:56 328 +#: accounts/templates/registration/login.html:56
311 msgid "Forgot Password?" 329 msgid "Forgot Password?"
312 -msgstr "Esqueceu sua senha?" 330 +msgstr "Esqueci minha Senha?"
313 331
314 -#: colab/accounts/templates/registration/password_change_form_custom.html:55  
315 -#: colab/accounts/templates/registration/password_reset_confirm_custom.html:52  
316 -#, fuzzy  
317 -#| msgid "Change Password" 332 +#: accounts/templates/registration/password_change_form_custom.html:54
  333 +#: accounts/templates/registration/password_reset_confirm_custom.html:51
318 msgid "Change my password" 334 msgid "Change my password"
319 -msgstr "Trocar senha" 335 +msgstr "Alterar minha senha"
320 336
321 -#: colab/accounts/templates/registration/password_reset_confirm_custom.html:3  
322 -#, fuzzy  
323 -#| msgid "Change Password" 337 +#: accounts/templates/registration/password_reset_confirm_custom.html:3
324 msgid "Setting New password" 338 msgid "Setting New password"
325 -msgstr "Trocar senha" 339 +msgstr "Definir Nova Senha"
326 340
327 -#: colab/accounts/templates/registration/password_reset_form_custom.html:23  
328 -msgid "Forgotten your password? Enter your email address below, and we'll email " 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 "
329 "instructions for setting a new one." 344 "instructions for setting a new one."
330 -msgstr "Esqueceu sua senha? Entre com seu endereço de email abaixo e nós iremos lhe enviar instruções para configurar uma nova senha" 345 +msgstr "Esqueceu sua senha? Digite seu email abaixo, e enviaremos instruções para redefinir sua senha."
331 346
332 -#: colab/accounts/templates/registration/password_reset_form_custom.html:26  
333 -#, fuzzy  
334 -#| msgid "An email address" 347 +#: accounts/templates/registration/password_reset_form_custom.html:26
335 msgid "Email address:" 348 msgid "Email address:"
336 -msgstr "Um endereço de e-mail" 349 +msgstr "Endereço de email: "
337 350
338 -#: colab/accounts/templates/registration/password_reset_form_custom.html:37 351 +#: accounts/templates/registration/password_reset_form_custom.html:37
339 msgid "Reset password" 352 msgid "Reset password"
340 msgstr "Redefinir senha" 353 msgstr "Redefinir senha"
341 354
342 -#: colab/accounts/views.py:180 355 +#: accounts/views.py:126
343 msgid "Your profile has been created!" 356 msgid "Your profile has been created!"
344 msgstr "Seu perfil foi criado!" 357 msgstr "Seu perfil foi criado!"
345 358
346 -#: colab/accounts/views.py:264  
347 -msgid "Could not change your password. Please, try again later."  
348 -msgstr "Não conseguimos alterar sua senha. Por favor, tente novamente mais tarde." 359 +#: accounts/views.py:186
  360 +msgid "Your password was changed."
  361 +msgstr "Sua senha foi modificada."
349 362
350 -#: colab/accounts/views.py:273  
351 -msgid "You've changed your password successfully!"  
352 -msgstr "Senha alterada com sucesso!" 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."
353 366
354 -#: colab/accounts/views.py:279  
355 -msgid "Your password was changed."  
356 -msgstr "Sua senha foi alterada" 367 +#: home/context_processors.py:20
  368 +msgid "Fork me!"
  369 +msgstr "Fork me!"
357 370
358 -#: colab/accounts/views.py:286  
359 -msgid "We've emailed you instructions for setting your password. You should be receiving them shortly."  
360 -msgstr "Nos enviamos o email com as intruções para mudança de senha. Em breve você deve recebê-lo." 371 +#: plugins/gitlab/models.py:27
  372 +msgid "Gitlab Project"
  373 +msgstr "Projeto no Gitlab"
361 374
362 -#: colab/accounts/views.py:292  
363 -msgid "Your password has been set. You may go ahead and log in now."  
364 -msgstr "Sua senha foi redefinida. Você pode prosseguir e autenticar agora." 375 +#: plugins/gitlab/models.py:28
  376 +msgid "Gitlab Projects"
  377 +msgstr "Projetos no Gitlab"
365 378
366 -#: colab/settings.py:160  
367 -msgid "Image"  
368 -msgstr "Imagem" 379 +#: plugins/gitlab/models.py:54
  380 +msgid "Gitlab Group"
  381 +msgstr "Grupo no Gitlab"
369 382
370 -#: colab/search/templates/search/includes/search_filters.html:122  
371 -msgid "Ticket"  
372 -msgstr "Tíquetes" 383 +#: plugins/gitlab/models.py:55
  384 +msgid "Gitlab Groups"
  385 +msgstr "Grupos no Gitlab"
373 386
374 -#: colab/search/forms.py:18  
375 -msgid "Type"  
376 -msgstr "Tipo" 387 +#: plugins/gitlab/models.py:91
  388 +msgid "Gitlab Merge Request"
  389 +msgstr "Envio de Contribuição no Gitlab"
377 390
378 -#: colab/home/context_processors.py:20  
379 -msgid "Fork me!"  
380 -msgstr "Fork me!" 391 +#: plugins/gitlab/models.py:92
  392 +msgid "Gitlab Merge Requests"
  393 +msgstr "Envio de Contribuições no Gitlab"
  394 +
  395 +#: plugins/gitlab/models.py:120
  396 +msgid "Gitlab Issue"
  397 +msgstr "Tíquete no Gitlab"
  398 +
  399 +#: plugins/gitlab/models.py:121
  400 +msgid "Gitlab Issues"
  401 +msgstr "Tíquetes no Gitlab"
381 402
382 -#: colab/rss/feeds.py:13 403 +#: plugins/gitlab/models.py:176 plugins/gitlab/models.py:177
  404 +msgid "Gitlab Comments"
  405 +msgstr "Comentários no Gitlab"
  406 +
  407 +#: plugins/noosfero/models.py:39
  408 +msgid "Community"
  409 +msgstr "Comunidade"
  410 +
  411 +#: plugins/noosfero/models.py:40
  412 +msgid "Communities"
  413 +msgstr "Comunidades"
  414 +
  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
383 msgid "Latest Discussions" 424 msgid "Latest Discussions"
384 msgstr "Últimas discussões" 425 msgstr "Últimas discussões"
385 426
386 -#: colab/rss/feeds.py:32 427 +#: rss/feeds.py:32
387 msgid "Discussions Most Relevance" 428 msgid "Discussions Most Relevance"
388 msgstr "Discussões Mais Relevantes" 429 msgstr "Discussões Mais Relevantes"
389 430
390 -#: colab/rss/feeds.py:51 431 +#: rss/feeds.py:51
391 msgid "Latest collaborations" 432 msgid "Latest collaborations"
392 msgstr "Últimas colaborações" 433 msgstr "Últimas colaborações"
393 434
394 -#: colab/search/forms.py:16 colab/search/templates/search/search.html:46  
395 -#: colab/templates/base.html:175 435 +#: search/forms.py:16 search/templates/search/search.html:46
  436 +#: templates/base.html:89 templates/header.html:29
396 msgid "Search" 437 msgid "Search"
397 msgstr "Busca" 438 msgstr "Busca"
398 439
399 -#: colab/search/forms.py:19 colab/search/views.py:22 440 +#: search/forms.py:18
  441 +msgid "Type"
  442 +msgstr "Tipo"
  443 +
  444 +#: search/forms.py:19 search/views.py:20
400 msgid "Author" 445 msgid "Author"
401 msgstr "Autor" 446 msgstr "Autor"
402 447
403 -#: colab/search/forms.py:20 448 +#: search/forms.py:20
404 msgid "Modified by" 449 msgid "Modified by"
405 msgstr "Modificado por" 450 msgstr "Modificado por"
406 451
407 -#: colab/search/forms.py:22 452 +#: search/forms.py:22
408 msgid "Status" 453 msgid "Status"
409 msgstr "Status" 454 msgstr "Status"
410 455
411 -#: colab/search/forms.py:26 colab/search/views.py:25 456 +#: search/forms.py:26 search/views.py:23
412 msgid "Mailinglist" 457 msgid "Mailinglist"
413 -msgstr "Grupo" 458 +msgstr "Lista de discussão"
414 459
415 -#: colab/search/forms.py:30 460 +#: search/forms.py:30
416 msgid "Milestone" 461 msgid "Milestone"
417 -msgstr "Etapa" 462 +msgstr "Marco"
418 463
419 -#: colab/search/forms.py:31 464 +#: search/forms.py:31
420 msgid "Priority" 465 msgid "Priority"
421 msgstr "Prioridade" 466 msgstr "Prioridade"
422 467
423 -#: colab/search/forms.py:32 468 +#: search/forms.py:32
424 msgid "Component" 469 msgid "Component"
425 msgstr "Componente" 470 msgstr "Componente"
426 471
427 -#: colab/search/forms.py:33 472 +#: search/forms.py:33
428 msgid "Severity" 473 msgid "Severity"
429 -msgstr "Seriedade" 474 +msgstr "Severidade"
430 475
431 -#: colab/search/forms.py:34 476 +#: search/forms.py:34
432 msgid "Reporter" 477 msgid "Reporter"
433 msgstr "Relator" 478 msgstr "Relator"
434 479
435 -#: colab/search/forms.py:35 480 +#: search/forms.py:35
436 msgid "Keywords" 481 msgid "Keywords"
437 -msgstr "Palavras chaves" 482 +msgstr "Palavras chave"
438 483
439 -#: colab/search/forms.py:36 484 +#: search/forms.py:36
440 msgid "Collaborators" 485 msgid "Collaborators"
441 msgstr "Colaboradores" 486 msgstr "Colaboradores"
442 487
443 -#: colab/search/forms.py:37 colab/templates/base.html:107 488 +#: search/forms.py:37
444 msgid "Repository" 489 msgid "Repository"
445 msgstr "Repositório" 490 msgstr "Repositório"
446 491
447 -#: colab/search/forms.py:38  
448 -msgid "Username"  
449 -msgstr "Usuário"  
450 -  
451 -#: colab/search/forms.py:39 492 +#: search/forms.py:39
452 msgid "Name" 493 msgid "Name"
453 msgstr "Nome" 494 msgstr "Nome"
454 495
455 -#: colab/search/forms.py:40 496 +#: search/forms.py:40
456 msgid "Institution" 497 msgid "Institution"
457 msgstr "Instituição" 498 msgstr "Instituição"
458 499
459 -#: colab/search/forms.py:41 500 +#: search/forms.py:41
460 msgid "Role" 501 msgid "Role"
461 -msgstr "Cargo" 502 +msgstr "Papel"
462 503
463 -#: colab/search/forms.py:42  
464 -#: colab/search/templates/search/includes/search_filters.html:154  
465 -#: colab/search/templates/search/includes/search_filters.html:156  
466 -#: colab/search/templates/search/includes/search_filters.html:188  
467 -#: colab/search/templates/search/includes/search_filters.html:189 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
468 msgid "Since" 508 msgid "Since"
469 msgstr "Desde" 509 msgstr "Desde"
470 510
471 -#: colab/search/forms.py:43  
472 -#: colab/search/templates/search/includes/search_filters.html:163  
473 -#: colab/search/templates/search/includes/search_filters.html:165  
474 -#: colab/search/templates/search/includes/search_filters.html:192  
475 -#: colab/search/templates/search/includes/search_filters.html:193 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
476 msgid "Until" 515 msgid "Until"
477 msgstr "Até" 516 msgstr "Até"
478 517
479 -#: colab/search/forms.py:44 518 +#: search/forms.py:44
480 msgid "Filename" 519 msgid "Filename"
481 msgstr "Nome do arquivo" 520 msgstr "Nome do arquivo"
482 521
483 -#: colab/search/forms.py:45 522 +#: search/forms.py:45
484 msgid "Used by" 523 msgid "Used by"
485 msgstr "Usado por" 524 msgstr "Usado por"
486 525
487 -#: colab/search/forms.py:46 526 +#: search/forms.py:46
488 msgid "File type" 527 msgid "File type"
489 msgstr "Tipo do arquivo" 528 msgstr "Tipo do arquivo"
490 529
491 -#: colab/search/forms.py:47 530 +#: search/forms.py:47
492 msgid "Size" 531 msgid "Size"
493 msgstr "Tamanho" 532 msgstr "Tamanho"
494 533
495 -#: colab/search/templates/search/includes/search_filters.html:5  
496 -#: colab/search/templates/search/includes/search_filters.html:33  
497 -#: colab/search/templates/search/includes/search_filters.html:51  
498 -#: colab/search/templates/search/includes/search_filters.html:69 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
499 msgid "Remove filter" 538 msgid "Remove filter"
500 msgstr "Remover filtro" 539 msgstr "Remover filtro"
501 540
502 -#: colab/search/templates/search/includes/search_filters.html:88  
503 -#: colab/search/templates/search/includes/search_filters.html:174  
504 -#: colab/search/templates/search/includes/search_filters.html:198 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
505 msgid "Filter" 544 msgid "Filter"
506 msgstr "Filtro" 545 msgstr "Filtro"
507 546
508 -#: colab/search/templates/search/includes/search_filters.html:94 547 +#: search/templates/search/includes/search_filters.html:94
509 msgid "Sort by" 548 msgid "Sort by"
510 msgstr "Ordenar por" 549 msgstr "Ordenar por"
511 550
512 -#: colab/search/templates/search/includes/search_filters.html:111 551 +#: search/templates/search/includes/search_filters.html:111
513 msgid "Types" 552 msgid "Types"
514 msgstr "Tipos" 553 msgstr "Tipos"
515 554
516 -#: colab/search/templates/search/includes/search_filters.html:118  
517 -#: colab/search/utils.py:7 colab/templates/open-data.html:130  
518 -msgid "Wiki"  
519 -msgstr "Wiki"  
520 -  
521 -#: colab/search/templates/search/includes/search_filters.html:126  
522 -msgid "Changeset"  
523 -msgstr "Conjunto de Mudanças"  
524 -  
525 -#: colab/search/templates/search/includes/search_filters.html:130  
526 -msgid "User"  
527 -msgstr "Usuário"  
528 -  
529 -#: colab/search/templates/search/includes/search_filters.html:134  
530 -msgid "Attachment"  
531 -msgstr "Anexo"  
532 -  
533 -#: colab/search/templates/search/includes/search_filters.html:139  
534 -#: colab/search/views.py:20 555 +#: search/templates/search/includes/search_filters.html:117 search/views.py:18
535 msgid "Discussion" 556 msgid "Discussion"
536 -msgstr "Discussões" 557 +msgstr "Discussão"
537 558
538 -#: colab/search/templates/search/search.html:5 559 +#: search/templates/search/search.html:5
539 msgid "search" 560 msgid "search"
540 msgstr "busca" 561 msgstr "busca"
541 562
542 -#: colab/search/templates/search/search.html:51 563 +#: search/templates/search/search.html:51
543 msgid "documents found" 564 msgid "documents found"
544 msgstr "documentos encontrados" 565 msgstr "documentos encontrados"
545 566
546 -#: colab/search/templates/search/search.html:62 567 +#: search/templates/search/search.html:62
547 msgid "Search here" 568 msgid "Search here"
548 msgstr "Pesquise aqui" 569 msgstr "Pesquise aqui"
549 570
550 -#: colab/search/templates/search/search.html:74  
551 -#: colab/search/templates/search/search.html:84 571 +#: search/templates/search/search.html:74
  572 +#: search/templates/search/search.html:84
552 msgid "Filters" 573 msgid "Filters"
553 msgstr "Filtros" 574 msgstr "Filtros"
554 575
555 -#: colab/search/templates/search/search.html:105 576 +#: search/templates/search/search.html:105
556 msgid "No results for your search." 577 msgid "No results for your search."
557 msgstr "Não há resultados para sua busca." 578 msgstr "Não há resultados para sua busca."
558 579
559 -#: colab/search/templates/search/search.html:107 580 +#: search/templates/search/search.html:107
560 msgid "You are searching for" 581 msgid "You are searching for"
561 msgstr "Você está procurando por" 582 msgstr "Você está procurando por"
562 583
563 -#: colab/search/utils.py:9 colab/settings.py:157  
564 -msgid "Code"  
565 -msgstr "Código"  
566 -  
567 -#: colab/search/utils.py:10  
568 -msgid "Tickets"  
569 -msgstr "Tíquetes"  
570 -  
571 -#: colab/search/utils.py:11  
572 -msgid "Attachments"  
573 -msgstr "Anexos"  
574 -  
575 -#: colab/settings.py:115 584 +#: settings.py:113
576 msgid "English" 585 msgid "English"
577 msgstr "Inglês" 586 msgstr "Inglês"
578 587
579 -#: colab/settings.py:116 588 +#: settings.py:114
580 msgid "Portuguese" 589 msgid "Portuguese"
581 msgstr "Português" 590 msgstr "Português"
582 591
583 -#: colab/settings.py:117 592 +#: settings.py:115
584 msgid "Spanish" 593 msgid "Spanish"
585 msgstr "Espanhol" 594 msgstr "Espanhol"
586 595
587 -#: colab/settings.py:140 596 +#: settings.py:138
588 msgid "Recent activity" 597 msgid "Recent activity"
589 msgstr "Atividade recente" 598 msgstr "Atividade recente"
590 599
591 -#: colab/settings.py:144 600 +#: settings.py:142
592 msgid "Relevance" 601 msgid "Relevance"
593 msgstr "Relevância" 602 msgstr "Relevância"
594 603
595 -#: colab/settings.py:153 604 +#: settings.py:151
596 msgid "Document" 605 msgid "Document"
597 msgstr "Documento" 606 msgstr "Documento"
598 607
599 -#: colab/settings.py:155 608 +#: settings.py:153
600 msgid "Presentation" 609 msgid "Presentation"
601 msgstr "Apresentação" 610 msgstr "Apresentação"
602 611
603 -#: colab/settings.py:156 612 +#: settings.py:154
604 msgid "Text" 613 msgid "Text"
605 msgstr "Texto" 614 msgstr "Texto"
606 615
607 -#: colab/settings.py:159 616 +#: settings.py:155
  617 +msgid "Code"
  618 +msgstr "Código"
  619 +
  620 +#: settings.py:157
608 msgid "Compressed" 621 msgid "Compressed"
609 msgstr "Compactado" 622 msgstr "Compactado"
610 623
611 -#: colab/settings.py:162 624 +#: settings.py:158
  625 +msgid "Image"
  626 +msgstr "Imagem"
  627 +
  628 +#: settings.py:160
612 msgid "Spreadsheet" 629 msgid "Spreadsheet"
613 msgstr "Planilha" 630 msgstr "Planilha"
614 631
615 -#: colab/settings.py:260  
616 -msgid "Planet Colab"  
617 -msgstr "Planet Colab"  
618 -  
619 -#: colab/settings.py:261  
620 -msgid "Colab blog aggregator"  
621 -msgstr "Agregador de blog Colab"  
622 -  
623 -#: colab/settings.py:295  
624 -msgid "One Time Snippet"  
625 -msgstr "Uma única visualização"  
626 -  
627 -#: colab/settings.py:296  
628 -msgid "In one hour"  
629 -msgstr "Em uma hora"  
630 -  
631 -#: colab/settings.py:297  
632 -msgid "In one week"  
633 -msgstr "Em uma semana"  
634 -  
635 -#: colab/settings.py:298  
636 -msgid "In one month"  
637 -msgstr "Em um mês"  
638 -  
639 -#: colab/settings.py:299  
640 -msgid "Never"  
641 -msgstr "Nunca"  
642 -  
643 -#: colab/templates/404.html:5 632 +#: templates/404.html:5
644 msgid "Not found. Keep searching! :)" 633 msgid "Not found. Keep searching! :)"
645 msgstr "Não encontrado. Continue procurando! :)" 634 msgstr "Não encontrado. Continue procurando! :)"
646 635
647 -#: colab/templates/500.html:2 636 +#: templates/500.html:2
648 msgid "Ooopz... something went wrong!" 637 msgid "Ooopz... something went wrong!"
649 -msgstr "Opa... algo saiu errado!" 638 +msgstr "Ooopa... algo saiu errado!"
650 639
651 -#: colab/templates/base.html:91  
652 -msgid "Timeline"  
653 -msgstr "Linha do Tempo"  
654 -  
655 -#: colab/templates/base.html:96 colab/templates/base.html.py:114 640 +#: templates/base.html:83 templates/header.html:21
656 msgid "Groups" 641 msgid "Groups"
657 msgstr "Grupos" 642 msgstr "Grupos"
658 643
659 -#: colab/templates/base.html:101  
660 -msgid "Blogs"  
661 -msgstr "Blogs"  
662 -  
663 -#: colab/templates/base.html:109  
664 -msgid "Public Projects"  
665 -msgstr "Projetos Públicos"  
666 -  
667 -#: colab/templates/base.html:111 colab/templates/base.html.py:140  
668 -msgid "Profile"  
669 -msgstr "Perfil"  
670 -  
671 -#: colab/templates/base.html:112  
672 -msgid "New Project"  
673 -msgstr "Novo Projeto"  
674 -  
675 -#: colab/templates/base.html:113  
676 -msgid "Projects"  
677 -msgstr "Projetos"  
678 -  
679 -#: colab/templates/base.html:115  
680 -msgid "Issues"  
681 -msgstr "Tiquetes"  
682 -  
683 -#: colab/templates/base.html:116  
684 -msgid "Merge Requests"  
685 -msgstr "Merge Requests"  
686 -  
687 -#: colab/templates/base.html:124  
688 -msgid "Social"  
689 -msgstr "Social"  
690 -  
691 -#: colab/templates/base.html:129  
692 -msgid "Users"  
693 -msgstr "Usuários"  
694 -  
695 -#: colab/templates/base.html:134  
696 -msgid "Communities"  
697 -msgstr "Comunidades"  
698 -  
699 -#: colab/templates/base.html:145  
700 -msgid "Control panel"  
701 -msgstr "Painel de Controle"  
702 -  
703 -#: colab/templates/base.html:154  
704 -msgid "Contribute"  
705 -msgstr "Contribua"  
706 -  
707 -#: colab/templates/base.html:158  
708 -msgid "New Wiki Page"  
709 -msgstr "Nova Página Wiki"  
710 -  
711 -#: colab/templates/base.html:160  
712 -msgid "View Tickets"  
713 -msgstr "Ver Tiquetes"  
714 -  
715 -#: colab/templates/base.html:162  
716 -msgid "New Ticket"  
717 -msgstr "Novo Tíquete"  
718 -  
719 -#: colab/templates/base.html:164  
720 -msgid "Roadmap"  
721 -msgstr "Planejamento"  
722 -  
723 -#: colab/templates/base.html:167  
724 -msgid "Browse Source"  
725 -msgstr "Códigos Fontes"  
726 -  
727 -#: colab/templates/base.html:169  
728 -msgid "Continuous Integration"  
729 -msgstr "Integração Contínua"  
730 -  
731 -#: colab/templates/base.html:213 644 +#: templates/base.html:119 templates/header.html:59
732 msgid "My Profile" 645 msgid "My Profile"
733 msgstr "Meu Perfil" 646 msgstr "Meu Perfil"
734 647
735 -#: colab/templates/base.html:214 colab/templates/base.html.py:218 648 +#: templates/base.html:120 templates/base.html.py:121 templates/header.html:60
  649 +#: templates/header.html.py:61
736 msgid "Logout" 650 msgid "Logout"
737 msgstr "Sair" 651 msgstr "Sair"
738 652
739 -#: colab/templates/base.html:230 colab/templates/base.html.py:233 653 +#: templates/base.html:132 templates/base.html.py:135 templates/header.html:72
  654 +#: templates/header.html.py:75
740 msgid "Search here..." 655 msgid "Search here..."
741 msgstr "Pesquise aqui..." 656 msgstr "Pesquise aqui..."
742 657
743 -#: colab/templates/base.html:247 658 +#: templates/base.html:149
744 msgid "The login has failed. Please, try again." 659 msgid "The login has failed. Please, try again."
745 msgstr "O login falhou. Por favor, tente novamente." 660 msgstr "O login falhou. Por favor, tente novamente."
746 661
747 -#: colab/templates/base.html:272 662 +#: templates/footer.html:6
748 msgid "Last email imported at" 663 msgid "Last email imported at"
749 -msgstr "Último e-mail importado em" 664 +msgstr "Último email importado em"
750 665
751 -#: colab/templates/base.html:279 666 +#: templates/footer.html:12
752 msgid "The contents of this site is published under license" 667 msgid "The contents of this site is published under license"
753 msgstr "O conteúdo deste site está publicado sob a licença" 668 msgstr "O conteúdo deste site está publicado sob a licença"
754 669
755 -#: colab/templates/base.html:282 670 +#: templates/footer.html:15
756 msgid "Creative Commons 4.0 Brasil - Atribuir Fonte - Compartilhar Igual" 671 msgid "Creative Commons 4.0 Brasil - Atribuir Fonte - Compartilhar Igual"
757 msgstr "Creative Commons 4.0 Brasil - Atribuir Fonte - Compartilhar Igual" 672 msgstr "Creative Commons 4.0 Brasil - Atribuir Fonte - Compartilhar Igual"
758 673
759 -#: colab/templates/dpaste/snippet_details.html:37  
760 -#, fuzzy  
761 -#| msgid "Comparison"  
762 -msgid "Compare"  
763 -msgstr "Comparação"  
764 -  
765 -#: colab/templates/dpaste/snippet_details.html:47  
766 -#, python-format  
767 -msgid "Expires in: %(date)s"  
768 -msgstr "Expira em: %(date)s"  
769 -  
770 -#: colab/templates/dpaste/snippet_details.html:49  
771 -msgid "Snippet never expires"  
772 -msgstr "Snippet nunca expira"  
773 -  
774 -#: colab/templates/dpaste/snippet_details.html:51  
775 -#, fuzzy  
776 -#| msgid "One Time Snippet"  
777 -msgid "One-time snippet"  
778 -msgstr "Uma única visualização"  
779 -  
780 -#: colab/templates/dpaste/snippet_details.html:56  
781 -msgid "Really delete this snippet?"  
782 -msgstr "Deseja realmente deletar esse snippet?"  
783 -  
784 -#: colab/templates/dpaste/snippet_details.html:58  
785 -#, fuzzy  
786 -#| msgid "Delete"  
787 -msgid "Delete Now"  
788 -msgstr "Apagar"  
789 -  
790 -#: colab/templates/dpaste/snippet_details.html:63  
791 -#: colab/templates/dpaste/snippet_details.html:65  
792 -#, fuzzy  
793 -#| msgid "One Time Snippet"  
794 -msgid "Compare Snippets"  
795 -msgstr "Uma única visualização"  
796 -  
797 -#: colab/templates/dpaste/snippet_details.html:69  
798 -#: colab/templates/dpaste/snippet_details.html:71  
799 -msgid "View Raw"  
800 -msgstr "Ver código"  
801 -  
802 -#: colab/templates/dpaste/snippet_details.html:75  
803 -msgid "Gist"  
804 -msgstr "Gist"  
805 -  
806 -#: colab/templates/dpaste/snippet_details.html:88  
807 -msgid "This is a one-time snippet."  
808 -msgstr "Esste é um snippet que será usado apenas uma vez."  
809 -  
810 -#: colab/templates/dpaste/snippet_details.html:90  
811 -msgid "It will automatically get deleted after {{ remaining }} further views."  
812 -msgstr "Isso será automaticamente deletado depois de {{ remaining }} visualizações."  
813 -  
814 -#: colab/templates/dpaste/snippet_details.html:92  
815 -msgid "It will automatically get deleted after the next view."  
816 -msgstr "Isso será automaticamente deletado após a próxima visualização."  
817 -  
818 -#: colab/templates/dpaste/snippet_details.html:94  
819 -msgid "It cannot be viewed again."  
820 -msgstr "Isso não pode ser visto novamente."  
821 -  
822 -#: colab/templates/dpaste/snippet_details.html:109  
823 -msgid "Reply to this snippet"  
824 -msgstr "Responda esse snippet"  
825 -  
826 -#: colab/templates/dpaste/snippet_diff.html:5  
827 -#, python-format  
828 -msgid ""  
829 -"\n"  
830 -" Diff between <a href=\"%(filea_url)s\">#%(filea_id)s</a> and <a href="  
831 -"\"%(fileb_url)s\">#%(fileb_id)s</a>\n"  
832 -" "  
833 -msgstr ""  
834 -"\n"  
835 - " Diferença entre <a href=\"%(filea_url)s\">#%(filea_id)s</a> e <a href="  
836 - "\"%(fileb_url)s\">#%(fileb_id)s</a>\n"  
837 - " "  
838 -  
839 -#: colab/templates/dpaste/snippet_form.html:28  
840 -msgid "Paste it" 674 +#: templates/header.html:26
  675 +msgid "Paste"
841 msgstr "Cole aqui" 676 msgstr "Cole aqui"
842 677
843 -#: colab/templates/home.html:17 678 +#: templates/home.html:17
844 msgid "Latest Collaborations" 679 msgid "Latest Collaborations"
845 msgstr "Últimas Colaborações" 680 msgstr "Últimas Colaborações"
846 681
847 -#: colab/templates/home.html:21 682 +#: templates/home.html:21
848 msgid "RSS - Latest collaborations" 683 msgid "RSS - Latest collaborations"
849 msgstr "RSS - Últimas Colaborações" 684 msgstr "RSS - Últimas Colaborações"
850 685
851 -#: colab/templates/home.html:30 686 +#: templates/home.html:30
852 msgid "View more collaborations..." 687 msgid "View more collaborations..."
853 msgstr "Ver mais colaborações..." 688 msgstr "Ver mais colaborações..."
854 689
855 -#: colab/templates/home.html:37 690 +#: templates/home.html:37
856 msgid "Collaboration Graph" 691 msgid "Collaboration Graph"
857 msgstr "Gráfico de Colaborações" 692 msgstr "Gráfico de Colaborações"
858 693
859 -#: colab/templates/home.html:48 694 +#: templates/home.html:48
860 msgid "Most Relevant Threads" 695 msgid "Most Relevant Threads"
861 msgstr "Discussões Mais Relevantes" 696 msgstr "Discussões Mais Relevantes"
862 697
863 -#: colab/templates/home.html:52 698 +#: templates/home.html:52
864 msgid "RSS - Most Relevant Threads" 699 msgid "RSS - Most Relevant Threads"
865 msgstr "RSS - Discussões Mais Relevantes" 700 msgstr "RSS - Discussões Mais Relevantes"
866 701
867 -#: colab/templates/home.html:60 colab/templates/home.html.py:79 702 +#: templates/home.html:60 templates/home.html.py:79
868 msgid "View more discussions..." 703 msgid "View more discussions..."
869 msgstr "Ver mais discussões..." 704 msgstr "Ver mais discussões..."
870 705
871 -#: colab/templates/home.html:67 706 +#: templates/home.html:67
872 msgid "Latest Threads" 707 msgid "Latest Threads"
873 msgstr "Últimas Discussões" 708 msgstr "Últimas Discussões"
874 709
875 -#: colab/templates/home.html:71 710 +#: templates/home.html:71
876 msgid "RSS - Latest Threads" 711 msgid "RSS - Latest Threads"
877 msgstr "RSS - Últimas Discussões" 712 msgstr "RSS - Últimas Discussões"
878 -  
879 -#: colab/templates/open-data.html:6  
880 -msgid "OpenData - Communities"  
881 -msgstr "OpenData - Comunidades"  
882 -  
883 -#: colab/templates/open-data.html:7  
884 -msgid ""  
885 -"If you are interested in any other data that is not provided by this API, "  
886 -"please contact us via the ticketing system (you must be registered in order "  
887 -"to create a ticket)."  
888 -msgstr ""  
889 -"Se você estiver interessado por qualquer outra informação não provida por "  
890 -"esta API, por favor nos contacte através do nosso sistema de tíquetes (você "  
891 -"deve estar logado para conseguir criar um tíquete). "  
892 -  
893 -#: colab/templates/open-data.html:9  
894 -msgid "Retrieving data via API"  
895 -msgstr "Recuperando informação através da API"  
896 -  
897 -#: colab/templates/open-data.html:10  
898 -msgid "Colab API works through HTTP/REST, always returning JSON objects."  
899 -msgstr ""  
900 -"A API do Colab funciona com a utilização de HTTP/REST e sempre retorna "  
901 -"objetos JSON."  
902 -  
903 -#: colab/templates/open-data.html:12  
904 -msgid "The base API URL is"  
905 -msgstr "A URL base da API é"  
906 -  
907 -#: colab/templates/open-data.html:19  
908 -msgid ""  
909 -"Each model listed below has a resource_uri field available, which is the "  
910 -"object's data URI."  
911 -msgstr ""  
912 -"Cada modelo listado abaixo tem um resource_uri que representa a URI do objeto"  
913 -  
914 -#: colab/templates/open-data.html:20  
915 -msgid ""  
916 -"The following list contains the available models to retrieve data and its "  
917 -"fields available for filtering"  
918 -msgstr ""  
919 -"A lista abaixo contém a lista de modelo disponíveis para pesquisa e os "  
920 -"campos disponíveis para filtro"  
921 -  
922 -#: colab/templates/open-data.html:24 colab/templates/open-data.html.py:39  
923 -#: colab/templates/open-data.html:50 colab/templates/open-data.html.py:62  
924 -#: colab/templates/open-data.html:74 colab/templates/open-data.html.py:95  
925 -msgid "Fields"  
926 -msgstr "Campos"  
927 -  
928 -#: colab/templates/open-data.html:25  
929 -msgid ""  
930 -"The email field is not shown for user's privacy, but you can use it to filter"  
931 -msgstr ""  
932 -"O campo email não é exibido por uma questão de privacidade do usuário, por "  
933 -"outro lado ele poderá ser utilizado em filtros"  
934 -  
935 -#: colab/templates/open-data.html:27  
936 -msgid "The user's username"  
937 -msgstr "O username do usuário"  
938 -  
939 -#: colab/templates/open-data.html:28  
940 -msgid "The user's email address"  
941 -msgstr "O endereço e-mail do usuário"  
942 -  
943 -#: colab/templates/open-data.html:29  
944 -msgid "What is the user's institution"  
945 -msgstr "Instituição do usuário"  
946 -  
947 -#: colab/templates/open-data.html:30  
948 -msgid "What is the user's role"  
949 -msgstr "Posição do usuário"  
950 -  
951 -#: colab/templates/open-data.html:31  
952 -msgid "The user's first name"  
953 -msgstr "Primeiro nome do usuário"  
954 -  
955 -#: colab/templates/open-data.html:32  
956 -msgid "The user's last name"  
957 -msgstr "Último nome do usuário"  
958 -  
959 -#: colab/templates/open-data.html:33  
960 -msgid "A mini bio of the user"  
961 -msgstr "O mini bio do usuário"  
962 -  
963 -#: colab/templates/open-data.html:40  
964 -msgid ""  
965 -"The address field is not shown for user's privacy, but you can use it to "  
966 -"filter"  
967 -msgstr ""  
968 -"O campo email não é exibido por uma questão de privacidade do usuário, por "  
969 -"outro lado ele poderá ser utilizado em filtros"  
970 -  
971 -#: colab/templates/open-data.html:42  
972 -msgid "It has a relationshop with the user described above"  
973 -msgstr "Tem um relacionamento com usuário como descrito acima"  
974 -  
975 -#: colab/templates/open-data.html:43  
976 -msgid "An email address"  
977 -msgstr "Um endereço de e-mail"  
978 -  
979 -#: colab/templates/open-data.html:44  
980 -msgid "The user's real name"  
981 -msgstr "O nome real do usuário"  
982 -  
983 -#: colab/templates/open-data.html:52  
984 -msgid "It has a relationship with the emailaddress described above"  
985 -msgstr "Tem um relacionamento com emailaddress como descrito acima"  
986 -  
987 -#: colab/templates/open-data.html:53  
988 -msgid "The message's body"  
989 -msgstr "O corpo da mensagem"  
990 -  
991 -#: colab/templates/open-data.html:54  
992 -msgid "The message's subject"  
993 -msgstr "O título da mensagem"  
994 -  
995 -#: colab/templates/open-data.html:55  
996 -msgid "The message's id"  
997 -msgstr "O ID da mensagem"  
998 -  
999 -#: colab/templates/open-data.html:56  
1000 -msgid "The message's received time"  
1001 -msgstr "A hora que a mensagem foi recebida"  
1002 -  
1003 -#: colab/templates/open-data.html:64  
1004 -msgid "The revision's author username"  
1005 -msgstr "O username do autor da revisão"  
1006 -  
1007 -#: colab/templates/open-data.html:65  
1008 -msgid "When the revision's were created"  
1009 -msgstr "Quando a revisão foi criada"  
1010 -  
1011 -#: colab/templates/open-data.html:66  
1012 -msgid "The revision's key"  
1013 -msgstr "A chave da revisão"  
1014 -  
1015 -#: colab/templates/open-data.html:67  
1016 -msgid "The revision's message"  
1017 -msgstr "A mensagem da revisão"  
1018 -  
1019 -#: colab/templates/open-data.html:68  
1020 -msgid "The revision's repository name"  
1021 -msgstr "O nome do repositório da revisão"  
1022 -  
1023 -#: colab/templates/open-data.html:76  
1024 -msgid "The ticket's author username"  
1025 -msgstr "O nome do autor do tíquete"  
1026 -  
1027 -#: colab/templates/open-data.html:77  
1028 -msgid "The ticket's component"  
1029 -msgstr "O componente do tíquete"  
1030 -  
1031 -#: colab/templates/open-data.html:78  
1032 -msgid "When the ticket's were created"  
1033 -msgstr "Quando o tíquete foi criado"  
1034 -  
1035 -#: colab/templates/open-data.html:79  
1036 -msgid "The ticket's description"  
1037 -msgstr "A descrição do tíquete"  
1038 -  
1039 -#: colab/templates/open-data.html:80  
1040 -msgid "The ticket's id"  
1041 -msgstr "O ID do tíquete"  
1042 -  
1043 -#: colab/templates/open-data.html:81  
1044 -msgid "The ticket's keywords"  
1045 -msgstr "As keywords do tíquete"  
1046 -  
1047 -#: colab/templates/open-data.html:82  
1048 -msgid "The ticket's milestone"  
1049 -msgstr "O milestone do tíquete"  
1050 -  
1051 -#: colab/templates/open-data.html:83 colab/templates/open-data.html.py:99  
1052 -msgid "The time of the last modification"  
1053 -msgstr "A hora da última modificação"  
1054 -  
1055 -#: colab/templates/open-data.html:84  
1056 -msgid "The username of the last user who modified the ticket"  
1057 -msgstr "O username do último usuário que modificou o tíquete"  
1058 -  
1059 -#: colab/templates/open-data.html:85  
1060 -msgid "The ticket's priority"  
1061 -msgstr "A prioridade do tíquete"  
1062 -  
1063 -#: colab/templates/open-data.html:86  
1064 -msgid "The ticket's severity"  
1065 -msgstr "A gravidade do tíquete"  
1066 -  
1067 -#: colab/templates/open-data.html:87  
1068 -msgid "The ticket's status"  
1069 -msgstr "O status do tíquete"  
1070 -  
1071 -#: colab/templates/open-data.html:88  
1072 -msgid "The ticket's summary"  
1073 -msgstr "O resumo do tíquete"  
1074 -  
1075 -#: colab/templates/open-data.html:89  
1076 -msgid "The ticket's version"  
1077 -msgstr "A versão do tíquete"  
1078 -  
1079 -#: colab/templates/open-data.html:97  
1080 -msgid "The wiki's author username"  
1081 -msgstr "O username do autor da wiki"  
1082 -  
1083 -#: colab/templates/open-data.html:98  
1084 -msgid "When the wiki's were created"  
1085 -msgstr "Quando a wiki foi criada"  
1086 -  
1087 -#: colab/templates/open-data.html:100  
1088 -msgid "The username of the last user who modified the wiki"  
1089 -msgstr "O username do último usuário a modificar a wiki"  
1090 -  
1091 -#: colab/templates/open-data.html:101  
1092 -msgid "The wiki's name"  
1093 -msgstr "O nome da wiki"  
1094 -  
1095 -#: colab/templates/open-data.html:102  
1096 -msgid "the wiki's content"  
1097 -msgstr "O conteúdo da wiki"  
1098 -  
1099 -#: colab/templates/open-data.html:109  
1100 -msgid "Parameters"  
1101 -msgstr "Parâmetros"  
1102 -  
1103 -#: colab/templates/open-data.html:112  
1104 -msgid "Results per page"  
1105 -msgstr "Resultados por página"  
1106 -  
1107 -#: colab/templates/open-data.html:113  
1108 -msgid "Number of results to be displayed per page."  
1109 -msgstr "Número de resultados a serem exibidos por página."  
1110 -  
1111 -#: colab/templates/open-data.html:114  
1112 -msgid "Default: 20"  
1113 -msgstr "Padrão: 20"  
1114 -  
1115 -#: colab/templates/open-data.html:118  
1116 -msgid "Starts of n element"  
1117 -msgstr "Inicia pelo n-ésimo elemento"  
1118 -  
1119 -#: colab/templates/open-data.html:119  
1120 -msgid "Where n is the index of the first result to appear in the page."  
1121 -msgstr "Onde n é o índice do primeiro resultado a ser exibido na página."  
1122 -  
1123 -#: colab/templates/open-data.html:120  
1124 -msgid "Default: 0"  
1125 -msgstr "Padrão: 0"  
1126 -  
1127 -#: colab/templates/open-data.html:122  
1128 -msgid "Filtering"  
1129 -msgstr "Filtrando"  
1130 -  
1131 -#: colab/templates/open-data.html:124  
1132 -msgid "The field name"  
1133 -msgstr "O nome do campo"  
1134 -  
1135 -#: colab/templates/open-data.html:125  
1136 -msgid ""  
1137 -"If you are looking for a specific wiki, and you know the wiki's name, you "  
1138 -"can filter it as below"  
1139 -msgstr ""  
1140 -"Se você está buscando especificamente por uma wiki e você sabe o nome da "  
1141 -"wiki, você pode utilizar o filtro abaixo"  
1142 -  
1143 -#: colab/templates/open-data.html:126  
1144 -msgid "WikiName"  
1145 -msgstr "WikiName"  
1146 -  
1147 -#: colab/templates/open-data.html:127  
1148 -msgid ""  
1149 -"Where &quot;name&quot; is the fieldname and &quot;WikiName&quot; is the "  
1150 -"value you want to filter."  
1151 -msgstr ""  
1152 -"Onde &quot;name&quot; é o fieldname e &quot;WikiName&quot; é o value que "  
1153 -"você quer filtrar."  
1154 -  
1155 -#: colab/templates/open-data.html:128  
1156 -msgid "Usage"  
1157 -msgstr "Uso"  
1158 -  
1159 -#: colab/templates/open-data.html:129  
1160 -msgid ""  
1161 -"You can also filter using Django lookup fields with the double underscores, "  
1162 -"just as below"  
1163 -msgstr ""  
1164 -"Você também pode filtrar usando lookup fields do Django com underscores "  
1165 -"duplos, como demonstrado abaixo"  
1166 -  
1167 -#: colab/templates/open-data.html:131 colab/templates/open-data.html.py:132  
1168 -msgid "test"  
1169 -msgstr "test"  
1170 -  
1171 -#: colab/templates/open-data.html:133  
1172 -msgid "Usage with relationships"  
1173 -msgstr "Uso com relacionamentos"  
1174 -  
1175 -#: colab/templates/open-data.html:134  
1176 -msgid ""  
1177 -"You can use related fields to filter too. So, you can filter by any field of "  
1178 -"emailaddress using the 'from_address' field of message, which has a relation "  
1179 -"to emailaddress. You will achieve the related fields by using double "  
1180 -"underscore and the field's name. See the example below"  
1181 -msgstr ""  
1182 -"Você pode também pode utilizar campos relacionados para filtrar. Você pode "  
1183 -"filtrar por qualquer campo de emailaddress utilizando o 'from_address' da "  
1184 -"mensagem, que tem relação com emailaddress. Para tal você precisará utilizar "  
1185 -"os underscores duplos e o nome do campo desejado. Veja o exemplo abaixo"  
1186 -  
1187 -#: colab/templates/open-data.html:136  
1188 -msgid ""  
1189 -"So, real_name is a field of emailaddress, and you had access to this field "  
1190 -"by a message field called from_address and using double underscore to say "  
1191 -"you want to use a field of that relationship"  
1192 -msgstr ""  
1193 -"real_name é um campo de emailaddress e você pode acessá-lo através de um "  
1194 -"campo do do objeto message, from_address, e underscores duplos para "  
1195 -"referenciar que este campo pertence ao modelo relacionado"  
1196 -  
1197 -#: colab/templates/open-data.html:137  
1198 -msgid ""  
1199 -"Note: email filters must be exact. Which means that __contains, "  
1200 -"__startswith, __endswith and others won't work"  
1201 -msgstr ""  
1202 -"Nota: os filtros de email devem ser exatos. Isso significa que __contains, "  
1203 -"__startswith, __endswith e outros métodos de busca parcial não funcionarão"  
1204 -  
1205 -#: colab/templates/open-data.html:138  
1206 -msgid ""  
1207 -"Another example of usage with relations. Used to retrieve all messages of a "  
1208 -"given user, using the username or the email field"  
1209 -msgstr ""  
1210 -"Outro exemplo de uso com relacionamento. Usado para recuperar todos as "  
1211 -"mensagem de um dado usuário usando o campo username ou email"  
1212 -  
1213 -  
1214 -#: colab/accounts/forms.py:276  
1215 -msgid "This value may contain only letters and numbers."  
1216 -msgstr "Esse campo só pode conter letras e/ou numeros."  
1217 -  
1218 -#~ msgid "Please correct the errors below and try again"  
1219 -#~ msgstr "Por favor, corrija os erros abaixo e tente novamente"  
1220 -  
1221 -#, fuzzy  
1222 -#~| msgid "Please correct the error below and try again"  
1223 -#~ msgid "Please correct the error below and try again"  
1224 -#~ msgstr "Por favor, corrija o erro abaixo e tente novamente"  
1225 -  
1226 -#~ msgid "%(count)s users deleted."  
1227 -#~ msgstr "%(count)s usuários deletados."  
1228 -  
1229 -#~ msgid ""  
1230 -#~ "You must login to validated your profile. Profiles not validated are "  
1231 -#~ "deleted in 24h."  
1232 -#~ msgstr ""  
1233 -#~ "Você deve se logar para validar seu perfil. Perfis não validados serão "  
1234 -#~ "deletados em 24h."  
colab/plugins/gitlab/__init__.py 0 → 100644
@@ -0,0 +1,8 @@ @@ -0,0 +1,8 @@
  1 +
  2 +
  3 +default_app_config = 'colab.plugins.gitlab.apps.ProxyGitlabAppConfig'
  4 +
  5 +from colab.plugins.utils.widget_manager import WidgetManager
  6 +from colab.plugins.gitlab.widgets import GitlabProfileWidget
  7 +
  8 +WidgetManager.register_widget('profile', GitlabProfileWidget())
colab/plugins/gitlab/profile/diazo.xml 0 → 100644
@@ -0,0 +1,36 @@ @@ -0,0 +1,36 @@
  1 +<rules
  2 + xmlns="http://namespaces.plone.org/diazo"
  3 + xmlns:css="http://namespaces.plone.org/diazo/css"
  4 + xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  5 +
  6 + <xsl:variable name="username" select="str:replace(//a/@href[(contains(., '/gitlab/u/'))], '/gitlab/u/', '')" />
  7 + <xsl:template match="a/@href[(contains(., '/profile/'))]">
  8 + <xsl:attribute name="href">/account/<xsl:value-of select="$username"/>/edit?code=<xsl:value-of select="."/>/</xsl:attribute>
  9 + </xsl:template>
  10 + <xsl:template match="form/@action[(contains(., '/gitlab/'))]">
  11 + <xsl:attribute name="action">/account/<xsl:value-of select="$username"/>/edit?code=<xsl:value-of select="."/>/</xsl:attribute>
  12 + </xsl:template>
  13 +
  14 + <!-- Drop colab stuff -->
  15 + <drop css:theme="nav.navbar-fixed-top" />
  16 + <drop css:theme="div.footer" />
  17 +
  18 + <!-- Drop unused tabs on gitlab -->
  19 + <drop content="div[@class='container']/ul/li[1]" />
  20 + <drop content="div[@class='container']/ul/li[3]" />
  21 + <drop content="div[@class='container']/ul/li[4]" />
  22 + <drop content="div[@class='container']/ul/li[7]" />
  23 + <drop content="fieldset[@class='update-username']" />
  24 +
  25 + <before theme-children="/html/head" content-children="/html/head" />
  26 + <before css:theme-children="#main-content" css:content-children="body" />
  27 +
  28 + <merge attributes="class" css:theme="body" css:content="body" />
  29 +
  30 + <!-- Add gitlab properties -->
  31 + <merge attributes="data-page" css:theme="body" css:content="body" />
  32 + <merge attributes="data-project-id" css:theme="body" css:content="body" />
  33 +
  34 + <drop css:content="#top-panel" />
  35 + <drop css:content=".navbar-gitlab" />
  36 +</rules>
colab/plugins/gitlab/templates/proxy/gitlab_profile.html 0 → 100644
@@ -0,0 +1,49 @@ @@ -0,0 +1,49 @@
  1 +
  2 +{% load static from staticfiles %}
  3 +
  4 +{% block head_css %}
  5 +<style>
  6 + /* Reset left and with for .modal-dialog style (like gitlab does),
  7 + the bootstrap.css one makes it small */
  8 + @media screen and (min-width: 768px) {
  9 + .modal-dialog {
  10 + left: auto;
  11 + width: auto;
  12 + }
  13 + }
  14 +
  15 + div#main-content div.container {
  16 + width: 1110px;
  17 + }
  18 + div#main-content div.flash-container{
  19 + width: 85%;
  20 + }
  21 + #breadcrumbs {
  22 + border: 0 !important;
  23 + }
  24 +
  25 + #right-top-nav {
  26 + margin-right: 5em !important;
  27 + }
  28 +</style>
  29 +{% endblock %}
  30 +
  31 +{% block head_js %}
  32 +<script>jQuery.noConflict();</script>
  33 +{% endblock %}
  34 +
  35 +<div id="main-content"></div>
  36 +<script type="text/javascript">
  37 + jQuery(function(){
  38 + // bootstrap.css forces .hide {display:none!important}, and this makes
  39 + // gitlab .hide elements NEVER have a display:block, so
  40 + // instead of editing bootstrap.css, we just removed '.hide' css class and
  41 + // toggled
  42 + jQuery('.hide').removeClass('hide').css('display', 'none');
  43 + });
  44 +
  45 + // Extremelly ugly solutions to add Colab's CSRF token to Gitlab forms
  46 + // add CSRF token to HTTP header***
  47 + jQuery('div#code form').append(jQuery("input[name='csrfmiddlewaretoken']"));
  48 + $('a.delete-key').attr('data-method', 'delete\" type=\"hidden\" /> <input name=\"csrfmiddlewaretoken\" value=\"' + jQuery("input[name='csrfmiddlewaretoken']").val());
  49 +</script>
colab/plugins/gitlab/urls.py 0 → 100644
@@ -0,0 +1,8 @@ @@ -0,0 +1,8 @@
  1 +
  2 +from django.conf.urls import patterns, url
  3 +
  4 +from .views import GitlabProxyView, GitlabProfileProxyView
  5 +
  6 +urlpatterns = patterns('',
  7 + url(r'^(?P<path>.*)$', GitlabProxyView.as_view(), name='gitlab'),
  8 +)
colab/plugins/gitlab/views.py 0 → 100644
@@ -0,0 +1,22 @@ @@ -0,0 +1,22 @@
  1 +
  2 +from ..utils.views import ColabProxyView
  3 +import os, sys
  4 +
  5 +
  6 +class GitlabProxyView(ColabProxyView):
  7 + app_label = 'gitlab'
  8 + diazo_theme_template = 'proxy/gitlab.html'
  9 +
  10 +
  11 +class GitlabProfileProxyView(ColabProxyView):
  12 + app_label = 'gitlab'
  13 + diazo_theme_template = 'proxy/gitlab_profile.html'
  14 +
  15 + @property
  16 + def diazo_rules(self):
  17 + child_class_file = sys.modules[self.__module__].__file__
  18 + app_path = os.path.abspath(os.path.dirname(child_class_file))
  19 + diazo_path = os.path.join(app_path, 'profile/diazo.xml')
  20 +
  21 + self.log.debug("diazo_rules: %s", diazo_path)
  22 + return diazo_path
colab/plugins/gitlab/widgets.py 0 → 100644
@@ -0,0 +1,35 @@ @@ -0,0 +1,35 @@
  1 +from colab.plugins.gitlab.views import GitlabProxyView, GitlabProfileProxyView
  2 +from colab.plugins.utils.widget_manager import Widget
  3 +from django.utils.safestring import mark_safe
  4 +
  5 +
  6 +class GitlabProfileWidget(GitlabProxyView, Widget):
  7 + identifier = 'code'
  8 + name = 'Gitlab Profile'
  9 + default_url = '/gitlab/profile/account'
  10 +
  11 + def get_body(self):
  12 + start = self.content.find('<body')
  13 + start = self.content.find('>', start)
  14 + end = self.content.find('</body>')
  15 + print "start = " + str(start) + ", end = " + str(end)
  16 + print "content = " + self.content
  17 +
  18 + if -1 in [start, end]:
  19 + return ''
  20 +
  21 + body = self.content[start + len('>'):end]
  22 + return mark_safe(body)
  23 +
  24 + def generate_content(self, request):
  25 + requested_url = request.GET.get('code', self.default_url)
  26 + g = GitlabProfileProxyView()
  27 + r = g.dispatch(request, requested_url)
  28 +
  29 + if r.status_code == 302:
  30 + location = r.get('Location')
  31 + requested_url = location[location.find('/{}/'.format(self.app_label)):]
  32 + request.method = 'GET'
  33 + r = g.dispatch(request, requested_url)
  34 +
  35 + self.content = r.content
colab/settings.py
@@ -241,10 +241,9 @@ SUPER_ARCHIVES_LOCK_FILE = &#39;/var/lock/colab/import_emails.lock&#39; @@ -241,10 +241,9 @@ SUPER_ARCHIVES_LOCK_FILE = &#39;/var/lock/colab/import_emails.lock&#39;
241 # Mailman API settings 241 # Mailman API settings
242 MAILMAN_API_URL = 'http://localhost:8124/v2/' 242 MAILMAN_API_URL = 'http://localhost:8124/v2/'
243 243
244 -LOGIN_URL = '/user/login' 244 +LOGIN_URL = '/account/login'
  245 +LOGOUT_URL = '/account/logout'
245 LOGIN_REDIRECT_URL = '/' 246 LOGIN_REDIRECT_URL = '/'
246 -LOGIN_REDIRECT_URL_FAILURE = '/?bid_login_failed=true'  
247 -LOGOUT_REDIRECT_URL = '/'  
248 247
249 REVPROXY_ADD_REMOTE_USER = True 248 REVPROXY_ADD_REMOTE_USER = True
250 249
@@ -294,3 +293,5 @@ TEMPLATE_DIRS += ( @@ -294,3 +293,5 @@ TEMPLATE_DIRS += (
294 ) 293 )
295 294
296 conf.validate_database(DATABASES, DEFAULT_DATABASE, DEBUG) 295 conf.validate_database(DATABASES, DEFAULT_DATABASE, DEBUG)
  296 +
  297 +conf.load_widgets_settings()
colab/super_archives/locale/en/LC_MESSAGES/django.mo 0 → 100644
No preview for this file type
colab/super_archives/locale/en/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid &quot;&quot; @@ -8,7 +8,7 @@ msgid &quot;&quot;
8 msgstr "" 8 msgstr ""
9 "Project-Id-Version: PACKAGE VERSION\n" 9 "Project-Id-Version: PACKAGE VERSION\n"
10 "Report-Msgid-Bugs-To: \n" 10 "Report-Msgid-Bugs-To: \n"
11 -"POT-Creation-Date: 2014-11-21 17:05+0000\n" 11 +"POT-Creation-Date: 2015-09-01 13:15+0000\n"
12 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 12 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" 13 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14 "Language-Team: LANGUAGE <LL@li.org>\n" 14 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -21,65 +21,65 @@ msgstr &quot;&quot; @@ -21,65 +21,65 @@ msgstr &quot;&quot;
21 msgid "[Colab] Warning - Email sent with a blank subject." 21 msgid "[Colab] Warning - Email sent with a blank subject."
22 msgstr "" 22 msgstr ""
23 23
24 -#: super_archives/models.py:61 24 +#: super_archives/models.py:77
25 #: super_archives/templates/message-preview.html:62 25 #: super_archives/templates/message-preview.html:62
26 #: super_archives/templates/message-thread.html:4 26 #: super_archives/templates/message-thread.html:4
27 msgid "Anonymous" 27 msgid "Anonymous"
28 msgstr "" 28 msgstr ""
29 29
30 -#: super_archives/models.py:111 30 +#: super_archives/models.py:133
31 msgid "Mailing List" 31 msgid "Mailing List"
32 msgstr "" 32 msgstr ""
33 33
34 -#: super_archives/models.py:112 34 +#: super_archives/models.py:134
35 msgid "The Mailing List where is the thread" 35 msgid "The Mailing List where is the thread"
36 msgstr "" 36 msgstr ""
37 37
38 -#: super_archives/models.py:115 38 +#: super_archives/models.py:137
39 msgid "Latest message" 39 msgid "Latest message"
40 msgstr "" 40 msgstr ""
41 41
42 -#: super_archives/models.py:116 42 +#: super_archives/models.py:138
43 msgid "Latest message posted" 43 msgid "Latest message posted"
44 msgstr "" 44 msgstr ""
45 45
46 -#: super_archives/models.py:117 46 +#: super_archives/models.py:139
47 msgid "Score" 47 msgid "Score"
48 msgstr "" 48 msgstr ""
49 49
50 -#: super_archives/models.py:117 50 +#: super_archives/models.py:140
51 msgid "Thread score" 51 msgid "Thread score"
52 msgstr "" 52 msgstr ""
53 53
54 -#: super_archives/models.py:126 54 +#: super_archives/models.py:153
55 msgid "Thread" 55 msgid "Thread"
56 msgstr "" 56 msgstr ""
57 57
58 -#: super_archives/models.py:127 58 +#: super_archives/models.py:154
59 msgid "Threads" 59 msgid "Threads"
60 msgstr "" 60 msgstr ""
61 61
62 -#: super_archives/models.py:241 62 +#: super_archives/models.py:267
63 msgid "Subject" 63 msgid "Subject"
64 msgstr "" 64 msgstr ""
65 65
66 -#: super_archives/models.py:242 66 +#: super_archives/models.py:268
67 msgid "Please enter a message subject" 67 msgid "Please enter a message subject"
68 msgstr "" 68 msgstr ""
69 69
70 -#: super_archives/models.py:245 70 +#: super_archives/models.py:271
71 msgid "Message body" 71 msgid "Message body"
72 msgstr "" 72 msgstr ""
73 73
74 -#: super_archives/models.py:246 74 +#: super_archives/models.py:272
75 msgid "Please enter a message body" 75 msgid "Please enter a message body"
76 msgstr "" 76 msgstr ""
77 77
78 -#: super_archives/models.py:256 78 +#: super_archives/models.py:282
79 msgid "Message" 79 msgid "Message"
80 msgstr "" 80 msgstr ""
81 81
82 -#: super_archives/models.py:257 82 +#: super_archives/models.py:283
83 msgid "Messages" 83 msgid "Messages"
84 msgstr "" 84 msgstr ""
85 85
@@ -208,16 +208,16 @@ msgstr &quot;&quot; @@ -208,16 +208,16 @@ msgstr &quot;&quot;
208 msgid "%(number_of_users)s members" 208 msgid "%(number_of_users)s members"
209 msgstr "" 209 msgstr ""
210 210
211 -#: super_archives/templates/superarchives/thread-dashboard.html:23 211 +#: super_archives/templates/superarchives/thread-dashboard.html:20
212 msgid "latest" 212 msgid "latest"
213 msgstr "" 213 msgstr ""
214 214
215 -#: super_archives/templates/superarchives/thread-dashboard.html:31  
216 -#: super_archives/templates/superarchives/thread-dashboard.html:45 215 +#: super_archives/templates/superarchives/thread-dashboard.html:28
  216 +#: super_archives/templates/superarchives/thread-dashboard.html:42
217 msgid "more..." 217 msgid "more..."
218 msgstr "" 218 msgstr ""
219 219
220 -#: super_archives/templates/superarchives/thread-dashboard.html:37 220 +#: super_archives/templates/superarchives/thread-dashboard.html:34
221 msgid "most relevant" 221 msgid "most relevant"
222 msgstr "" 222 msgstr ""
223 223
@@ -225,45 +225,45 @@ msgstr &quot;&quot; @@ -225,45 +225,45 @@ msgstr &quot;&quot;
225 msgid "Please verify your email " 225 msgid "Please verify your email "
226 msgstr "" 226 msgstr ""
227 227
228 -#: super_archives/views.py:92 228 +#: super_archives/views.py:112
229 msgid "Error trying to connect to Mailman API" 229 msgid "Error trying to connect to Mailman API"
230 msgstr "" 230 msgstr ""
231 231
232 -#: super_archives/views.py:95 232 +#: super_archives/views.py:115
233 msgid "Timeout trying to connect to Mailman API" 233 msgid "Timeout trying to connect to Mailman API"
234 msgstr "" 234 msgstr ""
235 235
236 -#: super_archives/views.py:99 236 +#: super_archives/views.py:119
237 msgid "" 237 msgid ""
238 "Your message was sent to this topic. It may take some minutes before it's " 238 "Your message was sent to this topic. It may take some minutes before it's "
239 "delivered by email to the group. Why don't you breath some fresh air in the " 239 "delivered by email to the group. Why don't you breath some fresh air in the "
240 "meanwhile?" 240 "meanwhile?"
241 msgstr "" 241 msgstr ""
242 242
243 -#: super_archives/views.py:108 243 +#: super_archives/views.py:128
244 msgid "You cannot send an empty email" 244 msgid "You cannot send an empty email"
245 msgstr "" 245 msgstr ""
246 246
247 -#: super_archives/views.py:110 247 +#: super_archives/views.py:130
248 msgid "Mailing list does not exist" 248 msgid "Mailing list does not exist"
249 msgstr "" 249 msgstr ""
250 250
251 -#: super_archives/views.py:112 251 +#: super_archives/views.py:133
252 msgid "Unknown error trying to connect to Mailman API" 252 msgid "Unknown error trying to connect to Mailman API"
253 msgstr "" 253 msgstr ""
254 254
255 -#: super_archives/views.py:152 255 +#: super_archives/views.py:188
256 msgid "" 256 msgid ""
257 "The email address you are trying to verify either has already been verified " 257 "The email address you are trying to verify either has already been verified "
258 "or does not exist." 258 "or does not exist."
259 msgstr "" 259 msgstr ""
260 260
261 -#: super_archives/views.py:163 261 +#: super_archives/views.py:199
262 msgid "" 262 msgid ""
263 "The email address you are trying to verify is already an active email " 263 "The email address you are trying to verify is already an active email "
264 "address." 264 "address."
265 msgstr "" 265 msgstr ""
266 266
267 -#: super_archives/views.py:173 267 +#: super_archives/views.py:213
268 msgid "Email address verified!" 268 msgid "Email address verified!"
269 msgstr "" 269 msgstr ""
colab/super_archives/locale/es/LC_MESSAGES/django.mo 0 → 100644
No preview for this file type
colab/super_archives/locale/pt_BR/LC_MESSAGES/django.mo
No preview for this file type
colab/super_archives/locale/pt_BR/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid &quot;&quot; @@ -8,7 +8,7 @@ msgid &quot;&quot;
8 msgstr "" 8 msgstr ""
9 "Project-Id-Version: colab\n" 9 "Project-Id-Version: colab\n"
10 "Report-Msgid-Bugs-To: \n" 10 "Report-Msgid-Bugs-To: \n"
11 -"POT-Creation-Date: 2015-01-21 13:55+0000\n" 11 +"POT-Creation-Date: 2015-09-01 13:15+0000\n"
12 "PO-Revision-Date: 2014-11-21 17:38+0000\n" 12 "PO-Revision-Date: 2014-11-21 17:38+0000\n"
13 "Last-Translator: Sergio Oliveira <seocam@seocam.com>\n" 13 "Last-Translator: Sergio Oliveira <seocam@seocam.com>\n"
14 "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/" 14 "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/"
@@ -19,137 +19,137 @@ msgstr &quot;&quot; @@ -19,137 +19,137 @@ msgstr &quot;&quot;
19 "Content-Transfer-Encoding: 8bit\n" 19 "Content-Transfer-Encoding: 8bit\n"
20 "Plural-Forms: nplurals=2; plural=(n > 1);\n" 20 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
21 21
22 -#: colab/super_archives/management/commands/import_emails.py:213 22 +#: super_archives/management/commands/import_emails.py:213
23 msgid "[Colab] Warning - Email sent with a blank subject." 23 msgid "[Colab] Warning - Email sent with a blank subject."
24 msgstr "[Colab] Atenção - Email enviado sem assunto." 24 msgstr "[Colab] Atenção - Email enviado sem assunto."
25 25
26 -#: colab/super_archives/models.py:68  
27 -#: colab/super_archives/templates/message-preview.html:62  
28 -#: colab/super_archives/templates/message-thread.html:4 26 +#: super_archives/models.py:77
  27 +#: super_archives/templates/message-preview.html:62
  28 +#: super_archives/templates/message-thread.html:4
29 msgid "Anonymous" 29 msgid "Anonymous"
30 msgstr "Anônimo" 30 msgstr "Anônimo"
31 31
32 -#: colab/super_archives/models.py:118 32 +#: super_archives/models.py:133
33 msgid "Mailing List" 33 msgid "Mailing List"
34 msgstr "Lista de discussão" 34 msgstr "Lista de discussão"
35 35
36 -#: colab/super_archives/models.py:119 36 +#: super_archives/models.py:134
37 msgid "The Mailing List where is the thread" 37 msgid "The Mailing List where is the thread"
38 msgstr "Lista de emails da discussão" 38 msgstr "Lista de emails da discussão"
39 39
40 -#: colab/super_archives/models.py:122 40 +#: super_archives/models.py:137
41 msgid "Latest message" 41 msgid "Latest message"
42 msgstr "Última mensagem" 42 msgstr "Última mensagem"
43 43
44 -#: colab/super_archives/models.py:123 44 +#: super_archives/models.py:138
45 msgid "Latest message posted" 45 msgid "Latest message posted"
46 msgstr "Última mensagem enviada" 46 msgstr "Última mensagem enviada"
47 47
48 -#: colab/super_archives/models.py:124 48 +#: super_archives/models.py:139
49 msgid "Score" 49 msgid "Score"
50 msgstr "Pontuação" 50 msgstr "Pontuação"
51 51
52 -#: colab/super_archives/models.py:124 52 +#: super_archives/models.py:140
53 msgid "Thread score" 53 msgid "Thread score"
54 msgstr "Pontuação da discussão" 54 msgstr "Pontuação da discussão"
55 55
56 -#: colab/super_archives/models.py:133 56 +#: super_archives/models.py:153
57 msgid "Thread" 57 msgid "Thread"
58 msgstr "Discussão" 58 msgstr "Discussão"
59 59
60 -#: colab/super_archives/models.py:134 60 +#: super_archives/models.py:154
61 msgid "Threads" 61 msgid "Threads"
62 msgstr "Discussões" 62 msgstr "Discussões"
63 63
64 -#: colab/super_archives/models.py:248 64 +#: super_archives/models.py:267
65 msgid "Subject" 65 msgid "Subject"
66 msgstr "Assuntos" 66 msgstr "Assuntos"
67 67
68 -#: colab/super_archives/models.py:249 68 +#: super_archives/models.py:268
69 msgid "Please enter a message subject" 69 msgid "Please enter a message subject"
70 msgstr "Por favor digite um assunto de email" 70 msgstr "Por favor digite um assunto de email"
71 71
72 -#: colab/super_archives/models.py:252 72 +#: super_archives/models.py:271
73 msgid "Message body" 73 msgid "Message body"
74 msgstr "Corpo do email" 74 msgstr "Corpo do email"
75 75
76 -#: colab/super_archives/models.py:253 76 +#: super_archives/models.py:272
77 msgid "Please enter a message body" 77 msgid "Please enter a message body"
78 msgstr "Por favor digite o corpo do email" 78 msgstr "Por favor digite o corpo do email"
79 79
80 -#: colab/super_archives/models.py:263 80 +#: super_archives/models.py:282
81 msgid "Message" 81 msgid "Message"
82 msgstr "Mensagem" 82 msgstr "Mensagem"
83 83
84 -#: colab/super_archives/models.py:264 84 +#: super_archives/models.py:283
85 msgid "Messages" 85 msgid "Messages"
86 msgstr "Mensagens" 86 msgstr "Mensagens"
87 87
88 -#: colab/super_archives/templates/message-preview.html:42  
89 -#: colab/super_archives/templates/message-preview.html:62 88 +#: super_archives/templates/message-preview.html:42
  89 +#: super_archives/templates/message-preview.html:62
90 msgid "by" 90 msgid "by"
91 msgstr "por" 91 msgstr "por"
92 92
93 -#: colab/super_archives/templates/message-preview.html:65  
94 -#: colab/super_archives/templates/message-thread.html:161 93 +#: super_archives/templates/message-preview.html:65
  94 +#: super_archives/templates/message-thread.html:161
95 msgid "ago" 95 msgid "ago"
96 msgstr "atrás" 96 msgstr "atrás"
97 97
98 -#: colab/super_archives/templates/message-thread.html:35 98 +#: super_archives/templates/message-thread.html:35
99 msgid "You must login before voting." 99 msgid "You must login before voting."
100 msgstr "Você deve logar antes de votar." 100 msgstr "Você deve logar antes de votar."
101 101
102 -#: colab/super_archives/templates/message-thread.html:132 102 +#: super_archives/templates/message-thread.html:132
103 msgid "Order by" 103 msgid "Order by"
104 msgstr "Ordenar por" 104 msgstr "Ordenar por"
105 105
106 -#: colab/super_archives/templates/message-thread.html:136 106 +#: super_archives/templates/message-thread.html:136
107 msgid "Votes" 107 msgid "Votes"
108 msgstr "Votos" 108 msgstr "Votos"
109 109
110 -#: colab/super_archives/templates/message-thread.html:140 110 +#: super_archives/templates/message-thread.html:140
111 msgid "Date" 111 msgid "Date"
112 msgstr "Data" 112 msgstr "Data"
113 113
114 -#: colab/super_archives/templates/message-thread.html:145 114 +#: super_archives/templates/message-thread.html:145
115 msgid "Related:" 115 msgid "Related:"
116 msgstr "Relacionado:" 116 msgstr "Relacionado:"
117 117
118 -#: colab/super_archives/templates/message-thread.html:156 118 +#: super_archives/templates/message-thread.html:156
119 msgid "Statistics:" 119 msgid "Statistics:"
120 msgstr "Estatísticas:" 120 msgstr "Estatísticas:"
121 121
122 -#: colab/super_archives/templates/message-thread.html:160 122 +#: super_archives/templates/message-thread.html:160
123 msgid "started at" 123 msgid "started at"
124 msgstr "iniciada em" 124 msgstr "iniciada em"
125 125
126 -#: colab/super_archives/templates/message-thread.html:166 126 +#: super_archives/templates/message-thread.html:166
127 msgid "viewed" 127 msgid "viewed"
128 msgstr "vizualizada" 128 msgstr "vizualizada"
129 129
130 -#: colab/super_archives/templates/message-thread.html:167  
131 -#: colab/super_archives/templates/message-thread.html:172  
132 -#: colab/super_archives/templates/message-thread.html:177 130 +#: super_archives/templates/message-thread.html:167
  131 +#: super_archives/templates/message-thread.html:172
  132 +#: super_archives/templates/message-thread.html:177
133 msgid "times" 133 msgid "times"
134 msgstr "vezes" 134 msgstr "vezes"
135 135
136 -#: colab/super_archives/templates/message-thread.html:171 136 +#: super_archives/templates/message-thread.html:171
137 msgid "answered" 137 msgid "answered"
138 msgstr "respondida" 138 msgstr "respondida"
139 139
140 -#: colab/super_archives/templates/message-thread.html:176 140 +#: super_archives/templates/message-thread.html:176
141 msgid "voted" 141 msgid "voted"
142 msgstr "votada" 142 msgstr "votada"
143 143
144 -#: colab/super_archives/templates/message-thread.html:182 144 +#: super_archives/templates/message-thread.html:182
145 msgid "Tags:" 145 msgid "Tags:"
146 msgstr "Tags:" 146 msgstr "Tags:"
147 147
148 -#: colab/super_archives/templates/superarchives/emails/email_blank_subject.txt:2 148 +#: super_archives/templates/superarchives/emails/email_blank_subject.txt:2
149 msgid "Hello" 149 msgid "Hello"
150 msgstr "Olá" 150 msgstr "Olá"
151 151
152 -#: colab/super_archives/templates/superarchives/emails/email_blank_subject.txt:3 152 +#: super_archives/templates/superarchives/emails/email_blank_subject.txt:3
153 #, python-format 153 #, python-format
154 msgid "" 154 msgid ""
155 "\n" 155 "\n"
@@ -172,7 +172,7 @@ msgstr &quot;&quot; @@ -172,7 +172,7 @@ msgstr &quot;&quot;
172 "\n" 172 "\n"
173 "Obrigado.\n" 173 "Obrigado.\n"
174 174
175 -#: colab/super_archives/templates/superarchives/emails/email_verification.txt:2 175 +#: super_archives/templates/superarchives/emails/email_verification.txt:2
176 #, python-format 176 #, python-format
177 msgid "" 177 msgid ""
178 "Hey, we want to verify that you are indeed \"%(fullname)s (%(username)s)\". " 178 "Hey, we want to verify that you are indeed \"%(fullname)s (%(username)s)\". "
@@ -181,7 +181,7 @@ msgstr &quot;&quot; @@ -181,7 +181,7 @@ msgstr &quot;&quot;
181 "Ei, nós queremos verificar que você é realmente \"%(fullname)s " 181 "Ei, nós queremos verificar que você é realmente \"%(fullname)s "
182 "(%(username)s)\". Se este for o caso, por favor clique no link abaixo:" 182 "(%(username)s)\". Se este for o caso, por favor clique no link abaixo:"
183 183
184 -#: colab/super_archives/templates/superarchives/emails/email_verification.txt:6 184 +#: super_archives/templates/superarchives/emails/email_verification.txt:6
185 #, python-format 185 #, python-format
186 msgid "" 186 msgid ""
187 "If you're not %(username)s or didn't request verification you can ignore " 187 "If you're not %(username)s or didn't request verification you can ignore "
@@ -190,20 +190,20 @@ msgstr &quot;&quot; @@ -190,20 +190,20 @@ msgstr &quot;&quot;
190 "Se você não é %(username)s ou não solicitou verificação apenas ignore este " 190 "Se você não é %(username)s ou não solicitou verificação apenas ignore este "
191 "email." 191 "email."
192 192
193 -#: colab/super_archives/templates/superarchives/includes/message.html:17  
194 -#: colab/super_archives/templates/superarchives/includes/message.html:18 193 +#: super_archives/templates/superarchives/includes/message.html:17
  194 +#: super_archives/templates/superarchives/includes/message.html:18
195 msgid "Link to this message" 195 msgid "Link to this message"
196 msgstr "Link para esta mensagem" 196 msgstr "Link para esta mensagem"
197 197
198 -#: colab/super_archives/templates/superarchives/includes/message.html:46 198 +#: super_archives/templates/superarchives/includes/message.html:46
199 msgid "Reply" 199 msgid "Reply"
200 msgstr "Responder" 200 msgstr "Responder"
201 201
202 -#: colab/super_archives/templates/superarchives/includes/message.html:63 202 +#: super_archives/templates/superarchives/includes/message.html:63
203 msgid "Send a message" 203 msgid "Send a message"
204 msgstr "Enviar mensagem" 204 msgstr "Enviar mensagem"
205 205
206 -#: colab/super_archives/templates/superarchives/includes/message.html:66 206 +#: super_archives/templates/superarchives/includes/message.html:66
207 msgid "" 207 msgid ""
208 "After sending a message it will take few minutes before it shows up in here. " 208 "After sending a message it will take few minutes before it shows up in here. "
209 "Why don't you grab a coffee?" 209 "Why don't you grab a coffee?"
@@ -211,46 +211,46 @@ msgstr &quot;&quot; @@ -211,46 +211,46 @@ msgstr &quot;&quot;
211 "Após enviar uma mensagem pode levar alguns minutos até que ela seja exibida " 211 "Após enviar uma mensagem pode levar alguns minutos até que ela seja exibida "
212 "aqui. Por que você não busca um café enquanto isso?" 212 "aqui. Por que você não busca um café enquanto isso?"
213 213
214 -#: colab/super_archives/templates/superarchives/includes/message.html:69 214 +#: super_archives/templates/superarchives/includes/message.html:69
215 msgid "Send" 215 msgid "Send"
216 msgstr "Enviar" 216 msgstr "Enviar"
217 217
218 -#: colab/super_archives/templates/superarchives/thread-dashboard.html:4  
219 -#: colab/super_archives/templates/superarchives/thread-dashboard.html:7 218 +#: super_archives/templates/superarchives/thread-dashboard.html:4
  219 +#: super_archives/templates/superarchives/thread-dashboard.html:7
220 msgid "Groups" 220 msgid "Groups"
221 msgstr "Grupos" 221 msgstr "Grupos"
222 222
223 -#: colab/super_archives/templates/superarchives/thread-dashboard.html:14 223 +#: super_archives/templates/superarchives/thread-dashboard.html:14
224 #, python-format 224 #, python-format
225 msgid "%(number_of_users)s members" 225 msgid "%(number_of_users)s members"
226 msgstr "%(number_of_users)s membros" 226 msgstr "%(number_of_users)s membros"
227 227
228 -#: colab/super_archives/templates/superarchives/thread-dashboard.html:23 228 +#: super_archives/templates/superarchives/thread-dashboard.html:20
229 msgid "latest" 229 msgid "latest"
230 msgstr "última" 230 msgstr "última"
231 231
232 -#: colab/super_archives/templates/superarchives/thread-dashboard.html:31  
233 -#: colab/super_archives/templates/superarchives/thread-dashboard.html:45 232 +#: super_archives/templates/superarchives/thread-dashboard.html:28
  233 +#: super_archives/templates/superarchives/thread-dashboard.html:42
234 msgid "more..." 234 msgid "more..."
235 msgstr "mais..." 235 msgstr "mais..."
236 236
237 -#: colab/super_archives/templates/superarchives/thread-dashboard.html:37 237 +#: super_archives/templates/superarchives/thread-dashboard.html:34
238 msgid "most relevant" 238 msgid "most relevant"
239 msgstr "Mais relevante" 239 msgstr "Mais relevante"
240 240
241 -#: colab/super_archives/utils/email.py:14 241 +#: super_archives/utils/email.py:14
242 msgid "Please verify your email " 242 msgid "Please verify your email "
243 msgstr "Por favor verifique seu email" 243 msgstr "Por favor verifique seu email"
244 244
245 -#: colab/super_archives/views.py:93 245 +#: super_archives/views.py:112
246 msgid "Error trying to connect to Mailman API" 246 msgid "Error trying to connect to Mailman API"
247 msgstr "Erro tentando conectar à API do Mailman" 247 msgstr "Erro tentando conectar à API do Mailman"
248 248
249 -#: colab/super_archives/views.py:96 249 +#: super_archives/views.py:115
250 msgid "Timeout trying to connect to Mailman API" 250 msgid "Timeout trying to connect to Mailman API"
251 -msgstr "Timeout tentando conectar à API do Mailman" 251 +msgstr "Tempo excedido tentando conectar à API do Mailman"
252 252
253 -#: colab/super_archives/views.py:100 253 +#: super_archives/views.py:119
254 msgid "" 254 msgid ""
255 "Your message was sent to this topic. It may take some minutes before it's " 255 "Your message was sent to this topic. It may take some minutes before it's "
256 "delivered by email to the group. Why don't you breath some fresh air in the " 256 "delivered by email to the group. Why don't you breath some fresh air in the "
@@ -260,19 +260,19 @@ msgstr &quot;&quot; @@ -260,19 +260,19 @@ msgstr &quot;&quot;
260 "minutos até que ela seja enviada por email para o grupo. Por que você não " 260 "minutos até que ela seja enviada por email para o grupo. Por que você não "
261 "respira um ar fresco enquanto isso?" 261 "respira um ar fresco enquanto isso?"
262 262
263 -#: colab/super_archives/views.py:109 263 +#: super_archives/views.py:128
264 msgid "You cannot send an empty email" 264 msgid "You cannot send an empty email"
265 msgstr "Você não pode enviar um email vazio" 265 msgstr "Você não pode enviar um email vazio"
266 266
267 -#: colab/super_archives/views.py:111 267 +#: super_archives/views.py:130
268 msgid "Mailing list does not exist" 268 msgid "Mailing list does not exist"
269 msgstr "Lista de email inexistente" 269 msgstr "Lista de email inexistente"
270 270
271 -#: colab/super_archives/views.py:113 271 +#: super_archives/views.py:133
272 msgid "Unknown error trying to connect to Mailman API" 272 msgid "Unknown error trying to connect to Mailman API"
273 msgstr "Erro desconhecido tentando conectar à API do Mailman" 273 msgstr "Erro desconhecido tentando conectar à API do Mailman"
274 274
275 -#: colab/super_archives/views.py:153 275 +#: super_archives/views.py:188
276 msgid "" 276 msgid ""
277 "The email address you are trying to verify either has already been verified " 277 "The email address you are trying to verify either has already been verified "
278 "or does not exist." 278 "or does not exist."
@@ -280,12 +280,12 @@ msgstr &quot;&quot; @@ -280,12 +280,12 @@ msgstr &quot;&quot;
280 "O email que você está tentando verificar não existe ou já foi verificado " 280 "O email que você está tentando verificar não existe ou já foi verificado "
281 "anteriormente. " 281 "anteriormente. "
282 282
283 -#: colab/super_archives/views.py:164 283 +#: super_archives/views.py:199
284 msgid "" 284 msgid ""
285 "The email address you are trying to verify is already an active email " 285 "The email address you are trying to verify is already an active email "
286 "address." 286 "address."
287 msgstr "O email que você está tentando verificar já é um email ativo." 287 msgstr "O email que você está tentando verificar já é um email ativo."
288 288
289 -#: colab/super_archives/views.py:178 289 +#: super_archives/views.py:213
290 msgid "Email address verified!" 290 msgid "Email address verified!"
291 msgstr "Endereço de email verificado!" 291 msgstr "Endereço de email verificado!"
colab/templates/base.html
@@ -50,7 +50,7 @@ @@ -50,7 +50,7 @@
50 </head> 50 </head>
51 51
52 <!-- data-no-turbolink will disable Rails TurboLinks for all pages under Colab --> 52 <!-- data-no-turbolink will disable Rails TurboLinks for all pages under Colab -->
53 - <body class="container" data-no-turbolink> 53 + <body data-no-turbolink>
54 54
55 {% block ribbon %} 55 {% block ribbon %}
56 {% if ribbon %} 56 {% if ribbon %}
@@ -62,84 +62,8 @@ @@ -62,84 +62,8 @@
62 {% endif %} 62 {% endif %}
63 {% endblock %} 63 {% endblock %}
64 64
65 - {% block navbar %}  
66 - <nav class="navbar navbar-default navbar-fixed-top" role="navigation">  
67 - <div class="container">  
68 - <div class="navbar-header">  
69 -  
70 - <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-main">  
71 - <span class="sr-only">Toggle navigation</span>  
72 - <span class="icon-bar"></span>  
73 - <span class="icon-bar"></span>  
74 - <span class="icon-bar"></span>  
75 - <span class="icon-bar"></span>  
76 - </button>  
77 - <a class="navbar-brand" href="/"><img alt="Colab" src="{% static 'img/logo.svg' %}"></a>  
78 - </div>  
79 - <div class="collapse navbar-collapse navbar-main">  
80 - <ul class="nav navbar-nav">  
81 -  
82 - <li>  
83 - <a href="{% url 'thread_list' %}">{% trans "Groups" %}</a>  
84 - </li>  
85 -  
86 - {% plugins_menu %}  
87 -  
88 - <li class="hidden-lg hidden-md">  
89 - <a href="{% url 'haystack_search' %}?q=">{% trans "Search" %}</a>  
90 - </li>  
91 - </ul>  
92 -  
93 - <ul class="nav navbar-nav navbar-right">  
94 - {% if not user.is_authenticated %}  
95 -  
96 - <li class="dropdown hidden-xs hidden-lg">  
97 - <a href="#" class="dropdown-toggle" data-toggle="dropdown">Acesso <b class="caret"></b></a>  
98 - <ul class="dropdown-menu">  
99 - {% trans 'Login' as login_text %}  
100 - <li><a href="{% url 'signup' %}">{% trans "Register" %}</a></li>  
101 - <li><a href="{% url 'login' %}">{% trans "Login" %}</a></li>  
102 - </ul>  
103 - </li>  
104 - {% trans 'Login' as login_text %}  
105 - <li class="visible-xs hidden-sm hidden-md"><a href="{% url 'signup' %}">{% trans "Register" %}</a></li>  
106 - <li class="visible-xs hidden-sm hidden-md"><a href="{% url 'login' %}">{% trans "Login" %}</a></li>  
107 - {% else %}  
108 - <li id="user-menu" class="dropdown">  
109 - <a href="#" class="dropdown-toggle user" data-toggle="dropdown">{% gravatar user.email 40 %} <b class="caret"></b>&nbsp;&nbsp;</a>  
110 - <ul class="dropdown-menu" role="menu">  
111 - <li>  
112 - <div class="wrapper">  
113 - <div class="thumbnail">{% gravatar user.email 100 %}</div>  
114 - <div class="user-info">  
115 - <span><b>{{ user.get_full_name }}</b></span>  
116 - <span class="quiet">{{ user.email }}</span>  
117 - </div>  
118 - <div>  
119 - <a class="btn btn-info pull-left" href="{% url 'user_profile' user.username %}">{% trans "My Profile" %}</a>  
120 - {% trans 'Logout' as logout_text %}  
121 - <a class="btn btn-default pull-right" href="{% url 'logout' %}"> {% trans "Logout" %}</a>  
122 - </div>  
123 - </div>  
124 - </li>  
125 - </ul>  
126 - </li>  
127 - {% endif %}  
128 - </ul>  
129 -  
130 - <form action="{% url 'haystack_search' %}" method="GET" id="search-form" class="navbar-form navbar-right hidden-xs hidden-sm" role="search">  
131 - <div class="form-group">  
132 - <label class="sr-only" for="header-searchbox">{% trans 'Search here...' %}</label>  
133 - <input name="q" id="header-searchbox"  
134 - class="form-control" value="{{ request.GET.q }}"  
135 - type="search" placeholder="{% trans 'Search here...' %}" />  
136 - </div>  
137 - <button type="submit" class="btn btn-default"><span class="glyphicon glyphicon-search"></span></button>  
138 - </form>  
139 - </div>  
140 - </div>  
141 - </nav>  
142 - 65 + {% block header %}
  66 + {% include 'header.html' %}
143 {% endblock %} 67 {% endblock %}
144 68
145 {% block messages %} 69 {% block messages %}
@@ -166,8 +90,6 @@ @@ -166,8 +90,6 @@
166 {% block main-content %}{% endblock %} 90 {% block main-content %}{% endblock %}
167 </div> 91 </div>
168 92
169 - <div class="row">&nbsp;</div>  
170 -  
171 {% block footer %} 93 {% block footer %}
172 94
173 {% include "footer.html" %} 95 {% include "footer.html" %}
colab/templates/header.html
@@ -23,8 +23,6 @@ @@ -23,8 +23,6 @@
23 23
24 {% plugins_menu %} 24 {% plugins_menu %}
25 25
26 - <li><a href="/paste">{% trans "Paste" %}</a></li>  
27 -  
28 <li class="hidden-lg hidden-md"> 26 <li class="hidden-lg hidden-md">
29 <a href="{% url 'haystack_search' %}?q=">{% trans "Search" %}</a> 27 <a href="{% url 'haystack_search' %}?q=">{% trans "Search" %}</a>
30 </li> 28 </li>
@@ -42,8 +40,8 @@ @@ -42,8 +40,8 @@
42 </ul> 40 </ul>
43 </li> 41 </li>
44 {% trans 'Login' as login_text %} 42 {% trans 'Login' as login_text %}
45 - <li class="visible-xs hidden-sm hidden-md"><a href="{% url 'signup' %}">{% trans "Register" %}</a></li>  
46 - <li class="visible-xs hidden-sm hidden-md"><a href="{% url 'login' %}">{% trans "Login" %}</a></li> 43 + <li class="visible-xs hidden-sm hidden-md"><a href="{% url 'signup' %}">{% trans "Register" %}</a></li>
  44 + <li class="visible-xs hidden-sm hidden-md"><a href="{% url 'login' %}">{% trans "Login" %}</a></li>
47 {% else %} 45 {% else %}
48 <li id="user-menu" class="dropdown"> 46 <li id="user-menu" class="dropdown">
49 <a href="#" class="dropdown-toggle user" data-toggle="dropdown">{% gravatar user.email 40 %} <b class="caret"></b>&nbsp;&nbsp;</a> 47 <a href="#" class="dropdown-toggle user" data-toggle="dropdown">{% gravatar user.email 40 %} <b class="caret"></b>&nbsp;&nbsp;</a>
@@ -71,8 +69,8 @@ @@ -71,8 +69,8 @@
71 <div class="form-group"> 69 <div class="form-group">
72 <label class="sr-only" for="header-searchbox">{% trans 'Search here...' %}</label> 70 <label class="sr-only" for="header-searchbox">{% trans 'Search here...' %}</label>
73 <input name="q" id="header-searchbox" 71 <input name="q" id="header-searchbox"
74 - class="form-control" value="{{ request.GET.q }}"  
75 - type="search" placeholder="{% trans 'Search here...' %}" /> 72 + class="form-control" value="{{ request.GET.q }}"
  73 + type="search" placeholder="{% trans 'Search here...' %}" />
76 </div> 74 </div>
77 <button type="submit" class="btn btn-default"><span class="glyphicon glyphicon-search"></span></button> 75 <button type="submit" class="btn btn-default"><span class="glyphicon glyphicon-search"></span></button>
78 </form> 76 </form>
@@ -3,7 +3,7 @@ from django.conf import settings @@ -3,7 +3,7 @@ from django.conf import settings
3 from django.views.generic import TemplateView 3 from django.views.generic import TemplateView
4 from django.contrib import admin 4 from django.contrib import admin
5 from django.views.generic import RedirectView 5 from django.views.generic import RedirectView
6 - 6 +from accounts.views import UserProfileUpdateView
7 7
8 admin.autodiscover() 8 admin.autodiscover()
9 9
colab/utils/conf.py
@@ -127,7 +127,7 @@ def load_colab_apps(): @@ -127,7 +127,7 @@ def load_colab_apps():
127 127
128 fields = ['verbose_name', 'upstream', 'urls', 128 fields = ['verbose_name', 'upstream', 'urls',
129 'menu_urls', 'middlewares', 'dependencies', 129 'menu_urls', 'middlewares', 'dependencies',
130 - 'context_processors', 'private_token', 'name'] 130 + 'context_processors', 'private_token', 'name', 'extra']
131 131
132 for key in fields: 132 for key in fields:
133 value = py_settings_d.get(key) 133 value = py_settings_d.get(key)
@@ -137,6 +137,43 @@ def load_colab_apps(): @@ -137,6 +137,43 @@ def load_colab_apps():
137 return {'COLAB_APPS': COLAB_APPS} 137 return {'COLAB_APPS': COLAB_APPS}
138 138
139 139
  140 +def load_widgets_settings():
  141 + settings_file = os.getenv('COLAB_WIDGETS_SETTINGS',
  142 + '/etc/colab/widgets_settings.py')
  143 + settings_module = settings_file.split('.')[-2].split('/')[-1]
  144 + py_path = "/".join(settings_file.split('/')[:-1])
  145 + logger.info('Widgets Settings file: %s', settings_file)
  146 +
  147 + if not os.path.exists(py_path):
  148 + return
  149 +
  150 + original_path = sys.path
  151 + sys.path.append(py_path)
  152 + importlib.import_module(settings_module)
  153 +
  154 + # Read settings from widgets.d
  155 + settings_dir = os.getenv('COLAB_WIDGETS',
  156 + '/etc/colab/widgets.d')
  157 + logger.info('Widgets Settings directory: %s', settings_dir)
  158 + sys.path = original_path
  159 +
  160 + if not os.path.exists(settings_dir):
  161 + return
  162 +
  163 + for file_name in os.listdir(settings_dir):
  164 + if not file_name.endswith('.py'):
  165 + continue
  166 +
  167 + original_path = sys.path
  168 + sys.path.append(settings_dir)
  169 +
  170 + file_module = file_name.split('.')[0]
  171 + importlib.import_module(file_module)
  172 + logger.info('Loaded %s/%s', settings_dir, file_name)
  173 +
  174 + sys.path = original_path
  175 +
  176 +
140 def validate_database(database_dict, default_db, debug): 177 def validate_database(database_dict, default_db, debug):
141 db_name = database_dict.get('default', {}).get('NAME') 178 db_name = database_dict.get('default', {}).get('NAME')
142 if not debug and db_name == default_db: 179 if not debug and db_name == default_db:
colab/widgets/__init__.py 0 → 100644
colab/widgets/admin.py 0 → 100644
@@ -0,0 +1,3 @@ @@ -0,0 +1,3 @@
  1 +from django.contrib import admin
  2 +
  3 +# Register your models here.
colab/widgets/migrations/__init__.py 0 → 100644
colab/widgets/models.py 0 → 100644
@@ -0,0 +1,3 @@ @@ -0,0 +1,3 @@
  1 +from django.db import models
  2 +
  3 +# Create your models here.
colab/widgets/tests/__init__.py 0 → 100644
colab/widgets/tests/test_widget_manager.py 0 → 100644
@@ -0,0 +1,12 @@ @@ -0,0 +1,12 @@
  1 +from django.test import TestCase
  2 +
  3 +from colab.widgets.widget_manager import WidgetManager, Widget
  4 +
  5 +class WidgetManagerTest(TestCase):
  6 +
  7 + def test_add_widgets_to_key_area(self):
  8 + area = 'profile'
  9 + WidgetManager.register_widget(area, Widget())
  10 +
  11 + self.assertEqual(len(WidgetManager.get_widgets(area)), 1)
  12 +
colab/widgets/views.py 0 → 100644
@@ -0,0 +1,3 @@ @@ -0,0 +1,3 @@
  1 +from django.shortcuts import render
  2 +
  3 +# Create your views here.
colab/widgets/widget_manager.py 0 → 100644
@@ -0,0 +1,53 @@ @@ -0,0 +1,53 @@
  1 +from django.utils.safestring import mark_safe
  2 +
  3 +class Widget(object):
  4 + identifier = None
  5 + name = None
  6 + default_url = None
  7 + content = ''
  8 +
  9 + def get_body(self):
  10 + # avoiding regex in favor of performance
  11 + start = self.content.find('<body>')
  12 + end = self.content.find('</body>')
  13 +
  14 + if -1 in [start, end]:
  15 + return ''
  16 +
  17 + body = self.content[start + len('<body>'):end]
  18 + return mark_safe(body)
  19 +
  20 + def get_header(self):
  21 + # avoiding regex in favor of performance
  22 + start = self.content.find('<head>')
  23 + end = self.content.find('</head>')
  24 +
  25 + if -1 in [start, end]:
  26 + return ''
  27 +
  28 + head = self.content[start + len('<head>'):end]
  29 + return mark_safe(head)
  30 +
  31 + def generate_content(self, request=None):
  32 + self.content = ''
  33 +
  34 +
  35 +class WidgetManager(object):
  36 + widget_categories = {}
  37 +
  38 + @staticmethod
  39 + def register_widget(category, widget):
  40 + if not WidgetManager.widget_categories.has_key(category):
  41 + WidgetManager.widget_categories[category] = []
  42 +
  43 + WidgetManager.widget_categories[category].append(widget)
  44 +
  45 + @staticmethod
  46 + def get_widgets(category, request=None):
  47 + if not WidgetManager.widget_categories.has_key(category):
  48 + return []
  49 +
  50 + widgets = WidgetManager.widget_categories[category]
  51 + for widget in widgets:
  52 + widget.generate_content(request)
  53 + return widgets
diagrama_classes.asta 0 → 100644
No preview for this file type
misc/etc/cron.d/colab
@@ -2,8 +2,6 @@ @@ -2,8 +2,6 @@
2 2
3 34 2 * * * colab colab-admin rebuild_index --noinput &> /dev/null 3 34 2 * * * colab colab-admin rebuild_index --noinput &> /dev/null
4 4
5 -* * * * * colab colab-admin import_proxy_data &> /dev/null  
6 -  
7 27 3 * * * colab colab-admin clearsessions &> /dev/null 5 27 3 * * * colab colab-admin clearsessions &> /dev/null
8 6
9 * * * * * colab colab-admin import_emails &> /dev/null 7 * * * * * colab colab-admin import_emails &> /dev/null
misc/lib/systemd/system/colab.service
@@ -3,6 +3,7 @@ Description=Colab @@ -3,6 +3,7 @@ Description=Colab
3 3
4 [Service] 4 [Service]
5 User=colab 5 User=colab
  6 +EnvironmentFile=-/etc/sysconfig/colab
6 PermissionsStartOnly=true 7 PermissionsStartOnly=true
7 ExecStartPre=/usr/bin/mkdir -p /var/lock/colab 8 ExecStartPre=/usr/bin/mkdir -p /var/lock/colab
8 ExecStartPre=/usr/bin/chown -R colab:colab /var/lock/colab 9 ExecStartPre=/usr/bin/chown -R colab:colab /var/lock/colab
@@ -24,6 +24,7 @@ REQUIREMENTS = [ @@ -24,6 +24,7 @@ REQUIREMENTS = [
24 'django-taggit>=0.12.1', 24 'django-taggit>=0.12.1',
25 'html2text>=3.200.3', 25 'html2text>=3.200.3',
26 'chardet>=2.3.0', 26 'chardet>=2.3.0',
  27 + 'requests>=2.7.0'
27 ] 28 ]
28 29
29 TEST_REQUIREMENTS = [ 30 TEST_REQUIREMENTS = [
@@ -41,7 +42,7 @@ EXCLUDE_FROM_PACKAGES = [] @@ -41,7 +42,7 @@ EXCLUDE_FROM_PACKAGES = []
41 42
42 setup( 43 setup(
43 name='colab', 44 name='colab',
44 - version='1.10.1', 45 + version='1.11',
45 url='https://github.com/colab-community/colab', 46 url='https://github.com/colab-community/colab',
46 author='Sergio Oliveira', 47 author='Sergio Oliveira',
47 author_email='sergio@tracy.com.br', 48 author_email='sergio@tracy.com.br',
@@ -5,7 +5,9 @@ import sys @@ -5,7 +5,9 @@ import sys
5 5
6 os.environ['DJANGO_SETTINGS_MODULE'] = 'colab.settings' 6 os.environ['DJANGO_SETTINGS_MODULE'] = 'colab.settings'
7 os.environ['COLAB_SETTINGS'] = 'tests/colab_settings.py' 7 os.environ['COLAB_SETTINGS'] = 'tests/colab_settings.py'
  8 +os.environ['COLAB_WIDGETS_SETTINGS'] = 'tests/widgets_settings.py'
8 os.environ['COLAB_PLUGINS'] = 'tests/plugins.d' 9 os.environ['COLAB_PLUGINS'] = 'tests/plugins.d'
  10 +os.environ['COLAB_WIDGETS'] = 'tests/widgets.d'
9 os.environ['COVERAGE_PROCESS_START'] = '.coveragerc' 11 os.environ['COVERAGE_PROCESS_START'] = '.coveragerc'
10 12
11 13
tests/widgets_settings.py 0 → 100644