Browse Source

Merge branch 'devel' into tmp_pay_forward

devel
Dmitry Novikov 8 years ago
parent
commit
18b17f2bec
  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:
model = UserProfile
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"
msgstr "Логин"
#: templates/accounts/index.html:17 templates/accounts/settings/ch_info.html:19
msgid "Name and surname"
msgstr "Фамилия и Имя"
#: templates/accounts/index.html:21
msgid "Is enable"
msgstr "Включён-ли"
@ -313,14 +309,6 @@ msgstr "Изменение прав доступа для выбранного
msgid "The list of user groups to which the account has access"
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
msgid "Wrong login or password, please try again"
msgstr "Неправильный логин или пароль, попробуйте ещё раз"
@ -385,3 +373,6 @@ msgstr "Лог действий"
msgid "Administrator"
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('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('<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 import logout, login, authenticate
from django.contrib.auth.forms import AuthenticationForm
from django.contrib.auth.mixins import LoginRequiredMixin
from django.contrib.auth.views import LoginView
from django.core.exceptions import PermissionDenied
from django.http import HttpResponseRedirect
@ -16,7 +17,7 @@ from django.conf import settings
from group_app.models import Group
from .models import UserProfile, UserProfileLog
from .forms import AvatarChangeForm, UserPermissionsForm, MyUserObjectPermissionsForm
from .forms import AvatarChangeForm, UserPermissionsForm, MyUserObjectPermissionsForm, UserProfileForm
from djing import lib
from djing.lib.decorators import only_admins
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)
@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

Loading…
Cancel
Save