Bugs gefixed, Zeiterfassung vorbereitet
This commit is contained in:
parent
e6c7eaf225
commit
b63c458df4
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -31,7 +31,7 @@ class UsersSelfChangeForm(forms.ModelForm):
|
||||||
email = forms.EmailField()
|
email = forms.EmailField()
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = User
|
model = User
|
||||||
fields = ['email']
|
fields = ['email']
|
||||||
|
|
||||||
# Form für die Benachrichtigungseinstellungen
|
# Form für die Benachrichtigungseinstellungen
|
||||||
|
|
@ -45,7 +45,7 @@ class UsersNotificationForm(forms.ModelForm):
|
||||||
#"user_standard_public_mail" : "Veröffentlichung meiner Standards",
|
#"user_standard_public_mail" : "Veröffentlichung meiner Standards",
|
||||||
"agency_new_standard_mail" : "Neue Agentur-Standards",
|
"agency_new_standard_mail" : "Neue Agentur-Standards",
|
||||||
'add_new_group_mail' : "Gruppenmitgliedschaften",
|
'add_new_group_mail' : "Gruppenmitgliedschaften",
|
||||||
'add_task_mail' : "Tätigkeitsbereich",
|
'add_task_mail' : "Tätigkeitsbereich",
|
||||||
'user_messages_mail' : "Mitteilungen"
|
'user_messages_mail' : "Mitteilungen"
|
||||||
}
|
}
|
||||||
#fields = ['news_mail', 'news_push', 'user_standard_public_mail', 'user_standard_public_push', 'agency_new_standard_mail', 'agency_new_standard_push', 'add_new_group_mail', 'add_new_group_push', 'add_task_mail', 'add_task_push', 'user_messages_mail', 'user_messages_push']
|
#fields = ['news_mail', 'news_push', 'user_standard_public_mail', 'user_standard_public_push', 'agency_new_standard_mail', 'agency_new_standard_push', 'add_new_group_mail', 'add_new_group_push', 'add_task_mail', 'add_task_push', 'user_messages_mail', 'user_messages_push']
|
||||||
|
|
@ -53,7 +53,7 @@ class UsersNotificationForm(forms.ModelForm):
|
||||||
'''
|
'''
|
||||||
# Form für die Benachrichtigungseinstellungen STANDARDS
|
# Form für die Benachrichtigungseinstellungen STANDARDS
|
||||||
class UsersNotificationFormStandard(forms.ModelForm):
|
class UsersNotificationFormStandard(forms.ModelForm):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = UserNotifications
|
model = UserNotifications
|
||||||
labels = {
|
labels = {
|
||||||
|
|
@ -61,9 +61,9 @@ class UsersNotificationFormStandard(forms.ModelForm):
|
||||||
"standard_update_mail" : "Standard verändert",
|
"standard_update_mail" : "Standard verändert",
|
||||||
"standard_delete_mail" : "Standard gelöscht",
|
"standard_delete_mail" : "Standard gelöscht",
|
||||||
"standard_created_unpub_mail" : "Neuer, unveröffentlichter Standard"
|
"standard_created_unpub_mail" : "Neuer, unveröffentlichter Standard"
|
||||||
|
|
||||||
}
|
}
|
||||||
fields = [
|
fields = [
|
||||||
'standard_created_mail',
|
'standard_created_mail',
|
||||||
'standard_created_push',
|
'standard_created_push',
|
||||||
'standard_update_mail',
|
'standard_update_mail',
|
||||||
|
|
@ -71,87 +71,87 @@ class UsersNotificationFormStandard(forms.ModelForm):
|
||||||
'standard_delete_mail',
|
'standard_delete_mail',
|
||||||
'standard_delete_push',
|
'standard_delete_push',
|
||||||
'standard_created_unpub_mail',
|
'standard_created_unpub_mail',
|
||||||
'standard_created_unpub_push',
|
'standard_created_unpub_push',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
# Form für die Benachrichtigungseinstellungen NEWS
|
# Form für die Benachrichtigungseinstellungen NEWS
|
||||||
class UsersNotificationFormNews(forms.ModelForm):
|
class UsersNotificationFormNews(forms.ModelForm):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = UserNotifications
|
model = UserNotifications
|
||||||
labels = {
|
labels = {
|
||||||
"news_created_mail" : "Neuer Agenturnews",
|
"news_created_mail" : "Neuer Agenturnews",
|
||||||
|
|
||||||
}
|
}
|
||||||
fields = [
|
fields = [
|
||||||
'news_created_mail',
|
'news_created_mail',
|
||||||
'news_created_push',
|
'news_created_push',
|
||||||
]
|
]
|
||||||
|
|
||||||
# Form für die Benachrichtigungseinstellungen MESSAGES
|
# Form für die Benachrichtigungseinstellungen MESSAGES
|
||||||
class UsersNotificationFormMessages(forms.ModelForm):
|
class UsersNotificationFormMessages(forms.ModelForm):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = UserNotifications
|
model = UserNotifications
|
||||||
labels = {
|
labels = {
|
||||||
"message_received_mail" : "Neuer Mitteilung",
|
"message_received_mail" : "Neuer Mitteilung",
|
||||||
|
|
||||||
}
|
}
|
||||||
fields = [
|
fields = [
|
||||||
'message_received_mail',
|
'message_received_mail',
|
||||||
'message_received_push',
|
'message_received_push',
|
||||||
]
|
]
|
||||||
|
|
||||||
# Form für die Benachrichtigungseinstellungen CHAT
|
# Form für die Benachrichtigungseinstellungen CHAT
|
||||||
class UsersNotificationFormChat(forms.ModelForm):
|
class UsersNotificationFormChat(forms.ModelForm):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = UserNotifications
|
model = UserNotifications
|
||||||
labels = {
|
labels = {
|
||||||
"chat_received_mail" : "Verpasste Chatnachrichten",
|
"chat_received_mail" : "Verpasste Chatnachrichten",
|
||||||
"chat_room_activity_mail" : "Raumaktivitäten",
|
"chat_room_activity_mail" : "Raumaktivitäten",
|
||||||
|
|
||||||
}
|
}
|
||||||
fields = [
|
fields = [
|
||||||
'chat_received_mail',
|
'chat_received_mail',
|
||||||
'chat_received_push',
|
'chat_received_push',
|
||||||
'chat_room_activity_mail',
|
'chat_room_activity_mail',
|
||||||
'chat_room_activity_push',
|
'chat_room_activity_push',
|
||||||
]
|
]
|
||||||
|
|
||||||
# Form für die Benachrichtigungseinstellungen FILES
|
# Form für die Benachrichtigungseinstellungen FILES
|
||||||
class UsersNotificationFormFiles(forms.ModelForm):
|
class UsersNotificationFormFiles(forms.ModelForm):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = UserNotifications
|
model = UserNotifications
|
||||||
labels = {
|
labels = {
|
||||||
"filedir_created_mail" : "Datei/Ordner erstellt",
|
"filedir_created_mail" : "Datei/Ordner erstellt",
|
||||||
"filedir_update_mail" : "Datei/Ordner aktualisiert",
|
"filedir_update_mail" : "Datei/Ordner aktualisiert",
|
||||||
"filedir_delete_mail" : "Datei/Ordner gelöscht",
|
"filedir_delete_mail" : "Datei/Ordner gelöscht",
|
||||||
|
|
||||||
}
|
}
|
||||||
fields = [
|
fields = [
|
||||||
'filedir_created_mail',
|
'filedir_created_mail',
|
||||||
'filedir_created_push',
|
'filedir_created_push',
|
||||||
'filedir_update_mail',
|
'filedir_update_mail',
|
||||||
'filedir_update_push',
|
'filedir_update_push',
|
||||||
'filedir_delete_mail',
|
'filedir_delete_mail',
|
||||||
'filedir_delete_push',
|
'filedir_delete_push',
|
||||||
]
|
]
|
||||||
|
|
||||||
# Form für die Benachrichtigungseinstellungen ABSENCE AND TIME
|
# Form für die Benachrichtigungseinstellungen ABSENCE AND TIME
|
||||||
class UsersNotificationFormAbTime(forms.ModelForm):
|
class UsersNotificationFormAbTime(forms.ModelForm):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = UserNotifications
|
model = UserNotifications
|
||||||
labels = {
|
labels = {
|
||||||
"absence_created_mail" : "Anfrage erstellt",
|
"absence_created_mail" : "Anfrage erstellt",
|
||||||
"absence_user_is_rep_mail" : "Als Vertreter eingesetzt",
|
"absence_user_is_rep_mail" : "Als Vertreter eingesetzt",
|
||||||
"absence_user_is_rep_reminder_mail" : "Erinnerung für Vertretung",
|
"absence_user_is_rep_reminder_mail" : "Erinnerung für Vertretung",
|
||||||
"time_data_changed_mail" : "Abwesenheit bearbeitet",
|
"time_data_changed_mail" : "Abwesenheit bearbeitet",
|
||||||
}
|
}
|
||||||
fields = [
|
fields = [
|
||||||
'absence_created_mail',
|
'absence_created_mail',
|
||||||
'absence_created_push',
|
'absence_created_push',
|
||||||
'absence_user_is_rep_mail',
|
'absence_user_is_rep_mail',
|
||||||
|
|
@ -164,51 +164,51 @@ class UsersNotificationFormAbTime(forms.ModelForm):
|
||||||
|
|
||||||
# Form für die Benachrichtigungseinstellungen GRUPPEN
|
# Form für die Benachrichtigungseinstellungen GRUPPEN
|
||||||
class UsersNotificationFormGroups(forms.ModelForm):
|
class UsersNotificationFormGroups(forms.ModelForm):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = UserNotifications
|
model = UserNotifications
|
||||||
labels = {
|
labels = {
|
||||||
"group_activity_mail" : "Mitgliedschaftsänderung",
|
"group_activity_mail" : "Mitgliedschaftsänderung",
|
||||||
"group_rights_mail" : "Rechteänderung",
|
"group_rights_mail" : "Rechteänderung",
|
||||||
|
|
||||||
}
|
}
|
||||||
fields = [
|
fields = [
|
||||||
'group_activity_mail',
|
'group_activity_mail',
|
||||||
'group_activity_push',
|
'group_activity_push',
|
||||||
'group_rights_mail',
|
'group_rights_mail',
|
||||||
'group_rights_push',
|
'group_rights_push',
|
||||||
]
|
]
|
||||||
|
|
||||||
# Form für die Benachrichtigungseinstellungen Tätigkeitsbereiche
|
# Form für die Benachrichtigungseinstellungen Tätigkeitsbereiche
|
||||||
class UsersNotificationFormTasks(forms.ModelForm):
|
class UsersNotificationFormTasks(forms.ModelForm):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = UserNotifications
|
model = UserNotifications
|
||||||
labels = {
|
labels = {
|
||||||
"task_activity_mail" : "Tätigkeiten",
|
"task_activity_mail" : "Tätigkeiten",
|
||||||
|
|
||||||
}
|
}
|
||||||
fields = [
|
fields = [
|
||||||
'task_activity_mail',
|
'task_activity_mail',
|
||||||
'task_activity_push',
|
'task_activity_push',
|
||||||
]
|
]
|
||||||
|
|
||||||
# Form für die Benachrichtigungseinstellungen GRUPPEN
|
# Form für die Benachrichtigungseinstellungen GRUPPEN
|
||||||
class UsersNotificationFormAgn(forms.ModelForm):
|
class UsersNotificationFormAgn(forms.ModelForm):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = UserNotifications
|
model = UserNotifications
|
||||||
labels = {
|
labels = {
|
||||||
"agn_standard_created_mail" : "Neuer Standard",
|
"agn_standard_created_mail" : "Neuer Standard",
|
||||||
"agn_standard_copied_mail" : "Standard wurde übernommen",
|
"agn_standard_copied_mail" : "Standard wurde übernommen",
|
||||||
"agn_standard_comment_mail" : "Kommentar zu Standard aus meiner Agentur",
|
"agn_standard_comment_mail" : "Kommentar zu Standard aus meiner Agentur",
|
||||||
"agn_standard_comment_react_mail" : "Reaktion zu meinem Kommentar",
|
"agn_standard_comment_react_mail" : "Reaktion zu meinem Kommentar",
|
||||||
"agn_own_change_mail" : "Änderungen meiner Agenturverbunde",
|
"agn_own_change_mail" : "Änderungen meiner Agenturverbunde",
|
||||||
"agn_other_change_mail" : "Änderung anderer Agenturverbunde",
|
"agn_other_change_mail" : "Änderung anderer Agenturverbunde",
|
||||||
}
|
}
|
||||||
fields = [
|
fields = [
|
||||||
'agn_standard_created_mail',
|
'agn_standard_created_mail',
|
||||||
'agn_standard_created_push',
|
'agn_standard_created_push',
|
||||||
'agn_standard_copied_mail',
|
'agn_standard_copied_mail',
|
||||||
'agn_standard_copied_push',
|
'agn_standard_copied_push',
|
||||||
'agn_standard_comment_mail',
|
'agn_standard_comment_mail',
|
||||||
|
|
@ -223,21 +223,21 @@ class UsersNotificationFormAgn(forms.ModelForm):
|
||||||
|
|
||||||
|
|
||||||
class UsersNotificationFormOrganizer(forms.ModelForm):
|
class UsersNotificationFormOrganizer(forms.ModelForm):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = UserNotifications
|
model = UserNotifications
|
||||||
labels = {
|
labels = {
|
||||||
"ql_created_mail" : "Quicklink erstellt",
|
"ql_created_mail" : "Quicklink erstellt",
|
||||||
"ql_update_mail" : "Quicklink aktualisiert",
|
"ql_update_mail" : "Quicklink aktualisiert",
|
||||||
"ql_delete_mail" : "Quicklink gelöscht",
|
"ql_delete_mail" : "Quicklink gelöscht",
|
||||||
"contact_created_mail" : "Kontakt erstellt",
|
"contact_created_mail" : "Kontakt erstellt",
|
||||||
"contact_update_mail" : "Kontakt aktualisiert",
|
"contact_update_mail" : "Kontakt aktualisiert",
|
||||||
"contact_delete_mail" : "Kontakt gelöscht",
|
"contact_delete_mail" : "Kontakt gelöscht",
|
||||||
"password_created_mail" : "Passwort erstellt",
|
"password_created_mail" : "Passwort erstellt",
|
||||||
"password_update_mail" : "Passwort aktualisiert",
|
"password_update_mail" : "Passwort aktualisiert",
|
||||||
"password_delete_mail" : "Passwort gelöscht",
|
"password_delete_mail" : "Passwort gelöscht",
|
||||||
}
|
}
|
||||||
fields = [
|
fields = [
|
||||||
'ql_created_mail',
|
'ql_created_mail',
|
||||||
'ql_created_push',
|
'ql_created_push',
|
||||||
'ql_update_mail',
|
'ql_update_mail',
|
||||||
|
|
@ -280,17 +280,17 @@ class UserTimeForm(forms.ModelForm):
|
||||||
fields = ["startdate", "usetime", "usetime_start", "wd_mo", "wd_tu", "wd_we", "wd_th", "wd_fr", "wd_sa", "wd_so", "loose_holidedate"]
|
fields = ["startdate", "usetime", "usetime_start", "wd_mo", "wd_tu", "wd_we", "wd_th", "wd_fr", "wd_sa", "wd_so", "loose_holidedate"]
|
||||||
widgets = {
|
widgets = {
|
||||||
"startdate" : DatePickerInput(options={"format":'DD.MM.YYYY', "locale":'de'}),
|
"startdate" : DatePickerInput(options={"format":'DD.MM.YYYY', "locale":'de'}),
|
||||||
"usetime_start" : DatePickerInput(options={"format":'DD.MM.YYYY', "locale":'de'})
|
"usetime_start" : DatePickerInput(options={"format":'DD.MM.YYYY', "locale":'de'})
|
||||||
}
|
}
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
self.fields['startdate'].required = True
|
self.fields['startdate'].required = True
|
||||||
self.fields['usetime_start'].required = False
|
self.fields['usetime_start'].required = False
|
||||||
self.fields['usetime'].required = False
|
self.fields['usetime'].required = False
|
||||||
self.fields['usetime'].widget.attrs['readonly'] = True
|
#self.fields['usetime'].widget.attrs['readonly'] = True
|
||||||
self.fields['usetime_start'].widget.attrs['readonly'] = True
|
#self.fields['usetime_start'].widget.attrs['readonly'] = True
|
||||||
|
|
||||||
|
|
||||||
# PERMISSION GROUPS FORM
|
# PERMISSION GROUPS FORM
|
||||||
class AgencyGroupPerms(forms.Form):
|
class AgencyGroupPerms(forms.Form):
|
||||||
|
|
@ -303,11 +303,11 @@ class AgencyGroupPerms(forms.Form):
|
||||||
|
|
||||||
@param: user
|
@param: user
|
||||||
- User ist der aufgerufene User!
|
- User ist der aufgerufene User!
|
||||||
'''
|
'''
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
temprof = AgencyGroup
|
temprof = AgencyGroup
|
||||||
for ele in temprof._meta.permissions:
|
for ele in temprof._meta.permissions:
|
||||||
self.fields[ele[0]] = forms.BooleanField(required=False, initial=False, help_text=(ele[1]))
|
self.fields[ele[0]] = forms.BooleanField(required=False, initial=False, help_text=(ele[1]))
|
||||||
|
|
||||||
# LOADING ALL MODUL-OPTIONS
|
# LOADING ALL MODUL-OPTIONS
|
||||||
|
|
@ -367,16 +367,16 @@ class UserProfileForm(forms.ModelForm):
|
||||||
"phoneland" : "Festnetznummer",
|
"phoneland" : "Festnetznummer",
|
||||||
"image": "Profilbild",
|
"image": "Profilbild",
|
||||||
"func" : "Agenturfunktion",
|
"func" : "Agenturfunktion",
|
||||||
"compfunc" : "Tätigkeit"
|
"compfunc" : "Tätigkeit"
|
||||||
}
|
}
|
||||||
widgets = {"parent" : forms.HiddenInput()}
|
widgets = {"parent" : forms.HiddenInput()}
|
||||||
fields = ["parent", "func", "compfunc", "visible", "phoneland", "phonemobile", "phone_public", "persnumber", "image" ]
|
fields = ["parent", "func", "compfunc", "visible", "phoneland", "phonemobile", "phone_public", "persnumber", "image" ]
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
self.fields['func'].queryset = AgencyJob.objects.filter(agency__pk=self.instance.agency.pk)
|
self.fields['func'].queryset = AgencyJob.objects.filter(agency__pk=self.instance.agency.pk)
|
||||||
|
|
||||||
def save(self):
|
def save(self):
|
||||||
photo = super(UserProfileForm, self).save()
|
photo = super(UserProfileForm, self).save()
|
||||||
try:
|
try:
|
||||||
x = self.cleaned_data.get('x')
|
x = self.cleaned_data.get('x')
|
||||||
|
|
@ -386,12 +386,12 @@ class UserProfileForm(forms.ModelForm):
|
||||||
rotation = self.cleaned_data.get('rotation')
|
rotation = self.cleaned_data.get('rotation')
|
||||||
image = Image.open(photo.image)
|
image = Image.open(photo.image)
|
||||||
rotatet_image = image.rotate(rotation, expand=True)
|
rotatet_image = image.rotate(rotation, expand=True)
|
||||||
cropped_image = rotatet_image.crop((x, y, w+x, h+y))
|
cropped_image = rotatet_image.crop((x, y, w+x, h+y))
|
||||||
resized_image = cropped_image.resize((416, 416), Image.ANTIALIAS)
|
resized_image = cropped_image.resize((416, 416), Image.ANTIALIAS)
|
||||||
resized_image.save(photo.image.path)
|
resized_image.save(photo.image.path)
|
||||||
return photo
|
return photo
|
||||||
except:
|
except:
|
||||||
print("no photo")
|
print("no photo")
|
||||||
|
|
||||||
|
|
||||||
class AbsenceReasonForm(forms.ModelForm):
|
class AbsenceReasonForm(forms.ModelForm):
|
||||||
|
|
@ -405,6 +405,5 @@ class AbsenceReasonForm(forms.ModelForm):
|
||||||
"need_confirm" : "Muss bestätigt werden",
|
"need_confirm" : "Muss bestätigt werden",
|
||||||
"need_rep" : "Muss vertreten werden",
|
"need_rep" : "Muss vertreten werden",
|
||||||
"is_holiday" : "Geht vom Urlaub ab"
|
"is_holiday" : "Geht vom Urlaub ab"
|
||||||
}
|
}
|
||||||
fields = ["name", "need_confirm", "need_rep", "is_holiday", "rgb_color"]
|
fields = ["name", "need_confirm", "need_rep", "is_holiday", "rgb_color"]
|
||||||
|
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -8,7 +8,7 @@
|
||||||
<div class="card-header" id="notification_standards_acc">
|
<div class="card-header" id="notification_standards_acc">
|
||||||
<h5 class="mb-0">
|
<h5 class="mb-0">
|
||||||
<button class="btn btn-link" data-toggle="collapse" data-target="#notification_standards" aria-expanded="true" aria-controls="notification_standards">
|
<button class="btn btn-link" data-toggle="collapse" data-target="#notification_standards" aria-expanded="true" aria-controls="notification_standards">
|
||||||
Standards
|
<i class="fas fa-chevron-down"></i> Standards
|
||||||
</button>
|
</button>
|
||||||
</h5>
|
</h5>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -20,13 +20,13 @@
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="col">Benachrichtigung</th>
|
<th scope="col">Benachrichtigung</th>
|
||||||
<th scope="col">E-Mail</th>
|
<th scope="col">E-Mail</th>
|
||||||
<th scope="col">Push</th>
|
<th scope="col">Push</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{% for formfield in notificationforms_standard %}
|
{% for formfield in notificationforms_standard %}
|
||||||
{% if forloop.counter|divisibleby:2 %}
|
{% if forloop.counter|divisibleby:2 %}
|
||||||
<td>{{formfield}}</td>
|
<td>{{formfield}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% else %}
|
{% else %}
|
||||||
<tr>
|
<tr>
|
||||||
|
|
@ -45,7 +45,7 @@
|
||||||
<div class="card-header" id="notification_news_acc">
|
<div class="card-header" id="notification_news_acc">
|
||||||
<h5 class="mb-0">
|
<h5 class="mb-0">
|
||||||
<button class="btn btn-link" data-toggle="collapse" data-target="#notification_news" aria-expanded="true" aria-controls="notification_news">
|
<button class="btn btn-link" data-toggle="collapse" data-target="#notification_news" aria-expanded="true" aria-controls="notification_news">
|
||||||
News
|
<i class="fas fa-chevron-down"></i> News
|
||||||
</button>
|
</button>
|
||||||
</h5>
|
</h5>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -57,13 +57,13 @@
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="col">Benachrichtigung</th>
|
<th scope="col">Benachrichtigung</th>
|
||||||
<th scope="col">E-Mail</th>
|
<th scope="col">E-Mail</th>
|
||||||
<th scope="col">Push</th>
|
<th scope="col">Push</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{% for formfield in notificationforms_news %}
|
{% for formfield in notificationforms_news %}
|
||||||
{% if forloop.counter|divisibleby:2 %}
|
{% if forloop.counter|divisibleby:2 %}
|
||||||
<td>{{formfield}}</td>
|
<td>{{formfield}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% else %}
|
{% else %}
|
||||||
<tr>
|
<tr>
|
||||||
|
|
@ -83,7 +83,7 @@
|
||||||
<div class="card-header" id="notification_groups_acc">
|
<div class="card-header" id="notification_groups_acc">
|
||||||
<h5 class="mb-0">
|
<h5 class="mb-0">
|
||||||
<button class="btn btn-link" data-toggle="collapse" data-target="#notification_groups" aria-expanded="true" aria-controls="notification_groups">
|
<button class="btn btn-link" data-toggle="collapse" data-target="#notification_groups" aria-expanded="true" aria-controls="notification_groups">
|
||||||
Gruppen
|
<i class="fas fa-chevron-down"></i> Gruppen
|
||||||
</button>
|
</button>
|
||||||
</h5>
|
</h5>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -95,13 +95,13 @@
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="col">Benachrichtigung</th>
|
<th scope="col">Benachrichtigung</th>
|
||||||
<th scope="col">E-Mail</th>
|
<th scope="col">E-Mail</th>
|
||||||
<th scope="col">Push</th>
|
<th scope="col">Push</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{% for formfield in notificationforms_groups %}
|
{% for formfield in notificationforms_groups %}
|
||||||
{% if forloop.counter|divisibleby:2 %}
|
{% if forloop.counter|divisibleby:2 %}
|
||||||
<td>{{formfield}}</td>
|
<td>{{formfield}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% else %}
|
{% else %}
|
||||||
<tr>
|
<tr>
|
||||||
|
|
@ -120,7 +120,7 @@
|
||||||
<div class="card-header" id="notification_task_acc">
|
<div class="card-header" id="notification_task_acc">
|
||||||
<h5 class="mb-0">
|
<h5 class="mb-0">
|
||||||
<button class="btn btn-link" data-toggle="collapse" data-target="#notification_task" aria-expanded="true" aria-controls="notification_task">
|
<button class="btn btn-link" data-toggle="collapse" data-target="#notification_task" aria-expanded="true" aria-controls="notification_task">
|
||||||
Tätigkeiten
|
<i class="fas fa-chevron-down"></i> Tätigkeiten
|
||||||
</button>
|
</button>
|
||||||
</h5>
|
</h5>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -132,13 +132,13 @@
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="col">Benachrichtigung</th>
|
<th scope="col">Benachrichtigung</th>
|
||||||
<th scope="col">E-Mail</th>
|
<th scope="col">E-Mail</th>
|
||||||
<th scope="col">Push</th>
|
<th scope="col">Push</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{% for formfield in notificationforms_task %}
|
{% for formfield in notificationforms_task %}
|
||||||
{% if forloop.counter|divisibleby:2 %}
|
{% if forloop.counter|divisibleby:2 %}
|
||||||
<td>{{formfield}}</td>
|
<td>{{formfield}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% else %}
|
{% else %}
|
||||||
<tr>
|
<tr>
|
||||||
|
|
@ -159,7 +159,7 @@
|
||||||
<div class="card-header" id="notification_files_acc">
|
<div class="card-header" id="notification_files_acc">
|
||||||
<h5 class="mb-0">
|
<h5 class="mb-0">
|
||||||
<button class="btn btn-link" data-toggle="collapse" data-target="#notification_files" aria-expanded="true" aria-controls="notification_files">
|
<button class="btn btn-link" data-toggle="collapse" data-target="#notification_files" aria-expanded="true" aria-controls="notification_files">
|
||||||
Dateien und Ordner
|
<i class="fas fa-chevron-down"></i> Dateien und Ordner
|
||||||
</button>
|
</button>
|
||||||
</h5>
|
</h5>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -171,13 +171,13 @@
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="col">Benachrichtigung</th>
|
<th scope="col">Benachrichtigung</th>
|
||||||
<th scope="col">E-Mail</th>
|
<th scope="col">E-Mail</th>
|
||||||
<th scope="col">Push</th>
|
<th scope="col">Push</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{% for formfield in notificationforms_files %}
|
{% for formfield in notificationforms_files %}
|
||||||
{% if forloop.counter|divisibleby:2 %}
|
{% if forloop.counter|divisibleby:2 %}
|
||||||
<td>{{formfield}}</td>
|
<td>{{formfield}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% else %}
|
{% else %}
|
||||||
<tr>
|
<tr>
|
||||||
|
|
@ -196,7 +196,7 @@
|
||||||
<div class="card-header" id="notification_organizer_acc">
|
<div class="card-header" id="notification_organizer_acc">
|
||||||
<h5 class="mb-0">
|
<h5 class="mb-0">
|
||||||
<button class="btn btn-link" data-toggle="collapse" data-target="#notification_organizer" aria-expanded="true" aria-controls="notification_organizer">
|
<button class="btn btn-link" data-toggle="collapse" data-target="#notification_organizer" aria-expanded="true" aria-controls="notification_organizer">
|
||||||
Organizer
|
<i class="fas fa-chevron-down"></i> Organizer
|
||||||
</button>
|
</button>
|
||||||
</h5>
|
</h5>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -208,13 +208,13 @@
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="col">Benachrichtigung</th>
|
<th scope="col">Benachrichtigung</th>
|
||||||
<th scope="col">E-Mail</th>
|
<th scope="col">E-Mail</th>
|
||||||
<th scope="col">Push</th>
|
<th scope="col">Push</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{% for formfield in notificationforms_organizer %}
|
{% for formfield in notificationforms_organizer %}
|
||||||
{% if forloop.counter|divisibleby:2 %}
|
{% if forloop.counter|divisibleby:2 %}
|
||||||
<td>{{formfield}}</td>
|
<td>{{formfield}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% else %}
|
{% else %}
|
||||||
<tr>
|
<tr>
|
||||||
|
|
@ -233,7 +233,7 @@
|
||||||
<div class="card-header" id="notification_messages_acc">
|
<div class="card-header" id="notification_messages_acc">
|
||||||
<h5 class="mb-0">
|
<h5 class="mb-0">
|
||||||
<button class="btn btn-link" data-toggle="collapse" data-target="#notification_messages" aria-expanded="true" aria-controls="notification_messages">
|
<button class="btn btn-link" data-toggle="collapse" data-target="#notification_messages" aria-expanded="true" aria-controls="notification_messages">
|
||||||
Mitteilungen
|
<i class="fas fa-chevron-down"></i> Mitteilungen
|
||||||
</button>
|
</button>
|
||||||
</h5>
|
</h5>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -245,13 +245,13 @@
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="col">Benachrichtigung</th>
|
<th scope="col">Benachrichtigung</th>
|
||||||
<th scope="col">E-Mail</th>
|
<th scope="col">E-Mail</th>
|
||||||
<th scope="col">Push</th>
|
<th scope="col">Push</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{% for formfield in notificationforms_messages %}
|
{% for formfield in notificationforms_messages %}
|
||||||
{% if forloop.counter|divisibleby:2 %}
|
{% if forloop.counter|divisibleby:2 %}
|
||||||
<td>{{formfield}}</td>
|
<td>{{formfield}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% else %}
|
{% else %}
|
||||||
<tr>
|
<tr>
|
||||||
|
|
@ -270,7 +270,7 @@
|
||||||
<div class="card-header" id="notification_chat_acc">
|
<div class="card-header" id="notification_chat_acc">
|
||||||
<h5 class="mb-0">
|
<h5 class="mb-0">
|
||||||
<button class="btn btn-link" data-toggle="collapse" data-target="#notification_chat" aria-expanded="true" aria-controls="notification_chat">
|
<button class="btn btn-link" data-toggle="collapse" data-target="#notification_chat" aria-expanded="true" aria-controls="notification_chat">
|
||||||
Chat
|
<i class="fas fa-chevron-down"></i> Chat
|
||||||
</button>
|
</button>
|
||||||
</h5>
|
</h5>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -282,13 +282,13 @@
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="col">Benachrichtigung</th>
|
<th scope="col">Benachrichtigung</th>
|
||||||
<th scope="col">E-Mail</th>
|
<th scope="col">E-Mail</th>
|
||||||
<th scope="col">Push</th>
|
<th scope="col">Push</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{% for formfield in notificationforms_chat %}
|
{% for formfield in notificationforms_chat %}
|
||||||
{% if forloop.counter|divisibleby:2 %}
|
{% if forloop.counter|divisibleby:2 %}
|
||||||
<td>{{formfield}}</td>
|
<td>{{formfield}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% else %}
|
{% else %}
|
||||||
<tr>
|
<tr>
|
||||||
|
|
@ -307,7 +307,7 @@
|
||||||
<div class="card-header" id="notification_abtime_acc">
|
<div class="card-header" id="notification_abtime_acc">
|
||||||
<h5 class="mb-0">
|
<h5 class="mb-0">
|
||||||
<button class="btn btn-link" data-toggle="collapse" data-target="#notification_abtime" aria-expanded="true" aria-controls="notification_abtime">
|
<button class="btn btn-link" data-toggle="collapse" data-target="#notification_abtime" aria-expanded="true" aria-controls="notification_abtime">
|
||||||
Abwesenheits- und Zeiterfassung
|
<i class="fas fa-chevron-down"></i> Abwesenheits- und Zeiterfassung
|
||||||
</button>
|
</button>
|
||||||
</h5>
|
</h5>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -319,13 +319,13 @@
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="col">Benachrichtigung</th>
|
<th scope="col">Benachrichtigung</th>
|
||||||
<th scope="col">E-Mail</th>
|
<th scope="col">E-Mail</th>
|
||||||
<th scope="col">Push</th>
|
<th scope="col">Push</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{% for formfield in notificationforms_abtime %}
|
{% for formfield in notificationforms_abtime %}
|
||||||
{% if forloop.counter|divisibleby:2 %}
|
{% if forloop.counter|divisibleby:2 %}
|
||||||
<td>{{formfield}}</td>
|
<td>{{formfield}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% else %}
|
{% else %}
|
||||||
<tr>
|
<tr>
|
||||||
|
|
@ -345,7 +345,7 @@
|
||||||
<div class="card-header" id="notification_agn_acc">
|
<div class="card-header" id="notification_agn_acc">
|
||||||
<h5 class="mb-0">
|
<h5 class="mb-0">
|
||||||
<button class="btn btn-link" data-toggle="collapse" data-target="#notification_agn" aria-expanded="true" aria-controls="notification_agn">
|
<button class="btn btn-link" data-toggle="collapse" data-target="#notification_agn" aria-expanded="true" aria-controls="notification_agn">
|
||||||
Agenturverbund
|
<i class="fas fa-chevron-down"></i> Agenturverbund
|
||||||
</button>
|
</button>
|
||||||
</h5>
|
</h5>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -357,13 +357,13 @@
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="col">Benachrichtigung</th>
|
<th scope="col">Benachrichtigung</th>
|
||||||
<th scope="col">E-Mail</th>
|
<th scope="col">E-Mail</th>
|
||||||
<th scope="col">Push</th>
|
<th scope="col">Push</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{% for formfield in notificationforms_agn %}
|
{% for formfield in notificationforms_agn %}
|
||||||
{% if forloop.counter|divisibleby:2 %}
|
{% if forloop.counter|divisibleby:2 %}
|
||||||
<td>{{formfield}}</td>
|
<td>{{formfield}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% else %}
|
{% else %}
|
||||||
<tr>
|
<tr>
|
||||||
|
|
@ -387,7 +387,7 @@
|
||||||
new_stat = 0;
|
new_stat = 0;
|
||||||
if($(this).prop("checked")){
|
if($(this).prop("checked")){
|
||||||
new_stat = 1;
|
new_stat = 1;
|
||||||
}
|
}
|
||||||
$.ajax(
|
$.ajax(
|
||||||
{
|
{
|
||||||
type: "GET",
|
type: "GET",
|
||||||
|
|
@ -397,15 +397,15 @@
|
||||||
fieldname : ele,
|
fieldname : ele,
|
||||||
new_stat : new_stat
|
new_stat : new_stat
|
||||||
},
|
},
|
||||||
success: function( data )
|
success: function( data )
|
||||||
{
|
{
|
||||||
console.log(data);
|
console.log(data);
|
||||||
if(data['success']){
|
if(data['success']){
|
||||||
$('#notchange_done').toast('show');
|
$('#notchange_done').toast('show');
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
$('#notchange_err').toast('show');
|
$('#notchange_err').toast('show');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -418,4 +418,4 @@
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
|
|
@ -11,13 +11,13 @@
|
||||||
<!-- Then put toasts within -->
|
<!-- Then put toasts within -->
|
||||||
<div id="notchange_done" class="toast alert-success" role="alert" aria-live="assertive" aria-atomic="true">
|
<div id="notchange_done" class="toast alert-success" role="alert" aria-live="assertive" aria-atomic="true">
|
||||||
<div class="toast-header">
|
<div class="toast-header">
|
||||||
<strong class="mr-auto">Gespeichert</strong>
|
<strong class="mr-auto">Gespeichert</strong>
|
||||||
<!--<button type="button" class="ml-2 mb-1 close" data-dismiss="toast" aria-label="Close">
|
<!--<button type="button" class="ml-2 mb-1 close" data-dismiss="toast" aria-label="Close">
|
||||||
<span aria-hidden="true">×</span>
|
<span aria-hidden="true">×</span>
|
||||||
</button>-->
|
</button>-->
|
||||||
</div>
|
</div>
|
||||||
<div class="toast-body">
|
<div class="toast-body">
|
||||||
<div id="toast_savecontent">Änderungen wurden gespeichert.</div>
|
<div id="toast_savecontent">Änderungen wurden gespeichert.</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -25,14 +25,14 @@
|
||||||
<!-- Then put toasts within -->
|
<!-- Then put toasts within -->
|
||||||
<div id="notchange_err" class="toast alert-danger" role="alert" aria-live="assertive" aria-atomic="true">
|
<div id="notchange_err" class="toast alert-danger" role="alert" aria-live="assertive" aria-atomic="true">
|
||||||
<div class="toast-header">
|
<div class="toast-header">
|
||||||
<strong class="mr-auto">Fehler aufgetreten</strong>
|
<strong class="mr-auto">Fehler aufgetreten</strong>
|
||||||
<!--
|
<!--
|
||||||
<button type="button" class="ml-2 mb-1 close" data-dismiss="toast" aria-label="Close">
|
<button type="button" class="ml-2 mb-1 close" data-dismiss="toast" aria-label="Close">
|
||||||
<span aria-hidden="true">×</span>
|
<span aria-hidden="true">×</span>
|
||||||
</button>
|
</button>
|
||||||
-->
|
-->
|
||||||
</div>
|
</div>
|
||||||
<div class="toast-body">
|
<div class="toast-body">
|
||||||
<div id="toast_errcontent">Bitte kontaktieren Sie den Support.</div>
|
<div id="toast_errcontent">Bitte kontaktieren Sie den Support.</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -41,11 +41,11 @@
|
||||||
|
|
||||||
<div class="content-section col-10">
|
<div class="content-section col-10">
|
||||||
<h3>Mitarbeiter <span id="user_title_fullname">{{user_fullname}}</span> <small><i data-toggle="tooltip" data-placement="top" title="Geben Sie hier die Profildaten für den Mitarbeiter ein." class="far fa-question-circle"></i></small></h3>
|
<h3>Mitarbeiter <span id="user_title_fullname">{{user_fullname}}</span> <small><i data-toggle="tooltip" data-placement="top" title="Geben Sie hier die Profildaten für den Mitarbeiter ein." class="far fa-question-circle"></i></small></h3>
|
||||||
<hr>
|
<hr>
|
||||||
{% if newuser == 1 %}
|
{% if newuser == 1 %}
|
||||||
<div class="progress mb-3" style="max-height: 15px;">
|
<div class="progress mb-3" style="max-height: 15px;">
|
||||||
<div class="progress-bar" role="progressbar" style="width: 80%; " aria-valuenow="80" aria-valuemin="0" aria-valuemax="100">Schritt 2: Profildaten festlegen</div>
|
<div class="progress-bar" role="progressbar" style="width: 80%; " aria-valuenow="80" aria-valuemin="0" aria-valuemax="100">Schritt 2: Profildaten festlegen</div>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<div class="media">
|
<div class="media">
|
||||||
<img class="img-profile" style="width: 15%;" src="{{ imagelink }}">
|
<img class="img-profile" style="width: 15%;" src="{{ imagelink }}">
|
||||||
|
|
@ -83,14 +83,14 @@
|
||||||
|
|
||||||
<form method="POST" enctype="multipart/form-data" name="profileform_basic">
|
<form method="POST" enctype="multipart/form-data" name="profileform_basic">
|
||||||
<input type="hidden" name="userprof_formtype" value="profileform">
|
<input type="hidden" name="userprof_formtype" value="profileform">
|
||||||
<div class="mt-2">
|
<div class="mt-2">
|
||||||
<h5>Gruppen <small><i data-toggle="tooltip" data-placement="top" title="Legen Sie fest, in welchen Gruppen der neue Mitarbeiter sein soll. Standardmäßig sind alle Mitarbeiter in der Gruppe Mitarbeiter (wenn diese nicht umbenannt worden ist)." class="far fa-question-circle"></i></small></h5>
|
<h5>Gruppen <small><i data-toggle="tooltip" data-placement="top" title="Legen Sie fest, in welchen Gruppen der neue Mitarbeiter sein soll. Standardmäßig sind alle Mitarbeiter in der Gruppe Mitarbeiter (wenn diese nicht umbenannt worden ist)." class="far fa-question-circle"></i></small></h5>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-4">
|
<div class="col-4">
|
||||||
{% for g in agencygroups %}
|
{% for g in agencygroups %}
|
||||||
{% if forloop.counter|divisibleby:6 %}
|
{% if forloop.counter|divisibleby:6 %}
|
||||||
</div><div class="col-4">
|
</div><div class="col-4">
|
||||||
<div class="custom-control custom-checkbox mb-2">
|
<div class="custom-control custom-checkbox mb-2">
|
||||||
{% if vieweduser|useringroupbyid:g.group.name %}
|
{% if vieweduser|useringroupbyid:g.group.name %}
|
||||||
<input type="checkbox" class="custom-control-input" name="group_{{g.pk}}" id="group_{{g.pk}}" onchange="javascript:updateUser({{vieweduser}}, {{g.pk}}, this.checked)" checked="true">
|
<input type="checkbox" class="custom-control-input" name="group_{{g.pk}}" id="group_{{g.pk}}" onchange="javascript:updateUser({{vieweduser}}, {{g.pk}}, this.checked)" checked="true">
|
||||||
{% else %}
|
{% else %}
|
||||||
|
|
@ -99,7 +99,7 @@
|
||||||
<label class="custom-control-label" for="group_{{g.pk}}" >{{g.agencygroupname}}</label>
|
<label class="custom-control-label" for="group_{{g.pk}}" >{{g.agencygroupname}}</label>
|
||||||
</div>
|
</div>
|
||||||
{% else %}
|
{% else %}
|
||||||
<div class="custom-control custom-checkbox mb-2">
|
<div class="custom-control custom-checkbox mb-2">
|
||||||
{% if vieweduser|useringroupbyid:g.group.name %}
|
{% if vieweduser|useringroupbyid:g.group.name %}
|
||||||
<input type="checkbox" class="custom-control-input" name="group_{{g.pk}}" id="group_{{g.pk}}" onchange="javascript:updateUser({{vieweduser}}, {{g.pk}}, this.checked)" checked="true">
|
<input type="checkbox" class="custom-control-input" name="group_{{g.pk}}" id="group_{{g.pk}}" onchange="javascript:updateUser({{vieweduser}}, {{g.pk}}, this.checked)" checked="true">
|
||||||
{% else %}
|
{% else %}
|
||||||
|
|
@ -112,7 +112,7 @@
|
||||||
</div></div>
|
</div></div>
|
||||||
</div>
|
</div>
|
||||||
<hr>
|
<hr>
|
||||||
<div class="mt-2">
|
<div class="mt-2">
|
||||||
<h5>Übergeordneter Mitarbeiter <small><i data-toggle="tooltip" data-placement="top" title="Legen Sie fest, welche Mitarbeiter über diesen im Organigramm steht. Ist die Einstellung leer, wir" class="far fa-question-circle"></i></small></h5>
|
<h5>Übergeordneter Mitarbeiter <small><i data-toggle="tooltip" data-placement="top" title="Legen Sie fest, welche Mitarbeiter über diesen im Organigramm steht. Ist die Einstellung leer, wir" class="far fa-question-circle"></i></small></h5>
|
||||||
<select name="usertoparent" id="usertoparent" class="select form-control col-4">
|
<select name="usertoparent" id="usertoparent" class="select form-control col-4">
|
||||||
<option value="">---------</option>
|
<option value="">---------</option>
|
||||||
|
|
@ -132,7 +132,7 @@
|
||||||
<div class="col-6">
|
<div class="col-6">
|
||||||
<input type="hidden" name="form_type" value="profileform">
|
<input type="hidden" name="form_type" value="profileform">
|
||||||
{% for field in profileform %}
|
{% for field in profileform %}
|
||||||
{% if forloop.counter|divisibleby:6 %}
|
{% if forloop.counter|divisibleby:6 %}
|
||||||
</div>
|
</div>
|
||||||
<div class="col-6">
|
<div class="col-6">
|
||||||
{{field|as_crispy_field}}
|
{{field|as_crispy_field}}
|
||||||
|
|
@ -141,30 +141,30 @@
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<hr>
|
<hr>
|
||||||
{% if newuser == 1 %}
|
{% if newuser == 1 %}
|
||||||
<a class="btn" href="{% url 'dasettings' %} ">Profil später bearbeiten</a>
|
<a class="btn" href="{% url 'dasettings' %} ">Profil später bearbeiten</a>
|
||||||
{% else %}
|
{% else %}
|
||||||
<a class="btn" href="{% url 'dasettings' %} ">Abbrechen</a>
|
<a class="btn" href="{% url 'dasettings' %} ">Abbrechen</a>
|
||||||
{% endif%}
|
{% endif%}
|
||||||
|
|
||||||
{% if newuser == 1 %}
|
{% if newuser == 1 %}
|
||||||
<button type="submit" class="btn btn-primary" style="float: right">Profilerstellung abschließen</button>
|
<button type="submit" class="btn btn-primary" style="float: right">Profilerstellung abschließen</button>
|
||||||
{% else %}
|
{% else %}
|
||||||
<button type="submit" name="submitprof" class="btn btn-primary" style="float: right">Profildaten aktualisieren</button>
|
<button type="submit" name="submitprof" class="btn btn-primary" style="float: right">Profildaten aktualisieren</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
<div class="tab-pane fade" id="contract" role="tabpanel" aria-labelledby="contract-tab">
|
<div class="tab-pane fade" id="contract" role="tabpanel" aria-labelledby="contract-tab">
|
||||||
|
|
||||||
|
|
||||||
<div class="col-9 mt-2" style="margin-left: -10px;">
|
<div class="col-9 mt-2" style="margin-left: -10px;">
|
||||||
<form method="POST" enctype="multipart/form-data" name="usertime_basic">
|
<form method="POST" enctype="multipart/form-data" name="usertime_basic">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<input type="hidden" name="form_type" value="contract">
|
<input type="hidden" name="form_type" value="contract">
|
||||||
<h5>Zeiterfassung <small><i data-toggle="tooltip" data-placement="top" title="Legen Sie fest, ob dieser Mitarbeit seine Arbeitszeit erfassen soll." class="far fa-question-circle"></i></small></h5>
|
<h5>Zeiterfassung <small><i data-toggle="tooltip" data-placement="top" title="Legen Sie fest, ob dieser Mitarbeit seine Arbeitszeit erfassen soll." class="far fa-question-circle"></i></small></h5>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-3">
|
<div class="col-3">
|
||||||
{{usertime_form.usetime|as_crispy_field}}
|
{{usertime_form.usetime|as_crispy_field}}
|
||||||
|
|
@ -173,18 +173,18 @@
|
||||||
{{usertime_form.usetime_start|as_crispy_field}}
|
{{usertime_form.usetime_start|as_crispy_field}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<!--
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
$(document).ready(function(){
|
$(document).ready(function(){
|
||||||
$("#id_usetime").prop("disabled", true);
|
$("#id_usetime").prop("disabled", true);
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
-->
|
||||||
|
|
||||||
|
<h5>Arbeitszeiten <small><i data-toggle="tooltip" data-placement="top" title="Legen Sie fest, an welchen Tagen dieser Mitarbeiter wie viele Stunden arbeitet." class="far fa-question-circle"></i></small></h5>
|
||||||
<h5>Arbeitszeiten <small><i data-toggle="tooltip" data-placement="top" title="Legen Sie fest, an welchen Tagen dieser Mitarbeiter wie viele Stunden arbeitet." class="far fa-question-circle"></i></small></h5>
|
<div class="table-responsive">
|
||||||
<div class="table-responsive">
|
|
||||||
<table class="table">
|
<table class="table">
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{usertime_form.wd_mo|as_crispy_field}}</td>
|
<td>{{usertime_form.wd_mo|as_crispy_field}}</td>
|
||||||
<td>{{usertime_form.wd_tu|as_crispy_field}}</td>
|
<td>{{usertime_form.wd_tu|as_crispy_field}}</td>
|
||||||
<td>{{usertime_form.wd_we|as_crispy_field}}</td>
|
<td>{{usertime_form.wd_we|as_crispy_field}}</td>
|
||||||
|
|
@ -198,61 +198,61 @@
|
||||||
<hr style="margin-top: -20px;">
|
<hr style="margin-top: -20px;">
|
||||||
<div class="col-12" >
|
<div class="col-12" >
|
||||||
<div class="col-4" style="margin-left: -10px;">
|
<div class="col-4" style="margin-left: -10px;">
|
||||||
<h5 class="mt-1">Urlaub <small><i data-toggle="tooltip" data-placement="top" title="Legen Sie fest, wie viel Urlaub dieser Mitarbeiter im Jahr hat." class="far fa-question-circle"></i></small></h5>
|
<h5 class="mt-1">Urlaub <small><i data-toggle="tooltip" data-placement="top" title="Legen Sie fest, wie viel Urlaub dieser Mitarbeiter im Jahr hat." class="far fa-question-circle"></i></small></h5>
|
||||||
</div>
|
</div>
|
||||||
{{usertime_form.media}}
|
{{usertime_form.media}}
|
||||||
<div class="row col-12">
|
<div class="row col-12">
|
||||||
<div class="col-5">
|
<div class="col-5">
|
||||||
{{usertime_form.startdate|as_crispy_field}}
|
{{usertime_form.startdate|as_crispy_field}}
|
||||||
</div>
|
</div>
|
||||||
<div class="col-5">
|
<div class="col-5">
|
||||||
{{usertime_form.loose_holidedate|as_crispy_field}}
|
{{usertime_form.loose_holidedate|as_crispy_field}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<h5 class="mt-2 mb-1">Urlaub Jahresübersicht <small><i data-toggle="tooltip" data-placement="top" title="Hier sehen Sie die aktuelle Jahresübersicht des Mitarbeiters. Beachten Sie das Format beim manuellen anpassen: XX,0 oder XX,5!" class="far fa-question-circle"></i></small>
|
<h5 class="mt-2 mb-1">Urlaub Jahresübersicht <small><i data-toggle="tooltip" data-placement="top" title="Hier sehen Sie die aktuelle Jahresübersicht des Mitarbeiters. Beachten Sie das Format beim manuellen anpassen: XX,0 oder XX,5!" class="far fa-question-circle"></i></small>
|
||||||
<button type="button" id="changeHolidayData" style="float: right" class="btn btn-secondary btn-sm" onclick="javascript:loadUpdateTableHolidays()" data-toggle="tooltip" data-placement="top" title="Passen Sie die Urlaubstage und Resturlaubstage manuell an."><small><i class="fas fa-pen"></i></small></button>
|
<button type="button" id="changeHolidayData" style="float: right" class="btn btn-secondary btn-sm" onclick="javascript:loadUpdateTableHolidays()" data-toggle="tooltip" data-placement="top" title="Passen Sie die Urlaubstage und Resturlaubstage manuell an."><small><i class="fas fa-pen"></i></small></button>
|
||||||
<button type="button" id="changeHolidayDataSave" style="float: right; display: none" class="btn btn-primary btn-sm" onclick="javascript:saveUpdateTableHolidays()" data-toggle="tooltip" data-placement="top" title="Urlaub- und Resttage speichern."><small><i class="fas fa-check"></i></small></button>
|
<button type="button" id="changeHolidayDataSave" style="float: right; display: none" class="btn btn-primary btn-sm" onclick="javascript:saveUpdateTableHolidays()" data-toggle="tooltip" data-placement="top" title="Urlaub- und Resttage speichern."><small><i class="fas fa-check"></i></small></button>
|
||||||
</h5>
|
</h5>
|
||||||
<div id="year_overview">
|
<div id="year_overview">
|
||||||
<table class="table table-hover">
|
<table class="table table-hover">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="col">Jahr</th>
|
<th scope="col">Jahr</th>
|
||||||
{% for ab_info in user_years.all %}
|
{% for ab_info in user_years.all %}
|
||||||
<th scope="">{{ab_info.year}}</th>
|
<th scope="">{{ab_info.year}}</th>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="row">Urlaub</th>
|
<th scope="row">Urlaub</th>
|
||||||
{% for ab_info in user_years.all %}
|
{% for ab_info in user_years.all %}
|
||||||
<td class="readytochange_holiday_rest" id="holiday_{{ab_info.pk}}">{{ab_info.days}}</td>
|
<td class="readytochange_holiday_rest" id="holiday_{{ab_info.pk}}">{{ab_info.days}}</td>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="row">Genommener Urlaub</th>
|
<th scope="row">Genommener Urlaub</th>
|
||||||
{% for ab_info in user_years.all %}
|
{% for ab_info in user_years.all %}
|
||||||
<td>{{ab_info.days_inuse}}</td>
|
<td>{{ab_info.days_inuse}}</td>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="row">Resturlaub aus Vorjahr</th>
|
<th scope="row">Resturlaub aus Vorjahr</th>
|
||||||
{% for ab_info in user_years.all %}
|
{% for ab_info in user_years.all %}
|
||||||
{% if forloop.counter0 > 0 %}
|
{% if forloop.counter0 > 0 %}
|
||||||
<td class="readytochange_holiday_rest" id="rest_holiday_{{ab_info.pk}}">{{ab_info.restdays}}</td>
|
<td class="readytochange_holiday_rest" id="rest_holiday_{{ab_info.pk}}">{{ab_info.restdays}}</td>
|
||||||
{% else %}
|
{% else %}
|
||||||
<td> </td>
|
<td> </td>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<hr>
|
<hr>
|
||||||
<button type="submit" class="btn btn-primary" style="float: right">Vertragsdaten aktualisieren</button>
|
<button type="submit" class="btn btn-primary" style="float: right">Vertragsdaten aktualisieren</button>
|
||||||
<a class="btn" href="{% url 'dasettings' %} ">Abbrechen</a>
|
<a class="btn" href="{% url 'dasettings' %} ">Abbrechen</a>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|
@ -275,25 +275,25 @@
|
||||||
<h4 class="modal-title">Bereich bestimmen</h4>
|
<h4 class="modal-title">Bereich bestimmen</h4>
|
||||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close" onclick="clearImgField()">
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close" onclick="clearImgField()">
|
||||||
<span aria-hidden="true">×</span>
|
<span aria-hidden="true">×</span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body" id="imgmodbody">
|
<div class="modal-body" id="imgmodbody">
|
||||||
<img src="" id="imagemod" style="max-width: 100%; max-height: 100%;">
|
<img src="" id="imagemod" style="max-width: 100%; max-height: 100%;">
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
<div class="btn-group pull-left" role="group">
|
<div class="btn-group pull-left" role="group">
|
||||||
<button type="button" class="btn btn-default js-zoom-in">
|
<button type="button" class="btn btn-default js-zoom-in">
|
||||||
<i class="fas fa-search-plus"></i>
|
<i class="fas fa-search-plus"></i>
|
||||||
</button>
|
</button>
|
||||||
<button type="button" class="btn btn-default js-zoom-out">
|
<button type="button" class="btn btn-default js-zoom-out">
|
||||||
<i class="fas fa-search-minus"></i>
|
<i class="fas fa-search-minus"></i>
|
||||||
</button>
|
</button>
|
||||||
<button type="button" class="btn btn-default js-rot-left">
|
<button type="button" class="btn btn-default js-rot-left">
|
||||||
<i class="fas fa-undo-alt"></i>
|
<i class="fas fa-undo-alt"></i>
|
||||||
</button>
|
</button>
|
||||||
<button type="button" class="btn btn-default js-rot-right">
|
<button type="button" class="btn btn-default js-rot-right">
|
||||||
<i class="fas fa-redo-alt"></i>
|
<i class="fas fa-redo-alt"></i>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<button type="button" class="btn btn-default" data-dismiss="modal" onclick="clearImgField()">Abbrechen</button>
|
<button type="button" class="btn btn-default" data-dismiss="modal" onclick="clearImgField()">Abbrechen</button>
|
||||||
<button type="button" class="btn btn-primary js-crop-and-upload">Ausschneiden</button>
|
<button type="button" class="btn btn-primary js-crop-and-upload">Ausschneiden</button>
|
||||||
|
|
@ -314,8 +314,8 @@ function loadUpdateTableHolidays(){
|
||||||
action : "update_holidays",
|
action : "update_holidays",
|
||||||
userid: {{vieweduser}}
|
userid: {{vieweduser}}
|
||||||
},
|
},
|
||||||
success: function( data )
|
success: function( data )
|
||||||
{
|
{
|
||||||
$("#year_overview").html(data);
|
$("#year_overview").html(data);
|
||||||
$("#changeHolidayDataSave").show();
|
$("#changeHolidayDataSave").show();
|
||||||
$("#changeHolidayData").hide();
|
$("#changeHolidayData").hide();
|
||||||
|
|
@ -327,9 +327,9 @@ function saveUpdateTableHolidays(){
|
||||||
var new_data_arr = ""
|
var new_data_arr = ""
|
||||||
new_data = $(".readytochange_holiday");
|
new_data = $(".readytochange_holiday");
|
||||||
for(i = 0; i < new_data.length; i++){
|
for(i = 0; i < new_data.length; i++){
|
||||||
tempele = new_data[i]["id"];
|
tempele = new_data[i]["id"];
|
||||||
new_data_arr = new_data_arr + tempele + "__" + $("#" + tempele).val().replace(",", ".") + "___";
|
new_data_arr = new_data_arr + tempele + "__" + $("#" + tempele).val().replace(",", ".") + "___";
|
||||||
}
|
}
|
||||||
|
|
||||||
$.ajax(
|
$.ajax(
|
||||||
{
|
{
|
||||||
|
|
@ -340,8 +340,8 @@ function saveUpdateTableHolidays(){
|
||||||
new_data_info : new_data_arr,
|
new_data_info : new_data_arr,
|
||||||
userid: {{vieweduser}}
|
userid: {{vieweduser}}
|
||||||
},
|
},
|
||||||
success: function( data )
|
success: function( data )
|
||||||
{
|
{
|
||||||
$("#year_overview").html(data);
|
$("#year_overview").html(data);
|
||||||
$("#changeHolidayDataSave").hide();
|
$("#changeHolidayDataSave").hide();
|
||||||
$("#changeHolidayData").show();
|
$("#changeHolidayData").show();
|
||||||
|
|
@ -368,16 +368,16 @@ function updateNewMail(){
|
||||||
url: "/dasettings/ajax",
|
url: "/dasettings/ajax",
|
||||||
data:{
|
data:{
|
||||||
action : "update_usermail",
|
action : "update_usermail",
|
||||||
newmail : newmail,
|
newmail : newmail,
|
||||||
userid: {{vieweduser}}
|
userid: {{vieweduser}}
|
||||||
},
|
},
|
||||||
success: function( data )
|
success: function( data )
|
||||||
{
|
{
|
||||||
if(data['success']){
|
if(data['success']){
|
||||||
$('#notchange_done').toast('show');
|
$('#notchange_done').toast('show');
|
||||||
$("#toast_savecontent").html("E-Mailadresse aktualisiert");
|
$("#toast_savecontent").html("E-Mailadresse aktualisiert");
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
$('#notchange_err').toast('show');
|
$('#notchange_err').toast('show');
|
||||||
$("#toast_errcontent").html("E-Mailadresse nicht aktualisiert! Valide Daten eingeben oder E-Mailadresse ist bereits vorhanden.");
|
$("#toast_errcontent").html("E-Mailadresse nicht aktualisiert! Valide Daten eingeben oder E-Mailadresse ist bereits vorhanden.");
|
||||||
$("#user_email").html(data["data"]["mail"]);
|
$("#user_email").html(data["data"]["mail"]);
|
||||||
|
|
@ -392,27 +392,27 @@ function ChangeName(){
|
||||||
$("#changenamebutton").hide();
|
$("#changenamebutton").hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateNewNames(){
|
function updateNewNames(){
|
||||||
$.ajax(
|
$.ajax(
|
||||||
{
|
{
|
||||||
type: "GET",
|
type: "GET",
|
||||||
url: "/dasettings/ajax",
|
url: "/dasettings/ajax",
|
||||||
data:{
|
data:{
|
||||||
action : "update_usernames",
|
action : "update_usernames",
|
||||||
new_first_name : $("#user_first_name").val(),
|
new_first_name : $("#user_first_name").val(),
|
||||||
new_last_name : $("#user_last_name").val(),
|
new_last_name : $("#user_last_name").val(),
|
||||||
userid: {{vieweduser}}
|
userid: {{vieweduser}}
|
||||||
},
|
},
|
||||||
success: function( data )
|
success: function( data )
|
||||||
{
|
{
|
||||||
if(data['success']){
|
if(data['success']){
|
||||||
$('#notchange_done').toast('show');
|
$('#notchange_done').toast('show');
|
||||||
$("#toast_savecontent").html("Vor- und Nachname aktualisiert");
|
$("#toast_savecontent").html("Vor- und Nachname aktualisiert");
|
||||||
$("#user_fullname").html(data["data"]["userfullname"]);
|
$("#user_fullname").html(data["data"]["userfullname"]);
|
||||||
$("#user_title_fullname").html(data["data"]["userfullname"]);
|
$("#user_title_fullname").html(data["data"]["userfullname"]);
|
||||||
$("#changenamebutton").show();
|
$("#changenamebutton").show();
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
$('#notchange_err').toast('show');
|
$('#notchange_err').toast('show');
|
||||||
$("#toast_errcontent").html("Vor- und Nachname konnte nicht aktualisiert werden!");
|
$("#toast_errcontent").html("Vor- und Nachname konnte nicht aktualisiert werden!");
|
||||||
$("#user_fullname").html(data["data"]["userfullname"]);
|
$("#user_fullname").html(data["data"]["userfullname"]);
|
||||||
|
|
@ -427,14 +427,14 @@ function showMainUserForm(){
|
||||||
$("#changeMainUserData").modal("toggle");
|
$("#changeMainUserData").modal("toggle");
|
||||||
}
|
}
|
||||||
|
|
||||||
$(document).ready(function(){
|
$(document).ready(function(){
|
||||||
|
|
||||||
$(".toast").toast({
|
$(".toast").toast({
|
||||||
autohide: true,
|
autohide: true,
|
||||||
delay : 3000
|
delay : 3000
|
||||||
});
|
});
|
||||||
|
|
||||||
$('#profil-user').tab('show');
|
$('#profil-user').tab('show');
|
||||||
});
|
});
|
||||||
|
|
||||||
function updateUser(userid, groupid, newvalue){
|
function updateUser(userid, groupid, newvalue){
|
||||||
|
|
@ -443,7 +443,7 @@ function updateUser(userid, groupid, newvalue){
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
removeUserFromGroup(userid, groupid);
|
removeUserFromGroup(userid, groupid);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function removeUserFromGroup(userid, groupid){
|
function removeUserFromGroup(userid, groupid){
|
||||||
|
|
@ -456,13 +456,13 @@ function removeUserFromGroup(userid, groupid){
|
||||||
groupid : groupid,
|
groupid : groupid,
|
||||||
userid: userid
|
userid: userid
|
||||||
},
|
},
|
||||||
success: function( data )
|
success: function( data )
|
||||||
{
|
{
|
||||||
if(data['success']){
|
if(data['success']){
|
||||||
$('#notchange_done').toast('show');
|
$('#notchange_done').toast('show');
|
||||||
$("#toast_savecontent").html("Mitarbeiter erfolgreich aus der Gruppe entfernt!");
|
$("#toast_savecontent").html("Mitarbeiter erfolgreich aus der Gruppe entfernt!");
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
$('#notchange_err').toast('show');
|
$('#notchange_err').toast('show');
|
||||||
$("#toast_errcontent").html("Mitarbeiter konnte nicht entfernt werden!");
|
$("#toast_errcontent").html("Mitarbeiter konnte nicht entfernt werden!");
|
||||||
}
|
}
|
||||||
|
|
@ -476,17 +476,17 @@ function removeUserFromGroup(userid, groupid){
|
||||||
{
|
{
|
||||||
type: "GET",
|
type: "GET",
|
||||||
url: "/dashboard/sendpassmail",
|
url: "/dashboard/sendpassmail",
|
||||||
data:{
|
data:{
|
||||||
userid : id
|
userid : id
|
||||||
},
|
},
|
||||||
success: function( data )
|
success: function( data )
|
||||||
{
|
{
|
||||||
$("#mailsend").fadeIn().delay(4000).fadeOut();
|
$("#mailsend").fadeIn().delay(4000).fadeOut();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function addUserToGroup(userid, groupid){
|
function addUserToGroup(userid, groupid){
|
||||||
$.ajax(
|
$.ajax(
|
||||||
{
|
{
|
||||||
type: "GET",
|
type: "GET",
|
||||||
|
|
@ -496,13 +496,13 @@ function addUserToGroup(userid, groupid){
|
||||||
groupid : groupid,
|
groupid : groupid,
|
||||||
userid: userid,
|
userid: userid,
|
||||||
},
|
},
|
||||||
success: function( data )
|
success: function( data )
|
||||||
{
|
{
|
||||||
if(data['success']){
|
if(data['success']){
|
||||||
$('#notchange_done').toast('show');
|
$('#notchange_done').toast('show');
|
||||||
$("#toast_savecontent").html("Mitarbeiter erfolgreich der Gruppe hinzugefügt!");
|
$("#toast_savecontent").html("Mitarbeiter erfolgreich der Gruppe hinzugefügt!");
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
$('#notchange_err').toast('show');
|
$('#notchange_err').toast('show');
|
||||||
$("#toast_errcontent").html("Mitarbeiter konnte nicht hinzugefügt werden!");
|
$("#toast_errcontent").html("Mitarbeiter konnte nicht hinzugefügt werden!");
|
||||||
}
|
}
|
||||||
|
|
@ -517,17 +517,17 @@ function addUserToGroup(userid, groupid){
|
||||||
$("#id_height").val(416);
|
$("#id_height").val(416);
|
||||||
$("#id_rotation").val(0);
|
$("#id_rotation").val(0);
|
||||||
|
|
||||||
function clearImgField(){
|
function clearImgField(){
|
||||||
$("#id_image").val("");
|
$("#id_image").val("");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* SCRIPT TO OPEN THE MODAL WITH THE PREVIEW */
|
/* SCRIPT TO OPEN THE MODAL WITH THE PREVIEW */
|
||||||
$("#id_image").change(function () {
|
$("#id_image").change(function () {
|
||||||
if (this.files && this.files[0]) {
|
if (this.files && this.files[0]) {
|
||||||
var reader = new FileReader();
|
var reader = new FileReader();
|
||||||
reader.onload = function (e) {
|
reader.onload = function (e) {
|
||||||
$("#imagemod").attr("src", e.target.result);
|
$("#imagemod").attr("src", e.target.result);
|
||||||
$("#modalCrop").modal("show");
|
$("#modalCrop").modal("show");
|
||||||
}
|
}
|
||||||
reader.readAsDataURL(this.files[0]);
|
reader.readAsDataURL(this.files[0]);
|
||||||
|
|
@ -537,18 +537,18 @@ function addUserToGroup(userid, groupid){
|
||||||
var cropBoxData;
|
var cropBoxData;
|
||||||
var canvasData;
|
var canvasData;
|
||||||
var $image = $("#imagemod");
|
var $image = $("#imagemod");
|
||||||
$("#modalCrop").on("shown.bs.modal", function () {
|
$("#modalCrop").on("shown.bs.modal", function () {
|
||||||
$image.cropper({
|
$image.cropper({
|
||||||
viewMode: 3,
|
viewMode: 3,
|
||||||
aspectRatio: 1/1,
|
aspectRatio: 1/1,
|
||||||
strict: false,
|
strict: false,
|
||||||
cropBoxMovable: true,
|
cropBoxMovable: true,
|
||||||
cropBoxResizable: true,
|
cropBoxResizable: true,
|
||||||
minCropBoxWidth: 300,
|
minCropBoxWidth: 300,
|
||||||
minCropBoxHeight: 300,
|
minCropBoxHeight: 300,
|
||||||
ready: function () {
|
ready: function () {
|
||||||
$image.cropper("setCanvasData", canvasData);
|
$image.cropper("setCanvasData", canvasData);
|
||||||
$image.cropper("setCropBoxData", cropBoxData);
|
$image.cropper("setCropBoxData", cropBoxData);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
$("#imgmodbody").css({
|
$("#imgmodbody").css({
|
||||||
|
|
@ -577,16 +577,16 @@ function addUserToGroup(userid, groupid){
|
||||||
$image.cropper("rotate", -90);
|
$image.cropper("rotate", -90);
|
||||||
});
|
});
|
||||||
/* SCRIPT TO COLLECT THE DATA AND POST TO THE SERVER */
|
/* SCRIPT TO COLLECT THE DATA AND POST TO THE SERVER */
|
||||||
$(".js-crop-and-upload").click(function () {
|
$(".js-crop-and-upload").click(function () {
|
||||||
var cropData = $image.cropper("getData");
|
var cropData = $image.cropper("getData");
|
||||||
$("#id_x").val(cropData["x"]);
|
$("#id_x").val(cropData["x"]);
|
||||||
$("#id_y").val(cropData["y"]);
|
$("#id_y").val(cropData["y"]);
|
||||||
$("#id_height").val(cropData["height"]);
|
$("#id_height").val(cropData["height"]);
|
||||||
$("#id_width").val(cropData["width"]);
|
$("#id_width").val(cropData["width"]);
|
||||||
$("#id_rotation").val(cropData["rotate"]);
|
$("#id_rotation").val(cropData["rotate"]);
|
||||||
$("#id_image").attr("src", $image);
|
$("#id_image").attr("src", $image);
|
||||||
$("#modalCrop").modal('toggle');
|
$("#modalCrop").modal('toggle');
|
||||||
});
|
});
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
{% endblock content %}
|
{% endblock content %}
|
||||||
|
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -10,12 +10,13 @@
|
||||||
Von: {{absence.start|date:"d.m Y"}}<br />
|
Von: {{absence.start|date:"d.m Y"}}<br />
|
||||||
Bis: {{absence.end|date:"d.m Y"}}<br />
|
Bis: {{absence.end|date:"d.m Y"}}<br />
|
||||||
Grund: {{absence.reason.name}}<br />
|
Grund: {{absence.reason.name}}<br />
|
||||||
|
Vertreter: {{absence.representator.first_name}} {{absence.representator.last_name}}<br />
|
||||||
Informationen: {{absence.info}}<br />
|
Informationen: {{absence.info}}<br />
|
||||||
<hr>
|
<hr>
|
||||||
<h5>Übersicht Urlaubstage wenn Anfrage genehmigt</h5>
|
<h5>Übersicht Urlaubstage wenn Anfrage genehmigt</h5>
|
||||||
<table class="table table-sm">
|
<table class="table table-sm">
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Gewünschte Tage</td>
|
<td>Gewünschte Tage</td>
|
||||||
<td>{{absence.holidays_normal|addition:absence.holidays_rest|addition:absence.holidays_normal_next|addition:absence.holidays_rest_next}}</td>
|
<td>{{absence.holidays_normal|addition:absence.holidays_rest|addition:absence.holidays_normal_next|addition:absence.holidays_rest_next}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
@ -26,13 +27,13 @@ Informationen: {{absence.info}}<br />
|
||||||
<tr>
|
<tr>
|
||||||
<td>Resturlaub {{timeinfo_nextyear.year}}</td>
|
<td>Resturlaub {{timeinfo_nextyear.year}}</td>
|
||||||
<td>{{timeinfo_nextyear.restdays|addition:timeinfo_nextyear.days|sub:timeinfo_nextyear.days_inuse|addition:absence.holidays_rest_next}}</td>
|
<td>{{timeinfo_nextyear.restdays|addition:timeinfo_nextyear.days|sub:timeinfo_nextyear.days_inuse|addition:absence.holidays_rest_next}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
{% if other_absences_string != False %}
|
{% if other_absences_string != False %}
|
||||||
<div id="otherholidays">
|
<div id="otherholidays">
|
||||||
<hr>
|
<hr>
|
||||||
<h5>Andere Abwesenheiten in diesem Zeitraum</h5>
|
<h5>Andere Abwesenheiten in diesem Zeitraum</h5>
|
||||||
{% for ele in other_absences_string %}
|
{% for ele in other_absences_string %}
|
||||||
{{ele}}<br />
|
{{ele}}<br />
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
@ -41,7 +42,7 @@ Informationen: {{absence.info}}<br />
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<form method="POST">
|
<form method="POST">
|
||||||
<input type="hidden" name="form_type" value="confirmform">
|
<input type="hidden" name="form_type" value="confirmform">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
{{confirmform|crispy}}
|
{{confirmform|crispy}}
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
|
|
@ -59,4 +60,4 @@ Informationen: {{absence.info}}<br />
|
||||||
<h5>Abwesenheit für {{absence.user.first_name}} {{absence.user.last_name}} annehmen/ablehnen</h5>
|
<h5>Abwesenheit für {{absence.user.first_name}} {{absence.user.last_name}} annehmen/ablehnen</h5>
|
||||||
<hr>
|
<hr>
|
||||||
Diese Daten dürfen Sie nicht abrufen.
|
Diese Daten dürfen Sie nicht abrufen.
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
|
||||||
|
|
@ -7,10 +7,10 @@
|
||||||
<th scope="col">Nachname</th>
|
<th scope="col">Nachname</th>
|
||||||
<th scope="col">Start</th>
|
<th scope="col">Start</th>
|
||||||
<th scope="col">Ende</th>
|
<th scope="col">Ende</th>
|
||||||
<th scope="col">Grund</th>
|
<th scope="col">Grund</th>
|
||||||
<th scope="col">Info</th>
|
<th scope="col">Info</th>
|
||||||
<th scope="col">Status</th>
|
<th scope="col">Status</th>
|
||||||
<th scope="col"> </th>
|
<th scope="col"> </th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody id="">
|
<tbody id="">
|
||||||
|
|
@ -20,17 +20,18 @@
|
||||||
<td>{{abday.user.last_name}}</td>
|
<td>{{abday.user.last_name}}</td>
|
||||||
<td>{{abday.start|date:"d.M Y"}}</td>
|
<td>{{abday.start|date:"d.M Y"}}</td>
|
||||||
<td>{{abday.end|date:"d.M Y"}}</td>
|
<td>{{abday.end|date:"d.M Y"}}</td>
|
||||||
<td>{{abday.reason.name}}</td>
|
<td>{{abday.reason.name}}</td>
|
||||||
<td>{{abday.info}}</td>
|
<td>{{abday.info}}</td>
|
||||||
<td>{% if abday.confirm_status == 0 %} Genehmigt {% elif abday.confirm_status == 1 %} Beantragt {% else %} Abgelehnt {% endif %}</td>
|
<td>{% if abday.confirm_status == 0 %} Genehmigt {% elif abday.confirm_status == 1 %} Beantragt {% else %} Abgelehnt {% endif %}</td>
|
||||||
<td style="float: right;">
|
<td style="float: right !important; min-width: 100%">
|
||||||
<button type="button " class="btn btn-secondary btn-sm mr-1" onclick="javascript:changeAbsence({{abday.pk}})"><i class="fas fa-pen"></i></button>
|
<button type="button" style="float: right; margin-left: 2px;" class="btn btn-secondary btn-sm" onclick="javascript:$('#confirm-delete_{{abday.pk}}').modal('toggle')"><i class="fas fa-trash"></i></button>
|
||||||
<button type="button " class="btn btn-secondary btn-sm" onclick="javascript:$('#confirm-delete_{{abday.pk}}').modal('toggle')"><i class="fas fa-trash"></i></button>
|
<button type="button " style="float: right" class="btn btn-secondary btn-sm mr-1" onclick="javascript:changeAbsence({{abday.pk}})"><i class="fas fa-pen"></i></button>
|
||||||
</td>
|
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
|
@ -41,7 +42,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
$(document).ready(function(){
|
$(document).ready(function(){
|
||||||
|
|
||||||
$('#table_allabsences').DataTable({
|
$('#table_allabsences').DataTable({
|
||||||
"language": {
|
"language": {
|
||||||
"search" : "Suche",
|
"search" : "Suche",
|
||||||
|
|
@ -60,7 +61,7 @@
|
||||||
"className" : "btn-danger"
|
"className" : "btn-danger"
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
{% for ab in allabsences %}
|
{% for ab in allabsences %}
|
||||||
|
|
@ -76,7 +77,7 @@
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
<button class="btn btn-primary" id="ab_{{ab.pk}}" >Löschen</button>
|
<button class="btn btn-primary" id="ab_{{ab.pk}}" >Löschen</button>
|
||||||
<button type="button" class="btn" data-dismiss="modal">Abbrechen</button>
|
<button type="button" class="btn" data-dismiss="modal">Abbrechen</button>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -91,11 +92,11 @@
|
||||||
action : "remove_absence",
|
action : "remove_absence",
|
||||||
ab: {{ab.pk}},
|
ab: {{ab.pk}},
|
||||||
},
|
},
|
||||||
success: function( data )
|
success: function( data )
|
||||||
{
|
{
|
||||||
location.href = "{% url 'tma-management' activemonth activeyear %}"
|
location.href = "{% url 'tma-management' activemonth activeyear %}"
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
|
||||||
Binary file not shown.
Loading…
Reference in New Issue