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',
)
class PortfolioForm(ModelForm):
class Meta:
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, \
ProjectCreateView, PortfolioCreateView,\
TestProjectView, manage_articles
TestProjectView, manage_articles, TestView
app_name = 'projects'
@ -11,7 +11,8 @@ urlpatterns = [
urls.url(r'^$', ProjectListView.as_view(), name='list'),
urls.url(r'^porttest/$', manage_articles, name='portfolio'),
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'(?P<pk>\d+)$', ProjectDetailView.as_view(), name='detail'),
]

@ -1,7 +1,7 @@
from django.http import HttpResponseForbidden
from django.core.urlresolvers import reverse
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 .models import Project, Portfolio
@ -75,8 +75,38 @@ class PortfolioCreateView(PermissionRequiredMixin, CreateView):
# 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
form_class = ProjectForm
template_name = 'projects/test.html'
@ -95,12 +125,11 @@ class TestProjectView(CreateView):
form_class = self.get_form_class()
form = self.get_form(form_class)
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():
return self.form_valid(form, realty_form)
else:
return self.form_invalid(form, realty_form)
# import code; code.interact(local=dict(globals(), **locals()))
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 }}#}
{% endfor %}
{% endfor %}
<div id="children" style="border:2px solid #000;">
</div>
{% block js_block %}
<script type="text/javascript">
@ -45,18 +49,22 @@
return cookieValue;
}
$('p.spec_list').on('click', function (e) {
$('body').on('click','p', function (e) {
e.preventDefault();
var csrftoken = getCookie('csrftoken');
var spec_id = $(this).attr('data-id');
var spec_id = $(this).attr('data-id')
$.ajax({
url:'/specializations/test/',
type:'POST',
data:{csrfmiddlewaretoken : csrftoken, spec_id: spec_id},
url:'/api/specializations?parent=' + spec_id,
type:'GET',
data:{ csrfmiddlewaretoken : csrftoken, spec_id: spec_id},
dataType:'json',
success:function(json){
alert(json.hello);
console.log(json);
console.log(json.results);
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:
return JsonResponse({"hello":"python"})
import json
def test_spec(request):
spec = Specialization.objects.get(pk=2)
# children = spec.get_children()
return HttpResponse(request, {'mm':'hello'})
children = spec.get_children()
return HttpResponse(json.dumps(children))
class SpecChildrenDetailView(DetailView):
model = Specialization

Loading…
Cancel
Save