remotes/origin/setup
ArturBaybulatov 10 years ago
commit b04a8a4557
  1. 38
      projects/templates/project_list.html
  2. 2
      users/admin.py
  3. 3
      users/forms.py
  4. 20
      users/migrations/0017_user_phone.py
  5. 2
      users/models.py
  6. 21
      users/templates/contractor_profile.html
  7. 59
      users/templates/contractor_profile_edit.html
  8. 9
      users/views.py

@ -21,29 +21,21 @@
<div class="col-lg-3"> <div class="col-lg-3">
<select class="selectpicker"> <select class="selectpicker">
<option>Mustard</option> <option>Mustard</option>
<option>Ketchup</option>
<option>Relish</option>
</select> </select>
</div> </div>
<div class="col-lg-3"> <div class="col-lg-3">
<select class="selectpicker"> <select class="selectpicker">
<option>Mustard</option> <option>Mustard</option>
<option>Ketchup</option>
<option>Relish</option>
</select> </select>
</div> </div>
<div class="col-lg-3"> <div class="col-lg-3">
<select class="selectpicker"> <select class="selectpicker">
<option>Mustard</option> <option>Mustard</option>
<option>Ketchup</option>
<option>Relish</option>
</select> </select>
</div> </div>
<div class="col-lg-3"> <div class="col-lg-3">
<select class="selectpicker"> <select class="selectpicker">
<option>Mustard</option> <option>Mustard</option>
<option>Ketchup</option>
<option>Relish</option>
</select> </select>
</div> </div>
</div> </div>
@ -84,29 +76,21 @@
<div class="col-lg-3"> <div class="col-lg-3">
<select class="selectpicker"> <select class="selectpicker">
<option>Mustard</option> <option>Mustard</option>
<option>Ketchup</option>
<option>Relish</option>
</select> </select>
</div> </div>
<div class="col-lg-3"> <div class="col-lg-3">
<select class="selectpicker"> <select class="selectpicker">
<option>Mustard</option> <option>Mustard</option>
<option>Ketchup</option>
<option>Relish</option>
</select> </select>
</div> </div>
<div class="col-lg-3"> <div class="col-lg-3">
<select class="selectpicker"> <select class="selectpicker">
<option>Mustard</option> <option>Mustard</option>
<option>Ketchup</option>
<option>Relish</option>
</select> </select>
</div> </div>
<div class="col-lg-3"> <div class="col-lg-3">
<select class="selectpicker"> <select class="selectpicker">
<option>Mustard</option> <option>Mustard</option>
<option>Ketchup</option>
<option>Relish</option>
</select> </select>
</div> </div>
</div> </div>
@ -164,22 +148,12 @@
<span>0</span> ответ от имени группы <span>0</span> ответ от имени группы
</li> </li>
</ul> </ul>
<p class="textPro"> <p class="textPro">{{ proj.text }}</p>
{{ proj.text }}
</p>
<ul class="listPro"> <ul class="listPro">
<li> <li>{{ proj.created }}</li>
{{ proj.created }} <li>0</li>
</li> <li>{{ proj.answers.count }}</li>
<li> <li>{{ proj.user }}</li>
0
</li>
<li>
{{ proj.answers.count }}
</li>
<li>
{{ proj.user }}
</li>
</ul> </ul>
</div> </div>
<div class="col-lg-3 rightPro"> <div class="col-lg-3 rightPro">
@ -190,9 +164,11 @@
{% if proj.secure_deal %} {% if proj.secure_deal %}
<li>Безопасная сделка</li> <li>Безопасная сделка</li>
{% endif %} {% endif %}
<li> <li>
Стадия: "П" Стадия: "П"
</li> </li>
<li> <li>
Отказаться и переместить Отказаться и переместить
в корзину в корзину

@ -5,7 +5,7 @@ from .models import User, Team, ContractorFinancialInfo
class UserAdmin(admin.ModelAdmin): class UserAdmin(admin.ModelAdmin):
readonly_fields = ('pk',) readonly_fields = ('pk',)
list_display = ('email','get_groups','is_active',) list_display = ('email', 'get_groups', 'cro', 'is_active',)
def get_groups(self, obj): def get_groups(self, obj):
return ', '.join(g.name for g in obj.groups.all()) return ', '.join(g.name for g in obj.groups.all())

