Browse Source

Merge branch 'devel' into fix_shaper

devel
Dmitry Novikov 8 years ago
parent
commit
dfe4802f06
  1. 6
      accounts_app/forms.py
  2. 15
      accounts_app/locale/ru/LC_MESSAGES/django.po
  3. 75
      accounts_app/templates/accounts/settings/ch_info.html
  4. 20
      accounts_app/templates/accounts/userprofile_form.html
  5. 2
      accounts_app/urls.py
  6. 41
      accounts_app/views.py

6
accounts_app/forms.py

@ -47,3 +47,9 @@ class UserPermissionsForm(forms.ModelForm):
class Meta: class Meta:
model = UserProfile model = UserProfile
fields = 'user_permissions', fields = 'user_permissions',
class UserProfileForm(forms.ModelForm):
class Meta:
model = UserProfile
exclude = ('avatar',)

15
accounts_app/locale/ru/LC_MESSAGES/django.po

@ -233,10 +233,6 @@ msgstr "Сбросить"
msgid "User name" msgid "User name"
msgstr "Логин" msgstr "Логин"
#: templates/accounts/index.html:17 templates/accounts/settings/ch_info.html:19
msgid "Name and surname"
msgstr "Фамилия и Имя"
#: templates/accounts/index.html:21 #: templates/accounts/index.html:21
msgid "Is enable" msgid "Is enable"
msgstr "Включён-ли" msgstr "Включён-ли"
@ -313,14 +309,6 @@ msgstr "Изменение прав доступа для выбранного
msgid "The list of user groups to which the account has access" msgid "The list of user groups to which the account has access"
msgstr "Список групп абонентов, к которым учётка имеет доступ" msgstr "Список групп абонентов, к которым учётка имеет доступ"
#: templates/accounts/settings/ch_info.html:48
msgid "Old password"
msgstr "Старый пароль"
#: templates/accounts/settings/ch_info.html:57
msgid "New password"
msgstr "Новый пароль"
#: views.py:33 #: views.py:33
msgid "Wrong login or password, please try again" msgid "Wrong login or password, please try again"
msgstr "Неправильный логин или пароль, попробуйте ещё раз" msgstr "Неправильный логин или пароль, попробуйте ещё раз"
@ -385,3 +373,6 @@ msgstr "Лог действий"
msgid "Administrator" msgid "Administrator"
msgstr "Сотрудник" msgstr "Сотрудник"
msgid "Saved successfully"
msgstr "Успешно сохранено"

75
accounts_app/templates/accounts/settings/ch_info.html

@ -1,75 +0,0 @@
{% extends request.is_ajax|yesno:'nullcont.htm,accounts/settings/ext.htm' %}
{% load globaltags i18n %}
{% block content %}
<form role="form" action="{% url 'acc_app:setup_info' %}" method="post">{% csrf_token %}
<div class="form-group">
<label for="login">{% trans 'User name' %}</label>
<div class="input-group">
<span class="input-group-addon"><span class="glyphicon glyphicon-user"></span></span>
<input id="login" type="text" value="{{ user.username }}" name="username" placeholder="{% trans 'User name' %}"
required class="form-control">
</div>
</div>
<div class="form-group">
<label for="fio">{% trans 'Name and surname' %}</label>
<div class="input-group">
<span class="input-group-addon"><span class="glyphicon glyphicon-user"></span></span>
<input id="fio" type="text" value="{{ user.fio }}" name="fio" class="form-control">
</div>
</div>
<div class="form-group">
<label for="mail">{% trans 'Email' %}</label>
<div class="input-group">
<span class="input-group-addon"><span class="glyphicon glyphicon-user"></span></span>
<input id="mail" type="text" value="{{ user.email }}" name="email" placeholder="Email"
class="form-control">
</div>
</div>
<div class="form-group">
<label for="tel">{% trans 'Telephone' %}</label>
<div class="input-group">
<span class="input-group-addon"><span class="glyphicon glyphicon-user"></span></span>
<input id="tel" type="text" value="{{ user.telephone }}" pattern="{% global_var 'TELEPHONE_REGEXP' %}" name="telephone"
placeholder="{% trans '+[7,8,9,3] and 10,11 digits' %}" class="form-control">
</div>
</div>
<div class="form-group">
<label for="oldpassw">{% trans 'Old password' %}</label>
<div class="input-group">
<span class="input-group-addon"><span class="glyphicon glyphicon-user"></span></span>
<input id="oldpassw" type="password" name="oldpasswd" class="form-control">
</div>
</div>
<div class="form-group">
<label for="npassw">{% trans 'New password' %}</label>
<div class="input-group">
<span class="input-group-addon"><span class="glyphicon glyphicon-user"></span></span>
<input id="npassw" type="Password" name="newpasswd" class="form-control">
</div>
</div>
<div class="btn-group">
<button type="submit" class="btn btn-primary">
<span class="glyphicon glyphicon-save"></span> {% trans 'Save' %}
</button>
<button type="reset" class="btn btn-default">
<span class="glyphicon glyphicon-remove"></span> {% trans 'Reset' %}
</button>
</div>
</form>
{% endblock %}

