def my_account(request, action=None, conn=None, **kwargs): template = "webadmin/myaccount.html" experimenter, defaultGroup, otherGroups, isLdapUser, hasAvatar = prepare_experimenter( conn) try: defaultGroupId = defaultGroup.id except: defaultGroupId = None ownedGroups = ownedGroupsInitial(conn) password_form = ChangePassword() form = None if action == "save": if request.method != 'POST': return HttpResponseRedirect( reverse(viewname="wamyaccount", args=["edit"])) else: email_check = conn.checkEmail(request.REQUEST.get('email'), experimenter.email) form = MyAccountForm(data=request.POST.copy(), initial={'groups': otherGroups}, email_check=email_check) if form.is_valid(): firstName = form.cleaned_data['first_name'] middleName = form.cleaned_data['middle_name'] lastName = form.cleaned_data['last_name'] email = form.cleaned_data['email'] institution = form.cleaned_data['institution'] defaultGroupId = form.cleaned_data['default_group'] conn.updateMyAccount(experimenter, firstName, lastName, email, defaultGroupId, middleName, institution) return HttpResponseRedirect(reverse("wamyaccount")) else: form = MyAccountForm( initial={ 'omename': experimenter.omeName, 'first_name': experimenter.firstName, 'middle_name': experimenter.middleName, 'last_name': experimenter.lastName, 'email': experimenter.email, 'institution': experimenter.institution, 'default_group': defaultGroupId, 'groups': otherGroups }) photo_size = conn.getExperimenterPhotoSize() context = { 'form': form, 'ldapAuth': isLdapUser, 'experimenter': experimenter, 'ownedGroups': ownedGroups, 'password_form': password_form } context['template'] = template return context