From 17c49e116f7a0306e1d18cc5c7957b39a7ee0c48 Mon Sep 17 00:00:00 2001 From: ArturBaybulatov Date: Fri, 26 Aug 2016 17:03:37 +0300 Subject: [PATCH] #ARC-9 --- archilance/settings/base.py | 14 ++ projects/models.py | 5 +- projects/templates/project_filter.html | 12 +- ratings/models.py | 4 +- users/models.py | 4 + users/templates/contractor_filter.html | 4 +- users/templates/contractor_office.html | 196 +++++++++--------- .../contractor_office_open_projects.html | 10 +- users/urls.py | 4 +- users/views.py | 26 +-- .../migrations/0005_remove_worksell_img.py | 19 ++ work_sell/models.py | 5 +- 12 files changed, 168 insertions(+), 135 deletions(-) create mode 100644 work_sell/migrations/0005_remove_worksell_img.py diff --git a/archilance/settings/base.py b/archilance/settings/base.py index 13c9b8e..bb5c56e 100644 --- a/archilance/settings/base.py +++ b/archilance/settings/base.py @@ -1,5 +1,7 @@ +from django.core.files.storage import FileSystemStorage import os + # Build paths inside the project like this: os.path.join(BASE_DIR, ...) BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) ROOT_DIR = os.path.dirname(BASE_DIR) @@ -286,3 +288,15 @@ else: 'shop_id': 0, 'scid': 0, }) + + +# class ASCIIFileSystemStorage(FileSystemStorage): +# def get_valid_name(self, name): +# symbols = (u"абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ", +# u"abvgdeejzijklmnoprstufhzcss_y_euaABVGDEEJZIJKLMNOPRSTUFHZCSS_Y_EUA") +# +# tr = {ord(a):ord(b) for a, b in zip(*symbols)} +# name = name.translate(tr) +# return super().get_valid_name(name) +# +# DEFAULT_FILE_STORAGE = ASCIIFileSystemStorage diff --git a/projects/models.py b/projects/models.py index f7273d1..7c1e158 100644 --- a/projects/models.py +++ b/projects/models.py @@ -269,6 +269,7 @@ class Portfolio(models.Model): budget = models.DecimalField(max_digits=10, decimal_places=0, default=0, null=True, blank=True) building_classification = models.ForeignKey(BuildingClassfication, related_name='portfolios', null=True, blank=True) construction_type = models.ForeignKey(ConstructionType, related_name='portfolios', null=True, blank=True) + created = models.DateTimeField(default=timezone.now) currency = models.CharField(max_length=20, default='rur', choices=CURRENCIES, null=True, blank=True) description = models.TextField() location = TreeForeignKey('common.Location', related_name='portfolios', null=True, blank=True) @@ -278,7 +279,6 @@ class Portfolio(models.Model): term_type = models.CharField(max_length=20, choices=TERMS, default='hour', null=True, blank=True) user = models.ForeignKey(User, related_name='portfolios', null=True, blank=True) worksell = models.BooleanField(default=False) - created = models.DateTimeField(default=timezone.now) def __str__(self): return self.name @@ -302,8 +302,7 @@ class Portfolio(models.Model): def get_cover(self): photo = self.photos.first() - return photo and photo.img - + return photo and photo.img # WTF? We could at leat return a URL, not an object class PortfolioPhoto(models.Model): diff --git a/projects/templates/project_filter.html b/projects/templates/project_filter.html index b012e46..154f280 100644 --- a/projects/templates/project_filter.html +++ b/projects/templates/project_filter.html @@ -180,11 +180,13 @@ {{ project.name }}

- + {% if project.realty %} + + {% endif %}

{{ project.text|linebreaksbr|truncatechars:300 }}

diff --git a/ratings/models.py b/ratings/models.py index 375907b..a231776 100644 --- a/ratings/models.py +++ b/ratings/models.py @@ -22,7 +22,7 @@ class HistoryRating(models.Model): class SpecializationRating(models.Model): user = models.ForeignKey(User, related_name='specialization_rating', null=True, blank=True) team = models.ForeignKey(Team, related_name='specialization_rating', null=True, blank=True) - specialization = models.ForeignKey(Specialization, related_name='specialization_rating') + specialization = models.ForeignKey(Specialization, related_name='specialization_rating') # TODO: Pluralize related name position = models.PositiveIntegerField(default=0) def __str__(self): @@ -31,5 +31,3 @@ class SpecializationRating(models.Model): class Meta: verbose_name = 'Рейтинг специализаций' verbose_name_plural = 'Рейтинги специализаций' - - diff --git a/users/models.py b/users/models.py index 13bbfab..432e1f2 100644 --- a/users/models.py +++ b/users/models.py @@ -195,6 +195,10 @@ class User(AbstractBaseUser, PermissionsMixin): def is_owner_team(self): return Team.objects.filter(owner=self.pk).exists() + + def get_popular_specialization(self): + from ratings.models import SpecializationRating + return SpecializationRating.objects.filter(user=self).order_by('position').first().specialization.name class Team(models.Model): diff --git a/users/templates/contractor_filter.html b/users/templates/contractor_filter.html index 32817e4..9bf6121 100644 --- a/users/templates/contractor_filter.html +++ b/users/templates/contractor_filter.html @@ -196,7 +196,9 @@
  • - +{# TODO #} +{# #} + написать сообщение
  • diff --git a/users/templates/contractor_office.html b/users/templates/contractor_office.html index 4327f5a..3ccb4b4 100644 --- a/users/templates/contractor_office.html +++ b/users/templates/contractor_office.html @@ -16,57 +16,61 @@ {% include 'partials/contractor_profile_tabs.html' %}
    -
    +
    {% if not contractor.is_owner_team %} - {% endif %}
    - - +
    - {% if contractor.is_owner_team %} + {% if contractor.is_owner_team %}
    - {% thumbnail contractor.avatar "265x264" crop="center" as im %} - profile-image - {% endthumbnail %} + {% if contractor.avatar %} + {% thumbnail contractor.avatar "265x264" crop="center" as im %} + profile-image + {% endthumbnail %} + {% else %} + profile-image + {% endif %}
    @@ -79,23 +83,25 @@

    Состав группы

    {% for p in participants %} -
    -
    - {% thumbnail p.avatar "60x60" crop="center" as im %} - mess-image - {% endthumbnail %} + {% if p.avatar %} + {% thumbnail p.avatar "60x60" crop="center" as im %} + mess-image + {% endthumbnail %} + {% else %} + mess-image + {% endif %}
    -

    +

    {{ p.get_full_name }}

    - Программист +

    {{ p.get_popular_specialization }}

    {% empty %} - В группе пока нет участников + В группе пока нет участников {% endfor %}
    @@ -103,18 +109,18 @@
    -

    - {{ contractor.team }} -

    +

    {{ contractor.team.name }}

    Россия, Москва

    - {# #} + + +
    Свободен
    написать сообщение
    @@ -124,20 +130,17 @@
    - {% if contractor.team %} - {% ratings_team_widget contractor.team.pk %} - {% endif %} + {% ratings_team_widget contractor.team.pk %} {% if contractor.cro %} -
    -
    -

    Есть допуск СРО

    -
    +
    +
    +

    Есть допуск СРО

    +
    {% endif %}
    -