#ARC-12 Add users mixin

remotes/origin/setup
Mukhtar 10 years ago
parent 36d16b3af8
commit af12f80a26
  1. 6
      users/forms.py
  2. 20
      users/migrations/0016_auto_20160617_1815.py
  3. 14
      users/mixins.py
  4. 51
      users/templates/contractor_profile_edit.html
  5. 22
      users/views.py

@ -16,8 +16,14 @@ class UserEditForm(ModelForm):
'date_of_birth', 'date_of_birth',
'website', 'website',
'skype', 'skype',
'avatar',
) )
widgets = {
'date_of_birth': forms.SelectDateWidget(years=range(1940, 2015)),
}
class ContractorFinancicalInfoForm(ModelForm): class ContractorFinancicalInfoForm(ModelForm):

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.6 on 2016-06-17 15:15
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('users', '0015_auto_20160615_1747'),
]
operations = [
migrations.AlterField(
model_name='contractorfinancialinfo',
name='legal_status',
field=models.CharField(choices=[('individual', 'Физическое лицо'), ('legal_entity', 'ИП и юридическое лицо')], max_length=30),
),
]

@ -4,11 +4,11 @@ from django.http import HttpResponseForbidden
class CheckForUserMixin(object): class CheckForUserMixin(object):
def dispatch(self, request, *args, **kwargs): def dispatch(self, request, *args, **kwargs):
if request.user.is_authenticated(): # if request.user.is_authenticated():
pk = kwargs.get('pk') # pk = kwargs.get('pk')
if pk: # if pk:
if request.user.pk != int(pk): # if request.user.pk != int(pk):
return HttpResponseForbidden('403 Forbidden') # return HttpResponseForbidden('403 Forbidden')
else: # else:
return HttpResponseForbidden('403 Forbidden') # return HttpResponseForbidden('403 Forbidden')
return super().dispatch(request, *args, **kwargs) return super().dispatch(request, *args, **kwargs)

