Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
converse.js
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
converse.js
Commits
1fb114a8
Commit
1fb114a8
authored
Oct 22, 2014
by
Michal Čihař
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Support for adding users to ACL projects
Issue #509 Signed-off-by:
Michal Čihař
<
michal@cihar.com
>
parent
a93a9305
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
108 additions
and
2 deletions
+108
-2
docs/changes.rst
docs/changes.rst
+1
-0
locale/cs/LC_MESSAGES/django.po
locale/cs/LC_MESSAGES/django.po
+1
-1
weblate/html/project.html
weblate/html/project.html
+54
-0
weblate/trans/forms.py
weblate/trans/forms.py
+10
-0
weblate/trans/views/basic.py
weblate/trans/views/basic.py
+37
-1
weblate/urls.py
weblate/urls.py
+5
-0
No files found.
docs/changes.rst
View file @
1fb114a8
...
...
@@ -16,6 +16,7 @@ Released on ? 2014.
* Added support for GitLab notifications.
* Added support for disabling translation suggestions.
* Django 1.7 support.
* ACL projects now have user management.
weblate 1.9
-----------
...
...
locale/cs/LC_MESSAGES/django.po
View file @
1fb114a8
...
...
@@ -55,7 +55,7 @@ msgstr "Další emailové adresy můžete přidat na záložce Přihlašování.
#: weblate/accounts/forms.py:253 weblate/accounts/forms.py:331
msgid "Full name"
msgstr "
Vaše
jméno"
msgstr "
Celé
jméno"
#: weblate/accounts/forms.py:262
msgid "Subject"
...
...
weblate/html/project.html
View file @
1fb114a8
...
...
@@ -2,6 +2,7 @@
{% load i18n %}
{% load translations %}
{% load url from future %}
{% load crispy_forms_tags %}
{% block breadcrumbs %}
<li><a
href=
"{{ object.get_absolute_url }}"
>
{{ object }}
</a></li>
...
...
@@ -27,6 +28,9 @@
{% endif %}
<li><a
href=
"{% url 'checks' %}?project={{ object.slug }}"
>
{% trans "Failing checks" %}
</a></li>
<li><a
href=
"{% url 'checks' %}?project={{ object.slug }}&ignored=true"
>
{% trans "Ignored checks" %}
</a></li>
{% if perms.trans.manage_acl %}
<li><a
href=
"#acl"
data-toggle=
"tab"
>
{% trans "Manage users" %}
</a></li>
{% endif %}
</ul>
</li>
{% if enable_sharing %}
...
...
@@ -139,7 +143,57 @@
</div>
{% endif %}
{% if perms.trans.manage_acl %}
<div
class=
"tab-pane"
id=
"acl"
>
<div
class=
"row"
>
<div
class=
"col-md-6"
>
<div
class=
"panel panel-primary"
>
<div
class=
"panel-heading"
><h4
class=
"panel-title"
>
{% trans "Users" %}
</h4></div>
<div
class=
"panel-body"
>
<table
class=
"table table-striped"
>
<thead>
<tr>
<th>
{% trans "Username" %}
</th>
<th>
{% trans "Full name" %}
</th>
<th>
{% trans "Email" %}
</th>
</tr>
</thead>
<tbody>
{% for user in object.all_users %}
<tr>
<td>
{{ user.username }}
</td>
<td>
{{ user.first_name }}
</td>
<td>
{{ user.email }}
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
</div>
<div
class=
"col-md-6"
>
<form
action=
"{% url "
add-user
"
project=
object.slug
%}"
method=
"post"
>
{% csrf_token %}
<div
class=
"panel panel-primary"
>
<div
class=
"panel-heading"
><h4
class=
"panel-title"
>
{% trans "Add new user" %}
</h4></div>
<div
class=
"panel-body"
>
{{ add_user_form|crispy }}
</div>
<div
class=
"panel-footer"
>
<input
type=
"submit"
class=
"btn btn-default"
value=
"{% trans "
Add
"
%}"
/>
</div>
</div>
</form>
</div>
</div>
</div>
{% endif %}
</div>
...
...
weblate/trans/forms.py
View file @
1fb114a8
...
...
@@ -652,3 +652,13 @@ class PriorityForm(forms.Form):
'Strings with higher priority are offered first to translators.'
),
)
class
AddUserForm
(
forms
.
Form
):
name
=
forms
.
CharField
(
label
=
_
(
'User to add'
),
help_text
=
_
(
'Please provide username or email. '
'User needs to have already active account in Weblate.'
),
)
weblate/trans/views/basic.py
View file @
1fb114a8
...
...
@@ -20,12 +20,14 @@
from
django.shortcuts
import
render
,
redirect
from
django.utils.translation
import
ugettext
as
_
from
django.contrib.auth.decorators
import
login_required
from
django.contrib.auth.decorators
import
login_required
,
permission_required
from
django.contrib.auth.models
import
User
from
django.contrib
import
messages
from
django.db.models
import
Sum
,
Count
,
Q
from
django.core.paginator
import
Paginator
,
EmptyPage
,
PageNotAnInteger
from
django.core.urlresolvers
import
reverse
from
django.utils.safestring
import
mark_safe
from
django.views.decorators.http
import
require_POST
import
django.views.defaults
from
weblate.trans.models
import
(
...
...
@@ -34,9 +36,11 @@ from weblate.trans.models import (
)
from
weblate.requirements
import
get_versions
,
get_optional_versions
from
weblate.lang.models
import
Language
from
weblate.trans.util
import
redirect_param
from
weblate.trans.forms
import
(
get_upload_form
,
SearchForm
,
AutoForm
,
ReviewForm
,
NewLanguageForm
,
AddUserForm
,
)
from
weblate.accounts.models
import
Profile
,
notify_new_language
from
weblate.trans.views.helper
import
(
...
...
@@ -243,6 +247,7 @@ def show_project(request, project):
'last_changes_url'
:
urlencode
(
{
'project'
:
obj
.
slug
}
),
'add_user_form'
:
AddUserForm
(),
}
)
...
...
@@ -475,3 +480,34 @@ def new_language(request, project, subproject):
subproject
=
obj
.
slug
,
project
=
obj
.
project
.
slug
)
@
require_POST
@
permission_required
(
'trans.manage_acl'
)
def
add_user
(
request
,
project
):
obj
=
get_project
(
request
,
project
)
form
=
AddUserForm
(
request
.
POST
)
if
form
.
is_valid
():
try
:
user
=
User
.
objects
.
get
(
Q
(
username
=
form
.
cleaned_data
[
'name'
])
|
Q
(
email
=
form
.
cleaned_data
[
'name'
])
)
obj
.
add_user
(
user
)
messages
.
success
(
request
,
_
(
'User has been added to this project.'
)
)
except
User
.
DoesNotExist
:
messages
.
error
(
request
,
_
(
'No matching user found!'
))
except
User
.
MultipleObjectsReturned
:
messages
.
error
(
request
,
_
(
'More users matched!'
))
else
:
messages
.
error
(
request
,
_
(
'Invalid user specified!'
))
return
redirect_param
(
'project'
,
'#acl'
,
project
=
obj
.
slug
,
)
weblate/urls.py
View file @
1fb114a8
...
...
@@ -186,6 +186,11 @@ urlpatterns = patterns(
'weblate.trans.views.basic.new_language'
,
name
=
'new-language'
,
),
url
(
r'^add-user/'
+
PROJECT
+
'$'
,
'weblate.trans.views.basic.add_user'
,
name
=
'add-user'
,
),
# Activity HTML
url
(
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment