Skip to content

Commit c071037

Browse files
committed
chore(workspace): consolidate workspace navigation
- move acess control and settings to standalone views - consolidated workspaec navigation menu - minor cleanup in other navigations (removing duplicate content, whitespace fixes, not needed separators)
1 parent 9a51f6f commit c071037

15 files changed

Lines changed: 236 additions & 150 deletions

File tree

weblate/auth/tests/test_views.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
# SPDX-License-Identifier: GPL-3.0-or-later
44

55
from django.conf import settings
6+
from django.urls import reverse
67

78
from weblate.auth.forms import ProjectTeamForm, WorkspaceTeamForm
89
from weblate.auth.models import Group, Permission, Role, TeamMembership, User
@@ -121,6 +122,10 @@ def test_workspace_internal_team_delete(self) -> None:
121122
response = self.client.post(group.get_absolute_url(), {"delete": "1"})
122123

123124
self.assertEqual(response.status_code, 302)
125+
self.assertEqual(
126+
response["Location"],
127+
reverse("workspace-access", kwargs={"pk": workspace.pk}),
128+
)
124129
self.assertTrue(Group.objects.filter(pk=group.pk).exists())
125130

126131
def test_add_users(self) -> None:

weblate/auth/views.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,9 @@ def handle_delete(self, request: AuthenticatedHttpRequest):
157157
if self.object.defining_project:
158158
fallback = f"{reverse('manage-access', kwargs={'project': self.object.defining_project.slug})}#teams"
159159
elif self.object.defining_workspace:
160-
fallback = f"{self.object.defining_workspace.get_absolute_url()}#access"
160+
fallback = reverse(
161+
"workspace-access", kwargs={"pk": self.object.defining_workspace.pk}
162+
)
161163
elif request.user.is_superuser:
162164
fallback = reverse("manage-teams")
163165
else:

weblate/templates/auth/team.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
<a href="{{ object.defining_workspace.get_absolute_url }}">{{ object.defining_workspace }}</a>
4848
</li>
4949
<li class="breadcrumb-item">
50-
<a href="{{ object.defining_workspace.get_absolute_url }}#access">{% translate "Access control" %}</a>
50+
<a href="{% url 'workspace-access' pk=object.defining_workspace.pk %}">{% translate "Access control" %}</a>
5151
</li>
5252
{% else %}
5353
<li class="breadcrumb-item">

weblate/templates/category-language.html

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
<a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#">{% translate "Insights" %}</a>
2424
<ul class="dropdown-menu shadow">
2525
<li>
26-
<a class="dropdown-item" data-bs-target="#history" data-bs-toggle="tab" href="#">{% translate "History" %}</a>
26+
<a class="dropdown-item" data-bs-target="#history" data-bs-toggle="tab" href="#">{% translate "History" %}</a>
2727
</li>
2828
<li>
2929
<a class="dropdown-item" href="{% url 'checks' path=object.get_url_path %}">{% translate "Failing checks" %}</a>
@@ -45,7 +45,7 @@
4545
<ul class="dropdown-menu shadow">
4646
{% if replace_form %}
4747
<li>
48-
<a class="dropdown-item" data-bs-target="#replace" data-bs-toggle="tab" href="#">{% translate "Search and replace" %}</a>
48+
<a class="dropdown-item" data-bs-target="#replace" data-bs-toggle="tab" href="#">{% translate "Search and replace" %}</a>
4949
</li>
5050
{% endif %}
5151
{% if bulk_state_form %}
@@ -54,9 +54,13 @@
5454
</li>
5555
{% endif %}
5656
{% if delete_form %}
57-
<li role="separator" class="divider"></li>
57+
{% if replace_form or bulk_state_form %}
58+
<li>
59+
<hr class="dropdown-divider">
60+
</li>
61+
{% endif %}
5862
<li>
59-
<a class="dropdown-item" data-bs-target="#organize" data-bs-toggle="tab" href="#">{% translate "Organize or remove" %}</a>
63+
<a class="dropdown-item" data-bs-target="#organize" data-bs-toggle="tab" href="#">{% translate "Organize or remove" %}</a>
6064
</li>
6165
{% endif %}
6266
</ul>

