Add downsample series functionality and related UI updates
- Implemented asynchronous downsample task for series with progress tracking. - Added new URL endpoint for downsample status. - Updated Series model to include source_series_instance_uid. - Enhanced case display template with new buttons for series actions. - Added password reset functionality in user profile with appropriate alerts. - Created migration for new source_series_instance_uid field in Series model.
This commit is contained in:
+26
-10
@@ -5855,15 +5855,31 @@ def create_user(request, context=None, trainee: bool = False):
|
||||
|
||||
if form.is_valid():
|
||||
try:
|
||||
username = form.cleaned_data["username"].strip().lower()
|
||||
existing_user = User.objects.filter(
|
||||
Q(username__iexact=username) | Q(email__iexact=username)
|
||||
).first()
|
||||
|
||||
user_dict = {
|
||||
"username": request.POST["username"],
|
||||
"first_name": request.POST["first_name"],
|
||||
"last_name": request.POST["last_name"],
|
||||
"email": request.POST["username"],
|
||||
"username": username,
|
||||
"first_name": form.cleaned_data["first_name"],
|
||||
"last_name": form.cleaned_data["last_name"],
|
||||
"email": username,
|
||||
"password": secrets.token_hex(nbytes=16),
|
||||
}
|
||||
|
||||
new_user = User.objects.create_user(**user_dict)
|
||||
with transaction.atomic():
|
||||
if existing_user is not None:
|
||||
existing_user.username = user_dict["username"]
|
||||
existing_user.email = user_dict["email"]
|
||||
existing_user.first_name = user_dict["first_name"]
|
||||
existing_user.last_name = user_dict["last_name"]
|
||||
existing_user.save(
|
||||
update_fields=["username", "email", "first_name", "last_name"]
|
||||
)
|
||||
new_user = existing_user
|
||||
else:
|
||||
new_user = User.objects.create_user(**user_dict)
|
||||
except Exception as error:
|
||||
errors = f"Unable to create account: {error}"
|
||||
return render(
|
||||
@@ -5873,15 +5889,15 @@ def create_user(request, context=None, trainee: bool = False):
|
||||
)
|
||||
|
||||
try:
|
||||
user_profile = UserProfile.objects.get(user=new_user)
|
||||
user_profile, _ = UserProfile.objects.get_or_create(user=new_user)
|
||||
user_profile.peninsula_trainee = trainee
|
||||
|
||||
if request.POST["grade"]:
|
||||
grade = UserGrades.objects.get(pk=request.POST["grade"])
|
||||
if form.cleaned_data.get("grade"):
|
||||
grade = form.cleaned_data["grade"]
|
||||
user_profile.grade = grade
|
||||
|
||||
if "supervisor" in request.POST and request.POST["supervisor"]:
|
||||
supervisor = Supervisor.objects.get(pk=request.POST["supervisor"])
|
||||
if trainee and form.cleaned_data.get("supervisor"):
|
||||
supervisor = form.cleaned_data["supervisor"]
|
||||
user_profile.supervisor = supervisor
|
||||
|
||||
user_profile.save()
|
||||
|
||||
Reference in New Issue
Block a user