remotes/origin/PR-39
ArturBaybulatov 10 years ago
parent edf94d7097
commit ff80f2d4ea
  1. 6
      README.md
  2. 9
      assets/js/main.js
  3. 4
      projects/views.py
  4. 1
      ratings/management/commands/recalculation_spec.py
  5. 35
      ratings/templates/templatetags/specializations_widget.html
  6. 2
      users/models.py
  7. 56
      users/templates/contractor_filter.html

@ -21,6 +21,12 @@ python manage.py makemigrations thumbnail
python manage.py migrate python manage.py migrate
``` ```
Run the command at leat once to see specialization ratings:
```
python manage.py recalculation_spec
```
``` ```
python manage.py runserver python manage.py runserver
``` ```

@ -2,16 +2,23 @@ $(document).ready(function(){
$('.messd:first').addClass('mesAct'); $('.messd:first').addClass('mesAct');
$('.orderBlock:first').addClass('orAct'); $('.orderBlock:first').addClass('orAct');
if(!$.cookie('slideResVisible')) {
$('.slideRes').slideUp(300);
$('.resButtonF1').css('transform','rotate(180deg)');
}
$('.resButtonF1').click(function(e){ $('.resButtonF1').click(function(e){
e.preventDefault(); e.preventDefault();
$('.slideRes').toggleClass('activeSlide'); $('.slideRes').toggleClass('activeSlide');
if($('.slideRes').hasClass('activeSlide')) { if($('.slideRes').hasClass('activeSlide')) {
$('.slideRes').slideUp(300); $('.slideRes').slideUp(300);
$(this).css('transform','rotate(180deg)'); $(this).css('transform','rotate(180deg)');
$.cookie('slideResVisible', '')
} else { } else {
$('.slideRes').slideDown(300); $('.slideRes').slideDown(300);
$(this).css('transform','rotate(0deg)'); $(this).css('transform','rotate(0deg)');
$.cookie('slideResVisible', 'on')
} }
}); });

@ -181,13 +181,9 @@ class ContractorRejectProjectAnswerView(BaseMixin, View):
def post(self, request, *args, **kwargs): def post(self, request, *args, **kwargs):
answer = get_object_or_404(request.user.contractor_answers, pk=kwargs.get('pk')) answer = get_object_or_404(request.user.contractor_answers, pk=kwargs.get('pk'))
project = answer.project
answer.delete() answer.delete()
project.rejected_answers_count = F('rejected_answers_count') + 1
project.save()
messages.info(request, 'Вы успешно отказались от проекта') messages.info(request, 'Вы успешно отказались от проекта')
redirect_to = request.POST.get('next') redirect_to = request.POST.get('next')

@ -5,7 +5,6 @@ from users.models import User, Team
class Command(BaseCommand): class Command(BaseCommand):
def handle(self, *args, **options): def handle(self, *args, **options):
users = User.objects.values('pk', 'rating').filter(is_superuser=False).order_by('-rating') users = User.objects.values('pk', 'rating').filter(is_superuser=False).order_by('-rating')
teams = Team.objects.values('pk', 'rating').order_by('-rating') teams = Team.objects.values('pk', 'rating').order_by('-rating')

@ -1,3 +1,38 @@
{#<!-- Новая вёрстка ---------------------------------------------------->#}
{##}
{# <div class="dashedCol4 dashedCol44">#}
{# <p class="specUser">#}
{# Специализации:#}
{# </p>#}
{# <div class="insetSpec">#}
{# <span>Интерьеры</span>#}
{# <span>2-й</span>#}
{# </div>#}
{# <div class="insetSpec">#}
{# <span>Визуализация/3D</span>#}
{# <span>45-й</span>#}
{# </div>#}
{# <div class="insetSpec">#}
{# <span>Экстерьеры</span>#}
{# <span>10-й</span>#}
{# </div>#}
{# <div class="showSpec">#}
{# <div class="insetSpec">#}
{# <span>Архитектура</span>#}
{# <span>3-й</span>#}
{# </div>#}
{# <div class="insetSpec">#}
{# <span>3D Моделирование</span>#}
{# <span>100-й</span>#}
{# </div>#}
{# </div>#}
{# <button class="showPress">#}
{# #}
{# </button>#}
{# </div>#}
<div class="dashedCol4"> <div class="dashedCol4">
<p class="specUser">Специализации:</p> <p class="specUser">Специализации:</p>
{% for spec in specializations %} {% for spec in specializations %}

@ -120,7 +120,6 @@ class User(AbstractBaseUser, PermissionsMixin):
avatar = models.ImageField(upload_to='users/avatars/', blank=True) avatar = models.ImageField(upload_to='users/avatars/', blank=True)
contractor_answers = GenericRelation('projects.Answer') contractor_answers = GenericRelation('projects.Answer')
rating = models.FloatField(default=0.0)
contractor_resume = models.OneToOneField(ContractorResume, related_name='contractor', blank=True, null=True) contractor_resume = models.OneToOneField(ContractorResume, related_name='contractor', blank=True, null=True)
contractor_specializations = TreeManyToManyField(Specialization, related_name='contractors', blank=True) contractor_specializations = TreeManyToManyField(Specialization, related_name='contractors', blank=True)
contractor_status = models.CharField(default='free', max_length=20, choices=STATUSES) contractor_status = models.CharField(default='free', max_length=20, choices=STATUSES)
@ -138,6 +137,7 @@ class User(AbstractBaseUser, PermissionsMixin):
location = TreeForeignKey('common.Location', related_name='users', null=True, blank=True) location = TreeForeignKey('common.Location', related_name='users', null=True, blank=True)
patronym = models.CharField(max_length=255, blank=True) patronym = models.CharField(max_length=255, blank=True)
phone = models.CharField(max_length=30, blank=True, null=True) phone = models.CharField(max_length=30, blank=True, null=True)
rating = models.FloatField(default=0.0)
skype = models.CharField(max_length=100, blank=True) skype = models.CharField(max_length=100, blank=True)
username = models.CharField(max_length=50, unique=True) username = models.CharField(max_length=50, unique=True)
website = models.CharField(max_length=255, blank=True) website = models.CharField(max_length=255, blank=True)

@ -207,33 +207,11 @@
<div class="col-lg-3"> <div class="col-lg-3">
<div class="dashedCol4 dashedCol44"> {% specialization_team_widget team_id=team.pk %}
<p class="specUser">
Специализации:
</p>
<div class="insetSpec">
<span>Интерьеры</span>
<span>2-й</span>
</div>
<div class="showSpec">
<div class="insetSpec">
<span>Архитектура</span>
<span>3-й</span>
</div>
<div class="insetSpec">
<span>3D Моделирование</span>
<span>100-й</span>
</div>
</div>
<button class="showPress">
</button>
</div>
</div> </div>
<div class="col-lg-3 retts"> <div class="col-lg-3 retts">
<ul class="rettList restList2"> <ul class="rettList restList2">
<li>Рейтинг: <span> 1245</span></li> <li>Рейтинг: <span> 1245</span></li>
<li>Безопасные сделки: <span> 5</span></li> <li>Безопасные сделки: <span> 5</span></li>
@ -315,7 +293,6 @@
{% thumbnail contractor.avatar "126x125" crop="center" as im %} {% thumbnail contractor.avatar "126x125" crop="center" as im %}
<img src="{{ im.url }}" alt="profile-image"> <img src="{{ im.url }}" alt="profile-image">
{% endthumbnail %} {% endthumbnail %}
{% else %} {% else %}
<img src="{% static 'img/profile.jpg' %}" alt="profile-image"> <img src="{% static 'img/profile.jpg' %}" alt="profile-image">
{% endif %} {% endif %}
@ -354,36 +331,7 @@
<div class="col-lg-3"> <div class="col-lg-3">
<div class="dashedCol4 dashedCol44"> {% specialization_widget user_id=contractor.pk %}
<p class="specUser">
Специализации:
</p>
<div class="insetSpec">
<span>Интерьеры</span>
<span>2-й</span>
</div>
<div class="insetSpec">
<span>Визуализация/3D</span>
<span>45-й</span>
</div>
<div class="insetSpec">
<span>Экстерьеры</span>
<span>10-й</span>
</div>
<div class="showSpec">
<div class="insetSpec">
<span>Архитектура</span>
<span>3-й</span>
</div>
<div class="insetSpec">
<span>3D Моделирование</span>
<span>100-й</span>
</div>
</div>
<button class="showPress">
</button>
</div>
</div> </div>

Loading…
Cancel
Save