def service_add_page(request): if request.method == "POST": plan = request.POST.get('plan') users = request.POST.get('users') hostname = request.POST.get('hostname') if not plan: context = { "plans": Plan.objects.all(), "form_message": {"error": "Add service error", "message": "No plan selected.", "type": "danger"} } return render(request, 'service_add.html', context) if not hostname: context = { "plans": Plan.objects.all(), "form_message": {"error": "Add service error", "message": "No hostname given.", "type": "danger"} } return render(request, 'service_add.html', context) if Service.objects.filter(hostname=hostname).count(): context = { "plans": Plan.objects.all(), "form_message": {"error": "Add service error", "message": "Hostname \"%s\" already taken. Choose another one." % hostname, "type": "danger"} } return render(request, 'service_add.html', context) try: this_user = Account.objects.get(id=request.user.id) chosen_base_plan = Plan.objects.get(id=plan) new_service = Service() new_service.account = this_user new_service.plan = chosen_base_plan new_service.users = users new_service.hostname = hostname new_service.status = 'active' new_service.save() Notification.objects.create(account=this_user, description="New service \"%s\" added." % new_service.hostname, status="info") except Exception as e: context = {"form_message": {"error": "Add service error", "message": str(e), "type": "danger"}} return render(request, 'service_add.html', context) return HttpResponseRedirect(reverse('index_page')) else: if not request.user.has_balance(): context = {"form_message": {"error": "Add service error", "message": "You cannot add service if your balance is below $1.", "type": "danger"} } return render(request, 'services.html', context) context = { "plans": Plan.objects.all()} return render(request, 'service_add.html', context)