weblate/templates/category.html

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,13 @@
8989
<a class="dropdown-item" data-bs-target="#auto" data-bs-toggle="tab" href="#">{% translate "Batch automatic translation" %}</a>
9090
</li>
9191
{% endif %}
92-
<li role="separator" class="divider"></li>
92+
{% if replace_form or bulk_state_form or autoform %}
93+
{% if user_can_add_translation or user_can_edit_project or announcement_form %}
94+
<li>
95+
<hr class="dropdown-divider">
96+
</li>
97+
{% endif %}
98+
{% endif %}
9399
{% if user_can_add_translation %}
94100
<li>
95101
<a class="dropdown-item" href="{% url "new-language" path=object.get_url_path %}">{% translate "Start new translation" %}</a>
@@ -126,7 +132,11 @@
126132
</li>
127133
{% endif %}
128134
{% if delete_form or rename_form %}
129-
<li role="separator" class="divider"></li>
135+
{% if replace_form or bulk_state_form or autoform or user_can_add_translation or user_can_edit_project or announcement_form %}
136+
<li>
137+
<hr class="dropdown-divider">
138+
</li>
139+
{% endif %}
130140
<li>
131141
<a class="dropdown-item" data-bs-target="#organize" data-bs-toggle="tab" href="#">{% translate "Organize or remove" %}</a>
132142
</li>
@@ -176,14 +186,14 @@
176186

177187
<div class="tab-pane" id="history">
178188
{% format_last_changes_content last_changes=last_changes user=user %}
179-
<a class="btn btn-primary" href="{% url 'changes' path=object.get_url_path %}">{% translate "Browse all project changes" %}</a>
189+
<a class="btn btn-primary" href="{% url 'changes' path=object.get_url_path %}">{% translate "Browse all category changes" %}</a>
180190
</div>
181191

182192
{% if last_announcements %}
183193
<div class="tab-pane" id="announcement-history">
184194
{% format_last_changes_content last_changes=last_announcements user=user %}
185195
<a class="btn btn-primary"
186-
href="{% url 'changes' path=object.get_url_path %}?action=46">{% translate "Browse all project changes" %}</a>
196+
href="{% url 'changes' path=object.get_url_path %}?action=46">{% translate "Browse all category changes" %}</a>
187197
</div>
188198
{% endif %}
189199

weblate/templates/component.html

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -53,11 +53,6 @@
5353
<a class="dropdown-item"
5454
href="{% url 'data_project' project=object.project.slug %}">{% translate "Data exports" %}</a>
5555
</li>
56-
{% if alerts %}
57-
<li>
58-
<a class="dropdown-item" data-bs-target="#alerts" data-bs-toggle="tab" href="#">{% translate "Diagnostics" %}</a>
59-
</li>
60-
{% endif %}
6156
</ul>
6257
</li>
6358
<li class="nav-item dropdown">
@@ -111,7 +106,9 @@
111106
<a class="dropdown-item" href="{% url "new-language" path=object.get_url_path %}">{% translate "Start new translation" %}</a>
112107
</li>
113108
{% endif %}
114-
<hr class="dropdown-divider">
109+
<li>
110+
<hr class="dropdown-divider">
111+
</li>
115112
{% if user_can_see_repository_status %}
116113
<li>
117114
<a class="dropdown-item"
@@ -120,7 +117,9 @@
120117
data-href="{% url 'git_status' path=object.get_url_path %}"
121118
href="#">{% translate "Repository maintenance" %}</a>
122119
</li>
123-
<hr class="dropdown-divider">
120+
<li>
121+
<hr class="dropdown-divider">
122+
</li>
124123
{% endif %}
125124
<li>
126125
<a class="dropdown-item" href="{% url 'screenshots' path=object.get_url_path %}">{% translate "Screenshots" %}</a>
@@ -152,7 +151,9 @@
152151
</li>
153152
{% endif %}
154153
{% if delete_form or rename_form or user_can_edit_component or component_link_add_form %}
155-
<hr class="dropdown-divider">
154+
<li>
155+
<hr class="dropdown-divider">
156+
</li>
156157
{% if user_can_edit_component %}
157158
<li>
158159
<a class="dropdown-item" href="{% url 'settings' path=object.get_url_path %}">{% translate "Settings" %}</a>

