parent
fec3993847
commit
0ac35e4bd1
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -13,7 +13,9 @@ class AreaAddAreaForm(forms.ModelForm):
|
||||||
labels = {
|
labels = {
|
||||||
"name" : "Bereichsname",
|
"name" : "Bereichsname",
|
||||||
"color" : "Farbe",
|
"color" : "Farbe",
|
||||||
"desc" : "Beschreibung"
|
"desc" : "Beschreibung",
|
||||||
|
"visible": "Im Organigramm sichtbar"
|
||||||
|
|
||||||
}
|
}
|
||||||
fields = ['name', 'color', 'desc']
|
fields = ['name', 'color', 'desc']
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,7 @@ class Areas(models.Model):
|
||||||
usersfield = models.ManyToManyField(User, blank=True, related_name='users_in_area')
|
usersfield = models.ManyToManyField(User, blank=True, related_name='users_in_area')
|
||||||
created_area_by = models.ForeignKey(User, on_delete=models.PROTECT)
|
created_area_by = models.ForeignKey(User, on_delete=models.PROTECT)
|
||||||
created_area_date = models.DateField(default=datetime.date.today, blank=True)
|
created_area_date = models.DateField(default=datetime.date.today, blank=True)
|
||||||
|
visible = models.BooleanField(default=True)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return f'{self.name}'
|
return f'{self.name}'
|
||||||
|
|
|
||||||
|
|
@ -45,11 +45,6 @@
|
||||||
<p>
|
<p>
|
||||||
{{ item.created_area_by.first_name }} {{ item.created_area_by.last_name }}
|
{{ item.created_area_by.first_name }} {{ item.created_area_by.last_name }}
|
||||||
</p>
|
</p>
|
||||||
<h6><b></b></h6>
|
|
||||||
<p>
|
|
||||||
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<h6><b>Farbe</b></h6>
|
<h6><b>Farbe</b></h6>
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@
|
||||||
{% if added_users|length > 0 %}
|
{% if added_users|length > 0 %}
|
||||||
<p id="no_user_in_area" style="display: none">Noch kein Mitarbeiter zugewiesen.</p>
|
<p id="no_user_in_area" style="display: none">Noch kein Mitarbeiter zugewiesen.</p>
|
||||||
{% for us in added_users %}
|
{% for us in added_users %}
|
||||||
<span id="span_btn_{{us.pk}}" class="badge badge-pill badge-primary mr-2"><a class="btn btn-primary" onclick="javascript:removeUserFromArea('{{ us.pk }}')">{{ us.first_name }} {{ us.last_name }} <i class="fas fa-times"></i></a >
|
<span id="span_btn_{{us.pk}}" class="badge badge-pill badge-primary mr-2 mt-2"><a class="btn btn-primary" onclick="javascript:removeUserFromArea('{{ us.pk }}')">{{ us.first_name }} {{ us.last_name }} <i class="fas fa-times"></i></a >
|
||||||
</span>
|
</span>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% else %}
|
{% else %}
|
||||||
|
|
@ -61,13 +61,12 @@
|
||||||
{
|
{
|
||||||
clearSearchfield();
|
clearSearchfield();
|
||||||
//Add User-Button
|
//Add User-Button
|
||||||
$("#added_users_button").append('<span id="span_btn_'+data['userid']+'" class="badge badge-pill badge-primary mr-2"><a class="btn btn-primary" onclick="javascript:removeUserFromArea('+data['userid']+')">'+data['username_clean']+' <i class="fas fa-times"></i></a ></span>');
|
$("#added_users_button").append('<span id="span_btn_'+data['userid']+'" class="badge badge-pill badge-primary mr-2 mt-2"><a class="btn btn-primary" onclick="javascript:removeUserFromArea('+data['userid']+')">'+data['username_clean']+' <i class="fas fa-times"></i></a ></span>');
|
||||||
|
|
||||||
$("#usersfree").empty();
|
$("#usersfree").empty();
|
||||||
for (var i in data['remaining_users']) {
|
for (var i in data['remaining_users']) {
|
||||||
id = data['remaining_users'][i]['id'];
|
id = data['remaining_users'][i]['id'];
|
||||||
name = data['remaining_users'][i]['first_name'] + " " + data['remaining_users'][i]['last_name'];
|
name = data['remaining_users'][i]['first_name'] + " " + data['remaining_users'][i]['last_name'];
|
||||||
console.log(data['remaining_users'][i]);
|
|
||||||
$("#usersfree").append('<option id="'+id+'" value="'+name+'"></option>');
|
$("#usersfree").append('<option id="'+id+'" value="'+name+'"></option>');
|
||||||
}
|
}
|
||||||
if(data['remaining_users_counter'] == 0){
|
if(data['remaining_users_counter'] == 0){
|
||||||
|
|
|
||||||
|
|
@ -12,10 +12,10 @@ Permissions definiert in models.py bei USERS und dann hier vor die View geschrie
|
||||||
'''
|
'''
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path('', permission_required('users.tasks_management')(AreasManagement.as_view(template_name="areas/areas_management.html")), name='areas-management'),
|
path('', permission_required('users.areas_management')(AreasManagement.as_view(template_name="areas/areas_management.html")), name='areas-management'),
|
||||||
path('addarea/', permission_required('users.tasks_management')(AreasAddArea.as_view(template_name="areas/areas_add.html")), name='areas-addarea'),
|
path('addarea/', permission_required('users.areas_management')(AreasAddArea.as_view(template_name="areas/areas_add.html")), name='areas-addarea'),
|
||||||
path('areas/<int:pk>/delete', permission_required('users.users_usermanagement')(AreaDeleteView.as_view()), name='areas-delete'),
|
path('areas/<int:pk>/delete', permission_required('users.areas_management')(AreaDeleteView.as_view()), name='areas-delete'),
|
||||||
path('area/<int:pk>/', permission_required('users.users_usermanagement')(AreaUpdateView.as_view()), name='areas-manage'),
|
path('area/<int:pk>/', permission_required('users.areas_management')(AreaUpdateView.as_view()), name='areas-manage'),
|
||||||
path('areaajax/', views.area_addareas_ajax, name="area-ajaxview")
|
path('areaajax/', views.area_addareas_ajax, name="area-ajaxview")
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -115,8 +115,13 @@ def area_addareas_ajax(request):
|
||||||
added_users = area.usersfield.all()
|
added_users = area.usersfield.all()
|
||||||
possible_users = User.objects.filter(profile__agency__pk=request.user.profile.agency.pk).exclude(pk__in=added_users)
|
possible_users = User.objects.filter(profile__agency__pk=request.user.profile.agency.pk).exclude(pk__in=added_users)
|
||||||
possible_users_js = list(possible_users.values())
|
possible_users_js = list(possible_users.values())
|
||||||
|
# Cleaned out, that only data is neede will send to the side (first/last-name and id)
|
||||||
|
final_possible_users = {}
|
||||||
|
for ele in possible_users_js:
|
||||||
|
final_possible_users.update({'first_name':ele['first_name'],'last_name':ele['last_name'],'id':ele['id']})
|
||||||
|
# Counter for remaining users to show/hide "Keine Mitarbeiter"-Div
|
||||||
remaining_users_counter = len(added_users)
|
remaining_users_counter = len(added_users)
|
||||||
return JsonResponse({'userid' : userid, 'username_clean' : username_clean, 'remaining_users':possible_users_js, 'remaining_users_counter' : remaining_users_counter})
|
return JsonResponse({'userid' : userid, 'username_clean' : username_clean, 'remaining_users':possible_users_js, 'remaining_users_counter' : final_possible_users})
|
||||||
else:
|
else:
|
||||||
return HttpResponse("Request method is not a GET")
|
return HttpResponse("Request method is not a GET")
|
||||||
|
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -22,8 +22,7 @@ urlpatterns = [
|
||||||
path('password-reset-confirm/<uidb64>/<token>/', auth_views.PasswordResetConfirmView.as_view(template_name='users/password_reset_confirm.html'), name='password_reset_confirm'),
|
path('password-reset-confirm/<uidb64>/<token>/', auth_views.PasswordResetConfirmView.as_view(template_name='users/password_reset_confirm.html'), name='password_reset_confirm'),
|
||||||
path('password-reset-complete/', auth_views.PasswordResetCompleteView.as_view(template_name='users/password_reset_complete.html'), name='password_reset_complete'),
|
path('password-reset-complete/', auth_views.PasswordResetCompleteView.as_view(template_name='users/password_reset_complete.html'), name='password_reset_complete'),
|
||||||
path('register/', AgencyCreateView.as_view(template_name='users/register.html'), name='register'),
|
path('register/', AgencyCreateView.as_view(template_name='users/register.html'), name='register'),
|
||||||
path('register/done', views.registerdone, name='register-done'),
|
path('register/done', views.registerdone, name='register-done')
|
||||||
path('select2/', include('django_select2.urls')),
|
|
||||||
]
|
]
|
||||||
if settings.DEBUG:
|
if settings.DEBUG:
|
||||||
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
|
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
|
||||||
|
|
@ -91,7 +91,7 @@
|
||||||
<hr class="sidebar-divider">
|
<hr class="sidebar-divider">
|
||||||
<!-- Heading -->
|
<!-- Heading -->
|
||||||
<div class="sidebar-heading">
|
<div class="sidebar-heading">
|
||||||
Verwaltung
|
Agenturverwaltung
|
||||||
</div>
|
</div>
|
||||||
{%endif%}
|
{%endif%}
|
||||||
|
|
||||||
|
|
@ -209,7 +209,7 @@
|
||||||
<!-- MESSAGES -->
|
<!-- MESSAGES -->
|
||||||
{% if messages %}
|
{% if messages %}
|
||||||
{% for message in messages %}
|
{% for message in messages %}
|
||||||
<div class="alert alert-{{ message.tags }} alert-dismissible fade show" role="alert">
|
<div class="alert alert-{{ message.tags }} alert-dismissible fade show" role="alert" id="message_{{forloop.counter}}">
|
||||||
{{ message }}
|
{{ message }}
|
||||||
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
|
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
|
||||||
<span aria-hidden="true">×</span>
|
<span aria-hidden="true">×</span>
|
||||||
|
|
|
||||||
|
|
@ -26,9 +26,13 @@
|
||||||
<i class="fas fa-ellipsis-v fa-sm fa-fw text-gray-400"></i>
|
<i class="fas fa-ellipsis-v fa-sm fa-fw text-gray-400"></i>
|
||||||
</a>
|
</a>
|
||||||
<div class="dropdown-menu dropdown-menu-right shadow animated--fade-in" aria-labelledby="dropdownMenuLink">
|
<div class="dropdown-menu dropdown-menu-right shadow animated--fade-in" aria-labelledby="dropdownMenuLink">
|
||||||
<div class="dropdown-header">Benutzerinfos</div>
|
<div class="dropdown-header">Benutzerdaten</div>
|
||||||
<a class="dropdown-item" href="{% url 'users-update' item.profile.pk %}">Bearbeiten</a>
|
<a class="dropdown-item" href="{% url 'users-update' item.profile.pk %}">Bearbeiten</a>
|
||||||
<a class="dropdown-item" href="{% url 'users-perm-update' item.profile.pk %}">Berechtigungen</a>
|
<a class="dropdown-item" href="{% url 'users-perm-update' item.profile.pk %}">Rechte</a>
|
||||||
|
<hr class="sidebar-divider">
|
||||||
|
<!--<div class="dropdown-header"></div>-->
|
||||||
|
<a class="dropdown-item" href="#">Bereiche</a>
|
||||||
|
<a class="dropdown-item" href="#">Aufgaben</a>
|
||||||
{% if item != request.user %}
|
{% if item != request.user %}
|
||||||
<div class="dropdown-divider"></div>
|
<div class="dropdown-divider"></div>
|
||||||
<a class="dropdown-item text-danger" href="{% url 'users-delete' item.pk %}" >Löschen</a>
|
<a class="dropdown-item text-danger" href="{% url 'users-delete' item.pk %}" >Löschen</a>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue