コード例 #1
0
ファイル: views.py プロジェクト: joaopaulolndev/mktplace
def my_data(request):
    user = User.objects.get(pk=request.user.pk)
    user_form = UserForm(instance=user)

    try:
        user_profile = UserProfile.objects.get(user=user)
    except:
        user_profile = UserProfile()
        user_profile.user = user
        user_profile.save()

    profile_form = UserProfileForm(instance=user_profile)

    if request.method == 'POST':
        user_form = UserForm(request.POST)
        profile_form = UserProfileForm(request.POST)
        if user_form.is_valid() and profile_form.is_valid():
            user.first_name = user_form.cleaned_data['first_name']
            user.last_name = user_form.cleaned_data['last_name']
            user.save()

            user_profile.cpf = profile_form.cleaned_data['cpf']
            user_profile.address = profile_form.cleaned_data['address']
            user_profile.number = profile_form.cleaned_data['number']
            user_profile.address2 = profile_form.cleaned_data['address2']
            user_profile.city = profile_form.cleaned_data['city']
            user_profile.district = profile_form.cleaned_data['district']
            user_profile.state = profile_form.cleaned_data['state']
            user_profile.country = profile_form.cleaned_data['country']
            user_profile.zipcode = profile_form.cleaned_data['zipcode']
            user_profile.phone = profile_form.cleaned_data['phone']
            user_profile.remote_receiver_id = profile_form.cleaned_data[
                'remote_receiver_id']
            user_profile.save()

    context = {
        'user_form': user_form,
        'profile_form': profile_form,
        'user': user
    }

    return render(request, 'portal/my_data.html', context)
コード例 #2
0
ファイル: user.py プロジェクト: faulteh/albatross
def edit_user(request):
  # This stuff is on pretty much every page, should really put it in it's own function
  context = RequestContext(request)
  context_dict = { 'pagetitle': 'Threatened Species Portal',
        'pagemsg': 'Add New Animal',
        }
  dataset_list = AnimalDataset.objects.order_by('name')

  # shows user details
  uo = request.user
  context_dict['user']= uo
  up = UserProfile.objects.get(user=uo)

  # Grabs current dataset (if not available set it)
  if (request.session.get('cur_ds') is None):
    if (up.default_dataset is None):
      request.session['cur_ds'] = 1
    else:
      request.session['cur_ds'] = up.default_dataset.pk

  # Prepare the context
  cur_ds = AnimalDataset.objects.get(pk=request.session.get('cur_ds'))
  context_dict['cur_ds'] = cur_ds
  context_dict['datasets'] = dataset_list
  context_dict['defaultds'] = up.default_dataset

  # Determine if user is admin, if not redirect to no_perms page
  if request.user.is_superuser and request.method == 'POST':
   # FROM VALIDATION
   
   id = request.POST['id']
   
   user_username = request.POST['username']
   user_first_name = request.POST['first_name']
   user_last_name = request.POST['last_name']
   user_email = request.POST['email']
   user_organisation = request.POST['organisation']
   user_phone = request.POST['phone']
   user_password = request.POST['password']
   user_confirm_password = request.POST['confirm_password']
   user_perm = json.loads(request.POST['perm-field'])
 
   if request.POST.get('active', 0):
    user_active = True
   else:
    user_active = False   
   if request.POST.get('administrator', 0):
    user_administrator = True
   else:
    user_administrator = False
   user_default = request.POST.get('default', 0)
   print "default ds id: " + str(user_default)
      
   ## validation
 
   if user_password != user_confirm_password:
    return HttpResponse("Passwords don't match!") 
   # get the object for the default dataset so we can save it to user profile
   if user_default != 0:
    default_ds = AnimalDataset.objects.get(pk=user_default)

   user_password = make_password(user_password)
   ##if statement here
   if request.POST.get("new"):
     if request.POST['password']=="":
      return HttpResponse("Can not create a user without a password")

   ## add user to database
     u = User(username=user_username, first_name=user_first_name, last_name=user_last_name, email=user_email, password=user_password, is_active=user_active, is_superuser=user_administrator, is_staff=user_administrator)
     u.save()
     if request.POST.get('default_dataset', False):
       user_default_dataset = AnimalDataset.objects.get(id=request.POST['default_dataset'])
       up = UserProfile(user=u, organisation=user_organisation, phone=user_phone, default_dataset=user_default_dataset)
     else:
       user_default_dataset = AnimalDataset.objects.get(id=1)
       #TO DO - the edit user will not render if a default dataset is not picked - however we need to decide what it should be set to if they do not pick one
       up = UserProfile(user=u, organisation=user_organisation, phone=user_phone,default_dataset=user_default_dataset)
     up.save()
     print "save!"
     user = User.objects.get(username=user_username)
     user.email=""
     

     #Add user to groups in perm-field
     for p in user_perm:
       g = Group.objects.get(name=p)
       user.groups.add(g)
     user.save()
  

     context_dict['info_msg'] = "Successfully created user"
   else: 
  
     uo = User.objects.get(id=id)
     up = UserProfile.objects.get(user=uo)

     uo.username = user_username
     uo.first_name = user_first_name
     uo.last_name =  user_last_name
     uo.email = user_email
     uo.is_active = user_active
     uo.is_superuser = user_administrator
     uo.is_staff = user_administrator
     if request.POST["password"]!="":
      uo.password = user_password

     up.organisation = user_organisation
     up.phone = user_phone
     if request.POST.get('default_dataset'):
       dds = AnimalDataset.objects.get(id=request.POST['default_dataset'])
       up.default_dataset = dds

     up.save()

     #Clear user's perm groups
     old_perm = uo.groups.all()
     for p in old_perm:
       p.user_set.remove(uo)

     #Add user to groups in perm-field
     for p in user_perm:
       g = Group.objects.get(name=p)
       uo.groups.add(g)
     uo.save()

     context_dict['info_msg'] = "Successfully updated user"
#if ends here
   # Display User List
   users_list = User.objects.order_by('username')
   context_dict['users'] = users_list

   return render_to_response("user_list.html", context_dict, context)
  else:
    return HttpResponse("Not superuser or POST method")