add project view

remotes/origin/setup
Mukhtar 10 years ago
parent 9dccdd1a73
commit 381a86982e
  1. 1
      projects/forms.py
  2. 8
      projects/templates/projects/test_form.html
  3. 5
      projects/urls.py
  4. 37
      projects/views.py
  5. 13
      specializations/templates/specializations/specialization.html
  6. 22
      specializations/templates/specializations/specialization_list.html
  7. 6
      specializations/views.py

@ -34,6 +34,7 @@ class RealtyForm(ModelForm):
'city', 'city',
) )
class PortfolioForm(ModelForm): class PortfolioForm(ModelForm):
class Meta: class Meta:
model = Portfolio model = Portfolio

@ -0,0 +1,8 @@
<h1>Test form</h1>
<form action="" method="post">{% csrf_token %}
{{ form.errors }}
{{ form.as_p }}
{{ second_form.errors }}
{{ second_form.as_p }}
<input type="submit" value="Send message" />
</form>

@ -3,7 +3,7 @@ from django.conf import urls
from .views import ProjectListView, ProjectDetailView, \ from .views import ProjectListView, ProjectDetailView, \
ProjectCreateView, PortfolioCreateView,\ ProjectCreateView, PortfolioCreateView,\
TestProjectView, manage_articles TestProjectView, manage_articles, TestView
app_name = 'projects' app_name = 'projects'
@ -11,7 +11,8 @@ urlpatterns = [
urls.url(r'^$', ProjectListView.as_view(), name='list'), urls.url(r'^$', ProjectListView.as_view(), name='list'),
urls.url(r'^porttest/$', manage_articles, name='portfolio'), urls.url(r'^porttest/$', manage_articles, name='portfolio'),
urls.url(r'^create/$', ProjectCreateView.as_view(), name='project-create'), urls.url(r'^create/$', ProjectCreateView.as_view(), name='project-create'),
urls.url(r'^test/$', TestProjectView.as_view(), name='project-test'), # urls.url(r'^test/$', TestProjectView.as_view(), name='project-test'),
urls.url(r'^test/$', TestView.as_view(), name='project-test'),
urls.url(r'^portfolio/create/$', PortfolioCreateView.as_view(), name='portfolio-create'), urls.url(r'^portfolio/create/$', PortfolioCreateView.as_view(), name='portfolio-create'),
urls.url(r'(?P<pk>\d+)$', ProjectDetailView.as_view(), name='detail'), urls.url(r'(?P<pk>\d+)$', ProjectDetailView.as_view(), name='detail'),
] ]

@ -1,7 +1,7 @@
from django.http import HttpResponseForbidden from django.http import HttpResponseForbidden
from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse
from django.contrib.auth.mixins import PermissionRequiredMixin from django.contrib.auth.mixins import PermissionRequiredMixin
from django.views.generic import ListView, DetailView, CreateView from django.views.generic import ListView, DetailView, CreateView, View
from django.views.generic.edit import FormMixin from django.views.generic.edit import FormMixin
from .models import Project, Portfolio from .models import Project, Portfolio
@ -75,8 +75,38 @@ class PortfolioCreateView(PermissionRequiredMixin, CreateView):
# import code; code.interact(local=dict(globals(), **locals())) # import code; code.interact(local=dict(globals(), **locals()))
from django.http import HttpResponseRedirect
class TestView(View):
template_name = 'projects/test_form.html'
form_class = RealtyForm
form_second = ProjectForm
class TestProjectView(CreateView): def get(self, request, *args, **kwargs):
form = self.form_class()
second_form = self.form_second(prefix='form_2')
return render(request,self.template_name, {'form': form, 'second_form': second_form})
def post(self, request, *args, **kwargs):
form = self.form_class(request.POST)
second_form = self.form_second(request.POST,prefix='form_2')
if form.is_valid() and second_form.is_valid():
return self.form_valid(request, form, second_form)
return render(request, self.template_name, {'form': form, 'second_form': second_form})
def form_valid(self, request, form, second_form):
realty = second_form.save(commit=False)
realty.user = request.user
realty.save()
project = form.save(commit=False)
project.user = request.user
project.realty = realty
project.save()
def form_invalid(self, form, second_form):
pass
class TestProjectView(View):
model = Project model = Project
form_class = ProjectForm form_class = ProjectForm
template_name = 'projects/test.html' template_name = 'projects/test.html'
@ -95,12 +125,11 @@ class TestProjectView(CreateView):
form_class = self.get_form_class() form_class = self.get_form_class()
form = self.get_form(form_class) form = self.get_form(form_class)
realty_form = RealtyForm(self.request.POST) realty_form = RealtyForm(self.request.POST)
import code; code.interact(local=dict(globals(), **locals())) # import code; code.interact(local=dict(globals(), **locals()))
if form.is_valid(): if form.is_valid():
return self.form_valid(form, realty_form) return self.form_valid(form, realty_form)
else: else:
return self.form_invalid(form, realty_form) return self.form_invalid(form, realty_form)
# import code; code.interact(local=dict(globals(), **locals()))
def form_valid(self, form, realty_form): def form_valid(self, form, realty_form):

@ -0,0 +1,13 @@
{% load staticfiles %}
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Archilance</title>
</head>
<body>
</body>
</html>

@ -25,6 +25,10 @@
{# {{ ch1 }}#} {# {{ ch1 }}#}
{% endfor %} {% endfor %}
{% endfor %} {% endfor %}
<div id="children" style="border:2px solid #000;">
</div>
{% block js_block %} {% block js_block %}
<script type="text/javascript"> <script type="text/javascript">
@ -45,18 +49,22 @@
return cookieValue; return cookieValue;
} }
$('p.spec_list').on('click', function (e) { $('body').on('click','p', function (e) {
e.preventDefault(); e.preventDefault();
var csrftoken = getCookie('csrftoken'); var csrftoken = getCookie('csrftoken');
var spec_id = $(this).attr('data-id'); var spec_id = $(this).attr('data-id')
$.ajax({ $.ajax({
url:'/specializations/test/', url:'/api/specializations?parent=' + spec_id,
type:'POST', type:'GET',
data:{csrfmiddlewaretoken : csrftoken, spec_id: spec_id}, data:{ csrfmiddlewaretoken : csrftoken, spec_id: spec_id},
dataType:'json', dataType:'json',
success:function(json){ success:function(json){
alert(json.hello); console.log(json.results);
console.log(json); var out = ''
$.each(json.results, function(i,v){
out += '<p data-id="' + v.id + '">' + v.name + '</p>';
});
$('#children').html(out);
} }
}); });
}); });

@ -27,11 +27,11 @@ def test_page(request):
else: else:
return JsonResponse({"hello":"python"}) return JsonResponse({"hello":"python"})
import json
def test_spec(request): def test_spec(request):
spec = Specialization.objects.get(pk=2) spec = Specialization.objects.get(pk=2)
# children = spec.get_children() children = spec.get_children()
return HttpResponse(request, {'mm':'hello'}) return HttpResponse(json.dumps(children))
class SpecChildrenDetailView(DetailView): class SpecChildrenDetailView(DetailView):
model = Specialization model = Specialization

Loading…
Cancel
Save