Skip to content

Commit

Permalink
[feature] Added internal notes field to User model
Browse files Browse the repository at this point in the history
  • Loading branch information
nemesifier committed Feb 15, 2021
1 parent 185d813 commit e8b4f0a
Show file tree
Hide file tree
Showing 5 changed files with 51 additions and 5 deletions.
2 changes: 2 additions & 0 deletions openwisp_users/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -207,6 +207,7 @@ class UserAdmin(MultitenantAdminMixin, BaseUserAdmin, BaseAdmin):
inlines = [EmailAddressInline, OrganizationUserInline]
save_on_top = True
actions = ['delete_selected_overridden', 'make_inactive', 'make_active']
fieldsets = list(BaseUserAdmin.fieldsets)

# To ensure extended apps use this template.
change_form_template = 'admin/openwisp_users/user/change_form.html'
Expand Down Expand Up @@ -492,6 +493,7 @@ def queryset(self, request, queryset):
base_fields = list(UserAdmin.fieldsets[1][1]['fields'])
additional_fields = ['bio', 'url', 'company', 'location', 'phone_number', 'birth_date']
UserAdmin.fieldsets[1][1]['fields'] = base_fields + additional_fields
UserAdmin.fieldsets.insert(2, ('Internal', {'fields': ('notes',)}))
UserAdmin.add_fieldsets[0][1]['fields'] = (
'username',
'email',
Expand Down
3 changes: 3 additions & 0 deletions openwisp_users/base/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,9 @@ class AbstractUser(BaseUser):
_('phone number'), unique=True, blank=True, null=True
)
birth_date = models.DateField(_('birth date'), blank=True, null=True)
notes = models.TextField(
_('notes'), help_text=_('notes for internal usage'), blank=True
)

objects = UserManager()

Expand Down
20 changes: 20 additions & 0 deletions openwisp_users/migrations/0014_user_notes.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Generated by Django 3.1.6 on 2021-02-15 21:39

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('openwisp_users', '0013_user_birth_date'),
]

operations = [
migrations.AddField(
model_name='user',
name='notes',
field=models.TextField(
blank=True, help_text='notes for internal usage', verbose_name='notes',
),
),
]
11 changes: 6 additions & 5 deletions openwisp_users/tests/test_admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -1442,15 +1442,16 @@ def test_change_user(self):
params['birth_date'] = user.date_joined.date()
params = self._additional_params_pop(params)
params.update(self._get_user_edit_form_inline_params(user, org))
response = self.client.post(
reverse(f'admin:{self.app_label}_user_change', args=[user.pk]),
params,
follow=True,
)
url = reverse(f'admin:{self.app_label}_user_change', args=[user.pk])
response = self.client.post(url, params, follow=True,)
self.assertNotContains(response, 'Please correct the error below.')
user.refresh_from_db()
self.assertEqual(user.bio, params['bio'])
self.assertEqual(user.birth_date, params['birth_date'])
with self.subTest('test presence of fields'):
response = self.client.get(url)
self.assertContains(response, 'id_birth_date')
self.assertContains(response, 'notes for internal usage')

def _delete_inline_org_user(self, is_admin=False):
admin = self._create_admin()
Expand Down
20 changes: 20 additions & 0 deletions tests/openwisp2/sample_users/migrations/0003_user_notes.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Generated by Django 3.1.6 on 2021-02-15 22:03

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('sample_users', '0002_default_groups_and_permissions'),
]

operations = [
migrations.AddField(
model_name='user',
name='notes',
field=models.TextField(
blank=True, help_text='notes for internal usage', verbose_name='notes'
),
),
]

0 comments on commit e8b4f0a

Please sign in to comment.