diff --git a/archilance/mixins.py b/archilance/mixins.py index 78f1930..35eef9a 100644 --- a/archilance/mixins.py +++ b/archilance/mixins.py @@ -8,9 +8,11 @@ class BaseMixin(ContextMixin): pk = self.kwargs.get('pk') # Current object's ID next = self.kwargs.get('next') # Redirect back path + back = self.kwargs.get('back') # Redirect back path if pk: c['pk'] = pk if next: c['next'] = next + if back: c['back'] = back c['domain'] = Site.objects.get_current().domain diff --git a/common/templatetags/common_tags.py b/common/templatetags/common_tags.py index 37b43ae..1f76ddd 100644 --- a/common/templatetags/common_tags.py +++ b/common/templatetags/common_tags.py @@ -1,20 +1,19 @@ from django import template from pprint import pprint, pformat +import os register = template.Library() @register.inclusion_tag('templatetags/inspect.html', takes_context=True) def inspect(context, obj): - return { - 'obj': pformat(obj.__dict__), - } + return {'obj': pformat(obj.__dict__)} + @register.inclusion_tag('templatetags/inspect.html', takes_context=True) def inspect2(context, obj): - return { - 'obj': pformat(dir(obj)), - } + return {'obj': pformat(dir(obj))} + @register.simple_tag def interact(**kwargs): @@ -35,4 +34,10 @@ def to_str(val): def multiply(string, times): return string * times + +@register.filter('basename') +def basename(val): + return os.path.basename(val) + + # import code; code.interact(local=dict(globals(), **locals())) diff --git a/projects/admin.py b/projects/admin.py index 8a7ab29..c924c0b 100644 --- a/projects/admin.py +++ b/projects/admin.py @@ -17,8 +17,7 @@ from .models import ( class ProjectAdminForm(forms.ModelForm): - files = forms.ModelMultipleChoiceField(queryset=Project.objects.none(), required=False) - + files = forms.ModelMultipleChoiceField(queryset=ProjectFile.objects.none(), required=False) def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) diff --git a/projects/forms.py b/projects/forms.py index a750a35..50032e7 100644 --- a/projects/forms.py +++ b/projects/forms.py @@ -3,7 +3,7 @@ from django.db.models import Q from django.forms.models import inlineformset_factory from mptt.forms import TreeNodeChoiceField -from .models import Project, Portfolio, Answer, Realty, PortfolioPhoto, Stage, Specialization +from .models import Project, ProjectFile, Portfolio, Answer, Realty, PortfolioPhoto, Stage, Specialization from users.models import User @@ -14,7 +14,8 @@ class ProjectsForm(forms.Form): name = forms.CharField(max_length=255) -class CustomerProjectCreateForm(forms.ModelForm): +class CustomerProjectEditForm(forms.ModelForm): + files = forms.ModelMultipleChoiceField(queryset=ProjectFile.objects.none(), required=False) specialization = TreeNodeChoiceField(queryset=Specialization.objects.exclude(id=1)) class Meta: @@ -26,6 +27,7 @@ class CustomerProjectCreateForm(forms.ModelForm): 'cro', 'currency', 'deal_type', + 'files', 'name', 'price_and_term_required', 'realty', @@ -47,6 +49,9 @@ class CustomerProjectCreateForm(forms.ModelForm): super().__init__(*args, **kwargs) self.fields['realty'].empty_label = 'Создать новый' + + if self.instance.pk: + self.fields['files'].queryset = self.instance.files class RealtyForm(forms.ModelForm): @@ -121,18 +126,18 @@ class StageForm(forms.ModelForm): PortfolioPhotoFormSet = inlineformset_factory(Portfolio, PortfolioPhoto, fields=('img',)) -class CustomerProjectEditForm(forms.ModelForm): - pk = forms.ModelChoiceField(queryset=Project.objects.none()) - - class Meta: - model = Project - fields = '__all__' - - def __init__(self, *args, **kwargs): - self.req = kwargs.pop('req') - super().__init__(*args, **kwargs) - - self.fields['pk'].queryset = self.req.user.projects.filter(state='active') +# class CustomerProjectEditForm(forms.ModelForm): +# pk = forms.ModelChoiceField(queryset=Project.objects.none()) +# +# class Meta: +# model = Project +# fields = '__all__' +# +# def __init__(self, *args, **kwargs): +# self.req = kwargs.pop('req') +# super().__init__(*args, **kwargs) +# +# self.fields['pk'].queryset = self.req.user.projects.filter(state='active') class CustomerProjectTrashForm(forms.Form): diff --git a/projects/templates/customer_project_create.html b/projects/templates/customer_project_create.html index 25d88d7..2765a5f 100644 --- a/projects/templates/customer_project_create.html +++ b/projects/templates/customer_project_create.html @@ -43,7 +43,7 @@
Требуется допуск СРО
- + + +{# #} +{# {% if back %}Назад{% endif %}#} + +Изменение проекта
+{msg}'.format(msg=pformat(form.errors)))
- return render(req, self.template_name, context)
+ messages.info(request, 'Произошла ошибка: {msg}'.format(msg=pformat(form.errors)))
+ return render(request, self.template_name, context)
else:
return HttpResponseForbidden('403 Forbidden')
diff --git a/users/templates/customer_profile_open_projects.html b/users/templates/customer_profile_open_projects.html
index 583c7aa..7783212 100644
--- a/users/templates/customer_profile_open_projects.html
+++ b/users/templates/customer_profile_open_projects.html
@@ -75,7 +75,7 @@