Skip to content

Commit

Permalink
Merge pull request #10 from davidslusser/startpage
Browse files Browse the repository at this point in the history
models for user preferred startpage
  • Loading branch information
davidslusser committed Dec 27, 2019
2 parents eb61f24 + 8ff90d0 commit e6a03f7
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 9 deletions.
7 changes: 5 additions & 2 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,9 @@
from setuptools import setup, find_packages
import userextensions

with open(os.path.join(os.path.dirname(__file__), 'README.md')) as readme:
README = readme.read()
with open(os.path.join(os.path.dirname(__file__), 'README.md'), encoding='utf-8') as readme:
long_description = readme.read()


with open('requirements.txt') as f:
required = f.read().splitlines()
Expand All @@ -12,6 +13,8 @@

setup(
name='django-userextensions',
long_description=long_description,
long_description_content_type='text/markdown',
packages=find_packages(),
include_package_data=True,
version=version,
Expand Down
18 changes: 18 additions & 0 deletions userextensions/migrations/0002_userpreference_start_page.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Generated by Django 2.2.6 on 2019-12-12 05:54

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('userextensions', '0001_initial'),
]

operations = [
migrations.AddField(
model_name='userpreference',
name='start_page',
field=models.CharField(blank=True, help_text='url to redirect to after user login', max_length=255, null=True),
),
]
2 changes: 1 addition & 1 deletion userextensions/signals.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ def trim_recents(sender, instance, created, **kwargs):
except:
recents_count = 25

# don't need to trip if recents count is < recents_count
# don't need to trim if recents count is < recents_count
if UserRecent.objects.filter(user=instance.user).count() <= recents_count:
return
recent_id_list = UserRecent.objects.filter(user=instance.user
Expand Down
15 changes: 9 additions & 6 deletions userextensions/views.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
"""
shared views to facilitate user preference actions
"""

from django.shortcuts import render, redirect
from django.contrib import messages
from django.utils import timezone
Expand Down Expand Up @@ -75,18 +76,20 @@ def delete(self, request, *args, **kwargs):


class UserLoginRedirect(LoginRequiredMixin, View):
""" check if a user has a preferred 'start page' to reach after login; redirect to that page after login else
redirect to the project root page
to enable this redirect, set the LOGIN_REDIRECT_URL in the settings.py to /userextensions/user_login_redirect
and include userextensions.urls in the project-level urls.py
""" Check if a user has a preferred 'start page' to load after login. I so, redirect to that page after login, else
redirect to the project root page.
To enable this redirect, set the LOGIN_REDIRECT_URL parameter in the settings.py to
/userextensions/user_login_redirect and include userextensions.urls in the project level urls.py
"""
def get(self, request):
# get the users preferred start page
try:
start_page = request.user.preference.start_page
if start_page:
return redirect(start_page)
except:
except Exception as err:
messages.add_message(request, messages.ERROR, "Error getting start page; redirect to root".format(err),
extra_tags='alert-danger')
return redirect("/")


Expand Down

0 comments on commit e6a03f7

Please sign in to comment.