def change_org_view(request): if request.user.is_authenticated(): # get all ref data title_list = ref.RefTitle.objects.all() state_list = ref.RefState.objects.all() user = request.user # add new user institution if 'change' in request.POST: # get all user & user org user_profile = get_object_or_404(UserProfile, user = user) # create a new user institution new_user_institution = UserInstitution() new_institution_contact = InstitutionContact() # institution details new_user_institution.Name = request.POST['org_name'] new_user_institution.Department = request.POST['org_dept'] new_user_institution.Address = request.POST['org_address'] new_user_institution.City = request.POST['org_city'] new_user_institution.PostCode = request.POST['org_post'] new_user_institution.Phone = request.POST['org_phone'] new_user_institution.Fax = request.POST['org_fax'] new_user_institution.RequestChange = True new_user_institution.StartDate = get_date(request.POST['start_date']) if request.POST['end_date'] != '': new_user_institution.EndDate = get_date(request.POST['end_date']) new_user_institution.ApplicationDate = datetime.date.today() # set the user it belongs to new_user_institution.BelongsTo = user # set the pending institution new_user_institution.PendingInstitution = user # contact details new_institution_contact.ContactFirstName = request.POST['contact_firstname'] new_institution_contact.ContactLastName = request.POST['contact_lastname'] new_institution_contact.ContactPhone = request.POST['contact_phone'] new_institution_contact.ContactEmail = request.POST['contact_email'] # try and get ref data to save org_state = request.POST['org_state'] contact_title = request.POST['contact_title'] if (org_state): new_user_institution.State = ref.RefState.objects.get(State__iexact = org_state) if (contact_title): new_user_institution.ContactTitle = ref.RefTitle.objects.get(Title__iexact = contact_title) new_user_institution.save() # set foreign key relationship new_institution_contact.UserInstitution = new_user_institution new_institution_contact.save() # change the access status of the user profile to "Request Change of Organisation" # TODO: AccessStatus key will need to be updated user_profile.AccessStatus = get_object_or_404(ref.RefAccessStatus, pk=3) user_profile.save() # return user back to the user details page return HttpResponseRedirect('/user/') return render_to_response('users/change_org.html', { 'title_list': title_list, 'state_list': state_list, 'user': user, }) else: return render_to_response('home/timeout.html')