accrete 0.0.108__py3-none-any.whl → 0.0.110__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,5 @@
1
1
  import logging
2
+ import re
2
3
  from dataclasses import dataclass, field
3
4
  from django.core import paginator
4
5
  from django.db.models import QuerySet, Model
@@ -84,3 +85,7 @@ class ModalContext(BaseContext):
84
85
  title: str
85
86
  modal_id: str
86
87
  blocking: bool = False
88
+
89
+ def __post_init__(self):
90
+ super().__post_init__()
91
+ self.modal_id = re.sub(r'[^A-Za-z]+','', self.modal_id)
@@ -14,6 +14,7 @@ document.addEventListener('alpine:init', () => {
14
14
  const queryApplyEvent = new Event('click');
15
15
  const query = queryString || JSON.stringify(this.buildJsonQueryFromHtml());
16
16
  url.searchParams.set('q', query);
17
+ url.searchParams.set('page', '1');
17
18
  queryApply.setAttribute('hx-get', url.toString());
18
19
  htmx.process(queryApply);
19
20
  queryApply.dispatchEvent(queryApplyEvent);
@@ -14,7 +14,7 @@
14
14
  <link rel="stylesheet" type="text/css" href="{% static "css/accrete.css" %}?v=1">
15
15
  <link rel="stylesheet" type="text/css" href="{% static "css/icons.css" %}">
16
16
  <link rel="stylesheet" type="text/css" href="{% static "css/fa.css" %}">
17
-
17
+
18
18
  <script src="{% static "js/filter.js" %}" type="text/javascript"></script>
19
19
  <script src="{% static "js/htmx.min.js" %}" defer type="text/javascript"></script>
20
20
  <script src="{% static "js/alpine-sort3.14.1.js" %}" defer type="text/javascript"></script>
@@ -84,7 +84,7 @@
84
84
  <div class="navbar-end">
85
85
  {% block navbar_end %}
86
86
  <div class="navbar-item has-dropdown" onclick="this.classList.toggle('is-active');">
87
- <a class="navbar-link is-arrowless">{{ user }}</a>
87
+ <a id="navbar-user-name" class="navbar-link is-arrowless">{{ user }}</a>
88
88
  <div id="navbar-end-dropdown" class="navbar-dropdown is-right">
89
89
  <a class="navbar-item" href="{% url 'teams:teams_list' %}">{% translate 'Teams' %}</a>
90
90
  <hr class="navbar-divider">
@@ -105,7 +105,7 @@
105
105
  <div x-show="showPanel" >
106
106
  <div id="action-panel" x-show="showPanel"
107
107
  @resize.debounce.100.window="openPanel()"
108
- @toggle-panel.window="showPanel = !showPanel"
108
+ @toggle-panel.window="showPanel = !showPanel"
109
109
  x-transition.duration.200ms
110
110
  >
111
111
  <nav class="px-1" style="height: 100%; overflow-y: auto; position: sticky; top: 0">
@@ -118,7 +118,7 @@
118
118
  <div class="p-3">
119
119
  {% include 'ui/filter/filter.html' %}
120
120
  </div>
121
-
121
+
122
122
  </div>
123
123
  {% endif %}
124
124
  </nav>
@@ -18,7 +18,7 @@ class UserForm(ModelForm):
18
18
  fields = [
19
19
  'username',
20
20
  'first_name',
21
- 'last_name',
21
+ 'last_name'
22
22
  ]
23
23
 
24
24
  def save(self, commit=True):
@@ -1,29 +1,24 @@
1
- {% extends 'ui/form.html' %}
1
+ {% extends 'ui/modal.html' %}
2
+ {% load i18n %}
2
3
 
3
- {% block form %}
4
- <form id="form" method="post" action="">
5
- {% csrf_token %}
6
- <div class="columns">
7
- <div class="column is-6">
8
- <label class="label has-field is-required">
9
- {{ form.email.label_tag }}
10
- <span class="has-text-danger is-size-7">{{ form.email.errors }}</span>
11
- <div class="field">
12
- <p class="control is-fullwidth">{{ form.email }}</p>
13
- </div>
14
- </label>
15
- </div>
16
- </div>
17
- <div class="columns">
18
- <div class="column is-6">
19
- <label class="label has-field is-required">
20
- {{ form.password.label_tag }}
21
- <span class="has-text-danger is-size-7">{{ form.password.errors }}</span>
22
- <div class="field">
23
- <p class="control is-fullwidth">{{ form.password }}</p>
24
- </div>
25
- </label>
26
- </div>
27
- </div>
28
- </form>
4
+ {% block modal_content %}
5
+ <form id="{{ modal_id }}-form" hx-post="{% url 'user:change_email' %}">
6
+ {% csrf_token %}
7
+ <label class="label has-field is-required">
8
+ {{ form.email.label }}
9
+ {{ form.email }}
10
+ <span class="has-text-danger is-size-7">{{ form.email.errors }}</span>
11
+ </label>
12
+ <label class="label has-field is-required">
13
+ {{ form.password.label }}
14
+ {{ form.password }}
15
+ <span class="has-text-danger is-size-7">{{ form.password.errors }}</span>
16
+ </label>
17
+ </form>
29
18
  {% endblock %}
19
+
20
+ {% block modal_buttons %}
21
+ <button type="submit" form="{{ modal_id }}-form" class="button is-success">{% translate 'Save' %}</button>
22
+ {{ block.super }}
23
+ {% endblock %}
24
+
@@ -1,40 +1,28 @@
1
- {% extends 'ui/form.html' %}
1
+ {% extends 'ui/modal.html' %}
2
+ {% load i18n %}
2
3
 
3
- {% block form %}
4
- <form id="form" method="post" action="">
4
+ {% block modal_content %}
5
+ <form id="{{ modal_id }}-form" hx-post="{% url 'user:change_password' %}">
5
6
  {% csrf_token %}
6
- <div class="columns">
7
- <div class="column is-6">
8
- <label class="label has-field is-required">
9
- {{ form.old_password.label_tag }}
10
- <span class="has-text-danger is-size-7">{{ form.old_password.errors }}</span>
11
- <div class="field">
12
- <p class="control is-fullwidth">{{ form.old_password }}</p>
13
- </div>
14
- </label>
15
- </div>
16
- </div>
17
- <div class="columns">
18
- <div class="column is-6">
19
- <label class="label has-field is-required">
20
- {{ form.new_password.label_tag }}
21
- <span class="has-text-danger is-size-7">{{ form.new_password.errors }}</span>
22
- <div class="field">
23
- <p class="control is-fullwidth">{{ form.new_password }}</p>
24
- </div>
25
- </label>
26
- </div>
27
- </div>
28
- <div class="columns">
29
- <div class="column is-6">
30
- <label class="label has-field is-required">
31
- {{ form.new_password_confirm.label_tag }}
32
- <span class="has-text-danger is-size-7">{{ form.new_password_confirm.errors }}</span>
33
- <div class="field">
34
- <p class="control is-fullwidth">{{ form.new_password_confirm }}</p>
35
- </div>
36
- </label>
37
- </div>
38
- </div>
7
+ <label class="label">
8
+ {{ form.old_password.label }}
9
+ {{ form.old_password }}
10
+ <span class="has-text-danger is-size-7">{{ form.old_password.errors }}</span>
11
+ </label>
12
+ <label class="label has-field is-required">
13
+ {{ form.new_password.label }}
14
+ {{ form.new_password }}
15
+ <span class="has-text-danger is-size-7">{{ form.new_password.errors }}</span>
16
+ </label>
17
+ <label class="label has-field is-required">
18
+ {{ form.new_password_confirm.label }}
19
+ {{ form.new_password_confirm }}
20
+ <span class="has-text-danger is-size-7">{{ form.new_password_confirm.errors }}</span>
21
+ </label>
39
22
  </form>
40
23
  {% endblock %}
24
+
25
+ {% block modal_buttons %}
26
+ <button type="submit" form="{{ modal_id }}-form" class="button is-success">{% translate 'Save' %}</button>
27
+ {{ block.super }}
28
+ {% endblock %}
@@ -42,16 +42,17 @@
42
42
  <div class="hero-body">
43
43
  <div class="container">
44
44
  <div class="columns">
45
- <div class="column box is-8-tablet is-offset-2-tablet is-6-desktop is-offset-3-desktop is-4-fullhd is-offset-4-fullhd p-3">
45
+ <div class="column box is-8-tablet is-offset-2-tablet is-6-desktop is-offset-3-desktop is-4-fullhd is-offset-4-fullhd p-3" data-theme="light">
46
46
  <form method="POST" action="" hx-boost="false">
47
47
  {% csrf_token %}
48
48
  <span class="has-text-danger is-size-7">{{ form.non_field_errors }}</span>
49
49
  <label class="label">
50
- {{ form.username.label_tag }}
50
+ <span class="has-text-black">{{ form.username.label_tag }}</span>
51
51
  {{ form.username }}
52
52
  <span class="has-text-danger is-size-7">{{ form.username.errors }}</span>
53
53
  </label>
54
- <label class="label">{{ form.password.label_tag }}
54
+ <label class="label">
55
+ <span class="has-text-black">{{ form.password.label_tag }}</span>
55
56
  {{ form.password }}
56
57
  <span class="has-text-danger is-size-7">{{ form.password.errors }}</span>
57
58
  </label>
@@ -1,56 +1,54 @@
1
- {% extends 'ui/form.html' %}
1
+ {% extends 'ui/layout.html' %}
2
2
  {% load i18n %}
3
3
 
4
- {% block form %}
5
- <form id="form" method="post" action="">
6
- {% csrf_token %}
7
- <div class="columns">
8
- <div class="column is-6">
9
- <label class="label has-field">
10
- {{ form.username.label }}
11
- <span class="has-text-danger is-size-7">{{ form.username.errors }}</span>
12
- <div class="field">
13
- <p class="control is-expanded">{{ form.username }}</p>
14
- </div>
15
- </label>
16
- </div>
17
- </div>
18
-
19
- <div class="columns">
20
- <div class="column is-6">
21
- <label class="label has-field">
22
- {{ form.first_name.label }}
23
- <span class="has-text-danger is-size-7">{{ form.first_name.errors }}</span>
24
- <div class="field">
25
- <p class="control is-fullwidth is-expanded">{{ form.first_name }}</p>
26
- </div>
27
-
28
- </label>
29
- </div>
30
- </div>
31
-
32
- <div class="columns">
33
- <div class="column is-6">
34
- <label class="label has-field">
35
- {{ form.last_name.label }}
36
- <span class="has-text-danger is-size-7">{{ form.last_name.errors }}</span>
37
- <div class="field">
38
- <p class="control is-fullwidth is-expanded">{{ form.last_name }}</p>
39
- </div>
40
- </label>
41
- </div>
42
- </div>
4
+ {% block header_left %}
5
+ {{ block.super }}
6
+ <button class="button p-2 my-1 mr-1 is-light" hx-get="{% url 'user:change_password' %}" hx-target="body" hx-swap="beforeend">
7
+ <span>{% translate 'Change Password' %}</span>
8
+ </button>
9
+ <button class="button p-2 my-1 mr-1 is-light" hx-get="{% url 'user:change_email' %}" hx-target="body" hx-swap="beforeend">
10
+ <span>{% translate 'Change E-Mail' %}</span>
11
+ </button>
12
+ {% endblock %}
43
13
 
44
- <div class="columns">
45
- <div class="column is-6">
46
- <label class="label has-field is-required">
47
- {{ form.language_code.label }}
48
- <span class="has-text-danger is-size-7">{{ form.language_code.errors }}</span>
49
- <div class="field">
50
- <p class="control is-fullwidth is-expanded"><span class="select is-fullwidth">{{ form.language_code }}</span></p>
51
- </div>
52
- </label>
14
+ {% block content_left %}
15
+ <form id="user-form" hx-post="{% url 'user:detail' %}" hx-trigger="change changed" hx-select="#user-form" hx-swap="outerHTML" hx-select-oob="#navbar-user-name">
16
+ {% csrf_token %}
17
+ <div class="columns m-0">
18
+ <div class="column is-6">
19
+ {% if form.save_error or form.non_field_errors %}
20
+ <div class="notification is-danger is-light">
21
+ {{ form.save_error|default_if_none:'' }}
22
+ {{ form.non_field_errors|default_if_none:'' }}
23
+ </div>
24
+ {% endif %}
25
+ <label class="label">
26
+ {{ form.username.label }}
27
+ {{ form.username }}
28
+ <span class="has-text-danger is-size-7">{{ form.username.errors }}</span>
29
+ </label>
30
+ <label class="label">
31
+ {{ form.first_name.label }}
32
+ {{ form.first_name }}
33
+ <span class="has-text-danger is-size-7">{{ form.first_name.errors }}</span>
34
+ </label>
35
+ <label class="label">
36
+ {{ form.last_name.label }}
37
+ {{ form.last_name }}
38
+ <span class="has-text-danger is-size-7">{{ form.last_name.errors }}</span>
39
+ </label>
40
+ <label class="label">
41
+ {{ form.language_code.label }}
42
+ {{ form.language_code }}
43
+ <span class="has-text-danger is-size-7">{{ form.language_code.errors }}</span>
44
+ </label>
45
+ <label class="label">
46
+ {% translate 'E-Mail' %}
47
+ <div class="field has-addons">
48
+ <p class="control input has-text-weight-normal">{{ user.email }}</p>
49
+ </div>
50
+ </label>
51
+ </div>
53
52
  </div>
54
- </div>
55
- </form>
56
- {% endblock %}
53
+ </form>
54
+ {% endblock %}
@@ -7,7 +7,6 @@ urlpatterns = [
7
7
  path('login/', views.LoginView.as_view(), name='login'),
8
8
  path('logout/', views.LogoutView.as_view(), name='logout'),
9
9
  path('detail/', views.user_detail, name='detail'),
10
- path('edit/', views.user_edit, name='edit'),
11
- path('edit/password', views.user_change_password, name='edit_password'),
12
- path('edit/email', views.user_change_email, name='edit_email')
10
+ path('password/', views.user_change_password, name='change_password'),
11
+ path('email/', views.user_change_email, name='change_email')
13
12
  ]
@@ -1,8 +1,7 @@
1
1
  from django.contrib.auth.forms import AuthenticationForm
2
2
  from django.contrib.auth import views, update_session_auth_hash
3
3
  from django.contrib.auth.decorators import login_required
4
- from django.contrib import messages
5
- from django.shortcuts import redirect, render, reverse, resolve_url
4
+ from django.shortcuts import redirect, render, resolve_url
6
5
  from django.utils.translation import gettext_lazy as _
7
6
  from django.conf import settings
8
7
 
@@ -36,21 +35,6 @@ class LogoutView(views.LogoutView):
36
35
 
37
36
  @login_required()
38
37
  def user_detail(request):
39
- ctx = ui.DetailContext(
40
- title=_('Preferences'),
41
- object=request.user,
42
- breadcrumbs=[],
43
- actions=[
44
- ui.ClientAction(_('Edit'), url=reverse('user:edit')),
45
- ui.ClientAction(_('Change E-Mail'), url=reverse('user:edit_email')),
46
- ui.ClientAction(_('Change Password'), url=reverse('user:edit_password'))
47
- ]
48
- ).dict()
49
- return render(request, 'user/user_detail.html', ctx)
50
-
51
-
52
- @login_required()
53
- def user_edit(request):
54
38
  form = UserForm(
55
39
  initial={'language_code': request.user.language_code},
56
40
  instance=request.user
@@ -58,12 +42,13 @@ def user_edit(request):
58
42
  if request.method == 'POST':
59
43
  form = save_form(UserForm(request.POST, instance=request.user))
60
44
  if form.is_saved:
61
- return redirect('user:detail')
62
- ctx = ui.FormContext(
63
- title=_('Preferences'),
64
- form=form,
65
- form_id='form',
66
- actions=ui.form_actions(reverse('user:detail'))
45
+ return redirect(resolve_url('user:detail') + f'?{request.GET.urlencode()}')
46
+ ctx = ui.Context(
47
+ title=_('User Preferences'),
48
+ extra=dict(
49
+ user=request.user,
50
+ form=form
51
+ )
67
52
  ).dict()
68
53
  return render(request, 'user/user_form.html', ctx)
69
54
 
@@ -71,42 +56,50 @@ def user_edit(request):
71
56
  @login_required()
72
57
  def user_change_password(request):
73
58
  form = ChangePasswordForm(instance=request.user)
59
+ ctx = ui.ModalContext(
60
+ title=_('Change Password'),
61
+ modal_id='change-password',
62
+ blocking=True,
63
+ extra=dict(
64
+ form=form,
65
+ user=request.user
66
+ )
67
+ ).dict()
74
68
  if request.method == 'POST':
75
69
  form = save_form(ChangePasswordForm(request.POST, instance=request.user))
76
70
  if form.is_saved:
77
71
  update_session_auth_hash(request, form.instance)
78
- messages.add_message(
79
- request, messages.SUCCESS,
80
- str(_('Your password has been changed.')),
81
- fail_silently=True
72
+ return redirect(
73
+ resolve_url('user:detail')
74
+ + f'?{request.GET.urlencode()}'
82
75
  )
83
- return redirect('user:detail')
84
- ctx = ui.FormContext(
85
- title=_('Change Password'),
86
- form=form,
87
- form_id='form',
88
- actions=ui.form_actions(reverse('user:detail'))
89
- ).dict()
76
+ ctx.update(form=form)
77
+ res = render(request, 'user/change_password.html', ctx)
78
+ res.headers['HX-Retarget'] = f'#{ctx["modal_id"]}'
79
+ res.headers['HX-Reswap'] = 'outerHTML'
80
+ return res
90
81
  return render(request, 'user/change_password.html', ctx)
91
82
 
92
83
 
93
84
  @login_required()
94
85
  def user_change_email(request):
95
86
  form = ChangeEmailForm(instance=request.user)
87
+ ctx = ui.ModalContext(
88
+ title=_('Change E-Mail'),
89
+ modal_id='change-email',
90
+ blocking=True,
91
+ extra=dict(
92
+ form=form,
93
+ user=request.user
94
+ )
95
+ ).dict()
96
96
  if request.method == 'POST':
97
97
  form = save_form(ChangeEmailForm(request.POST, instance=request.user))
98
98
  if form.is_saved:
99
- messages.add_message(
100
- request, messages.SUCCESS,
101
- str(_('Your email address has been changed.')),
102
- fail_silently=True
103
- )
104
99
  return redirect('user:detail')
105
-
106
- ctx = ui.FormContext(
107
- title=_('Change Email'),
108
- form=form,
109
- form_id='form',
110
- actions=ui.form_actions(reverse('user:detail'))
111
- ).dict()
100
+ ctx.update(form=form)
101
+ res = render(request, 'user/change_email.html', ctx)
102
+ res.headers['HX-Retarget'] = f'#{ctx["modal_id"]}'
103
+ res.headers['HX-Reswap'] = 'outerHTML'
104
+ return res
112
105
  return render(request, 'user/change_email.html', ctx)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: accrete
3
- Version: 0.0.108
3
+ Version: 0.0.110
4
4
  Summary: Django Shared Schema Multi Tenant
5
5
  Author-email: Benedikt Jilek <benedikt.jilek@pm.me>
6
6
  License: Copyright (c) 2023 Benedikt Jilek
@@ -37,7 +37,7 @@ accrete/contrib/system_mail/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JC
37
37
  accrete/contrib/ui/__init__.py,sha256=hZShhQbnjxUnNfzDYS16-Zapo_HPxhIKO3oorZosuyY,184
38
38
  accrete/contrib/ui/admin.py,sha256=suMo4x8I3JBxAFBVIdE-5qnqZ6JAZV0FESABHOSc-vg,63
39
39
  accrete/contrib/ui/apps.py,sha256=E0ao2ox6PQ3ldfeR17FXJUUJuGiWjm2DPCxHbPXGzls,152
40
- accrete/contrib/ui/context.py,sha256=6cc9mllOM0xzNHD2LPHhzN3qu2iz7NLV7hFOUQ5dqVY,1786
40
+ accrete/contrib/ui/context.py,sha256=MLITEVZndD_3QZ4nnBT4Bpl9s1bc7RZ3d6LlQKMM54Q,1922
41
41
  accrete/contrib/ui/filter.py,sha256=UA5JNbFn17dE8NTCpaGx1zWV0vc4GBU4o51CDOOvKUI,13284
42
42
  accrete/contrib/ui/middleware.py,sha256=QprWR8FXK9iMPIvLQAeYASaUJSW0uD9BHoYroMKrph0,1560
43
43
  accrete/contrib/ui/models.py,sha256=Vjc0p2XbAPgE6HyTF6vll98A4eDhA5AvaQqsc4kQ9AQ,57
@@ -284,7 +284,7 @@ accrete/contrib/ui/static/icons/Logo.svg,sha256=hGZuxrAa-LRpFavFiF8Lnc7X9OQcqmb6
284
284
  accrete/contrib/ui/static/icons/accrete.svg,sha256=CWHJKIgk3hxL7xIaFSz2j1cK-eF1TroCbjcF58bgOIs,1024
285
285
  accrete/contrib/ui/static/js/alpine-sort3.14.1.js,sha256=tFKFh4yWJOYN69Holh9DDjSctbLmWsWgHQLDroJAnjw,38101
286
286
  accrete/contrib/ui/static/js/alpine3.14.1.js,sha256=NY2a-7GrW--i9IBhowd25bzXcH9BCmBrqYX5i8OxwDQ,44659
287
- accrete/contrib/ui/static/js/filter.js,sha256=Ts6FHo17iiu-iTn2B6abIw_2ShabzpKdVGaEkmqLd0g,4531
287
+ accrete/contrib/ui/static/js/filter.js,sha256=XZ9BDoIwXM1jVp1uvefbbnua2sJ9Y1EVraeDuzQIm8Y,4578
288
288
  accrete/contrib/ui/static/js/htmx.min.js,sha256=SRlVzRgQdH19e5zLk2QAr7dg4G0l1T5FcrZLZWOyeE4,50387
289
289
  accrete/contrib/ui/static/webfonts/fa-brands-400.ttf,sha256=VlbVlrxZcWWkIYL2eyufF9KuR6nj7xsEK5pylzlzBwU,207972
290
290
  accrete/contrib/ui/static/webfonts/fa-brands-400.woff2,sha256=OokkzVIDooYocWrttc7wlD2kw7ROP_zukKsGOHtBxJA,117372
@@ -303,7 +303,7 @@ accrete/contrib/ui/templates/django/forms/widgets/select.html,sha256=uSfDpOQox2m
303
303
  accrete/contrib/ui/templates/django/forms/widgets/text.html,sha256=MSmLlQc7PsPoDLVtTOOiWNprrsPriNr712yFxaHyDIo,47
304
304
  accrete/contrib/ui/templates/django/forms/widgets/textarea.html,sha256=c9BTedqb3IkXLyVYd0p9pR8DFnsXCNGoxVBWZTk_Fic,278
305
305
  accrete/contrib/ui/templates/ui/content_right.html,sha256=XUF1tYpSKfO9FleYtJ2QmWPmwdLYxLHXdBLRa-BrFUs,221
306
- accrete/contrib/ui/templates/ui/layout.html,sha256=aAO5sDCzWLYYBCvmE-nX3D3d57G7r5sJgWu_nMrz5Rg,12370
306
+ accrete/contrib/ui/templates/ui/layout.html,sha256=wNLOr9PlPQNhfdYmzm44NPAPFU-DwbFyZtg-2Mo_wjU,12355
307
307
  accrete/contrib/ui/templates/ui/list.html,sha256=mXsTQdGXJUQ4qe1_QIU2uCcy5KHSEnueJPA_cb1NY0M,2247
308
308
  accrete/contrib/ui/templates/ui/list_update.html,sha256=mLQTCgkKfVI5jrgei-Upc1u87iXL0Q63uLzXHPwMyeo,110
309
309
  accrete/contrib/ui/templates/ui/message.html,sha256=t3bZ5EE7IgQYJroCdLKFeUkZiNbgKkErVYQm6Y3IKpg,532
@@ -326,22 +326,21 @@ accrete/contrib/ui/widgets/search_select.py,sha256=RloKdh_t8So6aL4-SmHMAd0-bVY57
326
326
  accrete/contrib/user/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
327
327
  accrete/contrib/user/admin.py,sha256=YS4iApli7XUaIl9GsEJxys2j8sepX0by88omYHjff-E,85
328
328
  accrete/contrib/user/apps.py,sha256=oHDrAiHf-G57mZLyxqGJzRY2DbPprGFD-QgyVJG_ruI,156
329
- accrete/contrib/user/forms.py,sha256=LVnRx9lcDZbSFn46zRndo1FR9qPvis5ivlXgTMp_IcM,3119
329
+ accrete/contrib/user/forms.py,sha256=L1HfvG4x6q7ESOk2WicT3r4WyVc3g8FAeQKJyuzZRdc,3118
330
330
  accrete/contrib/user/middleware.py,sha256=qblcujwJsthopagyT-hPFq4HsMyGt-VvqZw5TQopBjk,403
331
331
  accrete/contrib/user/models.py,sha256=PTXzaeep9AS1ykLAo01lcZvtAgabgqgtS2zMd71NUd4,4072
332
332
  accrete/contrib/user/tests.py,sha256=mrbGGRNg5jwbTJtWWa7zSKdDyeB4vmgZCRc2nk6VY-g,60
333
- accrete/contrib/user/urls.py,sha256=ktQJ3vZxDlKNUfzOxReeDLOduSdoW5z5Sz0LVFpxZGU,460
334
- accrete/contrib/user/views.py,sha256=k_XmmsltJHoPY86VHJskdLTwMKJh7IyGd0gDGEPPOOM,3639
333
+ accrete/contrib/user/urls.py,sha256=_fBa--3NfyYN10Td7PGHpetJYy42SMqTyCCXhgynkEQ,407
334
+ accrete/contrib/user/views.py,sha256=2-Jk0_Y5oEmxwisY00B_xfbb5siWzYV1Qgb2y1FGn64,3373
335
335
  accrete/contrib/user/locale/de/LC_MESSAGES/django.mo,sha256=p3rgUg6WltAVIMkQsjvjBqTsd_usLhSr1GH4Cyltc2c,433
336
336
  accrete/contrib/user/locale/de/LC_MESSAGES/django.po,sha256=f_Nxpo3HTm2L3f3zoHLfeWsZ-4IQp_EEVSku6TCZSvw,1870
337
337
  accrete/contrib/user/migrations/0001_initial.py,sha256=JWfM9PcMDfkJUdCjLWuWieGs6643qP0KdbCyr5uAZoY,2950
338
338
  accrete/contrib/user/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
339
339
  accrete/contrib/user/templates/user/accrete_navbar_end_dropdown.html,sha256=suPoeu1Dm49rDCrhnrkSZY8cBDsovnKqKGXcS5q-7o0,334
340
- accrete/contrib/user/templates/user/change_email.html,sha256=i9ZgDH31awO9W87E6c3_MKgQNf1ff7EYQX1nEdPqRC8,995
341
- accrete/contrib/user/templates/user/change_password.html,sha256=wcwm5_tfPgs9V7VWdDQqhhyMpcIkiGsx2OIptF5fWMk,1498
342
- accrete/contrib/user/templates/user/login.html,sha256=-pdC28jVi0DtaAjgxXK96kPdF5mb1kkPZQdCcMgeWgM,3721
343
- accrete/contrib/user/templates/user/user_detail.html,sha256=SMkghUKVncVq3KFGBxADJf_wDnLYwmK4oDTKLO0Ejlo,1445
344
- accrete/contrib/user/templates/user/user_form.html,sha256=4o24KV940D_KsBP4YwBguwTFW9nYz1uz-RILs91M7Po,1935
340
+ accrete/contrib/user/templates/user/change_email.html,sha256=w9gBnU_O45YchY0EqD9mUK5oeDaD4cN92tHN80QjReA,815
341
+ accrete/contrib/user/templates/user/change_password.html,sha256=1U7cI-xshsy_nhSj3TUqL3tPtYaBF17XFDgJHXXDzIw,1021
342
+ accrete/contrib/user/templates/user/login.html,sha256=Qza6fsODk-AhA3U9xAkhqQ5YVmz4SN08ZDDLEJ3Mq6M,3845
343
+ accrete/contrib/user/templates/user/user_form.html,sha256=nt1EaB1dDMIMFXdmfcSsLJmwhGyoqs7TnY1PQdx1mLQ,2449
345
344
  accrete/contrib/user_registration/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
346
345
  accrete/contrib/user_registration/admin.py,sha256=kwmGTsg4Hii-lsw9-UaJG7AhQ4k4SPi48GSrtpZ4YR4,119
347
346
  accrete/contrib/user_registration/apps.py,sha256=mYu3fuuubfjImeJHk4D_Wd6Edw2r3oUNXGcFbAkhir4,181
@@ -364,7 +363,7 @@ accrete/utils/forms.py,sha256=IvxbXNpSd4a-JBgsTJhs2GHe-DCRWX-xnVPRcoiCzbI,3104
364
363
  accrete/utils/log.py,sha256=BH0MBDweAjx30wGBO4F3sFhbgkSoEs7T1lLLjlYZNnA,407
365
364
  accrete/utils/models.py,sha256=2xTacvcpmDK_Bp4rAK7JdVLf8HU009LYNJ6eSpMgYZI,1014
366
365
  accrete/utils/views.py,sha256=AutijWetWGgjdO1PNc4gxCblT-i1fAfldNDFRbO9Sac,5012
367
- accrete-0.0.108.dist-info/METADATA,sha256=hJjxYdacNZNUnz0fkF3PjxGOStctuW_QUOgesZDQeIk,4953
368
- accrete-0.0.108.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
369
- accrete-0.0.108.dist-info/licenses/LICENSE,sha256=_7laeMIHnsd3Y2vJEXDYXq_PEXxIcjgJsGt8UIKTRWc,1057
370
- accrete-0.0.108.dist-info/RECORD,,
366
+ accrete-0.0.110.dist-info/METADATA,sha256=xOTVtLXOQVMSB8ipSDRrt0SPOYPZjFxZdoE9Oq4uVWY,4953
367
+ accrete-0.0.110.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
368
+ accrete-0.0.110.dist-info/licenses/LICENSE,sha256=_7laeMIHnsd3Y2vJEXDYXq_PEXxIcjgJsGt8UIKTRWc,1057
369
+ accrete-0.0.110.dist-info/RECORD,,
@@ -1,43 +0,0 @@
1
- {% extends 'ui/detail.html' %}
2
- {% load i18n %}
3
-
4
- {% block detail_content %}
5
- <div class="columns">
6
- <div class="column is-6">
7
- <label class="label is-detail has-field">
8
- {% translate 'Username' %}
9
- <div class="field">
10
- <p class="control is-expanded">{{ object.username|default_if_none:'' }}</p>
11
- </div>
12
- </label>
13
- </div>
14
- <div class="column is-6">
15
- <label class="label is-detail has-field">
16
- {% translate 'E-Mail' %}
17
- <div class="field">
18
- <p class="control is-expanded">{{ object.email }}</p>
19
- </div>
20
- </label>
21
- </div>
22
- </div>
23
- <div class="columns">
24
- <div class="column is-12">
25
- <label class="label is-detail has-field">
26
- {% translate 'Name' %}
27
- <div class="field">
28
- <p class="control is-expanded">{{ object.full_name|default_if_none:'' }}</p>
29
- </div>
30
- </label>
31
- </div>
32
- </div>
33
- <div class="columns">
34
- <div class="column is-6">
35
- <label class="label is-detail has-field">
36
- {% translate 'Language' %}
37
- <div class="field">
38
- <p class="control">{{ object.language_code_display }}</p>
39
- </div>
40
- </label>
41
- </div>
42
- </div>
43
- {% endblock %}