parent
ed2aabc786
commit
2cb80e7f1d
30 changed files with 528 additions and 333 deletions
@ -0,0 +1,29 @@ |
|||||||
|
# -*- coding: utf-8 -*- |
||||||
|
# Generated by Django 1.9.7 on 2016-08-08 12:57 |
||||||
|
from __future__ import unicode_literals |
||||||
|
|
||||||
|
import datetime |
||||||
|
from django.db import migrations, models |
||||||
|
from django.utils.timezone import utc |
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration): |
||||||
|
|
||||||
|
dependencies = [ |
||||||
|
('common', '0003_auto_20160729_1747'), |
||||||
|
] |
||||||
|
|
||||||
|
operations = [ |
||||||
|
migrations.AddField( |
||||||
|
model_name='settings', |
||||||
|
name='recalculation_rating_time', |
||||||
|
field=models.TimeField(default=datetime.datetime(2016, 8, 8, 12, 57, 41, 160156, tzinfo=utc)), |
||||||
|
preserve_default=False, |
||||||
|
), |
||||||
|
migrations.AddField( |
||||||
|
model_name='settings', |
||||||
|
name='recalculation_spec_time', |
||||||
|
field=models.TimeField(default=datetime.datetime(2016, 8, 8, 12, 57, 52, 905906, tzinfo=utc)), |
||||||
|
preserve_default=False, |
||||||
|
), |
||||||
|
] |
||||||
@ -1,10 +0,0 @@ |
|||||||
from django import template |
|
||||||
|
|
||||||
register = template.Library() |
|
||||||
|
|
||||||
@register.inclusion_tag("templatetags/ratings_widget.html", takes_context=True) |
|
||||||
def ratings_widget(context, user_id, class_name=None): |
|
||||||
ratings = user_id |
|
||||||
return { |
|
||||||
'ratings': ratings, |
|
||||||
} |
|
||||||
@ -1,10 +1,23 @@ |
|||||||
from django.core.management import BaseCommand |
from django.core.management import BaseCommand |
||||||
|
from django.db.models import Sum |
||||||
from specializations.models import Specialization |
from specializations.models import Specialization |
||||||
from ratings.models import HistoryRating |
from ratings.models import HistoryRating |
||||||
from users.models import User |
from users.models import User,Team |
||||||
|
|
||||||
|
|
||||||
class Command(BaseCommand): |
class Command(BaseCommand): |
||||||
|
|
||||||
def handle(self, *args, **options): |
def handle(self, *args, **options): |
||||||
contractors = User.contractor_objects.all() |
users = User.objects.filter(is_superuser=False) |
||||||
|
for user in users: |
||||||
|
current_rating_info = HistoryRating.objects.filter(user_id=user.pk).aggregate(Sum('rating')) |
||||||
|
current_rating = current_rating_info['rating__sum'] or 0 |
||||||
|
user.rating = current_rating |
||||||
|
user.save() |
||||||
|
|
||||||
|
teams = Team.objects.all() |
||||||
|
for team in teams: |
||||||
|
current_rating_info = HistoryRating.objects.filter(team_id=team.pk).aggregate(Sum('rating')) |
||||||
|
current_rating = current_rating_info['rating__sum'] or 0 |
||||||
|
team.rating = current_rating |
||||||
|
team.save() |
||||||
|
|||||||
@ -1,24 +1,35 @@ |
|||||||
from django.core.management import BaseCommand |
from django.core.management import BaseCommand |
||||||
from specializations.models import Specialization |
from specializations.models import Specialization |
||||||
from ratings.models import SpecializationRating |
from ratings.models import SpecializationRating |
||||||
from users.models import User |
from users.models import User, Team |
||||||
|
|
||||||
|
|
||||||
class Command(BaseCommand): |
class Command(BaseCommand): |
||||||
|
|
||||||
def handle(self, *args, **options): |
def handle(self, *args, **options): |
||||||
SpecializationRating.objects.all().delete() |
users = User.objects.values('pk', 'rating').filter(is_superuser=False).order_by('-rating') |
||||||
contractors = User.contractor_objects.order_by('-contractor_rating') |
teams = Team.objects.values('pk', 'rating').order_by('-rating') |
||||||
specializations = Specialization.objects.all() |
result_list = [] |
||||||
for spec in specializations: |
|
||||||
i = 0 |
|
||||||
for contractor in contractors: |
|
||||||
if spec in contractor.contractor_specializations.all(): |
|
||||||
i += 1 |
|
||||||
spec_rating = SpecializationRating() |
|
||||||
spec_rating.position = i |
|
||||||
spec_rating.user = contractor |
|
||||||
spec_rating.specialization = spec |
|
||||||
spec_rating.save() |
|
||||||
|
|
||||||
print('The End') |
for user in users: |
||||||
|
result_list.append([user['rating'], 'user', user['pk']]) |
||||||
|
|
||||||
|
for team in teams: |
||||||
|
result_list.append([team['rating'], 'team',team['pk'] ]) |
||||||
|
|
||||||
|
print(sorted(result_list)) |
||||||
|
# SpecializationRating.objects.all().delete() |
||||||
|
# contractors = User.contractor_objects.order_by('-rating') |
||||||
|
# specializations = Specialization.objects.all() |
||||||
|
# for spec in specializations: |
||||||
|
# i = 0 |
||||||
|
# for contractor in contractors: |
||||||
|
# if spec in contractor.contractor_specializations.all(): |
||||||
|
# i += 1 |
||||||
|
# spec_rating = SpecializationRating() |
||||||
|
# spec_rating.position = i |
||||||
|
# spec_rating.user = contractor |
||||||
|
# spec_rating.specialization = spec |
||||||
|
# spec_rating.save() |
||||||
|
# |
||||||
|
# print('The End') |
||||||
|
|||||||
@ -0,0 +1,25 @@ |
|||||||
|
# -*- coding: utf-8 -*- |
||||||
|
# Generated by Django 1.9.7 on 2016-08-08 12:57 |
||||||
|
from __future__ import unicode_literals |
||||||
|
|
||||||
|
from django.db import migrations, models |
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration): |
||||||
|
|
||||||
|
dependencies = [ |
||||||
|
('users', '0006_auto_20160805_1442'), |
||||||
|
] |
||||||
|
|
||||||
|
operations = [ |
||||||
|
migrations.RenameField( |
||||||
|
model_name='user', |
||||||
|
old_name='contractor_rating', |
||||||
|
new_name='rating', |
||||||
|
), |
||||||
|
migrations.AddField( |
||||||
|
model_name='team', |
||||||
|
name='rating', |
||||||
|
field=models.FloatField(default=0.0), |
||||||
|
), |
||||||
|
] |
||||||
Loading…
Reference in new issue