@ -4,17 +4,19 @@
{% include 'partials/header.html' %} {% include 'partials/header.html' %}
<div class="container mainScore"> <div class="container mainScore">
<div class="row"> <div class="row">
<form method="post" enctype="multipart/form-data">{% csrf_token %}
<div class="projectsBlock disTab"> <div class="projectsBlock disTab">
<div class="col-lg-12"> <div class="col-lg-12">
{{ form.errors }}
<div class="col-lg-3 divCol3"> <div class="col-lg-3 divCol3">
<div class="avatar"> <div class="avatar">
<div class="avatarInset"> <div class="avatarInset">
<img src="img/profile.jpg" alt="profile-image"> <img src="/media/{{ form.avatar.value }}" alt="profile-image">
</div> </div>
</div> </div>
<div class="menuUser upload-img disTab"> <div class="menuUser upload-img disTab">
<div class="upload2 up-l1"> <div class="upload2 up-l1">
<input type="file" name="upload"> <input type="file" name="{{ form.avatar.name }}">
<p>Загрузить фотографию</p> <p>Загрузить фотографию</p>
</div> </div>
</div> </div>
@ -22,9 +24,9 @@
<div class="col-lg-9 divCol9"> <div class="col-lg-9 divCol9">
<div class="col-lg-4"> <div class="col-lg-4">
<p class="name-edit-p">ФИО:</p> <p class="name-edit-p">ФИО:</p>
<input type="text" value="Иванов" class="box-sizing inp-edit"> <input type="text" value="{{ form.first_name.value }}" name="{{ form.first_name.name }}" class="box-sizing inp-edit">
<input type="text" value="Петр" class="box-sizing inp-edit"> <input type="text" value="{{ form.last_name.value }}" name="{{ form.last_name.name }}" class="box-sizing inp-edit">
<input type="text" value="Иванович" class="box-sizing inp-edit"> <input type="text" value="{{ form.patronym.value }}" name="{{ form.patronym.name }}" class="box-sizing inp-edit">
</div> </div>
<div class="col-lg-4"> <div class="col-lg-4">
<p class="name-edit-p">Специализация:</p> <p class="name-edit-p">Специализация:</p>
@ -76,60 +78,47 @@
</div> </div>
<div class="polsF1 disTab"> <div class="polsF1 disTab">
<div class="col-lg-7"> <div class="col-lg-7">
<select class="selectpicker2 valul"> {{ form.date_of_birth }}
<option>1</option>
<option>2</option>
<option>3</option>
</select>
<select class="selectpicker left-edit">
<option>Января</option>
<option>Ketchup</option>
<option>Relish</option>
</select>
<select class="selectpicker5 valul left-edit">
<option>1996</option>
<option>1995</option>
<option>1995</option>
</select>
</div> </div>
<div class="col-lg-5 dog-new ed-new"> <div class="col-lg-5 dog-new ed-new">
<label><input type="radio" name="sex"><span></span></label> <label><input type="radio" name="{{ form.gender }}"><span></span></label>
<p>Мужской</p> <p>Мужской</p>
<label class="woman"><input type="radio" name="sex"><span></span></label> <label class="woman"><input type="radio" name="{{ form.gender }}"><span></span></label>
<p>Женский</p> <p>Женский</p>
</div> </div>
</div> </div>
<div class="titleF1 titleF2 disTab"> <div class="titleF1 titleF2 disTab">
<div class="col-lg-3">Сайт:</div> <div class="col-lg-3">Сайт:</div>
<div class="col-lg-3">Skype:</div> <div class="col-lg-3">Skype:</div>
<div class="col-lg-3">Электронная почта:</div> {# <div class="col-lg-3">Электронная почта:</div>#}
<div class="col-lg-3">Телефон:</div> <div class="col-lg-3">Телефон:</div>
</div> </div>
<div class="searchF1 polsF1 polsFF polsF3"> <div class="searchF1 polsF1 polsFF polsF3">
<div class="col-lg-3"> <div class="col-lg-3">
<input type="text" class="box-sizing surr surr2" placeholder="beeg.com"> <input type="text" name="{{ form.website.name }}"class="box-sizing surr surr2" placeholder="beeg.com">
</div> </div>
<div class="col-lg-3"> <div class="col-lg-3">
<input type="text" class="box-sizing surr surr2" placeholder="nokia770"> <input type="text" name="{{ form.skype.name }}" class="box-sizing surr surr2" placeholder="nokia770">
</div> </div>
{# <div class="col-lg-3">#}
{# <input type="text" name="{{ form.phone.name }}" class="box-sizing surr surr2" placeholder="example@gmail.com">#}
{# </div>#}
<div class="col-lg-3"> <div class="col-lg-3">
<input type="text" class="box-sizing surr surr2" placeholder="example@gmail.com"> <input type="text" name="{{ form.phone.name }}" class="box-sizing surr surr2" placeholder="+7 999 999 44 02">
</div>
<div class="col-lg-3">
<input type="text" class="box-sizing surr surr2" placeholder="+7 999 999 44 02">
</div> </div>
</div> </div>
<div class="col-lg-12"> <div class="col-lg-12">
<div class="col-lg-12 make-new make-eed"> <div class="col-lg-12 make-new make-eed">
<label><input type="checkbox" name="dogovor"><span></span></label> <label>{{ form.cro }}<span></span></label>
<p>Есть допуск СРО</p> <p>Есть допуск СРО</p>
</div> </div>
</div> </div>
<div class="searchF1 polsF1 polsFF links-filter"> <div class="searchF1 polsF1 polsFF links-filter">
<a href="javascript:void(0)">Сохранить</a> <input class="btn-submit-link" type="submit" value="Сохранить" />
</div> </div>
</div> </div>
</div> </div>
</form>
{% include 'partials/footer.html' %} {% include 'partials/footer.html' %}
</div> </div>
</div> </div>

@ -74,21 +74,20 @@ class ContractorProfileEditView(CheckForUserMixin, View):
template_name = 'contractor_profile_edit.html' template_name = 'contractor_profile_edit.html'
def get(self, request, *args, **kwargs): def get(self, request, *args, **kwargs):
instance= get_object_or_404(User, pk=kwargs.get('pk')) instance = get_object_or_404(User, pk=request.user.pk)
form = self.form_class(instance=instance) form = self.form_class(instance=instance)
return render(request, self.template_name, {'form': form}) return render(request, self.template_name, {'form': form})
def post(self, request, *args, **kwargs):
instance = request.user
form = self.form_class(request.POST, request.FILES, instance=instance)
if form.is_valid():
# import code; code.interact(local=dict(globals(), **locals()))
form.save()
messages.info(request, 'Данные успешно отредактированы')
return redirect(reverse('users:contractor-edit', kwargs={'pk': request.user.pk}))
# class ContractorTestProfileEditView(CheckForUserMixin, View): return render(request, self.template_name, {'form': form})
# form_class = UserEditForm
# template_name = 'contractor_profile_test_edit.html'
#
# def get(self, request, *args, **kwargs):
# contractor = get_object_or_404(User, pk=kwargs.get('pk'))
# form = self.form_class
# return render(request, self.template_name, {'contractor': contractor, 'form': form})
class ContractorFinancialInfoEdit(CheckForUserMixin, View): class ContractorFinancialInfoEdit(CheckForUserMixin, View):
@ -97,7 +96,6 @@ class ContractorFinancialInfoEdit(CheckForUserMixin, View):
def get(self, request, *args, **kwargs): def get(self, request, *args, **kwargs):
instance = request.user.contractor_financial_info instance = request.user.contractor_financial_info
# import code; code.interact(local=dict(globals(), **locals())) # import code; code.interact(local=dict(globals(), **locals()))
form = self.form_class(instance=instance) form = self.form_class(instance=instance)
return render(request, self.template_name, {'form': form}) return render(request, self.template_name, {'form': form})

Loading…
Cancel
Save