weblate/templates/language-project.html

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
{% if last_announcements %}
3535
<li>
3636
<a class="dropdown-item"
37-
href="#announcement-history"
37+
data-bs-target="#announcement-history"
3838
data-bs-toggle="tab"
3939
href="#">{% translate "Announcements" %}</a>
4040
</li>
@@ -66,7 +66,7 @@
6666
</li>
6767
{% if user_can_upload_translation %}
6868
<li>
69-
<a class="dropdown-item" data-bs-target="#upload" data-bs-toggle="tab">{% translate "Upload translation" %}</a>
69+
<a class="dropdown-item" data-bs-target="#upload" data-bs-toggle="tab" href="#">{% translate "Upload translation" %}</a>
7070
</li>
7171
{% endif %}
7272
</ul>
@@ -89,9 +89,13 @@
8989
<a class="dropdown-item" data-bs-target="#auto" data-bs-toggle="tab" href="#">{% translate "Batch automatic translation" %}</a>
9090
</li>
9191
{% endif %}
92-
<li>
93-
<hr class="dropdown-divider">
94-
</li>
92+
{% if replace_form or bulk_state_form or autoform %}
93+
{% if user_can_edit_project or announcement_form or delete_form %}
94+
<li>
95+
<hr class="dropdown-divider">
96+
</li>
97+
{% endif %}
98+
{% endif %}
9599
{% if user_can_edit_project %}
96100
<li>
97101
<a class="dropdown-item" href="{% url 'settings' path=object.get_url_path %}">{% translate "Settings" %}</a>
@@ -106,9 +110,11 @@
106110
</li>
107111
{% endif %}
108112
{% if delete_form %}
109-
<li>
110-
<hr class="dropdown-divider">
111-
</li>
113+
{% if replace_form or bulk_state_form or autoform or user_can_edit_project or announcement_form %}
114+
<li>
115+
<hr class="dropdown-divider">
116+
</li>
117+
{% endif %}
112118
<li>
113119
<a class="dropdown-item" data-bs-target="#organize" data-bs-toggle="tab" href="#">{% translate "Organize or remove" %}</a>
114120
</li>
@@ -157,7 +163,7 @@
157163
<div class="tab-pane" id="announcement-history">
158164
{% format_last_changes_content last_changes=last_announcements user=user %}
159165
<a class="btn btn-primary"
160-
href="{% url 'changes' path=object.get_url_path %}?action=46">{% translate "Browse all project changes" %}</a>
166+
href="{% url 'changes' path=object.get_url_path %}?action=46">{% translate "Browse all changes for this language" %}</a>
161167
</div>
162168
{% endif %}
163169

