def newsite(req): import base.models as M, random, string form = None auth_user = UR.getUserInfo(req) ensemble_form = None user_form = None if auth_user is not None: return HttpResponseRedirect("/") if req.method == 'POST': user = M.User(confkey="".join([choice(string.ascii_letters+string.digits) for i in xrange(0,32)])) ensemble = M.Ensemble() user_form = forms.UserForm(req.POST, instance=user) ensemble_form = forms.EnsembleForm(req.POST, instance=ensemble) if user_form.is_valid() and ensemble_form.is_valid(): user_form.save() ensemble.invitekey = "".join([ random.choice(string.ascii_letters+string.digits) for i in xrange(0,50)]) ensemble_form.save() m = M.Membership(user=user, ensemble=ensemble, admin=True) m.save() p = {"tutorial_url": settings.GUEST_TUTORIAL_URL, "conf_url": "http://%s?ckey=%s" %(settings.NB_SERVERNAME, user.confkey), "firstname": user.firstname, "email": user.email, "password": user.password } email = EmailMessage( "Welcome to NB, %s" % (user.firstname), render_to_string("email/confirm_newsite", p), settings.EMAIL_FROM, (user.email, ), (settings.EMAIL_BCC, )) email.send() return HttpResponseRedirect('/newsite_thanks') else: user_form = forms.UserForm() ensemble_form = forms.EnsembleForm() return render_to_response("web/newsite.html", {"user_form": user_form, "ensemble_form": ensemble_form})
def properties_ensemble(req, id): user = UR.getUserInfo(req) if user is None: return HttpResponseRedirect("/login?next=%s" % (req.META.get("PATH_INFO","/"),)) if not auth.canEditEnsemble(user.id, id): return HttpResponseRedirect("/notallowed") ensemble = M.Ensemble.objects.get(pk=id) ensemble_form = None if req.method=="POST": ensemble_form = forms.EnsembleForm(req.POST, instance=ensemble) if ensemble_form.is_valid(): ensemble_form.save() return HttpResponseRedirect('/') else: ensemble_form = forms.EnsembleForm(instance=ensemble) return render_to_response("web/properties_ensemble.html", {"form": ensemble_form, "conf_url": "%s://%s/subscribe?key=%s" %(settings.PROTOCOL, settings.NB_SERVERNAME, ensemble.invitekey)})