Adaptions to changed simplified user profile additions in users module
This commit is contained in:
parent
80db1f71e9
commit
7ff8071be9
@ -21,10 +21,6 @@ def url_tasklist(request, user_filter_id=None, search_txt=None, common_filter_id
|
||||
return reverse('patt-tasklist')
|
||||
|
||||
|
||||
def url_profile(request):
|
||||
return reverse('patt-profile')
|
||||
|
||||
|
||||
def url_projectlist(request):
|
||||
return reverse('patt-projectlist')
|
||||
|
||||
|
16
context.py
16
context.py
@ -49,7 +49,6 @@ def navigationbar(context, request, caller_name, **kwargs):
|
||||
def menubar(context, request, caller_name, **kwargs):
|
||||
bar = context[context.MENUBAR]
|
||||
menubar_users(bar, request)
|
||||
replace_profile(request, bar)
|
||||
add_help_menu(request, bar)
|
||||
add_tasklist_menu(request, bar)
|
||||
add_filter_submenu(request, bar, VIEW_TASKLIST_UID)
|
||||
@ -83,21 +82,6 @@ def finalise_bar(request, bar):
|
||||
bar.append_entry(*empty_entry_parameters(request))
|
||||
|
||||
|
||||
def replace_profile(request, bar):
|
||||
try:
|
||||
bar.replace_entry(
|
||||
PROFILE_ENTRY_UID,
|
||||
PROFILE_ENTRY_UID, # uid
|
||||
request.user.username, # name
|
||||
color_icon_url(request, 'user.png'), # icon
|
||||
patt.url_profile(request), # url
|
||||
False, # left
|
||||
False # active
|
||||
)
|
||||
except ValueError:
|
||||
pass # Profile entry does not exist, so exchange is not needed (e.g. no user is logged in)
|
||||
|
||||
|
||||
def add_help_menu(request, bar):
|
||||
bar.append_entry(
|
||||
HELP_UID, # uid
|
||||
|
8
forms.py
8
forms.py
@ -2,7 +2,7 @@ from django import forms
|
||||
from django.contrib.auth.models import User
|
||||
from django.db.models import Q
|
||||
from django.utils.translation import gettext as _
|
||||
from .models import Task, Project, Comment, Search, TASKSTATE_CHOICES, PROJECTSTATE_OPEN, ModelList, PattUserProfile
|
||||
from .models import Task, Project, Comment, Search, TASKSTATE_CHOICES, PROJECTSTATE_OPEN, ModelList, PattUserProfile, get_pattuserprofile
|
||||
from .search import INDEX_STATES
|
||||
|
||||
|
||||
@ -14,7 +14,11 @@ class PattUserProfileForm(forms.ModelForm):
|
||||
'threshold_very_soon': _('Period to targetdate for warning Group "very soon"'),
|
||||
'threshold_soon': _('Period to targetdate for warning Group "soon"'),
|
||||
}
|
||||
|
||||
def __init__(self, request):
|
||||
if request.POST:
|
||||
super().__init__(data=request.POST, instance=get_pattuserprofile(request.user))
|
||||
else:
|
||||
super().__init__(instance=get_pattuserprofile(request.user))
|
||||
|
||||
class TaskForm(forms.ModelForm):
|
||||
|
||||
|
71
migrations/0014_alter_historicalcomment_options_and_more.py
Normal file
71
migrations/0014_alter_historicalcomment_options_and_more.py
Normal file
@ -0,0 +1,71 @@
|
||||
# Generated by Django 5.1.2 on 2024-11-01 19:29
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('patt', '0013_auto_20210117_1332'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterModelOptions(
|
||||
name='historicalcomment',
|
||||
options={'get_latest_by': ('history_date', 'history_id'), 'ordering': ('-history_date', '-history_id'), 'verbose_name': 'historical comment', 'verbose_name_plural': 'historical comments'},
|
||||
),
|
||||
migrations.AlterModelOptions(
|
||||
name='historicaltask',
|
||||
options={'get_latest_by': ('history_date', 'history_id'), 'ordering': ('-history_date', '-history_id'), 'verbose_name': 'historical task', 'verbose_name_plural': 'historical tasks'},
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='comment',
|
||||
name='id',
|
||||
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='historicalcomment',
|
||||
name='history_date',
|
||||
field=models.DateTimeField(db_index=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='historicalcomment',
|
||||
name='id',
|
||||
field=models.BigIntegerField(auto_created=True, blank=True, db_index=True, verbose_name='ID'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='historicaltask',
|
||||
name='history_date',
|
||||
field=models.DateTimeField(db_index=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='historicaltask',
|
||||
name='id',
|
||||
field=models.BigIntegerField(auto_created=True, blank=True, db_index=True, verbose_name='ID'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='pattuserprofile',
|
||||
name='id',
|
||||
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='pattuserprofile',
|
||||
name='threshold_soon',
|
||||
field=models.IntegerField(choices=[(1, '1 day'), (2, '2 days'), (3, '3 days'), (5, '5 days'), (7, '7 days'), (10, '10 days'), (14, '14 days'), (21, ' 21 days')], default=10),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='project',
|
||||
name='id',
|
||||
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='search',
|
||||
name='id',
|
||||
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='task',
|
||||
name='id',
|
||||
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
|
||||
),
|
||||
]
|
@ -6,7 +6,7 @@ from simple_history.models import HistoricalRecords
|
||||
|
||||
|
||||
THRESHOLD_VERY_SOON_CHOICES = ((1, '1 day'), (2, '2 days'), (3, '3 days'), (4, '4 days'), (5, '5 days'), (7, '7 days'), (9, '9 days'), (12, '12 days'), ) # REQ-38
|
||||
THRESHOLD_SOON_CHOICES = ((1, '1 day'), (2, '2 days'), (3, '3 days'), (5, '5 days'), (7, '7 days'), (10, '10 days'), (14, '14 days'), (21, ' days'), ) # REQ-39
|
||||
THRESHOLD_SOON_CHOICES = ((1, '1 day'), (2, '2 days'), (3, '3 days'), (5, '5 days'), (7, '7 days'), (10, '10 days'), (14, '14 days'), (21, ' 21 days'), ) # REQ-39
|
||||
|
||||
|
||||
# PROJECTSTATE (REQ-??)
|
||||
|
1
urls.py
1
urls.py
@ -6,7 +6,6 @@ from . import views
|
||||
|
||||
urlpatterns = [
|
||||
path('', lambda request: redirect(reverse('patt-commonfilter', kwargs={'common_filter_id': SEARCH_MY_OPEN_TASKS}), permanent=False)),
|
||||
path('profile', views.patt_profile, name='patt-profile'),
|
||||
#
|
||||
# views and urls
|
||||
#
|
||||
|
42
views.py
42
views.py
@ -7,14 +7,12 @@ from django.shortcuts import render, redirect
|
||||
from django.urls.base import reverse
|
||||
from django.utils import timezone
|
||||
from django.utils.translation import gettext as _
|
||||
from .forms import TaskForm, TaskFormLimited, ProjectForm, CommentForm, TaskCommentForm, SearchForm, EasySearchForm, PattUserProfileForm
|
||||
from .forms import TaskForm, TaskFormLimited, ProjectForm, CommentForm, TaskCommentForm, SearchForm, EasySearchForm
|
||||
from .help import help_pages
|
||||
from .models import Task, ModelList, Comment, TASKSTATE_CHOICES, PRIO_CHOICES, TASKS_IN_WORK
|
||||
from .models import Project, Search, get_pattuserprofile
|
||||
from .models import Project, Search
|
||||
import patt
|
||||
from .search import load_index, search, mk_search_pattern, get_project_ids_from_search_pattern, common_searches
|
||||
from users.forms import UserProfileForm
|
||||
from users.models import get_userprofile
|
||||
from themes import Context
|
||||
|
||||
|
||||
@ -144,42 +142,6 @@ def get_next(request):
|
||||
return request.POST.get('next', '/')
|
||||
|
||||
|
||||
def profile_post_actions(request, context):
|
||||
if request.POST:
|
||||
form = context.get('form_userprofile')
|
||||
if form.is_valid():
|
||||
form.save()
|
||||
form = context.get('form_pattprofile')
|
||||
if form.is_valid():
|
||||
form.save()
|
||||
return redirect(request.GET.get('next') or '/')
|
||||
|
||||
|
||||
def profile_pre_actions(request, context, form_to_be_used=UserProfileForm):
|
||||
user_profile = get_userprofile(request.user)
|
||||
patt_user_profile = get_pattuserprofile(request.user)
|
||||
if request.POST:
|
||||
userprofile_form = UserProfileForm(request.POST, instance=user_profile)
|
||||
pattprofile_form = PattUserProfileForm(request.POST, instance=patt_user_profile)
|
||||
else:
|
||||
userprofile_form = UserProfileForm(instance=user_profile)
|
||||
pattprofile_form = PattUserProfileForm(instance=patt_user_profile)
|
||||
context['form_userprofile'] = userprofile_form
|
||||
context['form_pattprofile'] = pattprofile_form
|
||||
|
||||
|
||||
@login_required
|
||||
def patt_profile(request):
|
||||
context = Context(request) # needs to be executed first because of time mesurement
|
||||
profile_pre_actions(request, context)
|
||||
response = profile_post_actions(request, context)
|
||||
if response is not None:
|
||||
return response
|
||||
else:
|
||||
context_adaption(context, request, title=_('Profile for %(username)s') % {'username': request.user.username})
|
||||
return render(request, 'patt/profile.html', context=context)
|
||||
|
||||
|
||||
@login_required
|
||||
def patt_tasklist(request, user_filter_id=None, common_filter_id=None):
|
||||
context = Context(request) # needs to be executed first because of time mesurement
|
||||
|
Loading…
x
Reference in New Issue
Block a user