|
|
|
|
@ -31,6 +31,8 @@ from specializations.models import Specialization |
|
|
|
|
from work_sell.forms import WorkSellForm |
|
|
|
|
from work_sell.models import WorkSell, Picture |
|
|
|
|
|
|
|
|
|
from .helpers import get_projects_grouped |
|
|
|
|
|
|
|
|
|
from .forms import ( |
|
|
|
|
ContractorFilterForm, |
|
|
|
|
CustomerProfileProjectRealtyForm, |
|
|
|
|
@ -40,33 +42,6 @@ from .forms import ( |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def get_projects_grouped(contractor): |
|
|
|
|
private_open_projects = tuple(a.project for a in contractor.contractor_answers.filter(project__state='active', rejected=False)) |
|
|
|
|
|
|
|
|
|
try: |
|
|
|
|
team_open_projects = tuple(a.project for a in contractor.team.answers.filter(project__state='active', rejected=False)) |
|
|
|
|
except: |
|
|
|
|
team_open_projects = () |
|
|
|
|
|
|
|
|
|
private_archived_projects = tuple(a.project for a in contractor.contractor_answers.filter(project__state='active', rejected=True)) |
|
|
|
|
|
|
|
|
|
try: |
|
|
|
|
team_archived_projects = tuple(a.project for a in contractor.team.answers.filter(project__state='active', rejected=True)) |
|
|
|
|
except: |
|
|
|
|
team_archived_projects = () |
|
|
|
|
|
|
|
|
|
return { |
|
|
|
|
'private_open_projects': private_open_projects, |
|
|
|
|
'team_open_projects': team_open_projects, |
|
|
|
|
'private_archived_projects': private_archived_projects, |
|
|
|
|
'team_archived_projects': team_archived_projects, |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def get_project_messages(projects): |
|
|
|
|
return projects.aggregate(message_count=Count('answers__messages'))['message_count'] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class UserProfileEditView(BaseMixin, View): |
|
|
|
|
form_class = UserProfileEditForm |
|
|
|
|
template_name = 'user_profile_edit.html' |
|
|
|
|
@ -220,7 +195,6 @@ class ContractorFilterView(BaseMixin, View): |
|
|
|
|
build_classif = form.cleaned_data.get('building_classification') |
|
|
|
|
constr_type = form.cleaned_data.get('construction_type') |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
party_types = form.cleaned_data.get('party_types') |
|
|
|
|
last_party_types = form.cleaned_data.get('last_party_types') |
|
|
|
|
|
|
|
|
|
@ -459,10 +433,6 @@ class ContractorOfficeView(BaseMixin, DetailView): |
|
|
|
|
context['open_project_count'] = len(private_open_projects) + len(team_open_projects) |
|
|
|
|
context['archived_project_count'] = len(private_archived_projects) + len(team_archived_projects) |
|
|
|
|
|
|
|
|
|
context['all_project_count'] = \ |
|
|
|
|
len(private_open_projects) + len(private_archived_projects) + \ |
|
|
|
|
len(team_open_projects) + len(team_archived_projects) |
|
|
|
|
|
|
|
|
|
compl_proj = tuple(o.project for o in team.orders.filter(status='completed')) |
|
|
|
|
|
|
|
|
|
team_invitation_exclude_contractor_ids = tuple(itertools.chain((contractor.pk,), tuple(c.pk for c in contractor.team.contractors.all()))) |
|
|
|
|
@ -513,11 +483,6 @@ class ContractorChatProjectsView(View): |
|
|
|
|
context['open_project_count'] = len(private_open_projects) + len(team_open_projects) |
|
|
|
|
context['archived_project_count'] = len(private_archived_projects) + len(team_archived_projects) |
|
|
|
|
|
|
|
|
|
context['all_project_count'] = \ |
|
|
|
|
len(private_open_projects) + len(private_archived_projects) + \ |
|
|
|
|
len(team_open_projects) + len(team_archived_projects) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
team_ids = [] |
|
|
|
|
if request.user.is_owner_team(): |
|
|
|
|
team_ids.append(request.user.team.pk) |
|
|
|
|
@ -568,10 +533,6 @@ class ContractorOfficeProjectsView(BaseMixin, View): |
|
|
|
|
context['open_project_count'] = len(private_open_projects) + len(team_open_projects) |
|
|
|
|
context['archived_project_count'] = len(private_archived_projects) + len(team_archived_projects) |
|
|
|
|
|
|
|
|
|
context['all_project_count'] = \ |
|
|
|
|
len(private_open_projects) + len(private_archived_projects) + \ |
|
|
|
|
len(team_open_projects) + len(team_archived_projects) |
|
|
|
|
|
|
|
|
|
if request.GET.get('owner') == 'private': |
|
|
|
|
if request.GET.get('archived') == 'on': |
|
|
|
|
projects = private_archived_projects |
|
|
|
|
@ -711,9 +672,6 @@ class CustomerProfileCurrentProjectsView(BaseMixin, View): |
|
|
|
|
customer = get_object_or_404(User.customer_objects, pk=kwargs.get('pk')) |
|
|
|
|
projects = customer.customer_projects.filter(state='active').exclude(order__contractor__isnull=True, order__team__isnull=True) |
|
|
|
|
|
|
|
|
|
answer_message_count = get_project_messages(projects) |
|
|
|
|
context['answer_message_count'] = answer_message_count |
|
|
|
|
|
|
|
|
|
# trashed_projects = customer.customer_projects.filter(state='trashed') |
|
|
|
|
|
|
|
|
|
paginator = Paginator(projects, settings.PAGE_SIZE) |
|
|
|
|
|