admin: added profile form to account update view.

see #1169
This commit is contained in:
Antoine Nguyen
2017-07-05 22:19:12 +02:00
parent 4d23ebf9de
commit e453601b32
8 changed files with 64 additions and 26 deletions
+16 -4
View File
@@ -61,7 +61,7 @@ class AccountFormGeneral(forms.ModelForm):
model = User
fields = (
"username", "first_name", "last_name", "role", "is_active",
"master_user"
"master_user",
)
labels = {
"is_active": ugettext_lazy("Enabled")
@@ -190,6 +190,14 @@ class AccountFormGeneral(forms.ModelForm):
return account
class AccountProfileForm(forms.ModelForm):
"""Form to edit account profile."""
class Meta:
model = User
fields = ("secondary_email", "phone_number", "language")
class AccountFormMail(forms.Form, DynamicForm):
"""Form to handle mail part."""
@@ -457,6 +465,9 @@ class AccountForm(TabForms):
"formtpl": "admin/account_general_form.html",
"cls": AccountFormGeneral,
"new_args": [self.user], "mandatory": True},
{"id": "profile", "title": _("Profile"),
"formtpl": "admin/account_profile_form.html",
"cls": AccountProfileForm},
{"id": "mail",
"title": _("Mail"), "formtpl": "admin/mailform.html",
"cls": AccountFormMail,
@@ -521,10 +532,11 @@ class AccountForm(TabForms):
As forms interact with each other, it is simpler to make
custom code to save them.
"""
self.forms[1]["instance"].save(self.user, self.account)
if len(self.forms) <= 2:
self.forms[1]["instance"].save()
self.forms[2]["instance"].save(self.user, self.account)
if len(self.forms) <= 3:
return
for f in self.forms[2:]:
for f in self.forms[3:]:
f["instance"].save()
def done(self):
@@ -0,0 +1,3 @@
{% load form_tags %}
{% render_form form %}
+17 -7
View File
@@ -53,10 +53,16 @@ class AccountTestCase(ModoTestCase):
alias__internal=True).exists()
)
values.update({"username": "pouet@test.com"})
values.update({
"username": "pouet@test.com", "language": "en",
"secondary_email": "homer@simpson.com",
"phone_number": "123456789"
})
self.ajax_post(
reverse("admin:account_change", args=[account.id]), values
)
account.refresh_from_db()
self.assertEqual(account.secondary_email, values["secondary_email"])
mb = models.Mailbox.objects.get(pk=mb.pk)
self.assertEqual(mb.full_address, "pouet@test.com")
self.assertEqual(mb.quota_value.username, "pouet@test.com")
@@ -87,7 +93,8 @@ class AccountTestCase(ModoTestCase):
)
values = {
"username": "user@test.com", "role": "DomainAdmins",
"is_active": True, "email": "user@test.com"
"is_active": True, "email": "user@test.com",
"language": "en"
}
account = User.objects.get(username="user@test.com")
self.ajax_post(
@@ -101,7 +108,8 @@ class AccountTestCase(ModoTestCase):
"username": "user@test.com", "first_name": "Tester",
"last_name": "Toto", "role": "SimpleUsers",
"quota_act": True, "is_active": True, "email": "user@test.com",
"senderaddress": "test@titi.com", "senderaddress_1": "toto@go.com"
"senderaddress": "test@titi.com", "senderaddress_1": "toto@go.com",
"language": "en"
}
self.ajax_post(
reverse("admin:account_change", args=[account.pk]), values)
@@ -174,7 +182,8 @@ class AccountTestCase(ModoTestCase):
account = User.objects.get(username=email)
values = {
"username": email, "role": "SimpleUsers", "quota_act": False,
"is_active": True, "quota": value, "email": email
"is_active": True, "quota": value, "email": email,
"language": "en"
}
self.ajax_post(
reverse("admin:account_change", args=[account.id]),
@@ -294,7 +303,7 @@ class PermissionsTestCase(ModoTestCase):
self.values = {
"username": self.user.username, "role": "DomainAdmins",
"is_active": self.user.is_active, "email": "user@test.com",
"quota_act": True
"quota_act": True, "language": "en"
}
def tearDown(self):
@@ -342,7 +351,8 @@ class PermissionsTestCase(ModoTestCase):
values = {
"username": "admin@test.com", "first_name": "Admin",
"password1": "", "password2": "",
"quota": 10, "is_active": True, "email": "admin@test.com"
"quota": 10, "is_active": True, "email": "admin@test.com",
"language": "en"
}
self.ajax_post(
reverse("admin:account_change", args=[admin.id]),
@@ -366,7 +376,7 @@ class PermissionsTestCase(ModoTestCase):
values = {
"username": self.reseller.username, "first_name": "Reseller",
"password1": "", "password2": "",
"is_active": True
"is_active": True, "language": "en"
}
self.ajax_post(
reverse("admin:account_change", args=[self.reseller.pk]),
+9 -5
View File
@@ -26,7 +26,8 @@ class AliasTestCase(ModoTestCase):
values = dict(
username="user@test.com", role=user.role,
is_active=user.is_active, email="user@test.com",
aliases="toto@test.com", aliases_1="titi@test.com"
aliases="toto@test.com", aliases_1="titi@test.com",
language="en"
)
self.ajax_post(
reverse("admin:account_change", args=[user.id]),
@@ -68,7 +69,7 @@ class AliasTestCase(ModoTestCase):
values = dict(
username="user@test.com", role=user.role,
is_active=user.is_active, email="user@test.com",
aliases="Toto@test.com"
aliases="Toto@test.com", language="en"
)
self.ajax_post(
reverse("admin:account_change", args=[user.id]),
@@ -97,7 +98,8 @@ class AliasTestCase(ModoTestCase):
user = User.objects.get(username="user@test.com")
values = dict(
username="user@test.com", role=user.role,
is_active=user.is_active, email="user@test.com"
is_active=user.is_active, email="user@test.com",
language="en"
)
self.ajax_post(
reverse("admin:account_change", args=[user.id]),
@@ -252,7 +254,8 @@ class AliasTestCase(ModoTestCase):
values = dict(
username=user.username, first_name="Tester", last_name="Toto",
password1="Toto1234", password2="Toto1234", role="SimpleUsers",
quota_act=True, is_active=True, email=user.email
quota_act=True, is_active=True, email=user.email,
language="en"
)
self.ajax_post(reverse("admin:account_change", args=[user.id]), values)
@@ -277,7 +280,8 @@ class AliasTestCase(ModoTestCase):
values = dict(
username="user@test.com", role=user.role,
is_active=user.is_active, email="user@test.com",
aliases="toto@test.com", aliases_1="titi@test2.com"
aliases="toto@test.com", aliases_1="titi@test2.com",
language="en"
)
response = self.ajax_post(
reverse("admin:account_change", args=[user.id]),
@@ -65,7 +65,8 @@ class MailboxOperationTestCase(ModoTestCase):
address="admin", domain__name="test.com")
values = {
"username": "admin2@test.com", "role": "DomainAdmins",
"is_active": True, "email": "admin2@test.com"
"is_active": True, "email": "admin2@test.com",
"language": "en"
}
self.ajax_post(
reverse("admin:account_change", args=[mb.user.pk]), values
+2 -1
View File
@@ -178,7 +178,8 @@ def editaccount(request, pk):
raise PermDeniedException
mb = account.mailbox if hasattr(account, "mailbox") else None
instances = dict(general=account, mail=mb, perms=account)
instances = dict(
general=account, profile=account, mail=mb, perms=account)
results = signals.get_account_form_instances.send(
sender="editaccount", user=request.user, account=account)
for result in results:
+3 -2
View File
@@ -92,7 +92,7 @@ class DomainLimitsTestCase(lib_tests.ModoTestCase):
"username": user.username, "role": user.role,
"is_active": user.is_active, "email": user.email,
"quota_act": True, "domains": "test2.com",
"domains_1": "test.com"
"domains_1": "test.com", "language": "en"
}
self.ajax_post(
reverse("admin:account_change", args=[user.id]),
@@ -146,7 +146,8 @@ class DomainLimitsTestCase(lib_tests.ModoTestCase):
"username": user.username, "role": user.role,
"is_active": user.is_active, "email": user.email,
"quota_act": True,
"aliases": "alias@test.com", "aliases_1": "alias1@test.com"
"aliases": "alias@test.com", "aliases_1": "alias1@test.com",
"language": "en"
}
self.ajax_post(
reverse("admin:account_change", args=[user.id]),
+12 -6
View File
@@ -175,7 +175,8 @@ class DomainAdminTestCase(ResourceTestCase):
values = dict(
username=user.username, role=user.role,
is_active=user.is_active, email=user.email, quota_act=True,
aliases="alias1@test.com", aliases_1="alias2@test.com"
aliases="alias1@test.com", aliases_1="alias2@test.com",
language="en"
)
self.ajax_post(
reverse("admin:account_change", args=[user.id]),
@@ -262,7 +263,7 @@ class ResellerTestCase(ResourceTestCase):
values = {
"username": user.username, "role": "DomainAdmins",
"quota_act": True, "is_active": user.is_active,
"email": user.email
"email": user.email, "language": "en"
}
resp = self.ajax_post(
reverse("admin:account_change", args=[user.id]),
@@ -362,7 +363,8 @@ class ResellerTestCase(ResourceTestCase):
values = {
'username': user.username, 'role': user.role, 'quota_act': True,
'is_active': user.is_active, 'email': user.email,
'mailboxes_limit': 1, 'mailbox_aliases_limit': 2
'mailboxes_limit': 1, 'mailbox_aliases_limit': 2,
'language': 'en'
}
self.ajax_post(
reverse("admin:account_change", args=[user.id]),
@@ -389,7 +391,8 @@ class ResellerTestCase(ResourceTestCase):
values = {
'username': user.username, 'role': user.role, 'quota_act': True,
'is_active': user.is_active, 'email': user.email,
'mailboxes_limit': 1, 'mailbox_aliases_limit': 2
'mailboxes_limit': 1, 'mailbox_aliases_limit': 2,
'language': 'en'
}
self.ajax_post(
reverse("admin:account_change", args=[user.id]),
@@ -421,7 +424,8 @@ class ResellerTestCase(ResourceTestCase):
values = {
'username': user.username, 'role': user.role, 'quota_act': True,
'is_active': user.is_active, 'email': user.email,
'mailboxes_limit': 1, 'mailbox_aliases_limit': 2
'mailboxes_limit': 1, 'mailbox_aliases_limit': 2,
'language': 'en'
}
self.ajax_post(
reverse("admin:account_change", args=[user.id]),
@@ -436,6 +440,7 @@ class ResellerTestCase(ResourceTestCase):
'username': user.username, 'role': 'SimpleUsers',
'quota_act': True,
'is_active': user.is_active, 'email': user.email,
'language': 'en',
}
self.ajax_post(
reverse("admin:account_change", args=[user.id]),
@@ -453,7 +458,8 @@ class ResellerTestCase(ResourceTestCase):
values = {
'username': user.username, 'role': user.role, 'quota_act': True,
'is_active': user.is_active, 'email': user.email,
'mailboxes_limit': 2, 'mailbox_aliases_limit': 3
'mailboxes_limit': 2, 'mailbox_aliases_limit': 3,
'language': 'en'
}
resp = self.ajax_post(
reverse("admin:account_change", args=[user.id]),