#ARC-6 add phone field

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

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

@ -27,6 +27,9 @@ class UserEditForm(ModelForm):
'skype',
'avatar',
'contractor_specializations',
'cro',
'phone',
'gender',
)
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)
date_of_birth = models.DateTimeField()
avatar = models.ImageField(upload_to='users/avatars/', blank=True)
phone = models.CharField(max_length=30, blank=True, null=True)
@property
def is_staff(self):

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

@ -7,6 +7,17 @@
<form method="post" enctype="multipart/form-data">{% csrf_token %}
<div class="projectsBlock disTab">
<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 }}
<div class="col-lg-3 divCol3">
<div class="avatar">
@ -81,37 +92,39 @@
<div class="filter clearfix">
<div class="titleF1 disTab">
<div class="col-lg-7">Дата рождения:</div>
<div class="col-lg-5">Пол:</div>
<div class="col-lg-5">Пол: </div>
</div>
<div class="polsF1 disTab">
<div class="col-lg-7">
{{ form.date_of_birth }}
</div>
<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>
<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>
</div>
</div>
<div class="titleF1 titleF2 disTab">
<div class="col-lg-3">Сайт:</div>
<div class="col-lg-3">Skype:</div>
{# <div class="col-lg-3">Электронная почта:</div>#}
<div class="col-lg-3">Телефон:</div>
</div>
<div class="searchF1 polsF1 polsFF polsF3">
<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 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 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">
<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 class="col-lg-12">
@ -161,6 +174,23 @@
});
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({
url: '/api/location',
type: 'GET',
@ -170,7 +200,6 @@
console.log(json.results);
var out = ''
var outCountry = '';
$.each(json.results, function(i,v){
if (v.type == 'country'){
outCountry += '<option value="' + v.id + '">' + v.name + '</option>';
@ -179,24 +208,18 @@
out += '<option value="' + v.id + '">' + v.name + '</option>';
}
});
$('#location-country').html(outCountry);
$('#location-city').html(out);
$('#location-country').addClass("selectpicker4");
$('#location-city').addClass("selectpicker4");
$('.selectpicker4').selectpicker({
style: 'btn-info',
size: 4,
width: '237px'
});
}
});
});
</script>
{% endblock %}

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

Loading…
Cancel
Save