Пример #1
0
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')