@ -27,6 +27,9 @@ class UserEditForm(ModelForm):
'skype', 'skype',
'avatar', 'avatar',
'contractor_specializations', 'contractor_specializations',
'cro',
'phone',
'gender',
) )
widgets = { widgets = {

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.6 on 2016-06-22 14:03
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('users', '0016_auto_20160617_1815'),
]
operations = [
migrations.AddField(
model_name='user',
name='phone',
field=models.CharField(blank=True, max_length=30, null=True),
),
]

@ -99,7 +99,7 @@ class User(AbstractBaseUser, PermissionsMixin):
website = models.CharField(max_length=255, blank=True) website = models.CharField(max_length=255, blank=True)
date_of_birth = models.DateTimeField() date_of_birth = models.DateTimeField()
avatar = models.ImageField(upload_to='users/avatars/', blank=True) avatar = models.ImageField(upload_to='users/avatars/', blank=True)
phone = models.CharField(max_length=30, blank=True, null=True)
@property @property
def is_staff(self): def is_staff(self):

@ -17,30 +17,38 @@
<div class="menuUser disTab"> <div class="menuUser disTab">
<ul> <ul>
{% if contractor.pk == user.pk %}
<li class="icon_um1"> <li class="icon_um1">
<a href="{% url 'users:contractor-edit' pk=contractor.pk %}"> <a href="{% url 'users:contractor-edit' pk=contractor.pk %}">
редактировать профиль редактировать профиль
</a> </a>
<span></span> <span></span>
</li> </li>
{% endif %}
{% if contractor.pk != user.id %}
<li class="icon_um2"> <li class="icon_um2">
<a href="javascript:void(0)"> <a href="javascript:void(0)">
пригласить в группу пригласить в группу
</a> </a>
<span></span> <span></span>
</li> </li>
<li class="icon_um3"> <li class="icon_um3">
<a href="javascript:void(0)"> <a href="javascript:void(0)">
написать сообщение написать сообщение
</a> </a>
<span></span> <span></span>
</li> </li>
<li class="icon_um4"> <li class="icon_um4">
<a href="javascript:void(0)"> <a href="javascript:void(0)">
предложить заказ предложить заказ
</a> </a>
<span></span> <span></span>
</li> </li>
{% endif %}
</ul> </ul>
</div> </div>
</div> </div>
@ -63,10 +71,15 @@
<div class="col-lg-4"> <div class="col-lg-4">
{% load projects_tags %} {% load projects_tags %}
{% ratings_widget contractor.pk %} {% ratings_widget contractor.pk %}
<div class="sroUser">
<div class="iconSRO"></div> {% if contractor.cro %}
<p>Есть допуск СРО</p> <div class="sroUser">
</div> <div class="iconSRO"></div>
<p>Есть допуск СРО</p>
</div>
{% endif %}
</div> </div>
</div> </div>
<div class="col-lg-9"> <div class="col-lg-9">

@ -7,6 +7,17 @@
<form method="post" enctype="multipart/form-data">{% csrf_token %} <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">
{% load mptt_tags %}
{% recursetree nodes %}
<li>
{{ node.name }}
{% if not node.is_leaf_node %}
---
{{ children }}
{% endif %}
</li>
{% endrecursetree %}
{{ form.errors }} {{ form.errors }}
<div class="col-lg-3 divCol3"> <div class="col-lg-3 divCol3">
<div class="avatar"> <div class="avatar">
@ -81,37 +92,39 @@
<div class="filter clearfix"> <div class="filter clearfix">
<div class="titleF1 disTab"> <div class="titleF1 disTab">
<div class="col-lg-7">Дата рождения:</div> <div class="col-lg-7">Дата рождения:</div>
<div class="col-lg-5">Пол:</div> <div class="col-lg-5">Пол: </div>
</div> </div>
<div class="polsF1 disTab"> <div class="polsF1 disTab">
<div class="col-lg-7"> <div class="col-lg-7">
{{ form.date_of_birth }} {{ form.date_of_birth }}
</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="{{ form.gender }}"><span></span></label>
<label>
<input type="radio" value="male" name="{{ form.gender.name }}" {% if form.gender.value == 'male' %} checked {% endif %}><span></span></label>
<p>Мужской</p> <p>Мужской</p>
<label class="woman"><input type="radio" name="{{ form.gender }}"><span></span></label> <label class="woman">
<input type="radio" value="woman" name="{{ form.gender.name }}" {% if form.gender.value == 'woman' %} checked {% endif %}><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> </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" name="{{ form.website.name }}"class="box-sizing surr surr2" placeholder="beeg.com"> <input type="text" name="{{ form.website.name }}" value="{{ form.website.value }}" class="box-sizing surr surr2" placeholder="beeg.com">
</div> </div>
<div class="col-lg-3"> <div class="col-lg-3">
<input type="text" name="{{ form.skype.name }}" class="box-sizing surr surr2" placeholder="nokia770"> <input type="text" name="{{ form.skype.name }}" value="{{ form.skype.value }}" 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" name="{{ form.phone.name }}" class="box-sizing surr surr2" placeholder="+7 999 999 44 02"> <input type="text" name="{{ form.phone.name }}" value="{{ form.phone.value }}" 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">
@ -161,6 +174,23 @@
}); });
var csrftoken = getCookie('csrftoken'); var csrftoken = getCookie('csrftoken');
$('#id_date_of_birth_day').addClass('selectpicker2 valul');
$('#id_date_of_birth_month').addClass('selectpicker left-edit');
$('#id_date_of_birth_year').addClass('selectpicker5 valul left-edit');
$('.selectpicker2').selectpicker({
style: 'btn-info',
size: 4,
width: '90px'
});
$('.selectpicker5').selectpicker({
style: 'btn-info',
size: 4,
width: '117px'
});
$.ajax({ $.ajax({
url: '/api/location', url: '/api/location',
type: 'GET', type: 'GET',
@ -170,7 +200,6 @@
console.log(json.results); console.log(json.results);
var out = '' var out = ''
var outCountry = ''; var outCountry = '';
$.each(json.results, function(i,v){ $.each(json.results, function(i,v){
if (v.type == 'country'){ if (v.type == 'country'){
outCountry += '<option value="' + v.id + '">' + v.name + '</option>'; outCountry += '<option value="' + v.id + '">' + v.name + '</option>';
@ -179,24 +208,18 @@
out += '<option value="' + v.id + '">' + v.name + '</option>'; out += '<option value="' + v.id + '">' + v.name + '</option>';
} }
}); });
$('#location-country').html(outCountry); $('#location-country').html(outCountry);
$('#location-city').html(out); $('#location-city').html(out);
$('#location-country').addClass("selectpicker4"); $('#location-country').addClass("selectpicker4");
$('#location-city').addClass("selectpicker4"); $('#location-city').addClass("selectpicker4");
$('.selectpicker4').selectpicker({ $('.selectpicker4').selectpicker({
style: 'btn-info', style: 'btn-info',
size: 4, size: 4,
width: '237px' width: '237px'
}); });
} }
}); });
}); });
</script> </script>
{% endblock %} {% endblock %}