weblate/templates/translation.html

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -58,11 +58,11 @@
5858
</li>
5959
{% endif %}
6060
<li>
61-
<a class="dropdown-item" data-bs-target="#download" data-bs-toggle="tab">{% translate "Customize download" %}</a>
61+
<a class="dropdown-item" data-bs-target="#download" data-bs-toggle="tab" href="#">{% translate "Customize download" %}</a>
6262
</li>
6363
{% if user_can_upload_translation %}
6464
<li>
65-
<a class="dropdown-item" data-bs-target="#upload" data-bs-toggle="tab">{% translate "Upload translation" %}</a>
65+
<a class="dropdown-item" data-bs-target="#upload" data-bs-toggle="tab" href="#">{% translate "Upload translation" %}</a>
6666
</li>
6767
{% endif %}
6868
</ul>
@@ -82,10 +82,16 @@
8282
{% endif %}
8383
{% if autoform %}
8484
<li>
85-
<a class="dropdown-item" data-bs-target="#auto" data-bs-toggle="tab" href="#">{% translate "Automatic translation" %}</a>
85+
<a class="dropdown-item" data-bs-target="#auto" data-bs-toggle="tab" href="#">{% translate "Batch automatic translation" %}</a>
8686
</li>
8787
{% endif %}
88-
<hr class="dropdown-divider">
88+
{% if replace_form or bulk_state_form or autoform %}
89+
{% if user_can_add_unit or user_can_see_repository_status %}
90+
<li>
91+
<hr class="dropdown-divider">
92+
</li>
93+
{% endif %}
94+
{% endif %}
8995
{% if user_can_add_unit %}
9096
<li>
9197
<a class="dropdown-item" data-bs-target="#new" data-bs-toggle="tab" href="#">{{ object.component.get_add_label }}</a>
@@ -101,7 +107,11 @@
101107
</li>
102108
{% endif %}
103109
{% if announcement_form %}
104-
<hr class="dropdown-divider">
110+
{% if replace_form or bulk_state_form or autoform or user_can_add_unit or user_can_see_repository_status %}
111+
<li>
112+
<hr class="dropdown-divider">
113+
</li>
114+
{% endif %}
105115
<li>
106116
<a class="dropdown-item"
107117
data-bs-target="#announcement"
@@ -110,7 +120,11 @@
110120
</li>
111121
{% endif %}
112122
{% if delete_form %}
113-
<hr class="dropdown-divider">
123+
{% if replace_form or bulk_state_form or autoform or user_can_add_unit or user_can_see_repository_status or announcement_form %}
124+
<li>
125+
<hr class="dropdown-divider">
126+
</li>
127+
{% endif %}
114128
<li>
115129
<a class="dropdown-item" data-bs-target="#organize" data-bs-toggle="tab" href="#">{% translate "Organize or remove" %}</a>
116130
</li>
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
{% extends "base.html" %}
2+
3+
{% load i18n icons translations %}
4+
5+
{% block breadcrumbs %}
6+
{% path_object_breadcrumbs object %}
7+
<li class="breadcrumb-item">
8+
<a href="{% url 'workspace-access' pk=object.pk %}">{% translate "Access control" %}</a>
9+
</li>
10+
{% endblock breadcrumbs %}
11+
12+
{% block content %}
13+
<div class="card">
14+
<div class="card-header">
15+
<h4 class="card-title">{% translate "Teams" %}</h4>
16+
</div>
17+
<table class="table table-striped">
18+
<thead>
19+
<tr>
20+
<th>{% translate "Name" %}</th>
21+
<th>{% translate "Roles" %}</th>
22+
<th>{% translate "Members" %}</th>
23+
<th></th>
24+
</tr>
25+
</thead>
26+
<tbody>
27+
{% for group in workspace_teams %}
28+
<tr>
29+
<td>{% include "auth/teams-name.html" %}</td>
30+
<td>{% include "auth/teams-roles.html" %}</td>
31+
<td class="number">{% include "auth/teams-count.html" %}</td>
32+
<td>
33+
<a href="{{ group.get_absolute_url }}"
34+
class="btn btn-link btn-xs"
35+
title="{% translate "Edit" %}">{% icon 'pencil.svg' %}</a>
36+
</td>
37+
</tr>
38+
{% endfor %}
39+
</tbody>
40+
</table>
41+
</div>
42+
{% endblock content %}

0 commit comments

Comments
 (0)