remotes/origin/setup
ArturBaybulatov 10 years ago
parent d4da6dd7c9
commit a06c96b4a2
  1. 2
      archilance/management/commands/generate_portfolios.py
  2. 5
      common/templatetags/common_tags.py
  3. 12
      projects/forms.py
  4. 34
      projects/views.py

@ -37,7 +37,7 @@ class Command(BaseCommand):
def create_portfolio(i): def create_portfolio(i):
portf = Portfolio( portf = Portfolio(
name='Portforlio %s' % i, name='Portfolio %s' % i,
description=util.lorem(_.random(5, 30)), description=util.lorem(_.random(5, 30)),
budget=util.random_amount(), budget=util.random_amount(),
currency=_.sample(CURRENCIES)[0], currency=_.sample(CURRENCIES)[0],

@ -37,6 +37,11 @@ def to_range(num):
return range(num) return range(num)
@register.filter('list')
def to_list(val):
return list(val)
@register.filter @register.filter
def class_name(val): def class_name(val):
return type(val).__name__ return type(val).__name__

@ -186,15 +186,21 @@ class ProjectAnswerForm(forms.ModelForm):
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
self.request = kwargs.pop('request') self.request = kwargs.pop('request')
answer_as_team = kwargs.pop('answer_as_team', None) answer_as_team = kwargs.pop('answer_as_team', None) # Optional kwarg
super().__init__(*args, **kwargs) super().__init__(*args, **kwargs)
if answer_as_team: if answer_as_team:
self.fields['secure_deal_only'].label = 'Работаем только по безопасной сделке' self.fields['secure_deal_only'].label = 'Работаем только по безопасной сделке'
self.fields['portfolios'].queryset = Portfolio.objects.all()[:2] # Tmp
members = self.request.user.team.contractors.all()
# portfolios = tuple(itertools.chain(*tuple(contr.portfolios.all() for contr in members)))
portfolios = Portfolio.objects.filter(user__pk__in=tuple(m.pk for m in members))
self.fields['portfolios'].queryset = portfolios
else: else:
self.fields['secure_deal_only'].label = 'Работаю только по безопасной сделке' self.fields['secure_deal_only'].label = 'Работаю только по безопасной сделке'
self.fields['portfolios'].queryset = self.request.user.portfolios self.fields['portfolios'].queryset = self.request.user.portfolios.all()
class StageForm(forms.ModelForm): class StageForm(forms.ModelForm):

@ -75,8 +75,6 @@ class ProjectDetailWithContractorAnswerView(BaseMixin, View):
else: else:
form = self.form_class(request=request) form = self.form_class(request=request)
# import code; code.interact(local=dict(globals(), **locals()))
context.update({'form': form}) context.update({'form': form})
return render(request, self.template_name, context) return render(request, self.template_name, context)
@ -84,8 +82,12 @@ class ProjectDetailWithContractorAnswerView(BaseMixin, View):
def post(self, request, *args, **kwargs): def post(self, request, *args, **kwargs):
if request.user.is_authenticated() and request.user.is_contractor(): if request.user.is_authenticated() and request.user.is_contractor():
context = self.get_context_data(**kwargs) context = self.get_context_data(**kwargs)
answer_as_team = None
if request.POST.get('answer_as_team') == 'on': if request.POST.get('answer_as_team') == 'on': # TODO: Check for actual possibility to answer as a team
answer_as_team = True
if answer_as_team:
form = self.form_class(request.POST, request=request, answer_as_team=True) form = self.form_class(request.POST, request=request, answer_as_team=True)
else: else:
form = self.form_class(request.POST, request=request) form = self.form_class(request.POST, request=request)
@ -94,28 +96,20 @@ class ProjectDetailWithContractorAnswerView(BaseMixin, View):
context.update({'project': project}) context.update({'project': project})
if form.is_valid(): if form.is_valid():
print('Form valid. "form.cleaned_data": ###############') answer = form.save(commit=False)
pprint(form.cleaned_data) answer.project = project
print('################################################') answer.author = request.user.team if answer_as_team else request.user
answer.save()
# answer = form.save(commit=False) form.save_m2m()
# answer.project = project
# answer.author = request.user for file in request.FILES.getlist('new_files'):
# answer.save() if len(file.name) <= 255:
# form.save_m2m() AnswerFile.objects.create(file=file, name=file.name, answer=answer)
#
# for file in request.FILES.getlist('new_files'):
# if len(file.name) <= 255:
# AnswerFile.objects.create(file=file, name=file.name, answer=answer)
messages.info(request, 'Отклик успешно размещён') messages.info(request, 'Отклик успешно размещён')
redirect_to = request.POST.get('next') redirect_to = request.POST.get('next')
return redirect(redirect_to) return redirect(redirect_to)
else: else:
print('Form invalid. "form.data": #####################')
pprint(form.data)
print('################################################')
if form.errors: if form.errors:
messages.info(request, ( messages.info(request, (
'<p>Произошла ошибка (form)</p>' '<p>Произошла ошибка (form)</p>'

Loading…
Cancel
Save