@ -6,6 +6,7 @@ from django.views.generic.base import TemplateView
from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse
from archilance.mixins import BaseMixin from archilance.mixins import BaseMixin
from specializations.models import Specialization
from .models import User, ContractorFinancialInfo from .models import User, ContractorFinancialInfo
from .mixins import CheckForUserMixin from .mixins import CheckForUserMixin
from .forms import UserEditForm, ContractorFinancicalInfoForm from .forms import UserEditForm, ContractorFinancicalInfoForm
@ -76,7 +77,8 @@ class CustomerProfileEditView(CheckForUserMixin, View):
def get(self, request, *args, **kwargs): def get(self, request, *args, **kwargs):
instance = get_object_or_404(User, pk=request.user.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 }) nodes = Specialization.objects.all()
return render(request,self.template_name, {'form': form , 'nodes': nodes})
def post(self, request, *args, **kwargs): def post(self, request, *args, **kwargs):
instance = request.user instance = request.user
@ -96,13 +98,14 @@ class ContractorProfileEditView(CheckForUserMixin, View):
def get(self, request, *args, **kwargs): def get(self, request, *args, **kwargs):
instance = get_object_or_404(User, pk=request.user.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}) nodes = Specialization.objects.all()
return render(request,self.template_name, {'form': form , 'nodes': nodes})
def post(self, request, *args, **kwargs): def post(self, request, *args, **kwargs):
instance = request.user instance = request.user
form = self.form_class(request.POST, request.FILES, instance=instance) form = self.form_class(request.POST, request.FILES, instance=instance)
if form.is_valid(): if form.is_valid():
# import code; code.interact(local=dict(globals(), **locals())) import code; code.interact(local=dict(globals(), **locals()))
instance = form.save(commit=False) instance = form.save(commit=False)
instance.save() instance.save()
messages.info(request, 'Данные успешно отредактированы') messages.info(request, 'Данные успешно отредактированы')

Loading…
Cancel
Save