# -*- coding: utf-8 -*- from django.shortcuts import render_to_response from django.http import HttpResponseRedirect, HttpResponse from django.core.context_processors import csrf from django.conf import settings from django.contrib.contenttypes.models import ContentType from django.contrib.auth.decorators import login_required #models and forms from models import Service, Review from forms import ServiceForm, ReviewForm from country.models import Country @login_required def service_change(request, url): try: service = Service.objects.get(url=url) service_id = getattr(service, 'id') except: return HttpResponseRedirect('/service/service/all') if request.POST: form = ServiceForm(request.POST) if form.is_valid(): form.save(service_id) return HttpResponseRedirect('/service/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] data['price'] = service.price.split(' ')[0] data['currency'] = service.price.split(' ')[1] #data from translated fields for code, name in settings.LANGUAGES: obj = Service._meta.translations_model.objects.get(language_code = code,master__id=service_id) #access to translated fields data['name_%s'%code] = obj.name data['description_%s'%code] = obj.description data['main_title_%s'%code] = obj.main_title data['advantage_%s'%code] = obj.advantage data['title_%s'%code] = obj.title data['keywords_%s'%code] = obj.keywords data['descriptions_%s'%code] = obj.descriptions form = ServiceForm(data) args = {} args.update(csrf(request)) args['form'] = form args['languages'] = settings.LANGUAGES args['service_id'] = service_id return render_to_response('service_add.html', args) @login_required def service_add(request): if request.POST: form = ServiceForm(request.POST) if form.is_valid(): form.save() return HttpResponseRedirect('/service/service/all') else: form = ServiceForm() args = {} args.update(csrf(request)) args['form'] = form args['languages'] = settings.LANGUAGES return render_to_response('service_add.html', args) @login_required def service_all(request): services = Service.objects.all() return render_to_response('service_all.html', {'services': services}) @login_required def review_add(request): if request.POST: form = ReviewForm(request.POST) if form.is_valid(): form.save() return HttpResponseRedirect('/service/review/all') else: form = ReviewForm() args = {} args.update(csrf(request)) args['form'] = form args['languages'] = settings.LANGUAGES return render_to_response('review_add.html', args) @login_required def review_change(request, review_id): try: review = Review.objects.get(id=review_id) except: return HttpResponseRedirect('/service/review/all') if request.POST: form = ReviewForm(request.POST, instance=review) if form.is_valid(): form.save() return HttpResponseRedirect('/service/review/all') else: form = ReviewForm(instance=review) args = {} args.update(csrf(request)) args['form'] = form args['languages'] = settings.LANGUAGES return render_to_response('review_add.html', args) @login_required def review_all(request): reviews = Review.objects.all() return render_to_response('review_all.html', {'reviews': reviews})