Add new app 'help' for user support
This commit adds a new model that enhances the user profile with an offline support code, a postal address and an email address to allow users to reset their profile. The commit adds to Django admin commands 'populate' and 'reset_offline_code' to maintain the help user profiles from the Django command line.
This commit is contained in:
parent
4b7e311c62
commit
f9ea88cd24
14 changed files with 161 additions and 34 deletions
0
gnuviechadmin/help/management/commands/__init__.py
Normal file
0
gnuviechadmin/help/management/commands/__init__.py
Normal file
17
gnuviechadmin/help/management/commands/populate.py
Normal file
17
gnuviechadmin/help/management/commands/populate.py
Normal file
|
@ -0,0 +1,17 @@
|
|||
from django.contrib.auth import get_user_model
|
||||
from django.core.management import BaseCommand
|
||||
|
||||
from help.models import HelpUser
|
||||
|
||||
User = get_user_model()
|
||||
|
||||
|
||||
class Command(BaseCommand):
|
||||
help = "Populate help user information for existing users"
|
||||
|
||||
def handle(self, *args, **options):
|
||||
for user in User.objects.filter(helpuser=None):
|
||||
help_user = HelpUser.objects.create(user_id=user.id, email_address=user.email)
|
||||
help_user.generate_offline_account_code()
|
||||
help_user.save()
|
||||
self.stdout.write(f"created offline account code {help_user.offline_account_code} for {user}.")
|
29
gnuviechadmin/help/management/commands/reset_offline_code.py
Normal file
29
gnuviechadmin/help/management/commands/reset_offline_code.py
Normal file
|
@ -0,0 +1,29 @@
|
|||
from django.contrib.auth import get_user_model
|
||||
from django.core.management import BaseCommand, CommandError
|
||||
|
||||
from help.models import HelpUser
|
||||
|
||||
User = get_user_model()
|
||||
|
||||
|
||||
class Command(BaseCommand):
|
||||
help = "Reset offline account reset code for existing users"
|
||||
|
||||
def add_arguments(self, parser):
|
||||
parser.add_argument("users", nargs='+', type=str)
|
||||
|
||||
def handle(self, *args, **options):
|
||||
for name in options["users"]:
|
||||
try:
|
||||
user = User.objects.get(username=name)
|
||||
except User.DoesNotExist:
|
||||
raise CommandError(f'User {name} does not exist')
|
||||
|
||||
help_user = user.helpuser
|
||||
if help_user is None:
|
||||
help_user = HelpUser.objects.create(email_address=user.email)
|
||||
|
||||
help_user.generate_offline_account_code()
|
||||
help_user.save()
|
||||
|
||||
self.stdout.write(f"generated new offline account reset code {help_user.offline_account_code} for {name}")
|
Loading…
Add table
Add a link
Reference in a new issue