From 596398c4e51195a76f0139897a47eb16e51ae551 Mon Sep 17 00:00:00 2001 From: Arne Seifert Date: Sun, 10 May 2015 21:23:35 +0200 Subject: [PATCH] admin area updated: - required fields added - errors fixed for empty database - compatibility added for mysql database --- emonitor/admin/web/css/admin.css | 3 + emonitor/admin/web/css/admin.min.css | 2 +- emonitor/modules/alarmkeys/content_admin.py | 2 +- .../templates/admin.alarmkeys_actions.html | 12 +- .../modules/alarmobjects/alarmobjecttype.py | 5 +- .../modules/alarmobjects/content_admin.py | 10 +- .../admin.alarmobjects.types_action.html | 4 +- .../templates/admin.alarmobjects_actions.html | 39 +- emonitor/modules/alarms/alarm.py | 2 +- emonitor/modules/alarms/alarmutils.py | 6 +- emonitor/modules/alarms/content_admin.py | 2 +- .../alarms/templates/admin.alarms.config.html | 2 + .../templates/admin.alarms.type_actions.html | 13 +- emonitor/modules/cars/content_admin.py | 10 +- .../cars/templates/admin.cars_edit.html | 6 +- .../templates/admin.events_actions.html | 4 +- .../admin.mapitems.definition_actions.html | 4 +- emonitor/modules/maps/map_utils.py | 29 +- .../maps/templates/admin.map.position.html | 4 +- .../maps/templates/admin.map_actions.html | 4 +- .../templates/admin.monitors_actions.html | 4 +- emonitor/modules/printers/content_admin.py | 2 +- .../templates/admin.printers_actions.html | 4 +- emonitor/modules/settings/content_admin.py | 4 +- .../admin.settings.department_actions.html | 10 +- emonitor/modules/streets/content_admin.py | 4 +- emonitor/modules/streets/street.py | 2 +- .../translations/de/LC_MESSAGES/modules.mo | Bin 75308 -> 75493 bytes .../translations/de/LC_MESSAGES/modules.po | 661 +++++++++--------- emonitor/modules/translations/modules.pot | 260 +++---- emonitor/observer.py | 7 +- 31 files changed, 599 insertions(+), 522 deletions(-) diff --git a/emonitor/admin/web/css/admin.css b/emonitor/admin/web/css/admin.css index 98c2698..b6a29db 100644 --- a/emonitor/admin/web/css/admin.css +++ b/emonitor/admin/web/css/admin.css @@ -43,6 +43,9 @@ div.subnavigationeast{width:200px;background-color:#ddd/*rgb(171, 171, 171)*/;bo div.maincontainer div.pane div.ui-layout-resizer-east{border-left:1px solid #bbb} p button.save, p button.cancel{padding:5px 40px;} +button:disabled {color: #bbb;} +select:required, input:required {border: 1px solid #97070b !important;} +select:required, input:required:valid {border: 1px solid black !important;} div.headrow{background-color: #ababab;font-weight:bolder;overflow:hidden;padding:10px 4px;} div.headcell{float:left;} diff --git a/emonitor/admin/web/css/admin.min.css b/emonitor/admin/web/css/admin.min.css index bc048bb..c753f6e 100644 --- a/emonitor/admin/web/css/admin.min.css +++ b/emonitor/admin/web/css/admin.min.css @@ -1 +1 @@ - body,html{height:100%;color:#000;font-family:Verdana,Arial,Helvetica,sans-serif;font-weight:normal;text-decoration:none;text-align:left;font-size:11px;margin:0;padding:0}textarea{font-family:Verdana,Arial,Helvetica,sans-serif}a,a:visited{color:#b40431;text-decoration:none}a:hover{text-decoration:underline}label{font-weight:normal !important;width:100%}div.maincontainer{margin:0;height:100%;background-color:#ddd}div.ui-layout-toggler:hover{background-color:#333}div.ui-layout-north{background-color:#ddd;width:100%;margin:0;padding:0;border-width:0 !important;overflow:hidden}div.ui-layout-north div.header_links{position:absolute;top:15px;right:35px}div.ui-layout-north div.header_links a{color:black}div.user{position:absolute;right:10px;top:13px}div.user a,div.user a img{border-width:0}div.user a:hover{text-decoration:none}div.user ul{margin:0;padding:0;list-style:none;cursor:pointer;position:relative;text-align:right}div.user ul li{padding:.25em 3px .3em 15px}div.user ul ul{z-index:200000;display:none;position:absolute;right:0;bottom:0;margin:0 0 1.55em;text-align:right;border:1px solid black}div.user .dropdown ul ul{bottom:auto;margin:1.45em 0 0}div.user ul ul li{padding:.3em 5px .3em 5px}div.user ul ul li:hover{background-color:#ababab}div.user ul li:hover ul{display:block;background-color:#dedede;z-index:200000}div.content{margin:0;border-width:0 !important}div.ui-layout-center{border-right-width:0}div.ui-layout-south{width:100%;background-color:#333;position:fixed;bottom:0;left:0;height:15px;border:0 !important}div.ui-layout-west{background-color:#ddd !important;float:left;width:200px;height:100%;position:fixed;margin:0 !important;border-left-width:0 !important;padding:26px 0 0}div.ui-layout-west ul{list-style-type:none;padding:0;margin:0}div.ui-layout-west li{border-bottom:1px solid #bbb}div.ui-layout-west a{color:black;text-decoration:none;display:block;padding:10px;text-shadow:1px 1px 0 #f2f2f2}div.ui-layout-west a:hover{font-weight:bolder;text-decoration:none;background-color:#fff}div.ui-layout-west a.active{font-weight:bolder;text-decoration:none;background-color:#333;color:#fff;text-shadow:none}div.ui-layout-west a.active:hover{background-color:#000}div.subnavigation{width:100%;background-color:#ddd;border-width:0 0 1px 0 !important;min-height:23px !important;overflow:hidden;padding:0 !important}div.subnavigation a{float:left;padding:6px 20px;display:block;color:#000;border-right:1px solid #bbb;text-transform:uppercase;margin:0;text-shadow:1px 1px 0 #f2f2f2}div.subnavigation a:hover{background-color:#fff;text-decoration:none;color:#000;border-top-color:#fff}div.subnavigation a.selected{background-color:#333;color:#fff;border-top-color:#333;text-shadow:none}div.subnavigation a.selected:hover{background-color:#000;border-top-color:#000}div.subnavigationeast{width:200px;background-color:#ddd;border-width:0 0 0 1px !important;padding:0 !important;overflow:auto !important}div.maincontainer div.pane div.ui-layout-resizer-east{border-left:1px solid #bbb}p button.save,p button.cancel{padding:5px 40px}div.headrow{background-color:#ababab;font-weight:bolder;overflow:hidden;padding:10px 4px}div.headcell{float:left}div.subheadrow{background-color:#f2f2f2;font-weight:bolder;overflow:hidden;padding:4px 4px;border:1px solid silver;border-top-width:0}div.subheadcell{float:left}div.rowadd{position:relative;overflow:hidden;padding:1px 4px;background-color:#fff;border:1px solid silver;border-top:0}div.row{position:relative;overflow:hidden;padding:1px 4px !important;background-color:#fff/;border:1px solid silver;border-top:0;margin:0 !important}div.row:hover{background-color:#dedede;cursor:default}div.row .morelink{background:url(/img/more.png) no-repeat 3px transparent;border:0;position:absolute;top:3px;width:20px;height:20px}div.row .morelink:hover{background:url(/img/moreover.png) no-repeat 3px transparent}div.row .expanded{background:url(/img/details.png) no-repeat 3px transparent}div.row .expanded:hover{background:url(/img/details.png) no-repeat 3px transparent}div.rowcell{float:left;margin-top:4px}div.subrow{position:relative;overflow:hidden;padding:1px 4px;background-color:#fff;border:1px solid silver;border-top:0}div.subrow:hover{background-color:#dedede;cursor:default}div.subrowcell{float:left;margin-top:4px}div.rownoentry{border:1px solid silver;min-height:40px}div.row button,div.subrow button{float:right;width:22px;height:22px;padding:1px;margin:0 0 0 2px}div.headrow button.add{float:right;width:24px;height:21px;margin:0;padding:0}div.subheadrow button.add{float:right;width:24px;height:21px;margin:0;padding:0}div.rowadd button.save{float:right;width:46px;height:21px;padding:1px;margin:4px 0 0 2px}div.overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:10;display:none}div.overlay div.overlay_back{width:100%;height:100%;background-color:#fff;opacity:.5;-moz-opacity:.5;-ms-filter:"alpha(opacity=50)";filter:alpha(opacity=50)}div.overlay div.popup{display:block;position:absolute;top:0;left:0;right:0;bottom:0;width:500px;height:300px;margin:auto;border:1px solid silver;background-color:#fff;z-index:11;box-shadow:5px 5px 5px #BBB}div.popup_close{position:absolute;top:-10px;right:-10px}div.popup_close a img{border:0}div.version{background:url(/img/logo.png) no-repeat 0 0 transparent;position:absolute;left:2px;bottom:2px;height:30px;padding-left:30px}.required{margin-left:5px;color:red}.navigation i{color:#aaa;padding-right:5px} \ No newline at end of file + body,html{height:100%;color:#000;font-family:Verdana,Arial,Helvetica,sans-serif;font-weight:normal;text-decoration:none;text-align:left;font-size:11px;margin:0;padding:0}textarea{font-family:Verdana,Arial,Helvetica,sans-serif}a,a:visited{color:#b40431;text-decoration:none}a:hover{text-decoration:underline}label{font-weight:normal !important;width:100%}div.maincontainer{margin:0;height:100%;background-color:#ddd}div.ui-layout-toggler:hover{background-color:#333}div.ui-layout-north{background-color:#ddd;width:100%;margin:0;padding:0;border-width:0 !important;overflow:hidden}div.ui-layout-north div.header_links{position:absolute;top:15px;right:35px}div.ui-layout-north div.header_links a{color:black}div.user{position:absolute;right:10px;top:13px}div.user a,div.user a img{border-width:0}div.user a:hover{text-decoration:none}div.user ul{margin:0;padding:0;list-style:none;cursor:pointer;position:relative;text-align:right}div.user ul li{padding:.25em 3px .3em 15px}div.user ul ul{z-index:200000;display:none;position:absolute;right:0;bottom:0;margin:0 0 1.55em;text-align:right;border:1px solid black}div.user .dropdown ul ul{bottom:auto;margin:1.45em 0 0}div.user ul ul li{padding:.3em 5px .3em 5px}div.user ul ul li:hover{background-color:#ababab}div.user ul li:hover ul{display:block;background-color:#dedede;z-index:200000}div.content{margin:0;border-width:0 !important}div.ui-layout-center{border-right-width:0}div.ui-layout-south{width:100%;background-color:#333;position:fixed;bottom:0;left:0;height:15px;border:0 !important}div.ui-layout-west{background-color:#ddd !important;float:left;width:200px;height:100%;position:fixed;margin:0 !important;border-left-width:0 !important;padding:26px 0 0}div.ui-layout-west ul{list-style-type:none;padding:0;margin:0}div.ui-layout-west li{border-bottom:1px solid #bbb}div.ui-layout-west a{color:black;text-decoration:none;display:block;padding:10px;text-shadow:1px 1px 0 #f2f2f2}div.ui-layout-west a:hover{font-weight:bolder;text-decoration:none;background-color:#fff}div.ui-layout-west a.active{font-weight:bolder;text-decoration:none;background-color:#333;color:#fff;text-shadow:none}div.ui-layout-west a.active:hover{background-color:#000}div.subnavigation{width:100%;background-color:#ddd;border-width:0 0 1px 0 !important;min-height:23px !important;overflow:hidden;padding:0 !important}div.subnavigation a{float:left;padding:6px 20px;display:block;color:#000;border-right:1px solid #bbb;text-transform:uppercase;margin:0;text-shadow:1px 1px 0 #f2f2f2}div.subnavigation a:hover{background-color:#fff;text-decoration:none;color:#000;border-top-color:#fff}div.subnavigation a.selected{background-color:#333;color:#fff;border-top-color:#333;text-shadow:none}div.subnavigation a.selected:hover{background-color:#000;border-top-color:#000}div.subnavigationeast{width:200px;background-color:#ddd;border-width:0 0 0 1px !important;padding:0 !important;overflow:auto !important}div.maincontainer div.pane div.ui-layout-resizer-east{border-left:1px solid #bbb}p button.save,p button.cancel{padding:5px 40px}button:disabled{color:#bbb}select:required,input:required{border:1px solid #97070b !important}select:required,input:required:valid{border:1px solid black !important}div.headrow{background-color:#ababab;font-weight:bolder;overflow:hidden;padding:10px 4px}div.headcell{float:left}div.subheadrow{background-color:#f2f2f2;font-weight:bolder;overflow:hidden;padding:4px 4px;border:1px solid silver;border-top-width:0}div.subheadcell{float:left}div.rowadd{position:relative;overflow:hidden;padding:1px 4px;background-color:#fff;border:1px solid silver;border-top:0}div.row{position:relative;overflow:hidden;padding:1px 4px !important;background-color:#fff/;border:1px solid silver;border-top:0;margin:0 !important}div.row:hover{background-color:#dedede;cursor:default}div.row .morelink{background:url(/img/more.png) no-repeat 3px transparent;border:0;position:absolute;top:3px;width:20px;height:20px}div.row .morelink:hover{background:url(/img/moreover.png) no-repeat 3px transparent}div.row .expanded{background:url(/img/details.png) no-repeat 3px transparent}div.row .expanded:hover{background:url(/img/details.png) no-repeat 3px transparent}div.rowcell{float:left;margin-top:4px}div.subrow{position:relative;overflow:hidden;padding:1px 4px;background-color:#fff;border:1px solid silver;border-top:0}div.subrow:hover{background-color:#dedede;cursor:default}div.subrowcell{float:left;margin-top:4px}div.rownoentry{border:1px solid silver;min-height:40px}div.row button,div.subrow button{float:right;width:22px;height:22px;padding:1px;margin:0 0 0 2px}div.headrow button.add{float:right;width:24px;height:21px;margin:0;padding:0}div.subheadrow button.add{float:right;width:24px;height:21px;margin:0;padding:0}div.rowadd button.save{float:right;width:46px;height:21px;padding:1px;margin:4px 0 0 2px}div.overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:10;display:none}div.overlay div.overlay_back{width:100%;height:100%;background-color:#fff;opacity:.5;-moz-opacity:.5;-ms-filter:"alpha(opacity=50)";filter:alpha(opacity=50)}div.overlay div.popup{display:block;position:absolute;top:0;left:0;right:0;bottom:0;width:500px;height:300px;margin:auto;border:1px solid silver;background-color:#fff;z-index:11;box-shadow:5px 5px 5px #BBB}div.popup_close{position:absolute;top:-10px;right:-10px}div.popup_close a img{border:0}div.version{background:url(/img/logo.png) no-repeat 0 0 transparent;position:absolute;left:2px;bottom:2px;height:30px;padding-left:30px}.required{margin-left:5px;color:red}.navigation i{color:#aaa;padding-right:5px} \ No newline at end of file diff --git a/emonitor/modules/alarmkeys/content_admin.py b/emonitor/modules/alarmkeys/content_admin.py index c7455df..4b345b5 100644 --- a/emonitor/modules/alarmkeys/content_admin.py +++ b/emonitor/modules/alarmkeys/content_admin.py @@ -52,7 +52,7 @@ def getAdminContent(self, **params): alarmkeycar.cars1 = request.form.get('cars1') alarmkeycar.cars2 = request.form.get('cars2') alarmkeycar.materials = request.form.get('material') - if request.form.get('cars1') == request.form.get('cars2') == request.form.get('material') == '': # remove + if alarmkeycar.kid != 0 and request.form.get('cars1') == request.form.get('cars2') == request.form.get('material') == '': # remove db.session.delete(alarmkeycar) db.session.commit() diff --git a/emonitor/modules/alarmkeys/templates/admin.alarmkeys_actions.html b/emonitor/modules/alarmkeys/templates/admin.alarmkeys_actions.html index 86cdfb9..9c1435c 100644 --- a/emonitor/modules/alarmkeys/templates/admin.alarmkeys_actions.html +++ b/emonitor/modules/alarmkeys/templates/admin.alarmkeys_actions.html @@ -26,12 +26,12 @@

{{ _('alarmkeys.header.edit') }}

{%- if type>0 or type==-2 %}

@@ -83,17 +83,19 @@

{{ _('alarmkeys.header.edit') }}

{{ car.dept.shortname }}
{{ car.name }} {%- endif %} + {% else %} +

{{ _('alarmkeys.nocars') }}

{%- endfor %}

{%- if type in [0, -1] %} - + {%- else %} - + {%- endif %} - +

diff --git a/emonitor/modules/alarmobjects/alarmobjecttype.py b/emonitor/modules/alarmobjects/alarmobjecttype.py index 0a2165c..8346a91 100644 --- a/emonitor/modules/alarmobjects/alarmobjecttype.py +++ b/emonitor/modules/alarmobjects/alarmobjecttype.py @@ -26,4 +26,7 @@ def getAlarmObjectTypes(id=0): if id != 0: return AlarmObjectType.query.filter_by(id=id).first() else: - return AlarmObjectType.query.order_by(collate(AlarmObjectType.name, 'NOCASE')).all() + try: + return AlarmObjectType.query.order_by(collate(AlarmObjectType.name, 'NOCASE')).all() + except: + return AlarmObjectType.query.order_by(AlarmObjectType.name).all() diff --git a/emonitor/modules/alarmobjects/content_admin.py b/emonitor/modules/alarmobjects/content_admin.py index 5cff1cc..7d17b56 100644 --- a/emonitor/modules/alarmobjects/content_admin.py +++ b/emonitor/modules/alarmobjects/content_admin.py @@ -12,7 +12,6 @@ from emonitor.modules.alarmobjects.alarmobjectfile import AlarmObjectFile - def getAdminContent(self, **params): """ Deliver admin content of module alarmobjects @@ -99,10 +98,11 @@ def chunks(l, n): elif request.form.get('action') == 'savealarmobjectaao': # save aao alarmobject = AlarmObject.getAlarmObjects(id=request.form.get('alarmobject_id')) - alarmobject.set('cars1', [c for c in request.form.get('cars1').split(';') if c != '']) - alarmobject.set('cars2', [c for c in request.form.get('cars2').split(';') if c != '']) - alarmobject.set('material', [c for c in request.form.get('material').split(';') if c != '']) - db.session.commit() + if alarmobject: + alarmobject.set('cars1', [c for c in request.form.get('cars1').split(';') if c != '']) + alarmobject.set('cars2', [c for c in request.form.get('cars2').split(';') if c != '']) + alarmobject.set('material', [c for c in request.form.get('material').split(';') if c != '']) + db.session.commit() elif request.form.get('action').startswith('editalarmobject_'): # edit alarmobject alarmobject = AlarmObject.getAlarmObjects(id=int(request.form.get('action').split('_')[-1])) diff --git a/emonitor/modules/alarmobjects/templates/admin.alarmobjects.types_action.html b/emonitor/modules/alarmobjects/templates/admin.alarmobjects.types_action.html index 40e6576..0747519 100644 --- a/emonitor/modules/alarmobjects/templates/admin.alarmobjects.types_action.html +++ b/emonitor/modules/alarmobjects/templates/admin.alarmobjects.types_action.html @@ -15,7 +15,7 @@

{{ _('alarmobjects.type.edittitle') }}

@@ -27,7 +27,7 @@

{{ _('alarmobjects.type.edittitle') }}

 

- +

diff --git a/emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html b/emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html index 521b6ac..f6b4f43 100644 --- a/emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html +++ b/emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html @@ -46,9 +46,9 @@

{{ _('admin.alarmobjects.header.edit') }}

@@ -64,7 +64,7 @@

{{ _('admin.alarmobjects.header.edit') }}

@@ -81,9 +81,11 @@

{{ _('admin.alarmobjects.header.edit') }}

@@ -120,7 +122,7 @@

{{ _('admin.alarmobjects.header.edit') }}

- +

@@ -136,10 +138,13 @@

{{ _('admin.alarmobjects.header.edit') }}

+ {%- else %} +

{{ _('admin.alarmobject.nofields') }}

+ {%- endfor %}

- +

@@ -188,6 +193,8 @@

{{ _('admin.alarmobjects.header.edit') }}

{{ carname(car) }} {%- endif %} + {%- else %} +

{{ _('alarmkeys.nocars') }}

{%- endfor %}
@@ -196,7 +203,7 @@

{{ _('admin.alarmobjects.header.edit') }}

- +

@@ -234,7 +241,9 @@

{{ _('admin.alarmobject.file') }}

cloudmade = new L.TileLayer('{{ map.tileserver }}', {minZoom: 12, maxZoom: 18}); - map.setView(new L.LatLng($('#lat').val(), $('#lng').val()), $('#zoom').val()).addLayer(cloudmade); + if ($('#lat').val()!=''){ + map.setView(new L.LatLng($('#lat').val(), $('#lng').val()), $('#zoom').val()).addLayer(cloudmade); + } map.on('dblclick', function(e){map.panTo(new L.LatLng(e.latlng.lat, e.latlng.lng));}); map.on('moveend', function(e){ $('#edit_position').attr('checked', true); @@ -242,10 +251,14 @@

{{ _('admin.alarmobject.file') }}

}); function setPosition(){ - var pos = map.getCenter(); - $('#lat').val(pos.lat); - $('#lng').val(pos.lng); - $('#zoom').val(map.getZoom()); + try{ + var pos = map.getCenter(); + $('#lat').val(pos.lat); + $('#lng').val(pos.lng); + $('#zoom').val(map.getZoom()); + }catch(err){ + return false; + } } function getMapPosition(streetid){ diff --git a/emonitor/modules/alarms/alarm.py b/emonitor/modules/alarms/alarm.py index ec18a3e..5d8179c 100644 --- a/emonitor/modules/alarms/alarm.py +++ b/emonitor/modules/alarms/alarm.py @@ -491,7 +491,6 @@ def handleEvent(eventname, **kwargs): t = datetime.datetime.now() alarm = Alarm(t, alarm_fields['key'][0], 1, 0) - db.session.add(alarm) alarm.set('id.key', alarm_fields['key'][1]) alarm.material = dict(cars1='', cars2='', material='') # set required attributes alarm.set('marker', '0') @@ -684,6 +683,7 @@ def handleEvent(eventname, **kwargs): kwargs['time'].append('alarm creation done in %s sec.' % (etime - stime)) if kwargs['mode'] != 'test': + db.session.add(alarm) db.session.commit() signal.send('alarm', 'added', alarmid=alarm.id) Alarm.changeState(alarm.id, 1) # activate alarm diff --git a/emonitor/modules/alarms/alarmutils.py b/emonitor/modules/alarms/alarmutils.py index 1cc0daa..c8c721c 100644 --- a/emonitor/modules/alarms/alarmutils.py +++ b/emonitor/modules/alarms/alarmutils.py @@ -126,7 +126,7 @@ def set_material(self, material): def get_key(self): # deliver alarmkey object if self.get('id.key') and self.get('id.key') not in ['None', '0']: - return Alarmkey.query.filter_by(id=self.get('id.key')).one() + return Alarmkey.query.filter_by(id=self.get('id.key')).scalar() else: k = Alarmkey(u'', u'%s' % self._key, u'', u'-not in list-') k.id = 0 @@ -259,7 +259,9 @@ def getAlarmRoute(alarm): if alarm.get('lat', '') != '': params = {'format': 'kml', 'flat': Settings.get('homeLat'), 'flon': Settings.get('homeLng'), 'tlat': alarm.get('lat'), 'tlon': alarm.get('lng'), 'v': 'motorcar', 'fast': '1', 'layer': 'mapnik', 'instructions': '1', 'lang': current_app.config.get('BABEL_DEFAULT_LOCALE')} else: - params = {'format': 'kml', 'flat': Settings.get('homeLat'), 'flon': Settings.get('homeLng'), 'tlat': alarm.object.lat, 'tlon': alarm.object.lng, 'v': 'motorcar', 'fast': '1', 'layer': 'mapnik', 'instructions': '1', 'lang': current_app.config.get('BABEL_DEFAULT_LOCALE')} + params = {'format': 'kml', 'flat': Settings.get('homeLat'), 'flon': Settings.get('homeLng'), 'tlat': 0, 'tlon': 0, 'v': 'motorcar', 'fast': '1', 'layer': 'mapnik', 'instructions': '1', 'lang': current_app.config.get('BABEL_DEFAULT_LOCALE')} + if alarm.object: + params.update({'tlat': alarm.object.lat, 'tlon': alarm.object.lng}) try: r = requests.get(alarm.ROUTEURL, params=params) tree = ET.fromstring(r.content) diff --git a/emonitor/modules/alarms/content_admin.py b/emonitor/modules/alarms/content_admin.py index 584d6eb..72f1fa5 100644 --- a/emonitor/modules/alarms/content_admin.py +++ b/emonitor/modules/alarms/content_admin.py @@ -204,7 +204,7 @@ def getAdminContent(self, **params): return render_template('admin.alarms.config.html', **params) elif module[1] == 'test': - params.update({'uploadfileformat': filter(None, sum([Settings.get('ocr.inputformat')], Settings.get('ocr.inputtextformat', [])))}) + params.update({'uploadfileformat': filter(None, sum([Settings.get('ocr.inputformat', []), Settings.get('ocr.inputtextformat', [])], []))}) return render_template('admin.alarms.test.html', **params) else: diff --git a/emonitor/modules/alarms/templates/admin.alarms.config.html b/emonitor/modules/alarms/templates/admin.alarms.config.html index 6bbc7ee..243c330 100644 --- a/emonitor/modules/alarms/templates/admin.alarms.config.html +++ b/emonitor/modules/alarms/templates/admin.alarms.config.html @@ -101,6 +101,8 @@ {{ carname(car) }} {%- endif %} + {%- else %} +

{{ _('alarmkeys.nocars') }}

{%- endfor %}
diff --git a/emonitor/modules/alarms/templates/admin.alarms.type_actions.html b/emonitor/modules/alarms/templates/admin.alarms.type_actions.html index c598408..a89e78e 100644 --- a/emonitor/modules/alarms/templates/admin.alarms.type_actions.html +++ b/emonitor/modules/alarms/templates/admin.alarms.type_actions.html @@ -19,11 +19,6 @@

{{ _('alarms.type.header.overview') }}

{{ _('alarms.type.info') }}

-

- -

+

+ +

{{ _('alarms.type.header.overview') }}

- +

@@ -71,6 +71,7 @@

{{ _('alarms.type.header.overview') }}

return false; } }); + $("input[name='edit_name']").val($("select[name='edit_interpreter'] option:selected").text()); return false; }); }); diff --git a/emonitor/modules/cars/content_admin.py b/emonitor/modules/cars/content_admin.py index 21f9a03..eb3d2fa 100644 --- a/emonitor/modules/cars/content_admin.py +++ b/emonitor/modules/cars/content_admin.py @@ -48,9 +48,9 @@ def getAdminContent(self, **params): elif request.form.get('action').startswith('deletecars_'): # delete car db.session.delete(Car.getCars(id=request.form.get('action').split('_')[-1])) db.session.commit() - #try: - # params.update({'cars': classes.get('department').getDepartments(module[1]).getCars()}) - #except AttributeError: - # params.update({'cars': []}) - params.update({'cars': Department.getDepartments(module[1]).getCars()}) + try: + cars = Department.getDepartments(module[1]).getCars() + except AttributeError: + cars = [] + params.update({'cars': cars}) return render_template('admin.cars.html', **params) diff --git a/emonitor/modules/cars/templates/admin.cars_edit.html b/emonitor/modules/cars/templates/admin.cars_edit.html index 9eba741..97ab19c 100644 --- a/emonitor/modules/cars/templates/admin.cars_edit.html +++ b/emonitor/modules/cars/templates/admin.cars_edit.html @@ -10,7 +10,7 @@

{{ _('cars.header.edit') }}

@@ -20,7 +20,7 @@

{{ _('cars.header.edit') }}

{{ _('cars.header.edit') }}

- +

diff --git a/emonitor/modules/events/templates/admin.events_actions.html b/emonitor/modules/events/templates/admin.events_actions.html index 5436e4d..28c8813 100644 --- a/emonitor/modules/events/templates/admin.events_actions.html +++ b/emonitor/modules/events/templates/admin.events_actions.html @@ -6,7 +6,7 @@

{{ _('event.edittitle') }}

{{ _('event.event') }}:
- {{ _('trigger.'+handler.event) }} +

{{ _('trigger.'+handler.event) }}

@@ -21,7 +21,7 @@

{{ _('event.edittitle') }}

- +

diff --git a/emonitor/modules/mapitems/templates/admin.mapitems.definition_actions.html b/emonitor/modules/mapitems/templates/admin.mapitems.definition_actions.html index 9dd6390..cc5963c 100644 --- a/emonitor/modules/mapitems/templates/admin.mapitems.definition_actions.html +++ b/emonitor/modules/mapitems/templates/admin.mapitems.definition_actions.html @@ -16,7 +16,7 @@

{{ _('mapitems.header.edit') }}

@@ -70,7 +70,7 @@

{{ _('mapitems.header.edit') }}

- +

diff --git a/emonitor/modules/maps/map_utils.py b/emonitor/modules/maps/map_utils.py index 91d7816..7652874 100644 --- a/emonitor/modules/maps/map_utils.py +++ b/emonitor/modules/maps/map_utils.py @@ -68,17 +68,17 @@ def t2pixel(pt): for i in range(dimx / 2 * - 1, dimx / 2 + 1): for j in range(dimy / 2 * -1, dimy / 2 + 1): - if not os.path.exists("%s%s/%s/%s-%s.png" % (tilepath, alarm.getMap().path, zoom, t[0] + i, t[1] + j)): + if not os.path.exists("{}{}/{}/{}-{}.png".format(tilepath, alarm.getMap().path, zoom, t[0] + i, t[1] + j)): from emonitor.tileserver.tileserver import getTilePath # load tile from web getTilePath(alarm.getMap().path, zoom, t[0] + i, t[1] + j) - img_tile = Image.open("%s%s/%s/%s-%s.png" % (tilepath, alarm.getMap().path, zoom, t[0] + i, t[1] + j)) + img_tile = Image.open("{}{}/{}/{}-{}.png".format(tilepath, alarm.getMap().path, zoom, t[0] + i, t[1] + j)) img_map.paste(img_tile, (dimx / 2 * 256 + (i * 256), dimy / 2 * 256 + (j * 256))) #if alarm.key.category.startswith('B'): for item in items: if item['parameters']['tileserver'] == '1': - if os.path.exists("%s%s/%s/%s-%s.png" % (tilepath, item['name'], zoom, t[0] + i, t[1] + j)): - img_tmp = Image.open("%s%s/%s/%s-%s.png" % (tilepath, item['name'], zoom, t[0] + i, t[1] + j)) + if os.path.exists("{}{}/{}/{}-{}.png".format(tilepath, item['name'], zoom, t[0] + i, t[1] + j)): + img_tmp = Image.open("{}{}/{}/{}-{}.png".format(tilepath, item['name'], zoom, t[0] + i, t[1] + j)) img_map.paste(img_tmp, (dimx / 2 * 256 + (i * 256), dimy / 2 * 256 + (j * 256)), mask=img_tmp) if len(points) > 0: # draw house @@ -127,11 +127,12 @@ def getCoords(zoom): # eval tiles for zoom factor # image map img_map = Image.new('RGBA', ((len(tiles['lat']) - 1) * 256, (len(tiles['lng']) - 1) * 256), (255, 255, 255, 255)) for i in range(tiles['lat'][0], tiles['lat'][-1]): - for j in range(tiles['lng'][0], tiles['lng'][-1]): - if not os.path.exists("%s%s/%s/%s-%s.png" % (tilepath, alarm.getMap().path, zoom, i, j)): - getTileFromURL(zoom, "%s%s/%s/%s-%s.png" % (tilepath, alarm.getMap().path, zoom, i, j), i, j) - img_tile = Image.open("%s%s/%s/%s-%s.png" % (tilepath, alarm.getMap().path, zoom, i, j)) - img_map.paste(img_tile, (tiles['lat'].index(i) * 256, tiles['lng'].index(j) * 256)) + if alarm.getMap(): + for j in range(tiles['lng'][0], tiles['lng'][-1]): + if not os.path.exists("{}{}/{}/{}-{}.png".format(tilepath, alarm.getMap().path, zoom, i, j)): + getTileFromURL(zoom, "{}{}/{}/{}-{}.png".format(tilepath, alarm.getMap().path, zoom, i, j), i, j) + img_tile = Image.open("{}{}/{}/{}-{}.png".format(tilepath, alarm.getMap().path, zoom, i, j)) + img_map.paste(img_tile, (tiles['lat'].index(i) * 256, tiles['lng'].index(j) * 256)) img_map = img_map.convert('LA').convert('RGBA') # convert background to grayscale @@ -170,8 +171,8 @@ def loadTiles(path, tilelist): def doLoadTiles(**kwargs): def getTile(zoom, item): - response = urllib2.urlopen('http://a.tile.openstreetmap.org/%s/%s/%s.png' % (zoom, item[0], item[1])) - with open('%s/%s/%s-%s.png' % (path, zoom, item[0], item[1]), 'wb') as fout: + response = urllib2.urlopen('http://a.tile.openstreetmap.org/{}/{}/{}.png'.format(zoom, item[0], item[1])) + with open('{}/{}/{}-{}.png'.format(path, zoom, item[0], item[1]), 'wb') as fout: fout.write(response.read()) if item in CURRENTLOADING: CURRENTLOADING.remove(item) @@ -189,8 +190,8 @@ def getTile(zoom, item): errortiles = [] for zoom in tilelist: - if not os.path.exists('%s/%s' % (path, zoom)): - os.makedirs('%s/%s' % (path, zoom)) + if not os.path.exists('{}/{}'.format(path, zoom)): + os.makedirs('{}/{}'.format(path, zoom)) for item in tilelist[zoom]: if len(CURRENTLOADING) == 0: # loding stopped or ended return @@ -236,7 +237,7 @@ def loadPositionOfCity(name): :param name: name of city as string :return: dict with cities sorted by name """ - SEARCHSTRING = 'node["name"~"%s"]["place"~"town|village"];(._;>;);out;' % name # search all cities with given name + SEARCHSTRING = 'node["name"~"{}"]["place"~"town|village"];(._;>;);out;'.format(name) # search all cities with given name r = requests.post('http://overpass-api.de/api/interpreter', data={'data': SEARCHSTRING}) cities = [] xmldoc = minidom.parseString(r.content) diff --git a/emonitor/modules/maps/templates/admin.map.position.html b/emonitor/modules/maps/templates/admin.map.position.html index b2910ea..8d37b03 100644 --- a/emonitor/modules/maps/templates/admin.map.position.html +++ b/emonitor/modules/maps/templates/admin.map.position.html @@ -8,6 +8,8 @@ #searchresult p.loading {text-align:center; padding: 5px; } p.cityresult { width: 50%; float: left; padding: 5px; } p.cityresult #rname{ font-weight: bolder; cursor: pointer; } + p.cityresult:hover {cursor:pointer;background-color:silver;} + .leaflet-control-attribution {display:none;} {% endblock %} @@ -27,7 +29,7 @@

{{ _('settings.map.positiontitle') }}

diff --git a/emonitor/modules/maps/templates/admin.map_actions.html b/emonitor/modules/maps/templates/admin.map_actions.html index 2a1e1f3..bdfff6c 100644 --- a/emonitor/modules/maps/templates/admin.map_actions.html +++ b/emonitor/modules/maps/templates/admin.map_actions.html @@ -31,7 +31,7 @@

{{ _('settings.map.edittitle') }}

@@ -61,7 +61,7 @@

{{ _('settings.map.edittitle') }}

 

- +

diff --git a/emonitor/modules/monitors/templates/admin.monitors_actions.html b/emonitor/modules/monitors/templates/admin.monitors_actions.html index 46843a1..cf2a518 100644 --- a/emonitor/modules/monitors/templates/admin.monitors_actions.html +++ b/emonitor/modules/monitors/templates/admin.monitors_actions.html @@ -9,7 +9,7 @@

{{ _('monitors.edit.monitor') }}

@@ -40,7 +40,7 @@

{{ _('monitors.edit.monitor') }}

- +

diff --git a/emonitor/modules/printers/content_admin.py b/emonitor/modules/printers/content_admin.py index 126a153..a83e9e1 100644 --- a/emonitor/modules/printers/content_admin.py +++ b/emonitor/modules/printers/content_admin.py @@ -48,7 +48,7 @@ def _printernames(callstring): def _templates(): # get all printer templates templates = {} for root, dirs, files in os.walk("{}/emonitor/modules/".format(current_app.config.get('PROJECT_ROOT'))): - mod = root.replace("{}/emonitor/modules/".format(current_app.config.get('PROJECT_ROOT'), '').replace('\\templates', '')) + mod = root.replace("{}/emonitor/modules/".format(current_app.config.get('PROJECT_ROOT')), '').replace('\\templates', '') for f in files: if f.endswith('.html') and f.startswith('print.'): if mod not in templates: diff --git a/emonitor/modules/printers/templates/admin.printers_actions.html b/emonitor/modules/printers/templates/admin.printers_actions.html index f795d28..7e606be 100644 --- a/emonitor/modules/printers/templates/admin.printers_actions.html +++ b/emonitor/modules/printers/templates/admin.printers_actions.html @@ -19,7 +19,7 @@

{{ _('printers.header.edit') }}

@@ -65,7 +65,7 @@

{{ _('printers.header.edit') }}

- +

diff --git a/emonitor/modules/settings/content_admin.py b/emonitor/modules/settings/content_admin.py index 0f7ebea..dd81572 100644 --- a/emonitor/modules/settings/content_admin.py +++ b/emonitor/modules/settings/content_admin.py @@ -1,12 +1,10 @@ import os -import werkzeug from flask import request, render_template, current_app, redirect from emonitor.modules.settings.department import Department from emonitor.modules.settings.settings import Settings from emonitor.modules.streets.city import City from emonitor.extensions import alembic, db, babel, scheduler from emonitor.scheduler import eMonitorIntervalTrigger -from emonitor.modules.alarms.alarm import Alarm def getAdminContent(self, **params): @@ -58,7 +56,7 @@ def chunks(l, n): db.session.commit() elif request.form.get('action') == 'createdepartment': # add department - params.update({'department': Department('', '', '', 0)}) + params.update({'department': Department('', '', '', 0), 'cities': City.getCities()}) return render_template('admin.settings.department_actions.html', **params) elif request.form.get('action').startswith('detaildept_'): # edit department diff --git a/emonitor/modules/settings/templates/admin.settings.department_actions.html b/emonitor/modules/settings/templates/admin.settings.department_actions.html index cff6f22..bcb259e 100644 --- a/emonitor/modules/settings/templates/admin.settings.department_actions.html +++ b/emonitor/modules/settings/templates/admin.settings.department_actions.html @@ -22,7 +22,7 @@

{{ _('settings.department.edittitle') }}

@@ -82,10 +82,10 @@

{{ _('settings.department.edittitle') }}

@@ -98,7 +98,7 @@

{{ _('settings.department.edittitle') }}

 

- +

diff --git a/emonitor/modules/streets/content_admin.py b/emonitor/modules/streets/content_admin.py index 9887d2c..04f26a9 100644 --- a/emonitor/modules/streets/content_admin.py +++ b/emonitor/modules/streets/content_admin.py @@ -179,10 +179,10 @@ def getAdminData(self): if 'streetid' in request.args: streets = Street.getStreets(id=int(request.args.get('streetid'))) elif 'cityid' in request.args: - streets = City.getCities(id=request.args.get('cityid')) + streets = [City.getCities(id=request.args.get('cityid'))] else: streets = Street.getStreets() - return str(scheduler.add_job(loadHousenumbersFromOsm, args=streets)) + return str(scheduler.add_job(loadHousenumbersFromOsm, args=[streets])) elif request.args.get('action') == 'loadhnumbers': # load all housenumbers for street street = Street.getStreets(id=request.args.get('streetid')) diff --git a/emonitor/modules/streets/street.py b/emonitor/modules/streets/street.py index 2e629ab..e95533e 100644 --- a/emonitor/modules/streets/street.py +++ b/emonitor/modules/streets/street.py @@ -78,7 +78,7 @@ def getStreets(id=0, cityid=0): :return: list of :py:class:`emonitor.modules.streets.street.Street` """ if id != 0: - return Street.query.filter_by(id=id).one() + return Street.query.filter_by(id=id).scalar() if cityid != 0: return Street.query.filter_by(cityid=cityid).order_by(Street.name).all() else: diff --git a/emonitor/modules/translations/de/LC_MESSAGES/modules.mo b/emonitor/modules/translations/de/LC_MESSAGES/modules.mo index 108e6fc08d278c2d3ed9dfd4c8bf08a30b227d33..f4414037263832d4687222391744bd36791e95f8 100644 GIT binary patch delta 20700 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 OtlgA*{hEt|tN#x&80s+q delta 20603 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\n" "Language-Team: de \n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 1.3\n" -"Language: de\n" -"X-Generator: Poedit 1.6.5\n" #: emonitor/modules/__init__.py:28 msgid "module.startpages" @@ -64,9 +62,9 @@ msgstr "Ausrückeordnung Übersicht" #: emonitor/modules/alarmkeys/templates/admin.alarmkeys_actions.html:23 msgid "alarmkeys.info" msgstr "" -"In der Ausrückeordnung wird die Reihenfolge der ausrückenden Fahrzeuge je " -"Alarmstichwort definiert. Es kann eine Standardausrückereihenfolge definiert " -"werden, die verwendet wird, falls für ein Alarmstichwort keine " +"In der Ausrückeordnung wird die Reihenfolge der ausrückenden Fahrzeuge je" +" Alarmstichwort definiert. Es kann eine Standardausrückereihenfolge " +"definiert werden, die verwendet wird, falls für ein Alarmstichwort keine " "Ausrückereihenfolge vorhanden ist.
    Je Einheit kann die Reihenfolge " "gesondert, abhängig der verfügbaren Fahrzeuge erstellt werden." @@ -157,8 +155,8 @@ msgstr "Definitionsdatei hochladen" #: emonitor/modules/alarmkeys/templates/admin.alarmkeys.upload.html:23 msgid "alarmkeys.upload.info" msgstr "" -"Die Ausrückeordnung kann konfigurierbar über eine Excel-Datei hochgeladen " -"werden." +"Die Ausrückeordnung kann konfigurierbar über eine Excel-Datei hochgeladen" +" werden." #: emonitor/modules/alarmkeys/templates/admin.alarmkeys.upload.html:26 msgid "alarmkeys.upload.uploadfile" @@ -191,8 +189,8 @@ msgstr "Ausrückeordnung exportieren" #: emonitor/modules/alarmkeys/templates/admin.alarmkeys.upload.html:56 msgid "alarmkeys.upload.tab3info" msgstr "" -"Für die gewählte Einheit kann die Ausrückeordnung als Excel-Datei exportiert " -"werden." +"Für die gewählte Einheit kann die Ausrückeordnung als Excel-Datei " +"exportiert werden." #: emonitor/modules/alarmkeys/templates/admin.alarmkeys.upload.html:59 msgid "alarmkeys.upload.exportall" @@ -217,7 +215,8 @@ msgstr "Daten werden verarbeitet und der Import gestartet..." #: emonitor/modules/alarmkeys/templates/admin.alarmkeys.upload.html:93 msgid "alarmkeys.upload.wrongfiletype" msgstr "" -"Falscher Dateityp ausgewählt. Es können nur Excel-Dateien hochgeladen werden." +"Falscher Dateityp ausgewählt. Es können nur Excel-Dateien hochgeladen " +"werden." #: emonitor/modules/alarmkeys/templates/admin.alarmkeys.upload2.html:2 msgid "alarmkeys.upload.step2header" @@ -347,15 +346,21 @@ msgstr "Bemerkung" msgid "alarmkeys.allcars" msgstr "Sonstige Fahrzeuge/Material" -#: emonitor/modules/alarmkeys/templates/admin.alarmkeys_actions.html:92 +#: emonitor/modules/alarmkeys/templates/admin.alarmkeys_actions.html:87 +#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:197 +#: emonitor/modules/alarms/templates/admin.alarms.config.html:105 +msgid "alarmkeys.nocars" +msgstr "- Keine Fahrzeuge/Material vorhanden -" + +#: emonitor/modules/alarmkeys/templates/admin.alarmkeys_actions.html:94 msgid "alarmkey.savedefault" msgstr "Speichern" -#: emonitor/modules/alarmkeys/templates/admin.alarmkeys_actions.html:94 +#: emonitor/modules/alarmkeys/templates/admin.alarmkeys_actions.html:96 msgid "alarmkey.save" msgstr "Speichern" -#: emonitor/modules/alarmkeys/templates/admin.alarmkeys_actions.html:96 +#: emonitor/modules/alarmkeys/templates/admin.alarmkeys_actions.html:98 msgid "alarmkey.cancel" msgstr "Abbrechen" @@ -435,15 +440,16 @@ msgstr "Einsatzobjekte-Übersicht" #: emonitor/modules/alarmobjects/templates/admin.alarmobjects.html:21 msgid "alarmobjects.info" msgstr "" -"Für spezielle Einsatzobjekte können Zusatzinformationen hinterlegt werden. " -"Hier ist dann eine eigene Kartendarstellung mit Zusatzdaten möglich." +"Für spezielle Einsatzobjekte können Zusatzinformationen hinterlegt " +"werden. Hier ist dann eine eigene Kartendarstellung mit Zusatzdaten " +"möglich." #: emonitor/modules/alarmobjects/templates/admin.alarmobjects.html:24 msgid "alarmobjects.notypesfound" msgstr "" -"Definition unvollständig: Einsatzobjekte müssen immer einen Typ hinterlegt " -"haben. Der Typ kann hier angelegt " -"werden." +"Definition unvollständig: Einsatzobjekte müssen immer einen Typ " +"hinterlegt haben. Der Typ kann hier angelegt werden." #: emonitor/modules/alarmobjects/templates/admin.alarmobjects.html:30 msgid "alarmobjects.name" @@ -500,8 +506,8 @@ msgstr "Einsatzobjekt-Typenliste" #: emonitor/modules/alarmobjects/templates/admin.alarmobjects.types.html:17 msgid "alarmobjects.types.info" msgstr "" -"Einsatzobjekte besitzen eine Typ-Definition, die an dieser Stelle erstellt " -"und gepflegt werden kann." +"Einsatzobjekte besitzen eine Typ-Definition, die an dieser Stelle " +"erstellt und gepflegt werden kann." #: emonitor/modules/alarmobjects/templates/admin.alarmobjects.types.html:22 msgid "alarmobjects.types.name" @@ -516,6 +522,7 @@ msgid "alarmobjects.types.addtitle" msgstr "Einsatzobjekttyp hinzufügen" #: emonitor/modules/alarmobjects/templates/admin.alarmobjects.types.html:29 +#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:88 msgid "alarmobjects.types.nodata" msgstr "- keine Einsatzobjekttypen definiert -" @@ -538,8 +545,8 @@ msgstr "Einsatzobjekt-Typ bearbeiten" #: emonitor/modules/alarmobjects/templates/admin.alarmobjects.types_action.html:13 msgid "alarmobjects.type.info" msgstr "" -"Einsatzobjekte besitzen eine Typ-Definition, die an dieser Stelle erstellt " -"und gepflegt werden kann." +"Einsatzobjekte besitzen eine Typ-Definition, die an dieser Stelle " +"erstellt und gepflegt werden kann." #: emonitor/modules/alarmobjects/templates/admin.alarmobjects.types_action.html:17 msgid "alarmobjects.type.name" @@ -574,7 +581,7 @@ msgid "admin.alarmobjects.aao" msgstr "Ausrückeordnung" #: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:51 -#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:208 +#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:215 msgid "admin.alarmobjects.files" msgstr "Dateien zum Einsatzobjekt" @@ -596,380 +603,384 @@ msgstr "Straße Haus-Nr." msgid "admin.alarmobjects.objecttype" msgstr "Einsatzobjekt-Typ" -#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:92 +#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:94 msgid "admin.alarmobjects.alarmplan" msgstr "Einsatzplan" -#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:93 +#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:95 msgid "admin.alarmobjects.alarmplaninfo" msgstr "(falls vorhanden)" -#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:97 +#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:99 msgid "admin.alarmobjects.active" msgstr "aktiv" -#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:102 +#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:104 msgid "admin.alarmobjects.bma" msgstr "Brandmeldeanlagen Nr." -#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:107 +#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:109 msgid "admin.alarmobjects.remark" msgstr "Bemerkung/Informationen" -#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:113 +#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:115 msgid "admin.alarmobjects.updateposition" msgstr "Kartenposition aktualiseren" -#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:122 -#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:141 -#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:198 +#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:124 +#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:146 +#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:205 msgid "admin.alarmobjects.save" msgstr "Speichern" -#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:123 -#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:142 -#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:199 +#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:125 +#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:147 +#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:206 msgid "admin.alarmobjects.cancel" msgstr "Abbrechen" -#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:150 +#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:142 +msgid "admin.alarmobject.nofields" +msgstr "- keine Einsatzobjekt-Felder definiert -" + +#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:155 msgid "admin.alarmobject.aaoinfo" msgstr "" -"Für das Einsatzobjekt kann eine eigene Ausrückeordnung definiert werden, die " -"unabhängig vom Einsatzstichwort verwendet wird, wenn dieses Objekt " +"Für das Einsatzobjekt kann eine eigene Ausrückeordnung definiert werden, " +"die unabhängig vom Einsatzstichwort verwendet wird, wenn dieses Objekt " "angefahren werden soll." -#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:154 +#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:159 msgid "admin.alarmobject.cars1" msgstr "Primärfahrzeug(e)" -#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:164 +#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:169 msgid "admin.alarmobject.cars2" msgstr "Folgefahrzeug(e)" -#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:173 +#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:178 msgid "admin.alarmobject.material" msgstr "Sondermaterial" -#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:182 +#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:187 msgid "admin.alarmobject.allcars" msgstr "Sonstige Fahrzeuge/Material" -#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:215 +#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:222 msgid "admin.alarmobject.file" msgstr "Datei zum Einsatzobjekt hinzufügen" -#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:216 +#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:223 msgid "admin.alarmobject.filename" msgstr "Beschreibung der Datei (Name)" -#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:222 +#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:229 msgid "admin.alarmobject.filestart" msgstr "Datei hochladen" -#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:263 +#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:276 msgid "admin.alarmobjects.delfilequestion" msgstr "Soll die gewählte Datei wirklich gelöscht werden?" -#: emonitor/modules/alarms/__init__.py:100 +#: emonitor/modules/alarms/__init__.py:99 msgid "module.alarms" msgstr "Einsätze" -#: emonitor/modules/alarms/__init__.py:101 +#: emonitor/modules/alarms/__init__.py:100 msgid "alarms.base" msgstr "Einsatzübersicht" -#: emonitor/modules/alarms/__init__.py:102 +#: emonitor/modules/alarms/__init__.py:101 msgid "module.alarms.types" msgstr "Einsatz-Typen " -#: emonitor/modules/alarms/__init__.py:103 +#: emonitor/modules/alarms/__init__.py:102 msgid "module.alarms.report" msgstr "Einsatz-Berichte" -#: emonitor/modules/alarms/__init__.py:104 +#: emonitor/modules/alarms/__init__.py:103 msgid "module.alarms.config" msgstr "Einsatz-Konfiguration" -#: emonitor/modules/alarms/__init__.py:105 +#: emonitor/modules/alarms/__init__.py:104 msgid "module.alarms.test" msgstr "Testverarbeitung" -#: emonitor/modules/alarms/__init__.py:106 +#: emonitor/modules/alarms/__init__.py:105 msgid "alarms_income" msgstr "Alarmeingang" -#: emonitor/modules/alarms/__init__.py:107 +#: emonitor/modules/alarms/__init__.py:106 msgid "alarms_timer" msgstr "Timer" -#: emonitor/modules/alarms/__init__.py:108 +#: emonitor/modules/alarms/__init__.py:107 msgid "alarms_remark" msgstr "Bemerkung" -#: emonitor/modules/alarms/__init__.py:109 +#: emonitor/modules/alarms/__init__.py:108 msgid "alarms" msgstr "Einsatz" -#: emonitor/modules/alarms/__init__.py:110 +#: emonitor/modules/alarms/__init__.py:109 msgid "alarms.prio0" msgstr "Niedrige Priorität" -#: emonitor/modules/alarms/__init__.py:111 +#: emonitor/modules/alarms/__init__.py:110 msgid "alarms.prio1" msgstr "Normale Priorität" -#: emonitor/modules/alarms/__init__.py:112 +#: emonitor/modules/alarms/__init__.py:111 msgid "alarms.prio2" msgstr "Hohe Priorität" -#: emonitor/modules/alarms/__init__.py:113 +#: emonitor/modules/alarms/__init__.py:112 msgid "emonitor.modules.alarms.alarm.Alarms" msgstr "Alarmerstellung" -#: emonitor/modules/alarms/__init__.py:114 +#: emonitor/modules/alarms/__init__.py:113 msgid "emonitor.modules.alarms.alarmtype.AlarmTypes" msgstr "Alarm-Typ" -#: emonitor/modules/alarms/__init__.py:115 +#: emonitor/modules/alarms/__init__.py:114 #: emonitor/modules/alarms/templates/admin.alarms.test.html:68 #: emonitor/modules/alarms/templates/admin.alarms.test.html:70 msgid "alarms.test.protocol" msgstr "Verarbeitungs-Protokoll" -#: emonitor/modules/alarms/__init__.py:116 +#: emonitor/modules/alarms/__init__.py:115 msgid "alarms.test.result" msgstr "Verarbeitungs-Ergebnis" -#: emonitor/modules/alarms/__init__.py:117 +#: emonitor/modules/alarms/__init__.py:116 msgid "alarmstate.active" msgstr "Laufende Einsätze" -#: emonitor/modules/alarms/__init__.py:118 +#: emonitor/modules/alarms/__init__.py:117 msgid "alarmstate.created" msgstr "Offene Einsätze" -#: emonitor/modules/alarms/__init__.py:119 +#: emonitor/modules/alarms/__init__.py:118 msgid "alarmstate.done" msgstr "Abgeschlossene Einsätze" -#: emonitor/modules/alarms/__init__.py:120 +#: emonitor/modules/alarms/__init__.py:119 #: emonitor/modules/alarms/templates/admin.alarms.html:55 msgid "alarmstate.archive" msgstr "Einsatz-Archiv" -#: emonitor/modules/alarms/__init__.py:121 +#: emonitor/modules/alarms/__init__.py:120 msgid "active" msgstr "aktiviert" -#: emonitor/modules/alarms/__init__.py:122 +#: emonitor/modules/alarms/__init__.py:121 msgid "created" msgstr "erzeugt" -#: emonitor/modules/alarms/__init__.py:123 +#: emonitor/modules/alarms/__init__.py:122 msgid "done" msgstr "abgeschlossen" -#: emonitor/modules/alarms/__init__.py:124 +#: emonitor/modules/alarms/__init__.py:123 msgid "archive" msgstr "archiviert" -#: emonitor/modules/alarms/__init__.py:125 -#: emonitor/modules/alarms/alarm.py:334 +#: emonitor/modules/alarms/__init__.py:124 emonitor/modules/alarms/alarm.py:334 msgid "alarms.statechangeactivated" msgstr "Einsatz aktiviert" -#: emonitor/modules/alarms/__init__.py:126 +#: emonitor/modules/alarms/__init__.py:125 msgid "alarms.prioshort0" msgstr "Niedrig" -#: emonitor/modules/alarms/__init__.py:127 +#: emonitor/modules/alarms/__init__.py:126 msgid "alarms.prioshort1" msgstr "Normal" -#: emonitor/modules/alarms/__init__.py:128 +#: emonitor/modules/alarms/__init__.py:127 msgid "alarms.prioshort2" msgstr "Hoch" -#: emonitor/modules/alarms/__init__.py:129 +#: emonitor/modules/alarms/__init__.py:128 msgid "alarms.carsinuse" msgstr "" -"Folgende Fahrzeuge/Geräte sind bereits in einem anderen Einsatz eingebunden:" +"Folgende Fahrzeuge/Geräte sind bereits in einem anderen Einsatz " +"eingebunden:" -#: emonitor/modules/alarms/__init__.py:130 +#: emonitor/modules/alarms/__init__.py:129 msgid "history.autochangeState" msgstr "autom. Statusänderung" -#: emonitor/modules/alarms/__init__.py:131 +#: emonitor/modules/alarms/__init__.py:130 msgid "history.message" msgstr "Mitteilung" -#: emonitor/modules/alarms/__init__.py:132 +#: emonitor/modules/alarms/__init__.py:131 msgid "trigger.alarm_added" msgstr "Einsatz hinzugefügt" -#: emonitor/modules/alarms/__init__.py:133 +#: emonitor/modules/alarms/__init__.py:132 msgid "trigger.alarm_changestate" msgstr "Einsatz-Status geändert" -#: emonitor/modules/alarms/__init__.py:135 +#: emonitor/modules/alarms/__init__.py:134 msgid "trigger.alarm_added_sub" msgstr "Einsatz hinzugefügt (%(sub)s)" -#: emonitor/modules/alarms/__init__.py:136 +#: emonitor/modules/alarms/__init__.py:135 msgid "trigger.alarm_changestate_sub" msgstr "Einsatz-Status geändert (%(sub)s)" -#: emonitor/modules/alarms/__init__.py:138 +#: emonitor/modules/alarms/__init__.py:137 #: emonitor/modules/alarms/alarmutils.py:295 msgid "alarms.print.slightleft" msgstr "leicht links" -#: emonitor/modules/alarms/__init__.py:139 +#: emonitor/modules/alarms/__init__.py:138 #: emonitor/modules/alarms/alarmutils.py:295 msgid "alarms.print.slightright" msgstr "leicht rechts" -#: emonitor/modules/alarms/__init__.py:140 +#: emonitor/modules/alarms/__init__.py:139 #: emonitor/modules/alarms/alarmutils.py:295 msgid "alarms.print.right" msgstr "rechts" -#: emonitor/modules/alarms/__init__.py:141 +#: emonitor/modules/alarms/__init__.py:140 #: emonitor/modules/alarms/alarmutils.py:295 msgid "alarms.print.left" msgstr "links" -#: emonitor/modules/alarms/__init__.py:142 +#: emonitor/modules/alarms/__init__.py:141 #: emonitor/modules/alarms/alarmutils.py:295 #: emonitor/modules/alarms/alarmutils.py:310 msgid "alarms.print.straight" msgstr "weiterfahren" -#: emonitor/modules/alarms/__init__.py:143 +#: emonitor/modules/alarms/__init__.py:142 #: emonitor/modules/alarms/alarmutils.py:295 #: emonitor/modules/alarms/alarmutils.py:310 msgid "alarms.print.exit" msgstr "ausfahrt" -#: emonitor/modules/alarms/__init__.py:144 +#: emonitor/modules/alarms/__init__.py:143 #: emonitor/modules/alarms/alarmutils.py:294 msgid "alarms.print.bus" msgstr "bus" -#: emonitor/modules/alarms/__init__.py:145 +#: emonitor/modules/alarms/__init__.py:144 #: emonitor/modules/alarms/alarmutils.py:312 msgid "alarms.print.positive" msgstr "Fahrtrichtung SÜD" -#: emonitor/modules/alarms/__init__.py:146 +#: emonitor/modules/alarms/__init__.py:145 #: emonitor/modules/alarms/alarmutils.py:313 msgid "alarms.print.negative" msgstr "Fahrtrichtung NORD" -#: emonitor/modules/alarms/__init__.py:148 +#: emonitor/modules/alarms/__init__.py:147 msgid "alarms.filter.0" msgstr "alle Einsätze" -#: emonitor/modules/alarms/__init__.py:149 +#: emonitor/modules/alarms/__init__.py:148 msgid "alarms.filter.1" msgstr "Einsätze ein Tag" -#: emonitor/modules/alarms/__init__.py:150 +#: emonitor/modules/alarms/__init__.py:149 msgid "alarms.filter.7" msgstr "Einsätze eine Woche" -#: emonitor/modules/alarms/__init__.py:151 +#: emonitor/modules/alarms/__init__.py:150 msgid "alarms.filter.31" msgstr "Einsätze ein Monat" -#: emonitor/modules/alarms/__init__.py:153 +#: emonitor/modules/alarms/__init__.py:152 msgid "internal" msgstr "intern" -#: emonitor/modules/alarms/__init__.py:154 +#: emonitor/modules/alarms/__init__.py:153 #: emonitor/modules/alarms/templates/admin.alarms.report_fields.html:1 msgid "external" msgstr "extern" -#: emonitor/modules/alarms/__init__.py:156 +#: emonitor/modules/alarms/__init__.py:155 msgid "AFAlerting" msgstr "Alarmierung" -#: emonitor/modules/alarms/__init__.py:157 +#: emonitor/modules/alarms/__init__.py:156 msgid "AFCars" msgstr "Fahrzeuge" -#: emonitor/modules/alarms/__init__.py:158 +#: emonitor/modules/alarms/__init__.py:157 msgid "AFMaterial" msgstr "Geräte/Material" -#: emonitor/modules/alarms/__init__.py:159 -#: emonitor/modules/alarms/alarmfield.py:330 +#: emonitor/modules/alarms/__init__.py:158 +#: emonitor/modules/alarms/alarmfield.py:329 msgid "AFReport" msgstr "Bericht" -#: emonitor/modules/alarms/__init__.py:160 +#: emonitor/modules/alarms/__init__.py:159 msgid "AFTime" msgstr "Zeiten" -#: emonitor/modules/alarms/__init__.py:161 +#: emonitor/modules/alarms/__init__.py:160 msgid "AFDamage" msgstr "Personenschäden" -#: emonitor/modules/alarms/__init__.py:162 +#: emonitor/modules/alarms/__init__.py:161 msgid "AFOthers" msgstr "Sonstige Kräfte" -#: emonitor/modules/alarms/__init__.py:163 +#: emonitor/modules/alarms/__init__.py:162 msgid "AFPersons" msgstr "Mannschaft" -#: emonitor/modules/alarms/__init__.py:165 +#: emonitor/modules/alarms/__init__.py:164 msgid "alarms.fields.simple" msgstr "einfach" -#: emonitor/modules/alarms/__init__.py:166 +#: emonitor/modules/alarms/__init__.py:165 msgid "alarms.fields.extended" msgstr "erweitert" -#: emonitor/modules/alarms/__init__.py:167 +#: emonitor/modules/alarms/__init__.py:166 msgid "alarms.fields.persons.field.sum" msgstr "Insgesamt" -#: emonitor/modules/alarms/__init__.py:168 +#: emonitor/modules/alarms/__init__.py:167 msgid "alarms.fields.persons.field.alarm" msgstr "Im Einsatz" -#: emonitor/modules/alarms/__init__.py:169 +#: emonitor/modules/alarms/__init__.py:168 msgid "alarms.fields.persons.field.house" msgstr "in Bereitschaft" -#: emonitor/modules/alarms/__init__.py:170 +#: emonitor/modules/alarms/__init__.py:169 msgid "alarms.fields.persons.field.pa_alarm" msgstr "PA Einsatz" -#: emonitor/modules/alarms/__init__.py:171 +#: emonitor/modules/alarms/__init__.py:170 msgid "alarms.fields.persons.field.pa" msgstr "PA gesamt" -#: emonitor/modules/alarms/__init__.py:172 +#: emonitor/modules/alarms/__init__.py:171 msgid "alarms.fields.persons.field.pa_house" msgstr "PA Bereitschaft" -#: emonitor/modules/alarms/__init__.py:173 +#: emonitor/modules/alarms/__init__.py:172 msgid "alarms.fields.persons.field.el" msgstr "Einsatzleiter" -#: emonitor/modules/alarms/__init__.py:174 +#: emonitor/modules/alarms/__init__.py:173 msgid "alarms.fields.persons.field.elgrade" msgstr "Dienstgrad" -#: emonitor/modules/alarms/__init__.py:175 +#: emonitor/modules/alarms/__init__.py:174 msgid "alarms.fields.persons.field.style.simple" msgstr "einfach" -#: emonitor/modules/alarms/__init__.py:176 +#: emonitor/modules/alarms/__init__.py:175 msgid "alarms.fields.persons.field.style.extended" msgstr "erweitert" @@ -977,7 +988,7 @@ msgstr "erweitert" msgid "alarms.routingerror" msgstr "Fehler bei der Anfahrtsberechnung" -#: emonitor/modules/alarms/alarmfield.py:186 +#: emonitor/modules/alarms/alarmfield.py:185 msgid "list" msgstr "" @@ -1010,10 +1021,11 @@ msgstr "Einsatz-Felddefinition" msgid "alarms.field.definition.info" msgstr "" "Neben den Standardfelden können weitere Felder definiert werden, die " -"beispielsweise auf einem Berichtsausdruck erscheinen können. Hierfür sind " -"verschiedenen Abschnitte vordefinidert, die an dieser Stelle konfiguriert " -"werden können. Diese Abschnitte können für jede Einheit gesondert " -"konfiguriert werden und sind anschließend über die Oberfläche erreichbar." +"beispielsweise auf einem Berichtsausdruck erscheinen können. Hierfür sind" +" verschiedenen Abschnitte vordefinidert, die an dieser Stelle " +"konfiguriert werden können. Diese Abschnitte können für jede Einheit " +"gesondert konfiguriert werden und sind anschließend über die Oberfläche " +"erreichbar." #: emonitor/modules/alarms/templates/admin.alarms.config.html:50 msgid "alarms.field.name" @@ -1038,19 +1050,19 @@ msgstr "Einsatz-Priorisierung" #: emonitor/modules/alarms/templates/admin.alarms.config.html:72 msgid "alarms.config.alarmstates.info" msgstr "" -"Für jeden Status eines Alarms können Fahrzeuge definiert werden, die extra " -"ausgewiesen werden sollen. Damit ist es möglich, dass eine Bedarfsanalyse " -"für ein bestimmtes Fahrzeug erzeugt wird. In der Einsatzübersicht ist bei " -"mehreren aktiven und offenen Einsätzen erkennbar, ob weitere Kräfte " -"erforderlich werden." +"Für jeden Status eines Alarms können Fahrzeuge definiert werden, die " +"extra ausgewiesen werden sollen. Damit ist es möglich, dass eine " +"Bedarfsanalyse für ein bestimmtes Fahrzeug erzeugt wird. In der " +"Einsatzübersicht ist bei mehreren aktiven und offenen Einsätzen " +"erkennbar, ob weitere Kräfte erforderlich werden." #: emonitor/modules/alarms/templates/admin.alarms.config.html:84 msgid "alarms.config.priocars" msgstr "Priorisierte Fahrzeuge/Material" -#: emonitor/modules/alarms/templates/admin.alarms.config.html:111 -#: emonitor/modules/alarms/templates/admin.alarms.config.html:125 -#: emonitor/modules/alarms/templates/admin.alarms.config.html:139 +#: emonitor/modules/alarms/templates/admin.alarms.config.html:113 +#: emonitor/modules/alarms/templates/admin.alarms.config.html:127 +#: emonitor/modules/alarms/templates/admin.alarms.config.html:141 #: emonitor/modules/alarms/templates/admin.alarms.report_action.html:41 #: emonitor/modules/alarms/templates/frontend.alarms_edit.html:239 #: emonitor/modules/alarms/templates/frontend.alarms_fields.html:26 @@ -1062,38 +1074,38 @@ msgstr "Priorisierte Fahrzeuge/Material" msgid "alarms.save" msgstr "Speichern" -#: emonitor/modules/alarms/templates/admin.alarms.config.html:117 +#: emonitor/modules/alarms/templates/admin.alarms.config.html:119 msgid "alarms.autoclose.title" msgstr "Einsatz Abschließen" -#: emonitor/modules/alarms/templates/admin.alarms.config.html:118 +#: emonitor/modules/alarms/templates/admin.alarms.config.html:120 msgid "alarms.autoclose.info" msgstr "" "Einsätze, die automatisch erzeugt wurden, können automatisch nach einer " -"bestimmten Zeit abgeschlossen werden, 0 für kein automatisches Schließen. " -"(Einheit: Minuten)" +"bestimmten Zeit abgeschlossen werden, 0 für kein automatisches Schließen." +" (Einheit: Minuten)" -#: emonitor/modules/alarms/templates/admin.alarms.config.html:120 +#: emonitor/modules/alarms/templates/admin.alarms.config.html:122 msgid "alarms.autoclose" msgstr "Einsatz automatisch schließen nach" -#: emonitor/modules/alarms/templates/admin.alarms.config.html:131 +#: emonitor/modules/alarms/templates/admin.alarms.config.html:133 msgid "alarms.autoarchive.title" msgstr "Einsatze Archivieren" -#: emonitor/modules/alarms/templates/admin.alarms.config.html:132 +#: emonitor/modules/alarms/templates/admin.alarms.config.html:134 msgid "alarms.autoarchive.info" msgstr "" "Einsatz automatisch nach einer bestimmten Zeit archivieren. Nach der " "angegebenen Zeit in Stunden wird der Einsatz automatisch archiviertt und " -"kann jederzeit wieder aktiviert werden, falls das erforderlich ist. Standard " -"sind 12 Stunden." +"kann jederzeit wieder aktiviert werden, falls das erforderlich ist. " +"Standard sind 12 Stunden." -#: emonitor/modules/alarms/templates/admin.alarms.config.html:134 +#: emonitor/modules/alarms/templates/admin.alarms.config.html:136 msgid "alarms.autoarchive" msgstr "Einsatz automatisch archivieren" -#: emonitor/modules/alarms/templates/admin.alarms.config.html:186 +#: emonitor/modules/alarms/templates/admin.alarms.config.html:188 msgid "alarms.fields.delete" msgstr "Abschnitt löschen" @@ -1124,8 +1136,8 @@ msgstr "Einsatz-Berichtsübersicht" msgid "alarms.report.info" msgstr "" "Es können unterschiedliche Berichte definiert werden, die zur " -"Einsatzdokumentation dienen. Die Einsatzdaten können dabei automatisch in " -"Formulare übertragen werden." +"Einsatzdokumentation dienen. Die Einsatzdaten können dabei automatisch in" +" Formulare übertragen werden." #: emonitor/modules/alarms/templates/admin.alarms.report.html:26 #: emonitor/modules/alarms/templates/admin.alarms.report_action.html:13 @@ -1186,10 +1198,11 @@ msgstr "Einsatz - Bereichskonfiguration" #: emonitor/modules/alarms/templates/admin.alarms.sections_actions.html:5 msgid "alarms.sections.info" msgstr "" -"Bereiche bezeichnen Abschnitte innerhalb des Alarmfaxes, die die notwendigen " -"Felder mit Informationen für die Anzeige versorgen. Leere Bereichsschlüssel " -"werden automatisch entfernt bzw. ignoriert.Die Reihenfolge der Bereiche muss " -"der Reihenfolge im Fax entsprechen und kann per Drag&Drop geändert werden." +"Bereiche bezeichnen Abschnitte innerhalb des Alarmfaxes, die die " +"notwendigen Felder mit Informationen für die Anzeige versorgen. Leere " +"Bereichsschlüssel werden automatisch entfernt bzw. ignoriert.Die " +"Reihenfolge der Bereiche muss der Reihenfolge im Fax entsprechen und kann" +" per Drag&Drop geändert werden." #: emonitor/modules/alarms/templates/admin.alarms.sections_actions.html:9 #: emonitor/modules/alarms/templates/admin.alarms.type.html:57 @@ -1237,8 +1250,8 @@ msgstr "" "Die konfigurierten Verarbeitungsschritte können mit einer Beispieldatei " "getestet werden. Aämtliche Schritte, die normalerweise automatisch zum " "Erzeugen eines Alarms aus einem Fax ausgeführt werden, werden ebenfalls " -"durchlaufen. Am Ende wird aber kein Einsatz angelegt und auch die Monitore " -"werden nicht angsprochen." +"durchlaufen. Am Ende wird aber kein Einsatz angelegt und auch die " +"Monitore werden nicht angsprochen." #: emonitor/modules/alarms/templates/admin.alarms.test.html:24 msgid "alarms.test.step1" @@ -1259,8 +1272,8 @@ msgstr " Aktionen werden ausgeführt" #: emonitor/modules/alarms/templates/admin.alarms.test.html:50 msgid "alarms.text.wrongfile.msg" msgstr "" -"Falscher Dateityp: Der hochgeladene Dateityp wird nicht als Ausgangsformat " -"unterstützt." +"Falscher Dateityp: Der hochgeladene Dateityp wird nicht als " +"Ausgangsformat unterstützt." #: emonitor/modules/alarms/templates/admin.alarms.type.html:6 msgid "alarms.type.delquestion" @@ -1283,13 +1296,13 @@ msgstr "Einsatztypen" #: emonitor/modules/alarms/templates/admin.alarms.type_actions.html:19 msgid "alarms.type.info" msgstr "" -"Anhand angegebener Stichworte kann die Faxerkennung für verschiedene Faxe " -"konfiguriert werden. Damit können verschiedenen Organisationen mit " -"unterschiedlichen Alarmfaxen Einsätze erstellen. Die Bereiche innerhalb der " -"Faxe können abhängig vom Einsatztyp definiert werden." +"Anhand angegebener Stichworte kann die Faxerkennung für verschiedene Faxe" +" konfiguriert werden. Damit können verschiedenen Organisationen mit " +"unterschiedlichen Alarmfaxen Einsätze erstellen. Die Bereiche innerhalb " +"der Faxe können abhängig vom Einsatztyp definiert werden." #: emonitor/modules/alarms/templates/admin.alarms.type.html:30 -#: emonitor/modules/alarms/templates/admin.alarms.type_actions.html:23 +#: emonitor/modules/alarms/templates/admin.alarms.type_actions.html:32 msgid "alarms.type.name" msgstr "Typname" @@ -1351,12 +1364,12 @@ msgstr "FAX-Interpreter" msgid "alarms.type.types.info" msgstr "" "Für unterschiedliche Alarmarten können verschiedene Interpreter in das " -"System geladen werden. Jeder Interpreter ist dabei auf ein bestimmtes FAX-" -"Layout optimiert und kann aus dem erkannten Text die notwendigen " -"Informationen in ein Einsatz-Objekt umbauen. Innerhalb eines Faxes können " -"unterschiedliche Bereiche definiert werden, die auch über spezielle " -"Optimierungsmethoden die Inhalte für eine Weiterverarbeitung aufbereiten. " -"Hier können weitere Auswerter in das System geladen werden." +"System geladen werden. Jeder Interpreter ist dabei auf ein bestimmtes " +"FAX-Layout optimiert und kann aus dem erkannten Text die notwendigen " +"Informationen in ein Einsatz-Objekt umbauen. Innerhalb eines Faxes können" +" unterschiedliche Bereiche definiert werden, die auch über spezielle " +"Optimierungsmethoden die Inhalte für eine Weiterverarbeitung aufbereiten." +" Hier können weitere Auswerter in das System geladen werden." #: emonitor/modules/alarms/templates/admin.alarms.type.html:98 msgid "alarms.type.checkername" @@ -1387,7 +1400,7 @@ msgstr "Interpreter-Datei hochladen" msgid "alarms.test.checkerstart" msgstr "Datei hochladen" -#: emonitor/modules/alarms/templates/admin.alarms.type_actions.html:28 +#: emonitor/modules/alarms/templates/admin.alarms.type_actions.html:23 msgid "alarms.type.interpreter" msgstr "Interpreter/Auswerter" @@ -1398,9 +1411,9 @@ msgstr "Variablen" #: emonitor/modules/alarms/templates/admin.alarms.type_actions.html:43 msgid "alarms.type.variableinfo" msgstr "" -"Für die automatische Faxauswertung werden einige Schlüsselworte verwendet, " -"die als Variable definiert, für jeden Einsatztyp unterschiedlich heißen " -"können." +"Für die automatische Faxauswertung werden einige Schlüsselworte " +"verwendet, die als Variable definiert, für jeden Einsatztyp " +"unterschiedlich heißen können." #: emonitor/modules/alarms/templates/admin.alarms.type_actions.html:49 msgid "alarms.type.save" @@ -1485,9 +1498,9 @@ msgstr "Einsatz-Sammelmeldung" #: emonitor/modules/alarms/templates/frontend.alarms_collective.html:2 msgid "alarms.collectiveform.info" msgstr "" -"Aus der Liste aller abgeschlossenen Ensätze können die gewünschten zu einer " -"Liste zusammengefasst und automatisch in einer SAmmelmeldung zusammengefasst " -"werden." +"Aus der Liste aller abgeschlossenen Ensätze können die gewünschten zu " +"einer Liste zusammengefasst und automatisch in einer SAmmelmeldung " +"zusammengefasst werden." #: emonitor/modules/alarms/templates/frontend.alarms_collective.html:35 #, fuzzy @@ -1755,10 +1768,11 @@ msgstr "Alarmierungs-Felder" #: emonitor/modules/alarms/templates/fields/field.config_afalerting.html:13 msgid "alarms.field.alerting.fieldinfo" msgstr "" -"Es können beliebig viele Felder definiert werden, die unterschiedliche Arten " -"der Alarmierung darstellen. Die Felder können dabei in einer einfachen " -"Hierarchie angelegt werden, wenn der Feldname mit einem Leerzeichen beginnt. " -"In der Datenbank wird das Feld unter dem Feld-Identifikator gespeichert." +"Es können beliebig viele Felder definiert werden, die unterschiedliche " +"Arten der Alarmierung darstellen. Die Felder können dabei in einer " +"einfachen Hierarchie angelegt werden, wenn der Feldname mit einem " +"Leerzeichen beginnt. In der Datenbank wird das Feld unter dem Feld-" +"Identifikator gespeichert." #: emonitor/modules/alarms/templates/fields/field.config_afalerting.html:19 #: emonitor/modules/alarms/templates/fields/field.config_afmaterial.html:19 @@ -1779,12 +1793,12 @@ msgstr "Geräte/Material-Liste" #: emonitor/modules/alarms/templates/fields/field.config_afmaterial.html:13 msgid "alarms.field.material.fieldinfo" msgstr "" -"Für den Einsatzbericht können bestimmte Gerätschaften definiert werden, die " -"gesondert aufgeführt werden sollen, z.B. zu Abrechnungszwecken. Es können " -"beliebig viele Geräte definiert werden, jeweils mit Name und Identifikator, " -"die verfügbar sein sollen. Feldnamen mit führendem Leerzeichen werden dabei " -"als Untergeräte einer Überkategorie gesehen, als Name erzeugt ein " -"Eingabefeld für eine freie Eingabe." +"Für den Einsatzbericht können bestimmte Gerätschaften definiert werden, " +"die gesondert aufgeführt werden sollen, z.B. zu Abrechnungszwecken. Es " +"können beliebig viele Geräte definiert werden, jeweils mit Name und " +"Identifikator, die verfügbar sein sollen. Feldnamen mit führendem " +"Leerzeichen werden dabei als Untergeräte einer Überkategorie gesehen, " +" als Name erzeugt ein Eingabefeld für eine freie Eingabe." #: emonitor/modules/alarms/templates/fields/field.config_afmaterial.html:21 #: emonitor/modules/alarms/templates/fields/field.config_afothers.html:21 @@ -1801,8 +1815,8 @@ msgstr "Sonstiges" msgid "alarms.field.others.fieldinfo" msgstr "" "Für die Mannschaft sind verschiedenen Felder vorgesehen, die einzeln " -"aktiviert/deaktiviert werden können. Nur für aktivierte Felder können Werte " -"eingegeben werden, die restlichen Felder werden nicht angezeigt." +"aktiviert/deaktiviert werden können. Nur für aktivierte Felder können " +"Werte eingegeben werden, die restlichen Felder werden nicht angezeigt." #: emonitor/modules/alarms/templates/fields/field.config_afpersons.html:10 msgid "alarms.field.persons.title" @@ -1812,10 +1826,11 @@ msgstr "Mannschaftsfelder" msgid "alarms.field.persons.fieldinfo" msgstr "" "Für die Mannschaft sind verschiedenen Felder vorgesehen, die einzeln " -"aktiviert/deaktiviert werden können. Nur für aktivierte Felder können Werte " -"eingegeben werden, die restlichen Felder werden nicht angezeigt." +"aktiviert/deaktiviert werden können. Nur für aktivierte Felder können " +"Werte eingegeben werden, die restlichen Felder werden nicht angezeigt." #: emonitor/modules/alarms/templates/fields/field.edit_afmaterial.html:9 +#: emonitor/modules/alarms/templates/fields/field.edit_afothers.html:9 #: emonitor/modules/alarms/templates/fields/field.render_afmaterial.html:10 #: emonitor/modules/alarms/templates/fields/field.render_afothers.html:10 msgid "alarms.field.else.title" @@ -1879,8 +1894,8 @@ msgstr "Fahrzeug- & Materialübersicht" #: emonitor/modules/cars/templates/admin.cars.html:21 msgid "cars.info" msgstr "" -"Übersicht über Fahrzeuge und Material, die im System hinterlegt sind. Nur " -"aktive Fahrzeuge/Material werden in der Auswertung am Monitor angezeigt." +"Übersicht über Fahrzeuge und Material, die im System hinterlegt sind. Nur" +" aktive Fahrzeuge/Material werden in der Auswertung am Monitor angezeigt." #: emonitor/modules/cars/templates/admin.cars.html:25 #: emonitor/modules/cars/templates/admin.cars_edit.html:12 @@ -1960,14 +1975,14 @@ msgstr "Event-Handler Liste" msgid "events.info" msgstr "" "Für Systemevents können Handler definiert werden, die in angegebener " -"Reihenfolge nacheinander ausgeführt werden, wenn ein Systemevent eintritt. " -"Die Reihenfolge der Handler kann per Drag&Drop geändert werden." +"Reihenfolge nacheinander ausgeführt werden, wenn ein Systemevent " +"eintritt. Die Reihenfolge der Handler kann per Drag&Drop geändert werden." #: emonitor/modules/events/templates/admin.events.html:22 msgid "events.nodefinitionfound" msgstr "" -"Keine Definition vorhanden: Wenn eine Display-Steuerung erfolgen soll, muss " -"mindestens für ein Event ein Handler definiert werden. Details und " +"Keine Definition vorhanden: Wenn eine Display-Steuerung erfolgen soll, " +"muss mindestens für ein Event ein Handler definiert werden. Details und " "Beispielkonfigurationen sind in der Hilfe (oben rechts) zu finden." #: emonitor/modules/events/templates/admin.events.html:27 @@ -2038,8 +2053,8 @@ msgstr "Eingabe-Parameter" #: emonitor/modules/events/templates/admin.events_data.html:16 msgid "event.inparameters.info" msgstr "" -"Eingabe-Parameter müssen mit Werten belegt werden, dass das Modul korrekt " -"arbeiten kann." +"Eingabe-Parameter müssen mit Werten belegt werden, dass das Modul korrekt" +" arbeiten kann." #: emonitor/modules/events/templates/admin.events_data.html:47 #: emonitor/modules/events/templates/admin.events_data.html:86 @@ -2120,9 +2135,9 @@ msgstr "Kartenobjekte-Definition" #: emonitor/modules/mapitems/templates/admin.mapitems.html:24 msgid "admin.mapitems.definitioninfo" msgstr "" -"Auf der Karte können verschiedene zusätzliche Objekte eingeblendet werden. " -"Dafür kann über die Definition die Art des Objekts konfiguriert werden und " -"anschließend von OpenStreetMap geladen werden." +"Auf der Karte können verschiedene zusätzliche Objekte eingeblendet " +"werden. Dafür kann über die Definition die Art des Objekts konfiguriert " +"werden und anschließend von OpenStreetMap geladen werden." #: emonitor/modules/mapitems/templates/admin.mapitems.definition.html:22 msgid "mapitems.itemtypename" @@ -2207,10 +2222,10 @@ msgstr "Kategorieschlüssel" #: emonitor/modules/mapitems/templates/admin.mapitems.definition_actions.html:33 msgid "mapitems.keys.info" msgstr "" -"Regulärer Ausdruck (zeilenweise), der die Anzeige der Kartenobjekte anhand " -"der Kategorie definiert.
    Wenn der Reguläre Ausdruck passt, werden " -"Objekte diesen Typs auf der Karte dargestellt.
    z.B. B[1-9] " -"passt auf alle Brandkategorien." +"Regulärer Ausdruck (zeilenweise), der die Anzeige der Kartenobjekte " +"anhand der Kategorie definiert.
    Wenn der Reguläre Ausdruck passt, " +"werden Objekte diesen Typs auf der Karte dargestellt.
    z.B. " +"B[1-9] passt auf alle Brandkategorien." #: emonitor/modules/mapitems/templates/admin.mapitems.definition_actions.html:39 msgid "mapitems.tileserver" @@ -2219,9 +2234,9 @@ msgstr "Tileserver bereitstellen" #: emonitor/modules/mapitems/templates/admin.mapitems.definition_actions.html:42 msgid "mapitems.tileserver.info" msgstr "" -"Falls ein Tileserver erstellt werden soll, können die Objekte als eigener " -"Kartenlayer in Tiles dargestellt werden. Das ist besonders bei einer großen " -"Anzahl an Objekten sinnvoll." +"Falls ein Tileserver erstellt werden soll, können die Objekte als eigener" +" Kartenlayer in Tiles dargestellt werden. Das ist besonders bei einer " +"großen Anzahl an Objekten sinnvoll." #: emonitor/modules/mapitems/templates/admin.mapitems.definition_actions.html:45 #: emonitor/modules/mapitems/templates/admin.mapitems.html:53 @@ -2259,8 +2274,8 @@ msgstr "Attribute" #: emonitor/modules/mapitems/templates/admin.mapitems.definition_actions.html:66 msgid "mapitems.attributes.info" msgstr "" -"Attributnamen (zeilenweise), die importiert werden sollen. Pflichtattribut " -"id" +"Attributnamen (zeilenweise), die importiert werden sollen. " +"Pflichtattribut id" #: emonitor/modules/mapitems/templates/admin.mapitems.definition_actions.html:72 msgid "mapitems.save" @@ -2340,10 +2355,10 @@ msgstr "Vorhandene Karten" #: emonitor/modules/settings/templates/admin.settings.map_actions.html:18 msgid "settings.map.info" msgstr "" -"Unterschiedliche Karten können über den Tileserver ausgeliefert werden. Dazu " -"ist ein Name und ein Datenpfad zu definieren. Die erste Karte wird " -"standardmäßig als default angenommen, über Drag&Drop kann die Reihenfolge " -"geändert werden." +"Unterschiedliche Karten können über den Tileserver ausgeliefert werden. " +"Dazu ist ein Name und ein Datenpfad zu definieren. Die erste Karte wird " +"standardmäßig als default angenommen, über Drag&Drop kann die Reihenfolge" +" geändert werden." #: emonitor/modules/maps/templates/admin.map.html:27 #: emonitor/modules/maps/templates/admin.map_actions.html:33 @@ -2396,8 +2411,8 @@ msgstr "Standardkartenposition" #: emonitor/modules/maps/templates/admin.map.position.html:25 msgid "settings.map.positioninfo" msgstr "" -"Wenn für eine Kartenanzeige keine Koordinaten definiert worden sind, wird " -"die Standardposition verwendet. Richten Sie die Mitte der Karte auf den " +"Wenn für eine Kartenanzeige keine Koordinaten definiert worden sind, wird" +" die Standardposition verwendet. Richten Sie die Mitte der Karte auf den " "gewünschten Punkt aus und bestätigen Sie mit 'Position speichern'." #: emonitor/modules/maps/templates/admin.map.position.html:29 @@ -2443,8 +2458,9 @@ msgstr "Longitude" #: emonitor/modules/maps/templates/admin.map.position.html:51 msgid "settings.map.homeinfo" msgstr "" -"Durch Doppleklick auf die Karte kann die Startposition für die Navigation " -"gewählt werden. in der Regel wird das der Standort des Gerätehauses sein." +"Durch Doppleklick auf die Karte kann die Startposition für die Navigation" +" gewählt werden. in der Regel wird das der Standort des Gerätehauses " +"sein." #: emonitor/modules/maps/templates/admin.map.position.html:56 msgid "settings.map.saveposition" @@ -2490,9 +2506,10 @@ msgstr "Kartenserver" msgid "settings.tileserver.info" msgstr "" "Der Kartenserver kann entweder ein lokaler Server sein oder online die " -"Kacheln laden.
    Beispiele:
    lokal: /tileserver/osm/{z}/{x}/{y}" -"
    Bing: //ak.t2.tiles.virtualearth.net/tiles/a{q}?g=1236
    Google: //khm2.googleapis.com/kh?v=142&x={x}&y={y}&z={z}" +"Kacheln laden.
    Beispiele:
    lokal: " +"/tileserver/osm/{z}/{x}/{y}
    Bing: " +"//ak.t2.tiles.virtualearth.net/tiles/a{q}?g=1236
    Google: " +"//khm2.googleapis.com/kh?v=142&x={x}&y={y}&z={z}" #: emonitor/modules/maps/templates/admin.map_actions.html:57 #: emonitor/modules/settings/templates/admin.settings.map_actions.html:44 @@ -2528,8 +2545,8 @@ msgstr "Karte downloaden" #: emonitor/modules/settings/templates/admin.settings.map_actions.html:63 msgid "settings.map.gettilesinfo" msgstr "" -"Durch Klicken auf die Karte können Ausschnitte zum Download gewählt werden. " -"Grau hinterlegte Bereiche wurden nocht nicht lokal gespeichert." +"Durch Klicken auf die Karte können Ausschnitte zum Download gewählt " +"werden. Grau hinterlegte Bereiche wurden nocht nicht lokal gespeichert." #: emonitor/modules/maps/templates/admin.map_actions.html:76 #: emonitor/modules/settings/templates/admin.settings.map_actions.html:71 @@ -2543,14 +2560,15 @@ msgstr "Download abbrechen" #: emonitor/modules/maps/templates/admin.map_actions.html:118 msgid "settings.map.startdownload" msgstr "" -"Sollen die Kartenteile der gewählten Fläche heruntergeladen werden, dass sie " -"Offline zur Verfügung stehen?" +"Sollen die Kartenteile der gewählten Fläche heruntergeladen werden, dass " +"sie Offline zur Verfügung stehen?" #: emonitor/modules/maps/templates/frontend.map.html:82 msgid "maps.nodefaultposition" msgstr "" -"Es wurde noch keine Standardposition für die Kartendarstellung gespeichert, " -"das kann im Administrationsbereich unter 'Straßenkarte' eingestellt werden." +"Es wurde noch keine Standardposition für die Kartendarstellung " +"gespeichert, das kann im Administrationsbereich unter 'Straßenkarte' " +"eingestellt werden." #: emonitor/modules/messages/__init__.py:32 msgid "module.messages" @@ -2642,8 +2660,8 @@ msgstr "Wetter" #: emonitor/modules/messages/templates/admin.message.base.html:4 msgid "messages.base.default" msgstr "" -"Standard Widget (wird verwendet, wenn keine Meldung aktiv ist, evtl. leere " -"Anzeige)" +"Standard Widget (wird verwendet, wenn keine Meldung aktiv ist, evtl. " +"leere Anzeige)" #: emonitor/modules/messages/templates/admin.message.base.html:6 msgid "messages.base.default_none" @@ -2687,8 +2705,8 @@ msgstr "Mitteilungstext/Inhalt" #: emonitor/modules/messages/templates/frontend.messages_edit_text.html:5 msgid "messages.text.content.info" msgstr "" -"Der Mitteilungstext kann einfacher Text sein oder nach 'restructuredText' " -"formatiert werden." +"Der Mitteilungstext kann einfacher Text sein oder nach 'restructuredText'" +" formatiert werden." #: emonitor/modules/messages/templates/admin.message.weather.html:3 msgid "messages.weather.header" @@ -2747,8 +2765,8 @@ msgid "messages.types.info" msgstr "" "In der Konfiguration kann für die verschiedenen Mitteilungstypen die " "Basiskonfiguration vorgenommen werden. Dabei bieten die einzelnen Typen " -"unterschiedliche Parameter.
    In der Basis-Einstellung können die globalen " -"Parameter der Mitteilungsmoduls definiert werden." +"unterschiedliche Parameter.
    In der Basis-Einstellung können die " +"globalen Parameter der Mitteilungsmoduls definiert werden." #: emonitor/modules/messages/templates/admin.messages_message.html:12 #: emonitor/modules/messages/templates/frontend.messages_smallarea.html:95 @@ -2915,8 +2933,8 @@ msgstr "Monitor-Themes bearbeiten" #: emonitor/modules/monitors/templates/admin.monitors.actions.html:17 msgid "monitors.actions.info" msgstr "" -"Übersicht über alle Schedules des Systems für Monitore und andere Trigger, " -"die automatisch ausgeführt werden sollen." +"Übersicht über alle Schedules des Systems für Monitore und andere " +"Trigger, die automatisch ausgeführt werden sollen." #: emonitor/modules/monitors/templates/admin.monitors.actions.html:20 #: emonitor/modules/monitors/templates/admin.monitors.current.html:16 @@ -2935,10 +2953,10 @@ msgstr "Angeschlossene Bildschirme/Clients" msgid "monitors.current.info" msgstr "" "Hier kann eine Suche nach vorhandenen Bildschirmen/Clients angestoßen " -"werden, die auf die Events der Software reagieren. Damit ist eine Kontrolle " -"der korrekten Konfiguration gegeben.Falls ein Bildschirm/Client nicht " -"gefunden wurde, überprüfen Sie, ob die Software korrekt läuft und der " -"Computer im Netzwerk erreichbar ist." +"werden, die auf die Events der Software reagieren. Damit ist eine " +"Kontrolle der korrekten Konfiguration gegeben.Falls ein Bildschirm/Client" +" nicht gefunden wurde, überprüfen Sie, ob die Software korrekt läuft und " +"der Computer im Netzwerk erreichbar ist." #: emonitor/modules/monitors/templates/admin.monitors.current.html:19 msgid "monitors.current.loadingclients" @@ -2974,15 +2992,16 @@ msgstr "Monitor-Definitionsübersicht" #: emonitor/modules/monitors/templates/admin.monitors.html:34 msgid "monitors.info" msgstr "" -"Übersicht über bereits angelegte Monitor-Definitionen. Hier können beliebige " -"Module arrangiert werden, die Inhalte auf Bildschirme zugeschnitten " -"darstellen." +"Übersicht über bereits angelegte Monitor-Definitionen. Hier können " +"beliebige Module arrangiert werden, die Inhalte auf Bildschirme " +"zugeschnitten darstellen." #: emonitor/modules/monitors/templates/admin.monitors.html:37 msgid "monitors.nodefinitionfound" msgstr "" "Keine Defintion vorhanden: Mindestens eine Monitordefinition ist " -"erforderlich, wenn eingehende Events verarbeitet dargestellt werden sollen." +"erforderlich, wenn eingehende Events verarbeitet dargestellt werden " +"sollen." #: emonitor/modules/monitors/templates/admin.monitors.html:43 msgid "monitors.client" @@ -3104,7 +3123,8 @@ msgstr "- keines -" #: emonitor/modules/monitors/templates/admin.monitors.layout_actions.html:91 msgid "monitorlayouts.nextidlabel" msgstr "" -"Nach der Maximalanzeigezeit wird automatisch in das Folgelayout gewechselt. " +"Nach der Maximalanzeigezeit wird automatisch in das Folgelayout " +"gewechselt. " #: emonitor/modules/monitors/templates/admin.monitors.layout_actions.html:95 msgid "monitorlayouts.save" @@ -3213,8 +3233,9 @@ msgstr "Druckansicht-Definitionsübersicht" #: emonitor/modules/printers/templates/admin.printers.html:17 msgid "printers.info" msgstr "" -"Aus unterschiedlichen Modulen heraus kann gedruckt werden. An dieser Stelle " -"kann die Konfiguration unterschiedlicher Ausdrucke erstellt werden." +"Aus unterschiedlichen Modulen heraus kann gedruckt werden. An dieser " +"Stelle kann die Konfiguration unterschiedlicher Ausdrucke erstellt " +"werden." #: emonitor/modules/printers/templates/admin.printers.html:21 msgid "printers.id" @@ -3285,12 +3306,13 @@ msgstr "Druckaufruf" #: emonitor/modules/printers/templates/admin.printers.settings.html:14 msgid "printers.settings.callstringinfo" msgstr "" -"Es werden externe Programme zum Ausdruck verwendet. Hierfür kann der Aufruf " -"konfiguriert werden. Es sind folgende Variablen möglich:
    - [basepath]: " -"Verzeichnis der Anwendung
    - [printer]: Name des Druckers, wenn nicht " -"gewählt wird der Standarddrucker des Servers verwendet
    - [copies]: " -"Anzahl
    - [filename]: Dateiname der zu druckenden Datei

    Standard: [basepath]/bin/gsprint -copies [copies] -noquery [filename]" +"Es werden externe Programme zum Ausdruck verwendet. Hierfür kann der " +"Aufruf konfiguriert werden. Es sind folgende Variablen möglich:
    - " +"[basepath]: Verzeichnis der Anwendung
    - [printer]: Name des Druckers," +" wenn nicht gewählt wird der Standarddrucker des Servers verwendet
    - " +"[copies]: Anzahl
    - [filename]: Dateiname der zu druckenden " +"Datei

    Standard: [basepath]/bin/gsprint -copies [copies] -noquery" +" [filename]" #: emonitor/modules/printers/templates/admin.printers.settings.html:18 msgid "printers.settings.save" @@ -3328,43 +3350,47 @@ msgstr "Nein" msgid "emonitor.modules.scripts.script.Script" msgstr "Script" -#: emonitor/modules/settings/__init__.py:40 +#: emonitor/modules/settings/__init__.py:33 msgid "module.settings" msgstr "Grundeinstellungen" -#: emonitor/modules/settings/__init__.py:41 +#: emonitor/modules/settings/__init__.py:34 msgid "settings.main" msgstr "Basisdaten" -#: emonitor/modules/settings/__init__.py:42 +#: emonitor/modules/settings/__init__.py:35 msgid "module.settings.department" msgstr "Einheiten" -#: emonitor/modules/settings/__init__.py:43 +#: emonitor/modules/settings/__init__.py:36 msgid "module.settings.cars" msgstr "Fahrzeuge/Material" -#: emonitor/modules/settings/__init__.py:44 +#: emonitor/modules/settings/__init__.py:37 msgid "module.settings.start" msgstr "Startseite" -#: emonitor/modules/settings/__init__.py:46 +#: emonitor/modules/settings/__init__.py:39 msgid "settings.pathtype.pathdone" msgstr "Pfad Erledigt" -#: emonitor/modules/settings/__init__.py:47 +#: emonitor/modules/settings/__init__.py:40 msgid "settings.pathtype.pathtmp" msgstr "Pfad Temp" -#: emonitor/modules/settings/__init__.py:48 +#: emonitor/modules/settings/__init__.py:41 msgid "settings.pathtype.pathdata" msgstr "Pfad Daten" -#: emonitor/modules/settings/__init__.py:49 +#: emonitor/modules/settings/__init__.py:42 msgid "settings.pathtype.pathincome" msgstr "Pfad Eingang" -#: emonitor/modules/settings/content_admin.py:152 +#: emonitor/modules/settings/__init__.py:52 +msgid "car" +msgstr "Fahrzeug" + +#: emonitor/modules/settings/content_admin.py:150 msgid "admin.settings.updatedberror" msgstr "Aktualisierung fehlgeschlagen!" @@ -3398,14 +3424,15 @@ msgstr "Einheiten" #: emonitor/modules/settings/templates/admin.settings.department_actions.html:20 msgid "settings.department.info" msgstr "" -"Liste der bereits definierten Feuerwehreinheiten. Der erste Eintrag wird als " -"Standardeinheit genutzt, die Reihenfolge kann per Drag&Drop geändert werden." +"Liste der bereits definierten Feuerwehreinheiten. Der erste Eintrag wird " +"als Standardeinheit genutzt, die Reihenfolge kann per Drag&Drop geändert " +"werden." #: emonitor/modules/settings/templates/admin.settings.department.html:20 msgid "settings.nodepartmentdefinition" msgstr "" -"Definition fehlerhaft: Mindestens eine Einheit muss definiert werden, dass " -"eMonitor korrekt arbeiten kann." +"Definition fehlerhaft: Mindestens eine Einheit muss definiert werden, " +"dass eMonitor korrekt arbeiten kann." #: emonitor/modules/settings/templates/admin.settings.department.html:24 msgid "settings.department.delquestion" @@ -3510,7 +3537,7 @@ msgstr "Speichern" msgid "settings.department.cancel" msgstr "Abbrechen" -#: emonitor/modules/settings/templates/admin.settings.department_actions.html:138 +#: emonitor/modules/settings/templates/admin.settings.department_actions.html:137 msgid "settings.logo.delquestion" msgstr "Soll das aktuelle Logo/Wappen wirklich gelöscht werden?" @@ -3540,9 +3567,9 @@ msgstr "Verzeichnisüberwachung" msgid "settings.observerstatusinfo" msgstr "" "Konfiguration der Verzeichnisüberwachung für den Fax-Eingang. Wenn " -"aktiviert, wird in regelmäßigen Abständen das 'Fax-Ablageverzeichnis' auf " -"neue Dateien kontrolliert und bei Fax-Eingang die Bearbeitung angestoßen. " -"Wenn deaktiviert, wird das Verzeichnis nicht überwacht." +"aktiviert, wird in regelmäßigen Abständen das 'Fax-Ablageverzeichnis' auf" +" neue Dateien kontrolliert und bei Fax-Eingang die Bearbeitung " +"angestoßen. Wenn deaktiviert, wird das Verzeichnis nicht überwacht." #: emonitor/modules/settings/templates/admin.settings.html:48 msgid "settings.observerinterval" @@ -3564,10 +3591,10 @@ msgstr "Monitor-Ping" #: emonitor/modules/settings/templates/admin.settings.html:58 msgid "settings.monitorpinginfo" msgstr "" -"In regelmäßigen Abständen kann an die Monitore in Ping gesendet werden, so " -"dass die Monitore 'aufgeweckt' werden. Diese Funktion ist gedacht, wenn die " -"Verbindung zu den Monitoren abreißt, wenn lange keine Informationen gesendet " -"wurden. (Deaktiviert für 0)" +"In regelmäßigen Abständen kann an die Monitore in Ping gesendet werden, " +"so dass die Monitore 'aufgeweckt' werden. Diese Funktion ist gedacht, " +"wenn die Verbindung zu den Monitoren abreißt, wenn lange keine " +"Informationen gesendet wurden. (Deaktiviert für 0)" #: emonitor/modules/settings/templates/admin.settings.html:60 msgid "settings.monitorpinginterval" @@ -3580,8 +3607,9 @@ msgstr "Datenbankversion" #: emonitor/modules/settings/templates/admin.settings.html:69 msgid "settings.db.info" msgstr "" -"Jede Version von eMonitor benötigt die passende Datenbankversion. Hier kann " -"die Datenbank aktualisiert werden und es wird die aktuelle Version angezeigt." +"Jede Version von eMonitor benötigt die passende Datenbankversion. Hier " +"kann die Datenbank aktualisiert werden und es wird die aktuelle Version " +"angezeigt." #: emonitor/modules/settings/templates/admin.settings.html:70 msgid "settings.db.currentrevision" @@ -3607,8 +3635,8 @@ msgstr "Startseite verwalten" msgid "settings.start.info" msgstr "" "Auf der Startseite kann in drei Bereichen Inhalt angezeigt werden. Die " -"Module der Bereiche können ausgewählt werden. Zusätzlich ist es möglich auch " -"die Breiten der beiden äußeren Bereiche und das initiale Ein- oder " +"Module der Bereiche können ausgewählt werden. Zusätzlich ist es möglich " +"auch die Breiten der beiden äußeren Bereiche und das initiale Ein- oder " "Ausblenden zu definieren." #: emonitor/modules/settings/templates/admin.settings.start.html:22 @@ -3705,8 +3733,8 @@ msgstr "Ort bearbeiten" #: emonitor/modules/streets/templates/admin.streets.city_list.html:42 msgid "streets.city.info" msgstr "" -"Übersicht über die definierten Orte. Jedem Ort können beliebig viele Straßen " -"zugeordnet werden." +"Übersicht über die definierten Orte. Jedem Ort können beliebig viele " +"Straßen zugeordnet werden." #: emonitor/modules/streets/templates/admin.streets.city_edit.html:33 #: emonitor/modules/streets/templates/admin.streets.city_list.html:51 @@ -3777,8 +3805,8 @@ msgstr "Ortsliste" #: emonitor/modules/streets/templates/admin.streets.html:51 msgid "streets.nocitydef" msgstr "" -"Definition des Ortes unvollständig: Es muss mindestens ein Ort/eine Stadt " -"angelegt sein, dass eMonitor korrekt arbeiten kann." +"Definition des Ortes unvollständig: Es muss mindestens ein Ort/eine Stadt" +" angelegt sein, dass eMonitor korrekt arbeiten kann." #: emonitor/modules/streets/templates/admin.streets.city_list.html:56 msgid "streets.city.addtitle" @@ -3807,8 +3835,8 @@ msgstr "Hausnummern von OpenStreetMap laden" #: emonitor/modules/streets/templates/admin.streets.city_list.html:85 msgid "streets.city.housnumber.info" msgstr "" -"Von OpenStreetMap können alle Hausnummern der konfigurierten Städte geladen " -"werden. Dabei werden die Hausnummern je Straße verfügbar." +"Von OpenStreetMap können alle Hausnummern der konfigurierten Städte " +"geladen werden. Dabei werden die Hausnummern je Straße verfügbar." #: emonitor/modules/streets/templates/admin.streets.city_list.html:88 msgid "streets.city.loadnumbersbutton" @@ -3821,9 +3849,9 @@ msgstr "Städte/Orte von OpenStreetMap laden" #: emonitor/modules/streets/templates/admin.streets.city_list.html:94 msgid "streets.city.load.info" msgstr "" -"Über OpenStreetMap können automatisch alle Städte/Orte geladen werden, die " -"innerhalb des definierten Kartenausschnitts liegen. Anschließend können " -"einzelne Städte/Orte ins System eingespielt werden." +"Über OpenStreetMap können automatisch alle Städte/Orte geladen werden, " +"die innerhalb des definierten Kartenausschnitts liegen. Anschließend " +"können einzelne Städte/Orte ins System eingespielt werden." #: emonitor/modules/streets/templates/admin.streets.city_list.html:95 msgid "streets.city.loadbutton" @@ -3858,9 +3886,10 @@ msgstr "Straßenübersicht" #: emonitor/modules/streets/templates/admin.streets.html:48 msgid "streets.info" msgstr "" -"In der Straßenübersicht werden die Straßen abhängig vom Ort angezeigt. Für " -"jede Straße kann ein Kartenausschnitt definiert werden, der standardmäßig " -"verwendet werden soll. Jeder Straße muss ein Ort zugeordnet werden." +"In der Straßenübersicht werden die Straßen abhängig vom Ort angezeigt. " +"Für jede Straße kann ein Kartenausschnitt definiert werden, der " +"standardmäßig verwendet werden soll. Jeder Straße muss ein Ort zugeordnet" +" werden." #: emonitor/modules/streets/templates/admin.streets.html:56 msgid "streets.filterlabel" @@ -3924,9 +3953,9 @@ msgstr "Straßen von OpenStreetMap laden" #: emonitor/modules/streets/templates/admin.streets.html:102 msgid "streets.load.info" msgstr "" -"Über OpenStreetMap können automatisch alle Straßen geladen werden, die dem " -"akutellen Ort zugeordnet sind. Anschließend können einzelne Straßen ins " -"System eingespielt werden." +"Über OpenStreetMap können automatisch alle Straßen geladen werden, die " +"dem akutellen Ort zugeordnet sind. Anschließend können einzelne Straßen " +"ins System eingespielt werden." #: emonitor/modules/streets/templates/admin.streets.html:103 msgid "streets.loadbutton" @@ -3955,7 +3984,8 @@ msgstr "Zugeordnet zu Ort" #: emonitor/modules/streets/templates/admin.streets_edit.html:56 msgid "streets.subcity.info" msgstr "" -"Ortsteil 'BAB' und 'Bahn' werden gesondert in der Alarmauswertung behandelt." +"Ortsteil 'BAB' und 'Bahn' werden gesondert in der Alarmauswertung " +"behandelt." #: emonitor/modules/streets/templates/admin.streets_edit.html:61 msgid "streets.active" @@ -3980,8 +4010,8 @@ msgstr "Position (Koordinatenpunkt)" #: emonitor/modules/streets/templates/admin.streets_edit.html:101 msgid "streets.housenumbers.info" msgstr "" -"Nach der Eingabe einer Hausnummer kann auf der Karten durch Doppelklicken " -"der zugehörige Punkt gewählt werden." +"Nach der Eingabe einer Hausnummer kann auf der Karten durch Doppelklicken" +" der zugehörige Punkt gewählt werden." #: emonitor/modules/streets/templates/admin.streets_edit.html:106 msgid "streets.updateposition" @@ -4053,8 +4083,8 @@ msgstr "Optimierungs-Parameter" msgid "textmod.convert.info" msgstr "" "Konfigurationsparameter für die korrekte Verarbeitung der Konvertierung. " -"Darunter fallen das verwendete Konvertierungsformat und die Parameter für " -"die Konvertierung." +"Darunter fallen das verwendete Konvertierungsformat und die Parameter für" +" die Konvertierung." #: emonitor/modules/textmod/templates/admin.textmod.convert.html:12 msgid "textmod.convert.inportformats" @@ -4071,12 +4101,13 @@ msgstr "Aufruf der Bildkonvertierung" #: emonitor/modules/textmod/templates/admin.textmod.convert.html:25 msgid "textmod.convert.callstringinfo" msgstr "" -"Aufruf der Bildkonvertierung. Folgende Variablen können verwendet werden und " -"werden automatisch ersetzt:
    - [basepath]: Verzeichnis der Anwendung
    - [incomepath]: Standardpfad, der überwacht wird
    - [filename]: " -"Dateiname der Datei, die verarbeitet werden soll
    - [tmppath]: Temp-Path " -"zum Zwischenspeichern

    Standard: convert -resize 150%% -depth 32 -" -"density 200 [incomepath][filename] -quality 100 [tmppath]" +"Aufruf der Bildkonvertierung. Folgende Variablen können verwendet werden " +"und werden automatisch ersetzt:
    - [basepath]: Verzeichnis der " +"Anwendung
    - [incomepath]: Standardpfad, der überwacht wird
    - " +"[filename]: Dateiname der Datei, die verarbeitet werden soll
    - " +"[tmppath]: Temp-Path zum Zwischenspeichern

    Standard: convert " +"-resize 150%% -depth 32 -density 200 [incomepath][filename] -quality 100 " +"[tmppath]" #: emonitor/modules/textmod/templates/admin.textmod.convert.html:29 msgid "textmod.convert.save" @@ -4155,8 +4186,8 @@ msgstr "OCR-Parameter" msgid "textmod.ocr.info" msgstr "" "Konfigurationsparameter für die korrekte Verarbeitung der Texterkennung. " -"Darunter fallen die unterstützten Eingangsformate und die Parameter für die " -"OCR Verarbeitung" +"Darunter fallen die unterstützten Eingangsformate und die Parameter für " +"die OCR Verarbeitung" #: emonitor/modules/textmod/templates/admin.textmod.ocr.html:30 msgid "textmod.ocr.objectformats" @@ -4169,8 +4200,8 @@ msgstr "Datenformate" #: emonitor/modules/textmod/templates/admin.textmod.ocr.html:33 msgid "textmod.ocr.inputformatinfo" msgstr "" -"Dateiendungen für Datendateien, jeweils in einer eigenen Zeile, z.B. pdf, " -"tif
    Achtung: Groß- und Kleinschreibung beachten!" +"Dateiendungen für Datendateien, jeweils in einer eigenen Zeile, z.B. pdf," +" tif
    Achtung: Groß- und Kleinschreibung beachten!" #: emonitor/modules/textmod/templates/admin.textmod.ocr.html:36 msgid "textmod.ocr.callstring" @@ -4184,11 +4215,12 @@ msgstr "OCR-Test starten" msgid "textmod.ocr.callstringinfo" msgstr "" "Aufruf der Texterkennung. Folgende Variablen können verwendet werden und " -"werden automatisch ersetzt:
    - [basepath]: Verzeichnis der Anwendung
    - [incomepath]: Standardpfad, der überwacht wird
    - [filename]: " -"Dateiname der Datei, die verarbeitet werden soll
    - [tmppath]: Temp-Path " -"zum Zwischenspeichern

    Standard: [basepath]/bin/tesseract/tesseract " -"[incomepath][filename] [tmppath] -l deu -psm 6 quiet custom" +"werden automatisch ersetzt:
    - [basepath]: Verzeichnis der " +"Anwendung
    - [incomepath]: Standardpfad, der überwacht wird
    - " +"[filename]: Dateiname der Datei, die verarbeitet werden soll
    - " +"[tmppath]: Temp-Path zum Zwischenspeichern

    Standard: " +"[basepath]/bin/tesseract/tesseract [incomepath][filename] [tmppath] -l " +"deu -psm 6 quiet custom" #: emonitor/modules/textmod/templates/admin.textmod.ocr.html:44 msgid "textmod.ocr.textformats" @@ -4216,8 +4248,8 @@ msgstr "OCR-Vokabular" msgid "textmod.ocrcustom.info" msgstr "" "Folgende Wörter sollen in die OCR-Bibliothek aufgenommen werden. Diese " -"werden als Wörterbuch mit verwendet, um die Erkennungsrate bei schwierigen " -"Wörtern zu erhöhen." +"werden als Wörterbuch mit verwendet, um die Erkennungsrate bei " +"schwierigen Wörtern zu erhöhen." #: emonitor/modules/textmod/templates/admin.textmod.ocrcustom.html:12 msgid "textmod.ocrcustom.vocabulary" @@ -4376,3 +4408,4 @@ msgstr "Abbrechen" #~ msgid "admin.alarms.report.tenplatefield" #~ msgstr "Name" + diff --git a/emonitor/modules/translations/modules.pot b/emonitor/modules/translations/modules.pot index 4ccb2d1..c4da69b 100644 --- a/emonitor/modules/translations/modules.pot +++ b/emonitor/modules/translations/modules.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2015-05-03 12:06+0200\n" +"POT-Creation-Date: 2015-05-10 17:49+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -333,15 +333,21 @@ msgstr "" msgid "alarmkeys.allcars" msgstr "" -#: emonitor/modules/alarmkeys/templates/admin.alarmkeys_actions.html:92 -msgid "alarmkey.savedefault" +#: emonitor/modules/alarmkeys/templates/admin.alarmkeys_actions.html:87 +#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:197 +#: emonitor/modules/alarms/templates/admin.alarms.config.html:105 +msgid "alarmkeys.nocars" msgstr "" #: emonitor/modules/alarmkeys/templates/admin.alarmkeys_actions.html:94 -msgid "alarmkey.save" +msgid "alarmkey.savedefault" msgstr "" #: emonitor/modules/alarmkeys/templates/admin.alarmkeys_actions.html:96 +msgid "alarmkey.save" +msgstr "" + +#: emonitor/modules/alarmkeys/templates/admin.alarmkeys_actions.html:98 msgid "alarmkey.cancel" msgstr "" @@ -492,6 +498,7 @@ msgid "alarmobjects.types.addtitle" msgstr "" #: emonitor/modules/alarmobjects/templates/admin.alarmobjects.types.html:29 +#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:88 msgid "alarmobjects.types.nodata" msgstr "" @@ -548,7 +555,7 @@ msgid "admin.alarmobjects.aao" msgstr "" #: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:51 -#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:208 +#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:215 msgid "admin.alarmobjects.files" msgstr "" @@ -568,375 +575,379 @@ msgstr "" msgid "admin.alarmobjects.objecttype" msgstr "" -#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:92 +#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:94 msgid "admin.alarmobjects.alarmplan" msgstr "" -#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:93 +#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:95 msgid "admin.alarmobjects.alarmplaninfo" msgstr "" -#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:97 +#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:99 msgid "admin.alarmobjects.active" msgstr "" -#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:102 +#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:104 msgid "admin.alarmobjects.bma" msgstr "" -#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:107 +#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:109 msgid "admin.alarmobjects.remark" msgstr "" -#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:113 +#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:115 msgid "admin.alarmobjects.updateposition" msgstr "" -#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:122 -#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:141 -#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:198 +#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:124 +#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:146 +#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:205 msgid "admin.alarmobjects.save" msgstr "" -#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:123 -#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:142 -#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:199 +#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:125 +#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:147 +#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:206 msgid "admin.alarmobjects.cancel" msgstr "" -#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:150 +#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:142 +msgid "admin.alarmobject.nofields" +msgstr "" + +#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:155 msgid "admin.alarmobject.aaoinfo" msgstr "" -#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:154 +#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:159 msgid "admin.alarmobject.cars1" msgstr "" -#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:164 +#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:169 msgid "admin.alarmobject.cars2" msgstr "" -#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:173 +#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:178 msgid "admin.alarmobject.material" msgstr "" -#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:182 +#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:187 msgid "admin.alarmobject.allcars" msgstr "" -#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:215 +#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:222 msgid "admin.alarmobject.file" msgstr "" -#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:216 +#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:223 msgid "admin.alarmobject.filename" msgstr "" -#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:222 +#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:229 msgid "admin.alarmobject.filestart" msgstr "" -#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:263 +#: emonitor/modules/alarmobjects/templates/admin.alarmobjects_actions.html:276 msgid "admin.alarmobjects.delfilequestion" msgstr "" -#: emonitor/modules/alarms/__init__.py:100 +#: emonitor/modules/alarms/__init__.py:99 msgid "module.alarms" msgstr "" -#: emonitor/modules/alarms/__init__.py:101 +#: emonitor/modules/alarms/__init__.py:100 msgid "alarms.base" msgstr "" -#: emonitor/modules/alarms/__init__.py:102 +#: emonitor/modules/alarms/__init__.py:101 msgid "module.alarms.types" msgstr "" -#: emonitor/modules/alarms/__init__.py:103 +#: emonitor/modules/alarms/__init__.py:102 msgid "module.alarms.report" msgstr "" -#: emonitor/modules/alarms/__init__.py:104 +#: emonitor/modules/alarms/__init__.py:103 msgid "module.alarms.config" msgstr "" -#: emonitor/modules/alarms/__init__.py:105 +#: emonitor/modules/alarms/__init__.py:104 msgid "module.alarms.test" msgstr "" -#: emonitor/modules/alarms/__init__.py:106 +#: emonitor/modules/alarms/__init__.py:105 msgid "alarms_income" msgstr "" -#: emonitor/modules/alarms/__init__.py:107 +#: emonitor/modules/alarms/__init__.py:106 msgid "alarms_timer" msgstr "" -#: emonitor/modules/alarms/__init__.py:108 +#: emonitor/modules/alarms/__init__.py:107 msgid "alarms_remark" msgstr "" -#: emonitor/modules/alarms/__init__.py:109 +#: emonitor/modules/alarms/__init__.py:108 msgid "alarms" msgstr "" -#: emonitor/modules/alarms/__init__.py:110 +#: emonitor/modules/alarms/__init__.py:109 msgid "alarms.prio0" msgstr "" -#: emonitor/modules/alarms/__init__.py:111 +#: emonitor/modules/alarms/__init__.py:110 msgid "alarms.prio1" msgstr "" -#: emonitor/modules/alarms/__init__.py:112 +#: emonitor/modules/alarms/__init__.py:111 msgid "alarms.prio2" msgstr "" -#: emonitor/modules/alarms/__init__.py:113 +#: emonitor/modules/alarms/__init__.py:112 msgid "emonitor.modules.alarms.alarm.Alarms" msgstr "" -#: emonitor/modules/alarms/__init__.py:114 +#: emonitor/modules/alarms/__init__.py:113 msgid "emonitor.modules.alarms.alarmtype.AlarmTypes" msgstr "" -#: emonitor/modules/alarms/__init__.py:115 +#: emonitor/modules/alarms/__init__.py:114 #: emonitor/modules/alarms/templates/admin.alarms.test.html:68 #: emonitor/modules/alarms/templates/admin.alarms.test.html:70 msgid "alarms.test.protocol" msgstr "" -#: emonitor/modules/alarms/__init__.py:116 +#: emonitor/modules/alarms/__init__.py:115 msgid "alarms.test.result" msgstr "" -#: emonitor/modules/alarms/__init__.py:117 +#: emonitor/modules/alarms/__init__.py:116 msgid "alarmstate.active" msgstr "" -#: emonitor/modules/alarms/__init__.py:118 +#: emonitor/modules/alarms/__init__.py:117 msgid "alarmstate.created" msgstr "" -#: emonitor/modules/alarms/__init__.py:119 +#: emonitor/modules/alarms/__init__.py:118 msgid "alarmstate.done" msgstr "" -#: emonitor/modules/alarms/__init__.py:120 +#: emonitor/modules/alarms/__init__.py:119 #: emonitor/modules/alarms/templates/admin.alarms.html:55 msgid "alarmstate.archive" msgstr "" -#: emonitor/modules/alarms/__init__.py:121 +#: emonitor/modules/alarms/__init__.py:120 msgid "active" msgstr "" -#: emonitor/modules/alarms/__init__.py:122 +#: emonitor/modules/alarms/__init__.py:121 msgid "created" msgstr "" -#: emonitor/modules/alarms/__init__.py:123 +#: emonitor/modules/alarms/__init__.py:122 msgid "done" msgstr "" -#: emonitor/modules/alarms/__init__.py:124 +#: emonitor/modules/alarms/__init__.py:123 msgid "archive" msgstr "" -#: emonitor/modules/alarms/__init__.py:125 emonitor/modules/alarms/alarm.py:334 +#: emonitor/modules/alarms/__init__.py:124 emonitor/modules/alarms/alarm.py:334 msgid "alarms.statechangeactivated" msgstr "" -#: emonitor/modules/alarms/__init__.py:126 +#: emonitor/modules/alarms/__init__.py:125 msgid "alarms.prioshort0" msgstr "" -#: emonitor/modules/alarms/__init__.py:127 +#: emonitor/modules/alarms/__init__.py:126 msgid "alarms.prioshort1" msgstr "" -#: emonitor/modules/alarms/__init__.py:128 +#: emonitor/modules/alarms/__init__.py:127 msgid "alarms.prioshort2" msgstr "" -#: emonitor/modules/alarms/__init__.py:129 +#: emonitor/modules/alarms/__init__.py:128 msgid "alarms.carsinuse" msgstr "" -#: emonitor/modules/alarms/__init__.py:130 +#: emonitor/modules/alarms/__init__.py:129 msgid "history.autochangeState" msgstr "" -#: emonitor/modules/alarms/__init__.py:131 +#: emonitor/modules/alarms/__init__.py:130 msgid "history.message" msgstr "" -#: emonitor/modules/alarms/__init__.py:132 +#: emonitor/modules/alarms/__init__.py:131 msgid "trigger.alarm_added" msgstr "" -#: emonitor/modules/alarms/__init__.py:133 +#: emonitor/modules/alarms/__init__.py:132 msgid "trigger.alarm_changestate" msgstr "" -#: emonitor/modules/alarms/__init__.py:135 +#: emonitor/modules/alarms/__init__.py:134 msgid "trigger.alarm_added_sub" msgstr "" -#: emonitor/modules/alarms/__init__.py:136 +#: emonitor/modules/alarms/__init__.py:135 msgid "trigger.alarm_changestate_sub" msgstr "" -#: emonitor/modules/alarms/__init__.py:138 +#: emonitor/modules/alarms/__init__.py:137 #: emonitor/modules/alarms/alarmutils.py:295 msgid "alarms.print.slightleft" msgstr "" -#: emonitor/modules/alarms/__init__.py:139 +#: emonitor/modules/alarms/__init__.py:138 #: emonitor/modules/alarms/alarmutils.py:295 msgid "alarms.print.slightright" msgstr "" -#: emonitor/modules/alarms/__init__.py:140 +#: emonitor/modules/alarms/__init__.py:139 #: emonitor/modules/alarms/alarmutils.py:295 msgid "alarms.print.right" msgstr "" -#: emonitor/modules/alarms/__init__.py:141 +#: emonitor/modules/alarms/__init__.py:140 #: emonitor/modules/alarms/alarmutils.py:295 msgid "alarms.print.left" msgstr "" -#: emonitor/modules/alarms/__init__.py:142 +#: emonitor/modules/alarms/__init__.py:141 #: emonitor/modules/alarms/alarmutils.py:295 #: emonitor/modules/alarms/alarmutils.py:310 msgid "alarms.print.straight" msgstr "" -#: emonitor/modules/alarms/__init__.py:143 +#: emonitor/modules/alarms/__init__.py:142 #: emonitor/modules/alarms/alarmutils.py:295 #: emonitor/modules/alarms/alarmutils.py:310 msgid "alarms.print.exit" msgstr "" -#: emonitor/modules/alarms/__init__.py:144 +#: emonitor/modules/alarms/__init__.py:143 #: emonitor/modules/alarms/alarmutils.py:294 msgid "alarms.print.bus" msgstr "" -#: emonitor/modules/alarms/__init__.py:145 +#: emonitor/modules/alarms/__init__.py:144 #: emonitor/modules/alarms/alarmutils.py:312 msgid "alarms.print.positive" msgstr "" -#: emonitor/modules/alarms/__init__.py:146 +#: emonitor/modules/alarms/__init__.py:145 #: emonitor/modules/alarms/alarmutils.py:313 msgid "alarms.print.negative" msgstr "" -#: emonitor/modules/alarms/__init__.py:148 +#: emonitor/modules/alarms/__init__.py:147 msgid "alarms.filter.0" msgstr "" -#: emonitor/modules/alarms/__init__.py:149 +#: emonitor/modules/alarms/__init__.py:148 msgid "alarms.filter.1" msgstr "" -#: emonitor/modules/alarms/__init__.py:150 +#: emonitor/modules/alarms/__init__.py:149 msgid "alarms.filter.7" msgstr "" -#: emonitor/modules/alarms/__init__.py:151 +#: emonitor/modules/alarms/__init__.py:150 msgid "alarms.filter.31" msgstr "" -#: emonitor/modules/alarms/__init__.py:153 +#: emonitor/modules/alarms/__init__.py:152 msgid "internal" msgstr "" -#: emonitor/modules/alarms/__init__.py:154 +#: emonitor/modules/alarms/__init__.py:153 #: emonitor/modules/alarms/templates/admin.alarms.report_fields.html:1 msgid "external" msgstr "" -#: emonitor/modules/alarms/__init__.py:156 +#: emonitor/modules/alarms/__init__.py:155 msgid "AFAlerting" msgstr "" -#: emonitor/modules/alarms/__init__.py:157 +#: emonitor/modules/alarms/__init__.py:156 msgid "AFCars" msgstr "" -#: emonitor/modules/alarms/__init__.py:158 +#: emonitor/modules/alarms/__init__.py:157 msgid "AFMaterial" msgstr "" -#: emonitor/modules/alarms/__init__.py:159 -#: emonitor/modules/alarms/alarmfield.py:330 +#: emonitor/modules/alarms/__init__.py:158 +#: emonitor/modules/alarms/alarmfield.py:329 msgid "AFReport" msgstr "" -#: emonitor/modules/alarms/__init__.py:160 +#: emonitor/modules/alarms/__init__.py:159 msgid "AFTime" msgstr "" -#: emonitor/modules/alarms/__init__.py:161 +#: emonitor/modules/alarms/__init__.py:160 msgid "AFDamage" msgstr "" -#: emonitor/modules/alarms/__init__.py:162 +#: emonitor/modules/alarms/__init__.py:161 msgid "AFOthers" msgstr "" -#: emonitor/modules/alarms/__init__.py:163 +#: emonitor/modules/alarms/__init__.py:162 msgid "AFPersons" msgstr "" -#: emonitor/modules/alarms/__init__.py:165 +#: emonitor/modules/alarms/__init__.py:164 msgid "alarms.fields.simple" msgstr "" -#: emonitor/modules/alarms/__init__.py:166 +#: emonitor/modules/alarms/__init__.py:165 msgid "alarms.fields.extended" msgstr "" -#: emonitor/modules/alarms/__init__.py:167 +#: emonitor/modules/alarms/__init__.py:166 msgid "alarms.fields.persons.field.sum" msgstr "" -#: emonitor/modules/alarms/__init__.py:168 +#: emonitor/modules/alarms/__init__.py:167 msgid "alarms.fields.persons.field.alarm" msgstr "" -#: emonitor/modules/alarms/__init__.py:169 +#: emonitor/modules/alarms/__init__.py:168 msgid "alarms.fields.persons.field.house" msgstr "" -#: emonitor/modules/alarms/__init__.py:170 +#: emonitor/modules/alarms/__init__.py:169 msgid "alarms.fields.persons.field.pa_alarm" msgstr "" -#: emonitor/modules/alarms/__init__.py:171 +#: emonitor/modules/alarms/__init__.py:170 msgid "alarms.fields.persons.field.pa" msgstr "" -#: emonitor/modules/alarms/__init__.py:172 +#: emonitor/modules/alarms/__init__.py:171 msgid "alarms.fields.persons.field.pa_house" msgstr "" -#: emonitor/modules/alarms/__init__.py:173 +#: emonitor/modules/alarms/__init__.py:172 msgid "alarms.fields.persons.field.el" msgstr "" -#: emonitor/modules/alarms/__init__.py:174 +#: emonitor/modules/alarms/__init__.py:173 msgid "alarms.fields.persons.field.elgrade" msgstr "" -#: emonitor/modules/alarms/__init__.py:175 +#: emonitor/modules/alarms/__init__.py:174 msgid "alarms.fields.persons.field.style.simple" msgstr "" -#: emonitor/modules/alarms/__init__.py:176 +#: emonitor/modules/alarms/__init__.py:175 msgid "alarms.fields.persons.field.style.extended" msgstr "" @@ -944,7 +955,7 @@ msgstr "" msgid "alarms.routingerror" msgstr "" -#: emonitor/modules/alarms/alarmfield.py:186 +#: emonitor/modules/alarms/alarmfield.py:185 msgid "list" msgstr "" @@ -1005,9 +1016,9 @@ msgstr "" msgid "alarms.config.priocars" msgstr "" -#: emonitor/modules/alarms/templates/admin.alarms.config.html:111 -#: emonitor/modules/alarms/templates/admin.alarms.config.html:125 -#: emonitor/modules/alarms/templates/admin.alarms.config.html:139 +#: emonitor/modules/alarms/templates/admin.alarms.config.html:113 +#: emonitor/modules/alarms/templates/admin.alarms.config.html:127 +#: emonitor/modules/alarms/templates/admin.alarms.config.html:141 #: emonitor/modules/alarms/templates/admin.alarms.report_action.html:41 #: emonitor/modules/alarms/templates/frontend.alarms_edit.html:239 #: emonitor/modules/alarms/templates/frontend.alarms_fields.html:26 @@ -1019,31 +1030,31 @@ msgstr "" msgid "alarms.save" msgstr "" -#: emonitor/modules/alarms/templates/admin.alarms.config.html:117 +#: emonitor/modules/alarms/templates/admin.alarms.config.html:119 msgid "alarms.autoclose.title" msgstr "" -#: emonitor/modules/alarms/templates/admin.alarms.config.html:118 +#: emonitor/modules/alarms/templates/admin.alarms.config.html:120 msgid "alarms.autoclose.info" msgstr "" -#: emonitor/modules/alarms/templates/admin.alarms.config.html:120 +#: emonitor/modules/alarms/templates/admin.alarms.config.html:122 msgid "alarms.autoclose" msgstr "" -#: emonitor/modules/alarms/templates/admin.alarms.config.html:131 +#: emonitor/modules/alarms/templates/admin.alarms.config.html:133 msgid "alarms.autoarchive.title" msgstr "" -#: emonitor/modules/alarms/templates/admin.alarms.config.html:132 +#: emonitor/modules/alarms/templates/admin.alarms.config.html:134 msgid "alarms.autoarchive.info" msgstr "" -#: emonitor/modules/alarms/templates/admin.alarms.config.html:134 +#: emonitor/modules/alarms/templates/admin.alarms.config.html:136 msgid "alarms.autoarchive" msgstr "" -#: emonitor/modules/alarms/templates/admin.alarms.config.html:186 +#: emonitor/modules/alarms/templates/admin.alarms.config.html:188 msgid "alarms.fields.delete" msgstr "" @@ -1220,7 +1231,7 @@ msgid "alarms.type.info" msgstr "" #: emonitor/modules/alarms/templates/admin.alarms.type.html:30 -#: emonitor/modules/alarms/templates/admin.alarms.type_actions.html:23 +#: emonitor/modules/alarms/templates/admin.alarms.type_actions.html:32 msgid "alarms.type.name" msgstr "" @@ -1310,7 +1321,7 @@ msgstr "" msgid "alarms.test.checkerstart" msgstr "" -#: emonitor/modules/alarms/templates/admin.alarms.type_actions.html:28 +#: emonitor/modules/alarms/templates/admin.alarms.type_actions.html:23 msgid "alarms.type.interpreter" msgstr "" @@ -1711,6 +1722,7 @@ msgid "alarms.field.persons.fieldinfo" msgstr "" #: emonitor/modules/alarms/templates/fields/field.edit_afmaterial.html:9 +#: emonitor/modules/alarms/templates/fields/field.edit_afothers.html:9 #: emonitor/modules/alarms/templates/fields/field.render_afmaterial.html:10 #: emonitor/modules/alarms/templates/fields/field.render_afothers.html:10 msgid "alarms.field.else.title" @@ -3133,43 +3145,47 @@ msgstr "" msgid "emonitor.modules.scripts.script.Script" msgstr "" -#: emonitor/modules/settings/__init__.py:40 +#: emonitor/modules/settings/__init__.py:33 msgid "module.settings" msgstr "" -#: emonitor/modules/settings/__init__.py:41 +#: emonitor/modules/settings/__init__.py:34 msgid "settings.main" msgstr "" -#: emonitor/modules/settings/__init__.py:42 +#: emonitor/modules/settings/__init__.py:35 msgid "module.settings.department" msgstr "" -#: emonitor/modules/settings/__init__.py:43 +#: emonitor/modules/settings/__init__.py:36 msgid "module.settings.cars" msgstr "" -#: emonitor/modules/settings/__init__.py:44 +#: emonitor/modules/settings/__init__.py:37 msgid "module.settings.start" msgstr "" -#: emonitor/modules/settings/__init__.py:46 +#: emonitor/modules/settings/__init__.py:39 msgid "settings.pathtype.pathdone" msgstr "" -#: emonitor/modules/settings/__init__.py:47 +#: emonitor/modules/settings/__init__.py:40 msgid "settings.pathtype.pathtmp" msgstr "" -#: emonitor/modules/settings/__init__.py:48 +#: emonitor/modules/settings/__init__.py:41 msgid "settings.pathtype.pathdata" msgstr "" -#: emonitor/modules/settings/__init__.py:49 +#: emonitor/modules/settings/__init__.py:42 msgid "settings.pathtype.pathincome" msgstr "" -#: emonitor/modules/settings/content_admin.py:152 +#: emonitor/modules/settings/__init__.py:52 +msgid "car" +msgstr "" + +#: emonitor/modules/settings/content_admin.py:150 msgid "admin.settings.updatedberror" msgstr "" @@ -3309,7 +3325,7 @@ msgstr "" msgid "settings.department.cancel" msgstr "" -#: emonitor/modules/settings/templates/admin.settings.department_actions.html:138 +#: emonitor/modules/settings/templates/admin.settings.department_actions.html:137 msgid "settings.logo.delquestion" msgstr "" diff --git a/emonitor/observer.py b/emonitor/observer.py index 483ab33..3e1e98d 100644 --- a/emonitor/observer.py +++ b/emonitor/observer.py @@ -13,6 +13,7 @@ ERROR_RAISED = 0 FILES = [] +INPUTFORMAT = Settings.get('ocr.inputformat', ['pdf']) + Settings.get('ocr.inputtextformat', []) def observeFolder(**kwargs): @@ -29,7 +30,7 @@ def observeFolder(**kwargs): path = kwargs['path'] else: return - + if not os.path.exists(path): if ERROR_RAISED == 0: ERROR_RAISED = 1 @@ -43,13 +44,13 @@ def observeFolder(**kwargs): ERROR_RAISED = 0 # reset errorstate AFTER = dict([(f, None) for f in os.listdir(path)]) - for a in [f for f in AFTER if f not in BEFORE and os.path.splitext(f)[-1][1:] in Settings.get('ocr.inputformat', ['pdf']) + Settings.get('ocr.inputtextformat', [])]: # new files added + for a in [f for f in AFTER if f not in BEFORE and os.path.splitext(f)[-1][1:] in INPUTFORMAT]: # new files added if a not in FILES: events.raiseEvent('file_added', incomepath=path, filename=a) logger.info(u"file_added: {}{}".format(path, a)) FILES.append(a) - for r in [f for f in BEFORE if f not in AFTER and os.path.splitext(f)[-1][1:] in Settings.get('ocr.inputformat', ['pdf']) + Settings.get('ocr.inputtextformat', [])]: + for r in [f for f in BEFORE if f not in AFTER and os.path.splitext(f)[-1][1:] in INPUTFORMAT]: if r in FILES: events.raiseEvent('file_removed', incomepath=path, filename=r) logger.info(u"file_removed: {}{}".format(path, r))