Bigin creating dynamic page of services

remotes/origin/1203
Nazar Kotjuk 12 years ago
parent b8df218b79
commit 10f2958652
  1. 10
      accounts/forms.py
  2. 13
      service/forms.py
  3. 17
      service/templates/service_add.html
  4. 2
      service/urls.py
  5. 22
      service/views.py
  6. 15
      static/custom_js/service.js

@ -70,6 +70,16 @@ class UserForm(forms.ModelForm):
'date_joined', 'date_registered', 'date_modified')
def clean_url(self):
url = self.cleaned_data.get('url')
try:
user = User.objects.get(url=translit_with_separator(url))
if (user.url == translit_with_separator(url)):
return url
except:
return url
raise forms.ValidationError('Такой урл уже занят')
def clean_phone(self):
"""
phone code checking

@ -64,17 +64,6 @@ class ServiceForm(forms.Form):
else:
service = Service.objects.get(id=id)
#flag = 0
#for item in data['types']:
# flag = flag | getattr(Theme.types, item)
#generates bitfield
# countries = reduce(lambda x,y: x|y, (getattr(Service.country, item) for item in data['country']))
# service.country= countries
# cities = reduce(lambda x,y: x|y, (getattr(Service.city, item) for item in data['city']))
# service.city = cities
service.url = translit_with_separator(data['url']) if data['url'] else translit_with_separator(data['name_ru'])
service.price = data['price']+' '+data['currency']#%s %s'%(data['price'], data['currency'])
@ -111,7 +100,7 @@ class ServiceForm(forms.Form):
url = cleaned_data.get('url')
try:
service = Service.objects.get(url=translit_with_separator(url))
if (url ==service.url):
if (translit_with_separator(url) == service.url):
return url
except:
return url

@ -8,6 +8,7 @@
<link href="{% static 'js/select/select2.css' %}" rel="stylesheet"/>
<script src="{% static 'js/select/select2.js' %}"></script>
<script src="{% static 'custom_js/make_select.js' %}"></script>
<script src="{% static 'custom_js/service.js' %}"></script>
<style>
li{
list-style-type: none;
@ -16,13 +17,7 @@
display: none;
}
</style>
<script>
$(document).ready(function(){
$('.reg').click(function(){
$(this).next().toggle();
});
});
</script>
{% endblock %}
@ -75,13 +70,13 @@
<div class="control-group {% if form.europa.errors %}error{% endif %}">
<label class="control-label">Страны:</label>
<div class="controls">
<label class="reg" style="margin-top: 20px;">{{ form.europa.label }}:</label>
<p style="margin-top: 5px;"><input type="checkbox"> {{ form.europa.label }}:</p>
{{ form.europa }}
<label class="reg">{{ form.asia.label }}:</label>
<p><input type="checkbox"> {{ form.asia.label }}:</p>
{{ form.asia }}
<label class="reg">{{ form.america.label }}:</label>
<p><input type="checkbox"> {{ form.america.label }}:</p>
{{ form.america }}
<label class="reg">{{ form.africa.label }}:</label>
<p><input type="checkbox"> {{ form.africa.label }}:</p>
{{ form.africa }}
</div>
</div>

@ -6,6 +6,8 @@ urlpatterns = patterns('',
url(r'^change/(.*)/$', 'service.views.service_change'),
url(r'^all/$', 'service.views.service_all'),
url(r'^get_city/$', 'service.views.get_city'),
url(r'^review/add.*/$', 'service.views.review_add'),
url(r'^review/change/(?P<review_id>\d+).*/$', 'service.views.review_change'),
url(r'^review/all/$', 'service.views.review_all'),

@ -9,6 +9,7 @@ from django.contrib.auth.decorators import login_required
from models import Service, Review
from forms import ServiceForm, ReviewForm
from country.models import Country
from city.models import City
#custom views
from functions.custom_views import objects_list
@ -42,15 +43,18 @@ def service_change(request, url):
return HttpResponseRedirect('/service/all')
else:
data = {}
#bitfield
# data['country'] = [item for item, bool in service.country if bool==True]
# data['city'] = [item for item, bool in service.city if bool==True]
try:
data['price'] = service.price.split(' ')[0]
data['currency'] = service.price.split(' ')[1]
except:pass
data['service_id'] = service_id
#countries sorted by this service
services_in_countries = Country.objects.filter(services=getattr(Country.services, str(service_id)))
data['europa'] = services_in_countries
data['asia'] = services_in_countries
data['africa'] = services_in_countries
data['america'] = services_in_countries
data['url'] = service.url
#data from translated fields
@ -135,4 +139,10 @@ def review_change(request, review_id):
args['form'] = form
args['languages'] = settings.LANGUAGES
return render_to_response('review_add.html', args)
return render_to_response('review_add.html', args)
def get_city(request):
if request.GET:
country_id = request.GET['id']
City.objects.filter(country=country_id)
return HttpResponse(id)

@ -0,0 +1,15 @@
$(document).ready(function(){
$("input:checkbox[name='europa'] ").click(function(){
if ($(this).is(':checked')){
$.get(
"/service/get_city/",
{'id': $(this).val()},
function(j){
console.log(j);
});
}
else{
console.log('false');
}
})
});
Loading…
Cancel
Save