User contact modal
* adds user/includes/contact_modal_button.html for calling contact data of a user * adds user contact modal to intervention detail view * adds translations
This commit is contained in:
@@ -10,7 +10,7 @@ from django.urls import reverse
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from django.contrib.auth.models import User
|
||||
|
||||
from konova.forms import BaseForm
|
||||
from konova.forms import BaseForm, BaseModalForm
|
||||
from user.models import UserNotification, KonovaUserExtension
|
||||
|
||||
|
||||
@@ -69,3 +69,51 @@ class UserNotificationForm(BaseForm):
|
||||
id__in=selected_notification_ids,
|
||||
)
|
||||
self.konova_extension.notifications.set(notifications)
|
||||
|
||||
|
||||
class UserContactForm(BaseModalForm):
|
||||
name = forms.CharField(
|
||||
label=_("Username"),
|
||||
label_suffix="",
|
||||
required=False,
|
||||
widget=forms.TextInput(
|
||||
attrs={
|
||||
"readonly": True,
|
||||
"style": "width:100%",
|
||||
}
|
||||
),
|
||||
)
|
||||
person_name = forms.CharField(
|
||||
label=_("Person name"),
|
||||
label_suffix="",
|
||||
required=False,
|
||||
widget=forms.TextInput(
|
||||
attrs={
|
||||
"readonly": True,
|
||||
"style": "width:100%",
|
||||
}
|
||||
),
|
||||
)
|
||||
mail = forms.EmailField(
|
||||
label=_("E-Mail"),
|
||||
label_suffix="",
|
||||
required=False,
|
||||
widget=forms.TextInput(
|
||||
attrs={
|
||||
"readonly": True,
|
||||
"style": "width:100%",
|
||||
}
|
||||
),
|
||||
)
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
self.render_submit = False
|
||||
self.form_title = _("User contact data")
|
||||
self.form_caption = ""
|
||||
|
||||
self.initialize_form_field("name", self.instance.username)
|
||||
self.initialize_form_field("person_name", "{} {}".format(self.instance.first_name, self.instance.last_name))
|
||||
self.initialize_form_field("mail", self.instance.email)
|
||||
|
||||
|
||||
|
||||
6
user/templates/user/includes/contact_modal_button.html
Normal file
6
user/templates/user/includes/contact_modal_button.html
Normal file
@@ -0,0 +1,6 @@
|
||||
{% load fontawesome_5 i18n %}
|
||||
|
||||
<button class="btn btn-default btn-modal" data-form-url="{% url 'user:contact' user.id %}" title="{% trans 'Show contact data' %}">
|
||||
{% fa5_icon 'id-card' %}
|
||||
<span>{{user.username}}</span>
|
||||
</button>
|
||||
@@ -13,4 +13,6 @@ app_name = "user"
|
||||
urlpatterns = [
|
||||
path("", index_view, name="index"),
|
||||
path("notifications/", notifications_view, name="notifications"),
|
||||
path("contact/<id>", contact_view, name="contact"),
|
||||
|
||||
]
|
||||
@@ -1,11 +1,12 @@
|
||||
from django.contrib import messages
|
||||
from django.contrib.auth.decorators import login_required
|
||||
from django.contrib.auth.models import User
|
||||
from django.http import HttpRequest
|
||||
from django.shortcuts import render, redirect
|
||||
from django.shortcuts import render, redirect, get_object_or_404
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from konova.contexts import BaseContext
|
||||
from user.forms import UserNotificationForm
|
||||
from user.forms import UserNotificationForm, UserContactForm
|
||||
from user.models import KonovaUserExtension
|
||||
|
||||
|
||||
@@ -65,3 +66,28 @@ def notifications_view(request: HttpRequest):
|
||||
}
|
||||
context = BaseContext(request, context).context
|
||||
return render(request, template, context)
|
||||
|
||||
|
||||
@login_required
|
||||
def contact_view(request: HttpRequest, id: str):
|
||||
""" Renders contact modal view of a users contact data
|
||||
|
||||
Args:
|
||||
request (HttpRequest): The incoming request
|
||||
id (str): The user's id
|
||||
|
||||
Returns:
|
||||
|
||||
"""
|
||||
user = get_object_or_404(User, id=id)
|
||||
form = UserContactForm(request.POST or None, instance=user, user=request.user)
|
||||
template = "modal/modal_form.html"
|
||||
context = {
|
||||
"form": form,
|
||||
}
|
||||
context = BaseContext(request, context).context
|
||||
return render(
|
||||
request,
|
||||
template,
|
||||
context
|
||||
)
|
||||
Reference in New Issue
Block a user