def __init__(self, data=None, files=None, instance=None, initial=None, remote_ip=None, *args, **kwargs): if instance != None: if initial == None: initial = {} # Il faut deviner la promo initial["promo"] = get_user_promo(instance) try: p = instance.get_profile() except Presence.DoesNotExist: p = Presence(user=instance) netif = p.netif try: mac = ip_to_mac(remote_ip) if netif.find(mac) == -1: if netif != "": netif += "," netif += mac except: pass initial["netif"] = netif super(UserModificationForm, self).__init__( data=data, files=files, instance=instance, initial=initial, *args, **kwargs )
def signup(request): """ Affiche le formulaire d'enregistrement, et si la requête est de type POST, valide le formulaire puis l'enregistre. La vue se charge aussi de pré-remplir certaines valeurs, comme la promo (si l'utilisateur n'est pas encore inscrit, il est probablement dans la promo la plus récente), et l'adresse MAC (en faisant appel à l'outil :ref:`tipmac <intro-tipmac>`) """ if request.method == "POST": form = UserRegistrationForm(request.POST) if form.is_valid(): form.save() user = authenticate(username = form.cleaned_data['username'], password = request.POST['password1']) login(request, user) return redirect('register-welcome') else: try: promo = Promo.objects.filter(name__startswith = 'FI').order_by('-name')[0] except: promo = None try: mac = ip_to_mac(request.META['REMOTE_ADDR']) except : mac = None form = UserRegistrationForm(initial = { 'netif': mac, 'promo': promo, 'talkings': True }) return render_to_response("register/signup.html", { "form": form, }, RequestContext(request))