Adaptions to changed simplified user profile additions in users module

This commit is contained in:
Dirk Alders 2024-11-01 20:32:08 +01:00
parent 80db1f71e9
commit 7ff8071be9
7 changed files with 80 additions and 64 deletions

View File

@ -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')

View File

@ -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

View File

@ -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):

View 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'),
),
]

View File

@ -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-??)

View File

@ -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
#

View File

@ -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