20
accounts_app/templates/accounts/userprofile_form.html

@ -0,0 +1,20 @@
{% extends request.is_ajax|yesno:'nullcont.htm,accounts/settings/ext.htm' %}
{% load globaltags i18n bootstrap3 %}
{% block content %}
<form role="form" action="{% url 'acc_app:setup_info' %}" method="post">{% csrf_token %}
{% bootstrap_form form %}
<div class="btn-group">
<button type="submit" class="btn btn-primary">
<span class="glyphicon glyphicon-save"></span> {% trans 'Save' %}
</button>
<button type="reset" class="btn btn-default">
<span class="glyphicon glyphicon-remove"></span> {% trans 'Reset' %}
</button>
</div>
</form>
{% endblock %}

2
accounts_app/urls.py

@ -15,7 +15,7 @@ urlpatterns = [
path('add/', views.create_profile, name='create_profile'), path('add/', views.create_profile, name='create_profile'),
path('settings/', views.ch_info, name='setup_info'),
path('settings/', views.UpdateSelfAccount.as_view(), name='setup_info'),
path('settings/change_ava/', views.AvatarUpdateView.as_view(), name='setup_avatar'), path('settings/change_ava/', views.AvatarUpdateView.as_view(), name='setup_avatar'),
path('<int:uid>/', views.profile_show, name='other_profile'), path('<int:uid>/', views.profile_show, name='other_profile'),

41
accounts_app/views.py

@ -2,6 +2,7 @@ from django.apps import apps
from django.contrib.auth.decorators import login_required from django.contrib.auth.decorators import login_required
from django.contrib.auth import logout, login, authenticate from django.contrib.auth import logout, login, authenticate
from django.contrib.auth.forms import AuthenticationForm from django.contrib.auth.forms import AuthenticationForm
from django.contrib.auth.mixins import LoginRequiredMixin
from django.contrib.auth.views import LoginView from django.contrib.auth.views import LoginView
from django.core.exceptions import PermissionDenied from django.core.exceptions import PermissionDenied
from django.http import HttpResponseRedirect from django.http import HttpResponseRedirect
@ -16,7 +17,7 @@ from django.conf import settings
from group_app.models import Group from group_app.models import Group
from .models import UserProfile, UserProfileLog from .models import UserProfile, UserProfileLog
from .forms import AvatarChangeForm, UserPermissionsForm, MyUserObjectPermissionsForm
from .forms import AvatarChangeForm, UserPermissionsForm, MyUserObjectPermissionsForm, UserProfileForm
from djing import lib from djing import lib
from djing.lib.decorators import only_admins from djing.lib.decorators import only_admins
from guardian.decorators import permission_required_or_403 as permission_required from guardian.decorators import permission_required_or_403 as permission_required
@ -100,36 +101,18 @@ class AvatarUpdateView(UpdateView):
return resolve_url('acc_app:other_profile', uid=self.request.user.id) return resolve_url('acc_app:other_profile', uid=self.request.user.id)
@login_required
@only_admins
def ch_info(request):
if request.method == 'POST':
user = request.user
user.username = request.POST.get('username')
user.fio = request.POST.get('fio')
user.email = request.POST.get('email')
user.telephone = request.POST.get('telephone')
class UpdateSelfAccount(LoginRequiredMixin, UpdateView):
form_class = UserProfileForm
model = UserProfile
template_name = 'accounts/userprofile_form.html'
psw = request.POST.get('oldpasswd')
if psw != '' and psw is not None:
if user.check_password(psw):
newpasswd = request.POST.get('newpasswd')
if newpasswd != '' and newpasswd is not None:
user.set_password(newpasswd)
user.save()
request.user = user
logout(request)
return redirect('acc_app:other_profile', uid=user.pk)
else:
messages.error(request, _('New password is empty, fill it'))
else:
messages.error(request, _('Wrong password'))
else:
messages.warning(request, _('Empty password, fill it'))
def get_object(self, queryset=None):
return self.request.user
return render(request, 'accounts/settings/ch_info.html', {
'user': request.user
})
def form_valid(self, form):
r = super(UpdateSelfAccount, self).form_valid(form)
messages.success(self.request, _('Saved successfully'))
return r
@login_required @login_required

Loading…
Cancel
Save