diff --git a/emonitor/modules/persons/content_admin.py b/emonitor/modules/persons/content_admin.py
index f8e8557..db04383 100644
--- a/emonitor/modules/persons/content_admin.py
+++ b/emonitor/modules/persons/content_admin.py
@@ -1,5 +1,6 @@
import os
import werkzeug
+import yaml
from datetime import datetime
from flask import render_template, request, current_app
from emonitor.extensions import db
@@ -49,6 +50,11 @@ def getAdminContent(self, **params):
pass
person.identifier = request.form.get('identifier')
person.remark = request.form.get('remark')
+ _additional = {}
+ for field in Settings.get('persons.settings').get('additional'):
+ if field.split('=')[0] in request.form.keys():
+ _additional[field.split('=')[0]] = request.form.get(field.split('=')[0])
+ person._options = yaml.safe_dump(_additional, encoding='utf-8')
db.session.commit()
elif request.form.get('action').startswith('deleteperson_'):
@@ -74,6 +80,14 @@ def getAdminContent(self, **params):
Settings.set('persons.settings', _settings)
db.session.commit()
+ elif request.form.get('action') == 'updateadditional':
+ _settings = Settings.get('persons.settings')
+ if 'additional' not in _settings.keys():
+ _settings['additional'] = []
+ _settings['additional'] = request.form.get('additional').replace('\r', '').split('\n')
+ Settings.set('persons.settings', _settings)
+ db.session.commit()
+
if int(module[1]) == 0:
params.update({'settings': Settings.get('persons.settings')})
return render_template("admin.persons.settings.html", **params)
@@ -129,7 +143,10 @@ def getAdminData(self):
for key in vals['persons']: # item list
if key['state'] in states: # import only with correct state
if key['state'] == '-1': # add key
- key['birthdate'] = datetime.strptime(key['birthdate'], '%d.%m.%Y')
+ try:
+ key['birthdate'] = datetime.strptime(key['birthdate'], '%d.%m.%Y')
+ except:
+ print ">>>>", key['birthdate']
key['active'] = key['active'] == 'Aktiv'
p = Person(key['firstname'], key['lastname'], key['salutation'], key['grade'], key['position'], key['identifier'], key['active'], key['birthdate'], key['remark'], int(request.args.get('department')))
db.session.add(p)
diff --git a/emonitor/modules/persons/persons.py b/emonitor/modules/persons/persons.py
index 9d053cb..53f7a98 100644
--- a/emonitor/modules/persons/persons.py
+++ b/emonitor/modules/persons/persons.py
@@ -56,6 +56,10 @@ def birthday(self):
"""
return int((datetime(1904, *self.birthdate.timetuple()[1:-2])).strftime('%j'))
+ @property
+ def options(self):
+ return yaml.load(self._options)
+
@staticmethod
def getPersons(id=0, identifier=0, dept=0, onlyactive=False):
if id != 0:
diff --git a/emonitor/modules/persons/templates/admin.persons.settings.html b/emonitor/modules/persons/templates/admin.persons.settings.html
index a53a1a4..9dde21b 100644
--- a/emonitor/modules/persons/templates/admin.persons.settings.html
+++ b/emonitor/modules/persons/templates/admin.persons.settings.html
@@ -66,6 +66,21 @@
{{ _('persons.header.settings') }}
+
+
{% endblock %}
{% block script_end %}
diff --git a/emonitor/modules/persons/templates/admin.persons_edit.html b/emonitor/modules/persons/templates/admin.persons_edit.html
index fd9358d..8ab00e2 100644
--- a/emonitor/modules/persons/templates/admin.persons_edit.html
+++ b/emonitor/modules/persons/templates/admin.persons_edit.html
@@ -65,6 +65,16 @@ {{ _('persons.header.edit') }}
+
+
+