AccessRestrictionGroup
This commit is contained in:
parent
040669755f
commit
245c101eb0
6 changed files with 199 additions and 124 deletions
|
@ -39,7 +39,13 @@ class EditorFormBase(I18nModelFormMixin, ModelForm):
|
||||||
if not creating:
|
if not creating:
|
||||||
self.initial['geometry'] = json.dumps(mapping(self.instance.geometry), separators=(',', ':'))
|
self.initial['geometry'] = json.dumps(mapping(self.instance.geometry), separators=(',', ':'))
|
||||||
|
|
||||||
if 'groups' in self.fields:
|
if self._meta.model.__name__ == 'AccessRestriction':
|
||||||
|
AccessRestrictionGroup = self.request.changeset.wrap_model('AccessRestrictionGroup')
|
||||||
|
|
||||||
|
self.fields['groups'].label_from_instance = lambda obj: obj.title
|
||||||
|
self.fields['groups'].queryset = AccessRestrictionGroup.qs_for_request(self.request)
|
||||||
|
|
||||||
|
elif 'groups' in self.fields:
|
||||||
LocationGroupCategory = self.request.changeset.wrap_model('LocationGroupCategory')
|
LocationGroupCategory = self.request.changeset.wrap_model('LocationGroupCategory')
|
||||||
|
|
||||||
kwargs = {'allow_'+self._meta.model._meta.default_related_name: True}
|
kwargs = {'allow_'+self._meta.model._meta.default_related_name: True}
|
||||||
|
|
|
@ -52,6 +52,7 @@ urlpatterns.extend(add_editor_urls('LocationGroupCategory'))
|
||||||
urlpatterns.extend(add_editor_urls('LocationGroup'))
|
urlpatterns.extend(add_editor_urls('LocationGroup'))
|
||||||
urlpatterns.extend(add_editor_urls('WayType'))
|
urlpatterns.extend(add_editor_urls('WayType'))
|
||||||
urlpatterns.extend(add_editor_urls('AccessRestriction'))
|
urlpatterns.extend(add_editor_urls('AccessRestriction'))
|
||||||
|
urlpatterns.extend(add_editor_urls('AccessRestrictionGroup'))
|
||||||
urlpatterns.extend(add_editor_urls('Source'))
|
urlpatterns.extend(add_editor_urls('Source'))
|
||||||
urlpatterns.extend(add_editor_urls('Building', 'Level'))
|
urlpatterns.extend(add_editor_urls('Building', 'Level'))
|
||||||
urlpatterns.extend(add_editor_urls('Space', 'Level', explicit_edit=True))
|
urlpatterns.extend(add_editor_urls('Space', 'Level', explicit_edit=True))
|
||||||
|
|
|
@ -45,6 +45,7 @@ def main_index(request):
|
||||||
child_model(request, 'LocationGroup'),
|
child_model(request, 'LocationGroup'),
|
||||||
child_model(request, 'WayType'),
|
child_model(request, 'WayType'),
|
||||||
child_model(request, 'AccessRestriction'),
|
child_model(request, 'AccessRestriction'),
|
||||||
|
child_model(request, 'AccessRestrictionGroup'),
|
||||||
child_model(request, 'Source'),
|
child_model(request, 'Source'),
|
||||||
],
|
],
|
||||||
})
|
})
|
||||||
|
|
|
@ -7,8 +7,8 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2017-12-20 17:40+0100\n"
|
"POT-Creation-Date: 2017-12-20 20:53+0100\n"
|
||||||
"PO-Revision-Date: 2017-12-20 17:43+0100\n"
|
"PO-Revision-Date: 2017-12-20 20:53+0100\n"
|
||||||
"Last-Translator: Laura Klünder <laura@codingcatgirl.de>\n"
|
"Last-Translator: Laura Klünder <laura@codingcatgirl.de>\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
"Language: de\n"
|
"Language: de\n"
|
||||||
|
@ -39,11 +39,11 @@ msgstr[1] "alles mögliche (%d Erlaubnisse)"
|
||||||
|
|
||||||
#: c3nav/control/forms.py:69 c3nav/control/templates/control/access.html:4
|
#: c3nav/control/forms.py:69 c3nav/control/templates/control/access.html:4
|
||||||
#: c3nav/control/templates/control/user.html:59
|
#: c3nav/control/templates/control/user.html:59
|
||||||
#: c3nav/mapdata/models/access.py:124
|
#: c3nav/mapdata/models/access.py:146
|
||||||
msgid "Access Permissions"
|
msgid "Access Permissions"
|
||||||
msgstr "Zugangserlaubnisse"
|
msgstr "Zugangserlaubnisse"
|
||||||
|
|
||||||
#: c3nav/control/forms.py:78 c3nav/control/templates/control/user.html:80
|
#: c3nav/control/forms.py:78 c3nav/control/templates/control/user.html:82
|
||||||
msgid "never"
|
msgid "never"
|
||||||
msgstr "nie"
|
msgstr "nie"
|
||||||
|
|
||||||
|
@ -152,7 +152,7 @@ msgstr "Benutzer"
|
||||||
|
|
||||||
#: c3nav/control/templates/control/announcements.html:9
|
#: c3nav/control/templates/control/announcements.html:9
|
||||||
#: c3nav/control/templates/control/users.html:15
|
#: c3nav/control/templates/control/users.html:15
|
||||||
#: c3nav/mapdata/models/base.py:40 c3nav/mapdata/utils/locations.py:281
|
#: c3nav/mapdata/models/base.py:40 c3nav/mapdata/utils/locations.py:299
|
||||||
msgid "ID"
|
msgid "ID"
|
||||||
msgstr "ID"
|
msgstr "ID"
|
||||||
|
|
||||||
|
@ -162,7 +162,7 @@ msgid "Text"
|
||||||
msgstr "Text"
|
msgstr "Text"
|
||||||
|
|
||||||
#: c3nav/control/templates/control/announcements.html:11
|
#: c3nav/control/templates/control/announcements.html:11
|
||||||
#: c3nav/editor/models/changeset.py:47 c3nav/mapdata/models/access.py:117
|
#: c3nav/editor/models/changeset.py:47 c3nav/mapdata/models/access.py:139
|
||||||
msgid "Author"
|
msgid "Author"
|
||||||
msgstr "Autor"
|
msgstr "Autor"
|
||||||
|
|
||||||
|
@ -247,7 +247,7 @@ msgid "General Permissions"
|
||||||
msgstr "Generelle Befugnisse"
|
msgstr "Generelle Befugnisse"
|
||||||
|
|
||||||
#: c3nav/control/templates/control/user.html:24
|
#: c3nav/control/templates/control/user.html:24
|
||||||
#: c3nav/control/templates/control/user.html:91
|
#: c3nav/control/templates/control/user.html:93
|
||||||
msgid "none"
|
msgid "none"
|
||||||
msgstr "keine"
|
msgstr "keine"
|
||||||
|
|
||||||
|
@ -287,55 +287,55 @@ msgstr "API Secret generieren"
|
||||||
msgid "Update API secret"
|
msgid "Update API secret"
|
||||||
msgstr "API Secret updaten"
|
msgstr "API Secret updaten"
|
||||||
|
|
||||||
#: c3nav/control/templates/control/user.html:65
|
#: c3nav/control/templates/control/user.html:60
|
||||||
#: c3nav/mapdata/models/access.py:26 c3nav/mapdata/models/access.py:187
|
msgid "Add"
|
||||||
#: c3nav/mapdata/models/access.py:200
|
msgstr "Hinzufügen"
|
||||||
|
|
||||||
|
#: c3nav/control/templates/control/user.html:67
|
||||||
|
#: c3nav/mapdata/models/access.py:27 c3nav/mapdata/models/access.py:209
|
||||||
|
#: c3nav/mapdata/models/access.py:222
|
||||||
msgid "Access Restriction"
|
msgid "Access Restriction"
|
||||||
msgstr "Zugangsbeschränkung"
|
msgstr "Zugangsbeschränkung"
|
||||||
|
|
||||||
#: c3nav/control/templates/control/user.html:66
|
#: c3nav/control/templates/control/user.html:68
|
||||||
#: c3nav/mapdata/models/access.py:52 c3nav/mapdata/models/geometry/space.py:297
|
#: c3nav/mapdata/models/access.py:74 c3nav/mapdata/models/geometry/space.py:301
|
||||||
#: c3nav/site/models.py:15
|
#: c3nav/site/models.py:15
|
||||||
msgid "author"
|
msgid "author"
|
||||||
msgstr "Autor"
|
msgstr "Autor"
|
||||||
|
|
||||||
#: c3nav/control/templates/control/user.html:67
|
#: c3nav/control/templates/control/user.html:69
|
||||||
#: c3nav/mapdata/models/access.py:114
|
#: c3nav/mapdata/models/access.py:136
|
||||||
msgid "expires"
|
msgid "expires"
|
||||||
msgstr "läuft ab"
|
msgstr "läuft ab"
|
||||||
|
|
||||||
#: c3nav/control/templates/control/user.html:68
|
#: c3nav/control/templates/control/user.html:70
|
||||||
#: c3nav/mapdata/models/access.py:57 c3nav/mapdata/models/access.py:115
|
#: c3nav/mapdata/models/access.py:79 c3nav/mapdata/models/access.py:137
|
||||||
msgid "can grant"
|
msgid "can grant"
|
||||||
msgstr "kann erteilen"
|
msgstr "kann erteilen"
|
||||||
|
|
||||||
#: c3nav/control/templates/control/user.html:69
|
#: c3nav/control/templates/control/user.html:71
|
||||||
msgid "key"
|
msgid "key"
|
||||||
msgstr "key"
|
msgstr "key"
|
||||||
|
|
||||||
#: c3nav/control/templates/control/user.html:81
|
#: c3nav/control/templates/control/user.html:83
|
||||||
#: c3nav/mapdata/models/geometry/level.py:124
|
#: c3nav/mapdata/models/geometry/level.py:124
|
||||||
#: c3nav/mapdata/models/locations.py:102 c3nav/mapdata/models/locations.py:103
|
#: c3nav/mapdata/models/locations.py:102 c3nav/mapdata/models/locations.py:103
|
||||||
msgid "Yes"
|
msgid "Yes"
|
||||||
msgstr "Ja"
|
msgstr "Ja"
|
||||||
|
|
||||||
#: c3nav/control/templates/control/user.html:81
|
#: c3nav/control/templates/control/user.html:83
|
||||||
#: c3nav/mapdata/models/geometry/level.py:124
|
#: c3nav/mapdata/models/geometry/level.py:124
|
||||||
#: c3nav/mapdata/models/locations.py:102 c3nav/mapdata/models/locations.py:103
|
#: c3nav/mapdata/models/locations.py:102 c3nav/mapdata/models/locations.py:103
|
||||||
msgid "No"
|
msgid "No"
|
||||||
msgstr "Nein"
|
msgstr "Nein"
|
||||||
|
|
||||||
#: c3nav/control/templates/control/user.html:84
|
#: c3nav/control/templates/control/user.html:86
|
||||||
#: c3nav/editor/templates/editor/changeset.html:124
|
#: c3nav/editor/templates/editor/changeset.html:124
|
||||||
#: c3nav/editor/templates/editor/delete.html:17
|
#: c3nav/editor/templates/editor/delete.html:17
|
||||||
#: c3nav/editor/templates/editor/edit.html:27
|
#: c3nav/editor/templates/editor/edit.html:27
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Löschen"
|
msgstr "Löschen"
|
||||||
|
|
||||||
#: c3nav/control/templates/control/user.html:93
|
|
||||||
msgid "Add"
|
|
||||||
msgstr "Hinzufügen"
|
|
||||||
|
|
||||||
#: c3nav/control/templates/control/users.html:8
|
#: c3nav/control/templates/control/users.html:8
|
||||||
msgid "Search"
|
msgid "Search"
|
||||||
msgstr "Suchen"
|
msgstr "Suchen"
|
||||||
|
@ -397,33 +397,33 @@ msgstr "Token erfolgreich invalidiert."
|
||||||
msgid "You can only display your most recently created token."
|
msgid "You can only display your most recently created token."
|
||||||
msgstr "Du kannst nur deinen zuletzt erstellten Code anzeigen."
|
msgstr "Du kannst nur deinen zuletzt erstellten Code anzeigen."
|
||||||
|
|
||||||
#: c3nav/editor/forms.py:118
|
#: c3nav/editor/forms.py:124
|
||||||
msgid "Redirecting Slugs (comma seperated)"
|
msgid "Redirecting Slugs (comma seperated)"
|
||||||
msgstr "Umleitungs-Slugs (mit Komma getrennt)"
|
msgstr "Umleitungs-Slugs (mit Komma getrennt)"
|
||||||
|
|
||||||
#: c3nav/editor/forms.py:144
|
#: c3nav/editor/forms.py:150
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Can not add redirecting slug “%s”: it's the slug of this object."
|
msgid "Can not add redirecting slug “%s”: it's the slug of this object."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Umleitungs-Slug „%s“ kann nicht hinzugefügt werden: Es ist der Slug dieses "
|
"Umleitungs-Slug „%s“ kann nicht hinzugefügt werden: Es ist der Slug dieses "
|
||||||
"Objects."
|
"Objects."
|
||||||
|
|
||||||
#: c3nav/editor/forms.py:151
|
#: c3nav/editor/forms.py:157
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Can not add redirecting slug “%s”: it is already used elsewhere."
|
msgid "Can not add redirecting slug “%s”: it is already used elsewhere."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Umleitungs-Slug „%s“ kann nicht hinzugefügt werden: Er wird bereits an "
|
"Umleitungs-Slug „%s“ kann nicht hinzugefügt werden: Er wird bereits an "
|
||||||
"anderer Stelle verwendet."
|
"anderer Stelle verwendet."
|
||||||
|
|
||||||
#: c3nav/editor/forms.py:203
|
#: c3nav/editor/forms.py:209
|
||||||
msgid "Final rejection"
|
msgid "Final rejection"
|
||||||
msgstr "Endgültige Ablehnung"
|
msgstr "Endgültige Ablehnung"
|
||||||
|
|
||||||
#: c3nav/editor/forms.py:211
|
#: c3nav/editor/forms.py:217
|
||||||
msgid "create one way edges"
|
msgid "create one way edges"
|
||||||
msgstr "Kante nur in eine Richtung erstellen"
|
msgstr "Kante nur in eine Richtung erstellen"
|
||||||
|
|
||||||
#: c3nav/editor/forms.py:212
|
#: c3nav/editor/forms.py:218
|
||||||
msgid "activate next node after connecting"
|
msgid "activate next node after connecting"
|
||||||
msgstr "nächsten Knoten nach dem Verbinden aktivieren"
|
msgstr "nächsten Knoten nach dem Verbinden aktivieren"
|
||||||
|
|
||||||
|
@ -506,7 +506,7 @@ msgstr "letzte Statusänderung"
|
||||||
|
|
||||||
#: c3nav/editor/models/changeset.py:48 c3nav/mapdata/models/base.py:50
|
#: c3nav/editor/models/changeset.py:48 c3nav/mapdata/models/base.py:50
|
||||||
#: c3nav/mapdata/models/graph.py:34 c3nav/mapdata/models/locations.py:183
|
#: c3nav/mapdata/models/graph.py:34 c3nav/mapdata/models/locations.py:183
|
||||||
#: c3nav/mapdata/utils/locations.py:316
|
#: c3nav/mapdata/utils/locations.py:334
|
||||||
msgid "Title"
|
msgid "Title"
|
||||||
msgstr "Titel"
|
msgstr "Titel"
|
||||||
|
|
||||||
|
@ -827,12 +827,12 @@ msgstr "Einstellungen für neue Kanten"
|
||||||
#: c3nav/editor/templates/editor/index.html:10
|
#: c3nav/editor/templates/editor/index.html:10
|
||||||
#: c3nav/editor/templates/editor/level.html:16
|
#: c3nav/editor/templates/editor/level.html:16
|
||||||
#: c3nav/mapdata/models/geometry/level.py:55 c3nav/mapdata/models/level.py:29
|
#: c3nav/mapdata/models/geometry/level.py:55 c3nav/mapdata/models/level.py:29
|
||||||
#: c3nav/mapdata/utils/locations.py:283
|
#: c3nav/mapdata/utils/locations.py:301
|
||||||
msgid "Level"
|
msgid "Level"
|
||||||
msgstr "Etage"
|
msgstr "Etage"
|
||||||
|
|
||||||
#: c3nav/editor/templates/editor/level.html:22
|
#: c3nav/editor/templates/editor/level.html:22
|
||||||
#: c3nav/editor/templates/editor/space.html:14 c3nav/editor/views/edit.py:411
|
#: c3nav/editor/templates/editor/space.html:14 c3nav/editor/views/edit.py:412
|
||||||
msgid "back to overview"
|
msgid "back to overview"
|
||||||
msgstr "zurück zur Übersicht"
|
msgstr "zurück zur Übersicht"
|
||||||
|
|
||||||
|
@ -858,8 +858,8 @@ msgstr "Details anzeigen"
|
||||||
|
|
||||||
#: c3nav/editor/templates/editor/space.html:9
|
#: c3nav/editor/templates/editor/space.html:9
|
||||||
#: c3nav/mapdata/models/geometry/level.py:110
|
#: c3nav/mapdata/models/geometry/level.py:110
|
||||||
#: c3nav/mapdata/models/geometry/space.py:66
|
#: c3nav/mapdata/models/geometry/space.py:70
|
||||||
#: c3nav/mapdata/utils/locations.py:289
|
#: c3nav/mapdata/utils/locations.py:307
|
||||||
msgid "Space"
|
msgid "Space"
|
||||||
msgstr "Raum"
|
msgstr "Raum"
|
||||||
|
|
||||||
|
@ -1068,89 +1068,89 @@ msgstr "gelöscht"
|
||||||
msgid "You cannot edit this change set."
|
msgid "You cannot edit this change set."
|
||||||
msgstr "Du kannst dieses Änderungsset nicht bearbeiten."
|
msgstr "Du kannst dieses Änderungsset nicht bearbeiten."
|
||||||
|
|
||||||
#: c3nav/editor/views/edit.py:221
|
#: c3nav/editor/views/edit.py:222
|
||||||
msgid "You can not create new objects because your changeset is full."
|
msgid "You can not create new objects because your changeset is full."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Du kannst keine neuen Objekte erstellen weil dein Änderungsset voll ist."
|
"Du kannst keine neuen Objekte erstellen weil dein Änderungsset voll ist."
|
||||||
|
|
||||||
#: c3nav/editor/views/edit.py:224 c3nav/editor/views/edit.py:238
|
#: c3nav/editor/views/edit.py:225 c3nav/editor/views/edit.py:239
|
||||||
msgid "You can not edit this object because your changeset is full."
|
msgid "You can not edit this object because your changeset is full."
|
||||||
msgstr "Du kannst diese Objekt nicht löschen weil dein Änderungsset voll ist."
|
msgstr "Du kannst diese Objekt nicht löschen weil dein Änderungsset voll ist."
|
||||||
|
|
||||||
#: c3nav/editor/views/edit.py:247
|
#: c3nav/editor/views/edit.py:248
|
||||||
msgid ""
|
msgid ""
|
||||||
"You can not delete this object because other objects still depend on it."
|
"You can not delete this object because other objects still depend on it."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Du kannst dieses Objekt nicht löschen weil andere Objekte sich darauf "
|
"Du kannst dieses Objekt nicht löschen weil andere Objekte sich darauf "
|
||||||
"beziehen."
|
"beziehen."
|
||||||
|
|
||||||
#: c3nav/editor/views/edit.py:255 c3nav/editor/views/edit.py:298
|
#: c3nav/editor/views/edit.py:256 c3nav/editor/views/edit.py:299
|
||||||
#: c3nav/editor/views/edit.py:524 c3nav/editor/views/edit.py:561
|
#: c3nav/editor/views/edit.py:525 c3nav/editor/views/edit.py:562
|
||||||
#: c3nav/editor/views/edit.py:579
|
#: c3nav/editor/views/edit.py:580
|
||||||
msgid "You can not edit changes on this changeset."
|
msgid "You can not edit changes on this changeset."
|
||||||
msgstr "Du kannst keine Änderungen dieses Änderungssets bearbeiten."
|
msgstr "Du kannst keine Änderungen dieses Änderungssets bearbeiten."
|
||||||
|
|
||||||
#: c3nav/editor/views/edit.py:257
|
#: c3nav/editor/views/edit.py:258
|
||||||
msgid "Object was successfully deleted."
|
msgid "Object was successfully deleted."
|
||||||
msgstr "Objekt wurde erfolgreich gelöscht."
|
msgstr "Objekt wurde erfolgreich gelöscht."
|
||||||
|
|
||||||
#: c3nav/editor/views/edit.py:295
|
#: c3nav/editor/views/edit.py:296
|
||||||
msgid "Object was successfully saved."
|
msgid "Object was successfully saved."
|
||||||
msgstr "Objekt wurde erfolgreich gespeichert."
|
msgstr "Objekt wurde erfolgreich gespeichert."
|
||||||
|
|
||||||
#: c3nav/editor/views/edit.py:366 c3nav/editor/views/edit.py:482
|
#: c3nav/editor/views/edit.py:367 c3nav/editor/views/edit.py:483
|
||||||
msgid "back to level"
|
msgid "back to level"
|
||||||
msgstr "zurück zur Etage"
|
msgstr "zurück zur Etage"
|
||||||
|
|
||||||
#: c3nav/editor/views/edit.py:405 c3nav/editor/views/edit.py:496
|
#: c3nav/editor/views/edit.py:406 c3nav/editor/views/edit.py:497
|
||||||
msgid "back to space"
|
msgid "back to space"
|
||||||
msgstr "zurück zum Raum"
|
msgstr "zurück zum Raum"
|
||||||
|
|
||||||
#: c3nav/editor/views/edit.py:443
|
#: c3nav/editor/views/edit.py:444
|
||||||
msgid "Could not edit edge because your changeset is full."
|
msgid "Could not edit edge because your changeset is full."
|
||||||
msgstr "Kante konnte nicht bearbeitet werden weil dein Änderungsset voll ist."
|
msgstr "Kante konnte nicht bearbeitet werden weil dein Änderungsset voll ist."
|
||||||
|
|
||||||
#: c3nav/editor/views/edit.py:450
|
#: c3nav/editor/views/edit.py:451
|
||||||
msgid "Reverse edge created."
|
msgid "Reverse edge created."
|
||||||
msgstr "Umgekehrte Kante erstellt."
|
msgstr "Umgekehrte Kante erstellt."
|
||||||
|
|
||||||
#: c3nav/editor/views/edit.py:450
|
#: c3nav/editor/views/edit.py:451
|
||||||
msgid "Edge created."
|
msgid "Edge created."
|
||||||
msgstr "Kante erstellt."
|
msgstr "Kante erstellt."
|
||||||
|
|
||||||
#: c3nav/editor/views/edit.py:453
|
#: c3nav/editor/views/edit.py:454
|
||||||
msgid "Reverse edge deleted."
|
msgid "Reverse edge deleted."
|
||||||
msgstr "Umgekehrte Kante gelöscht."
|
msgstr "Umgekehrte Kante gelöscht."
|
||||||
|
|
||||||
#: c3nav/editor/views/edit.py:453
|
#: c3nav/editor/views/edit.py:454
|
||||||
msgid "Edge deleted."
|
msgid "Edge deleted."
|
||||||
msgstr "Kante gelöscht."
|
msgstr "Kante gelöscht."
|
||||||
|
|
||||||
#: c3nav/editor/views/edit.py:458
|
#: c3nav/editor/views/edit.py:459
|
||||||
msgid "Reverse edge overwritten."
|
msgid "Reverse edge overwritten."
|
||||||
msgstr "Umgekehrte Kante überschrieben."
|
msgstr "Umgekehrte Kante überschrieben."
|
||||||
|
|
||||||
#: c3nav/editor/views/edit.py:458
|
#: c3nav/editor/views/edit.py:459
|
||||||
msgid "Edge overwritten."
|
msgid "Edge overwritten."
|
||||||
msgstr "Kante überschrieben."
|
msgstr "Kante überschrieben."
|
||||||
|
|
||||||
#: c3nav/editor/views/edit.py:498
|
#: c3nav/editor/views/edit.py:499
|
||||||
msgid "to level graph"
|
msgid "to level graph"
|
||||||
msgstr "zum Etagengraph"
|
msgstr "zum Etagengraph"
|
||||||
|
|
||||||
#: c3nav/editor/views/edit.py:514
|
#: c3nav/editor/views/edit.py:515
|
||||||
msgid "You can not delete this graph node because your changeset is full."
|
msgid "You can not delete this graph node because your changeset is full."
|
||||||
msgstr "Du kannst diesen Knoten nicht löschen weil dein Änderungsset voll ist."
|
msgstr "Du kannst diesen Knoten nicht löschen weil dein Änderungsset voll ist."
|
||||||
|
|
||||||
#: c3nav/editor/views/edit.py:526
|
#: c3nav/editor/views/edit.py:527
|
||||||
msgid "Graph Node was successfully deleted."
|
msgid "Graph Node was successfully deleted."
|
||||||
msgstr "Graphknoten wurde erfolgreich gelöscht."
|
msgstr "Graphknoten wurde erfolgreich gelöscht."
|
||||||
|
|
||||||
#: c3nav/editor/views/edit.py:567
|
#: c3nav/editor/views/edit.py:568
|
||||||
msgid "You can not add graph nodes because your changeset is full."
|
msgid "You can not add graph nodes because your changeset is full."
|
||||||
msgstr "Du kannst keine Graphknoten erstellen weil dein Änderungsset voll ist."
|
msgstr "Du kannst keine Graphknoten erstellen weil dein Änderungsset voll ist."
|
||||||
|
|
||||||
#: c3nav/editor/views/edit.py:574
|
#: c3nav/editor/views/edit.py:575
|
||||||
msgid "New graph node created."
|
msgid "New graph node created."
|
||||||
msgstr "Neuer Graphknoten erstellt."
|
msgstr "Neuer Graphknoten erstellt."
|
||||||
|
|
||||||
|
@ -1268,50 +1268,62 @@ msgstr "Zoomfaktor (von 1 bis 32), nur relevant für Bildrenderer"
|
||||||
msgid "open"
|
msgid "open"
|
||||||
msgstr "öffnen"
|
msgstr "öffnen"
|
||||||
|
|
||||||
#: c3nav/mapdata/models/access.py:27
|
#: c3nav/mapdata/models/access.py:24
|
||||||
|
msgid "Groups"
|
||||||
|
msgstr "Gruppen"
|
||||||
|
|
||||||
|
#: c3nav/mapdata/models/access.py:28
|
||||||
msgid "Access Restrictions"
|
msgid "Access Restrictions"
|
||||||
msgstr "Zugangsbeschränkungen"
|
msgstr "Zugangsbeschränkungen"
|
||||||
|
|
||||||
#: c3nav/mapdata/models/access.py:54
|
#: c3nav/mapdata/models/access.py:47
|
||||||
|
msgid "Access Restriction Group"
|
||||||
|
msgstr "Zugangsbeschränkungsgruppe"
|
||||||
|
|
||||||
|
#: c3nav/mapdata/models/access.py:48
|
||||||
|
msgid "Access Restriction Groups"
|
||||||
|
msgstr "Zugangsbeschränkungsgruppen"
|
||||||
|
|
||||||
|
#: c3nav/mapdata/models/access.py:76
|
||||||
msgid "valid until"
|
msgid "valid until"
|
||||||
msgstr "gültig bis"
|
msgstr "gültig bis"
|
||||||
|
|
||||||
#: c3nav/mapdata/models/access.py:55
|
#: c3nav/mapdata/models/access.py:77
|
||||||
msgid "unlimited"
|
msgid "unlimited"
|
||||||
msgstr "unbeschränkt"
|
msgstr "unbeschränkt"
|
||||||
|
|
||||||
#: c3nav/mapdata/models/access.py:56
|
#: c3nav/mapdata/models/access.py:78
|
||||||
msgid "redeemed"
|
msgid "redeemed"
|
||||||
msgstr "eingelöst"
|
msgstr "eingelöst"
|
||||||
|
|
||||||
#: c3nav/mapdata/models/access.py:58 c3nav/mapdata/models/access.py:118
|
#: c3nav/mapdata/models/access.py:80 c3nav/mapdata/models/access.py:140
|
||||||
msgid "unique key"
|
msgid "unique key"
|
||||||
msgstr "unique key"
|
msgstr "unique key"
|
||||||
|
|
||||||
#: c3nav/mapdata/models/access.py:62
|
#: c3nav/mapdata/models/access.py:84
|
||||||
msgid "Access Permission Token"
|
msgid "Access Permission Token"
|
||||||
msgstr "Zugangserlaubnis-Token"
|
msgstr "Zugangserlaubnis-Token"
|
||||||
|
|
||||||
#: c3nav/mapdata/models/access.py:63
|
#: c3nav/mapdata/models/access.py:85
|
||||||
msgid "Access Permission Tokens"
|
msgid "Access Permission Tokens"
|
||||||
msgstr "Zugangserlaubnis-Token"
|
msgstr "Zugangserlaubnis-Token"
|
||||||
|
|
||||||
#: c3nav/mapdata/models/access.py:108 c3nav/site/views.py:77
|
#: c3nav/mapdata/models/access.py:130 c3nav/site/views.py:77
|
||||||
#: c3nav/site/views.py:298
|
#: c3nav/site/views.py:298
|
||||||
msgid "Area successfully unlocked."
|
msgid "Area successfully unlocked."
|
||||||
msgid_plural "Areas successfully unlocked."
|
msgid_plural "Areas successfully unlocked."
|
||||||
msgstr[0] "Bereich erfolgreich freigeschaltet."
|
msgstr[0] "Bereich erfolgreich freigeschaltet."
|
||||||
msgstr[1] "Bereiche erfolgreich freigeschaltet."
|
msgstr[1] "Bereiche erfolgreich freigeschaltet."
|
||||||
|
|
||||||
#: c3nav/mapdata/models/access.py:120
|
#: c3nav/mapdata/models/access.py:142
|
||||||
msgid "Access permission token"
|
msgid "Access permission token"
|
||||||
msgstr "Zugangserlaubnis-Token"
|
msgstr "Zugangserlaubnis-Token"
|
||||||
|
|
||||||
#: c3nav/mapdata/models/access.py:123
|
#: c3nav/mapdata/models/access.py:145
|
||||||
msgid "Access Permission"
|
msgid "Access Permission"
|
||||||
msgstr "Zugangserlaubnis"
|
msgstr "Zugangserlaubnis"
|
||||||
|
|
||||||
#: c3nav/mapdata/models/base.py:39 c3nav/mapdata/utils/locations.py:280
|
#: c3nav/mapdata/models/base.py:39 c3nav/mapdata/utils/locations.py:298
|
||||||
msgid "Type"
|
msgid "Type"
|
||||||
msgstr "Typ"
|
msgstr "Typ"
|
||||||
|
|
||||||
|
@ -1355,8 +1367,8 @@ msgstr "Gebäude"
|
||||||
|
|
||||||
#: c3nav/mapdata/models/geometry/level.py:105
|
#: c3nav/mapdata/models/geometry/level.py:105
|
||||||
#: c3nav/mapdata/models/geometry/level.py:123
|
#: c3nav/mapdata/models/geometry/level.py:123
|
||||||
#: c3nav/mapdata/models/geometry/space.py:147
|
#: c3nav/mapdata/models/geometry/space.py:151
|
||||||
#: c3nav/mapdata/models/geometry/space.py:167
|
#: c3nav/mapdata/models/geometry/space.py:171
|
||||||
msgid "height"
|
msgid "height"
|
||||||
msgstr "Höhe"
|
msgstr "Höhe"
|
||||||
|
|
||||||
|
@ -1381,7 +1393,7 @@ msgid "Doors"
|
||||||
msgstr "Türen"
|
msgstr "Türen"
|
||||||
|
|
||||||
#: c3nav/mapdata/models/geometry/level.py:147
|
#: c3nav/mapdata/models/geometry/level.py:147
|
||||||
#: c3nav/mapdata/models/geometry/space.py:234
|
#: c3nav/mapdata/models/geometry/space.py:238
|
||||||
msgid "altitude"
|
msgid "altitude"
|
||||||
msgstr "Bodenhöhe"
|
msgstr "Bodenhöhe"
|
||||||
|
|
||||||
|
@ -1419,142 +1431,142 @@ msgstr ""
|
||||||
"%(num_modified)d geändert, %(num_deleted)d entfernt, %(num_created)d "
|
"%(num_modified)d geändert, %(num_deleted)d entfernt, %(num_created)d "
|
||||||
"erstellt."
|
"erstellt."
|
||||||
|
|
||||||
#: c3nav/mapdata/models/geometry/space.py:20
|
#: c3nav/mapdata/models/geometry/space.py:21
|
||||||
#: c3nav/mapdata/models/geometry/space.py:250
|
#: c3nav/mapdata/models/geometry/space.py:254
|
||||||
#: c3nav/mapdata/models/geometry/space.py:272
|
#: c3nav/mapdata/models/geometry/space.py:276
|
||||||
msgid "space"
|
msgid "space"
|
||||||
msgstr "Raum"
|
msgstr "Raum"
|
||||||
|
|
||||||
#: c3nav/mapdata/models/geometry/space.py:46
|
#: c3nav/mapdata/models/geometry/space.py:50
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "{category}, {space}, {level}"
|
msgid "{category}, {space}, {level}"
|
||||||
msgstr "{category}, {space}, {level}"
|
msgstr "{category}, {space}, {level}"
|
||||||
|
|
||||||
#: c3nav/mapdata/models/geometry/space.py:50
|
#: c3nav/mapdata/models/geometry/space.py:54
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "{category}, {space}"
|
msgid "{category}, {space}"
|
||||||
msgstr "{category}, {space}"
|
msgstr "{category}, {space}"
|
||||||
|
|
||||||
#: c3nav/mapdata/models/geometry/space.py:92
|
#: c3nav/mapdata/models/geometry/space.py:96
|
||||||
msgid "Column"
|
msgid "Column"
|
||||||
msgstr "Säule"
|
msgstr "Säule"
|
||||||
|
|
||||||
#: c3nav/mapdata/models/geometry/space.py:93
|
#: c3nav/mapdata/models/geometry/space.py:97
|
||||||
msgid "Columns"
|
msgid "Columns"
|
||||||
msgstr "Säulen"
|
msgstr "Säulen"
|
||||||
|
|
||||||
#: c3nav/mapdata/models/geometry/space.py:104
|
#: c3nav/mapdata/models/geometry/space.py:108
|
||||||
msgid "Area"
|
msgid "Area"
|
||||||
msgstr "Bereich"
|
msgstr "Bereich"
|
||||||
|
|
||||||
#: c3nav/mapdata/models/geometry/space.py:105
|
#: c3nav/mapdata/models/geometry/space.py:109
|
||||||
#: c3nav/mapdata/utils/locations.py:295
|
#: c3nav/mapdata/utils/locations.py:313
|
||||||
msgid "Areas"
|
msgid "Areas"
|
||||||
msgstr "Bereiche"
|
msgstr "Bereiche"
|
||||||
|
|
||||||
#: c3nav/mapdata/models/geometry/space.py:125
|
#: c3nav/mapdata/models/geometry/space.py:129
|
||||||
msgid "Stair"
|
msgid "Stair"
|
||||||
msgstr "Stufe"
|
msgstr "Stufe"
|
||||||
|
|
||||||
#: c3nav/mapdata/models/geometry/space.py:126
|
#: c3nav/mapdata/models/geometry/space.py:130
|
||||||
msgid "Stairs"
|
msgid "Stairs"
|
||||||
msgstr "Stufen"
|
msgstr "Stufen"
|
||||||
|
|
||||||
#: c3nav/mapdata/models/geometry/space.py:137
|
#: c3nav/mapdata/models/geometry/space.py:141
|
||||||
msgid "Ramp"
|
msgid "Ramp"
|
||||||
msgstr "Rampe"
|
msgstr "Rampe"
|
||||||
|
|
||||||
#: c3nav/mapdata/models/geometry/space.py:138
|
#: c3nav/mapdata/models/geometry/space.py:142
|
||||||
msgid "Ramps"
|
msgid "Ramps"
|
||||||
msgstr "Rampen"
|
msgstr "Rampen"
|
||||||
|
|
||||||
#: c3nav/mapdata/models/geometry/space.py:151
|
#: c3nav/mapdata/models/geometry/space.py:155
|
||||||
msgid "Obstacle"
|
msgid "Obstacle"
|
||||||
msgstr "Hindernis"
|
msgstr "Hindernis"
|
||||||
|
|
||||||
#: c3nav/mapdata/models/geometry/space.py:152
|
#: c3nav/mapdata/models/geometry/space.py:156
|
||||||
msgid "Obstacles"
|
msgid "Obstacles"
|
||||||
msgstr "Hindernisse"
|
msgstr "Hindernisse"
|
||||||
|
|
||||||
#: c3nav/mapdata/models/geometry/space.py:166
|
#: c3nav/mapdata/models/geometry/space.py:170
|
||||||
msgid "width"
|
msgid "width"
|
||||||
msgstr "Breite"
|
msgstr "Breite"
|
||||||
|
|
||||||
#: c3nav/mapdata/models/geometry/space.py:171
|
#: c3nav/mapdata/models/geometry/space.py:175
|
||||||
msgid "Line Obstacle"
|
msgid "Line Obstacle"
|
||||||
msgstr "Linienhindernis"
|
msgstr "Linienhindernis"
|
||||||
|
|
||||||
#: c3nav/mapdata/models/geometry/space.py:172
|
#: c3nav/mapdata/models/geometry/space.py:176
|
||||||
msgid "Line Obstacles"
|
msgid "Line Obstacles"
|
||||||
msgstr "Linienhindernisse"
|
msgstr "Linienhindernisse"
|
||||||
|
|
||||||
#: c3nav/mapdata/models/geometry/space.py:207
|
#: c3nav/mapdata/models/geometry/space.py:211
|
||||||
msgid "Point of Interest"
|
msgid "Point of Interest"
|
||||||
msgstr "Ort von Interesse"
|
msgstr "Ort von Interesse"
|
||||||
|
|
||||||
#: c3nav/mapdata/models/geometry/space.py:208
|
#: c3nav/mapdata/models/geometry/space.py:212
|
||||||
msgid "Points of Interest"
|
msgid "Points of Interest"
|
||||||
msgstr "Orte von Interesse"
|
msgstr "Orte von Interesse"
|
||||||
|
|
||||||
#: c3nav/mapdata/models/geometry/space.py:224
|
#: c3nav/mapdata/models/geometry/space.py:228
|
||||||
msgid "Hole"
|
msgid "Hole"
|
||||||
msgstr "Loch"
|
msgstr "Loch"
|
||||||
|
|
||||||
#: c3nav/mapdata/models/geometry/space.py:225
|
#: c3nav/mapdata/models/geometry/space.py:229
|
||||||
msgid "Holes"
|
msgid "Holes"
|
||||||
msgstr "Löcher"
|
msgstr "Löcher"
|
||||||
|
|
||||||
#: c3nav/mapdata/models/geometry/space.py:237
|
#: c3nav/mapdata/models/geometry/space.py:241
|
||||||
msgid "Altitude Marker"
|
msgid "Altitude Marker"
|
||||||
msgstr "Höhenmarker"
|
msgstr "Höhenmarker"
|
||||||
|
|
||||||
#: c3nav/mapdata/models/geometry/space.py:238
|
#: c3nav/mapdata/models/geometry/space.py:242
|
||||||
msgid "Altitude Markers"
|
msgid "Altitude Markers"
|
||||||
msgstr "Höhenmarker"
|
msgstr "Höhenmarker"
|
||||||
|
|
||||||
#: c3nav/mapdata/models/geometry/space.py:251
|
#: c3nav/mapdata/models/geometry/space.py:255
|
||||||
#: c3nav/mapdata/models/geometry/space.py:275
|
#: c3nav/mapdata/models/geometry/space.py:279
|
||||||
msgid "target space"
|
msgid "target space"
|
||||||
msgstr "Zielraum"
|
msgstr "Zielraum"
|
||||||
|
|
||||||
#: c3nav/mapdata/models/geometry/space.py:253
|
#: c3nav/mapdata/models/geometry/space.py:257
|
||||||
#: c3nav/mapdata/models/geometry/space.py:277 c3nav/mapdata/models/graph.py:44
|
#: c3nav/mapdata/models/geometry/space.py:281 c3nav/mapdata/models/graph.py:44
|
||||||
msgid "description"
|
msgid "description"
|
||||||
msgstr "Beschreibung"
|
msgstr "Beschreibung"
|
||||||
|
|
||||||
#: c3nav/mapdata/models/geometry/space.py:256
|
#: c3nav/mapdata/models/geometry/space.py:260
|
||||||
msgid "Leave description"
|
msgid "Leave description"
|
||||||
msgstr "Verlassensbeschreibung"
|
msgstr "Verlassensbeschreibung"
|
||||||
|
|
||||||
#: c3nav/mapdata/models/geometry/space.py:257
|
#: c3nav/mapdata/models/geometry/space.py:261
|
||||||
msgid "Leave descriptions"
|
msgid "Leave descriptions"
|
||||||
msgstr "Verlassensbeschreibungen"
|
msgstr "Verlassensbeschreibungen"
|
||||||
|
|
||||||
#: c3nav/mapdata/models/geometry/space.py:273
|
#: c3nav/mapdata/models/geometry/space.py:277
|
||||||
msgid "origin space"
|
msgid "origin space"
|
||||||
msgstr "Ursprungsraum"
|
msgstr "Ursprungsraum"
|
||||||
|
|
||||||
#: c3nav/mapdata/models/geometry/space.py:280
|
#: c3nav/mapdata/models/geometry/space.py:284
|
||||||
msgid "Cross description"
|
msgid "Cross description"
|
||||||
msgstr "Durchschreitungsbeschreibung"
|
msgstr "Durchschreitungsbeschreibung"
|
||||||
|
|
||||||
#: c3nav/mapdata/models/geometry/space.py:281
|
#: c3nav/mapdata/models/geometry/space.py:285
|
||||||
msgid "Cross descriptions"
|
msgid "Cross descriptions"
|
||||||
msgstr "Durchschreitungsbeschreibungen"
|
msgstr "Durchschreitungsbeschreibungen"
|
||||||
|
|
||||||
#: c3nav/mapdata/models/geometry/space.py:298
|
#: c3nav/mapdata/models/geometry/space.py:302
|
||||||
msgid "comment"
|
msgid "comment"
|
||||||
msgstr "Kommentar"
|
msgstr "Kommentar"
|
||||||
|
|
||||||
#: c3nav/mapdata/models/geometry/space.py:299
|
#: c3nav/mapdata/models/geometry/space.py:303
|
||||||
msgid "Measurement list"
|
msgid "Measurement list"
|
||||||
msgstr "Messungsliste"
|
msgstr "Messungsliste"
|
||||||
|
|
||||||
#: c3nav/mapdata/models/geometry/space.py:302
|
#: c3nav/mapdata/models/geometry/space.py:306
|
||||||
msgid "Wi-Fi Measurement"
|
msgid "Wi-Fi Measurement"
|
||||||
msgstr "WLAN Messung"
|
msgstr "WLAN Messung"
|
||||||
|
|
||||||
#: c3nav/mapdata/models/geometry/space.py:303
|
#: c3nav/mapdata/models/geometry/space.py:307
|
||||||
msgid "Wi-Fi Measurements"
|
msgid "Wi-Fi Measurements"
|
||||||
msgstr "WLAN Messungen"
|
msgstr "WLAN Messungen"
|
||||||
|
|
||||||
|
@ -1659,7 +1671,7 @@ msgid "default height"
|
||||||
msgstr "Standarddeckenhöhe"
|
msgstr "Standarddeckenhöhe"
|
||||||
|
|
||||||
#: c3nav/mapdata/models/locations.py:45 c3nav/mapdata/models/locations.py:65
|
#: c3nav/mapdata/models/locations.py:45 c3nav/mapdata/models/locations.py:65
|
||||||
#: c3nav/mapdata/utils/locations.py:282
|
#: c3nav/mapdata/utils/locations.py:300
|
||||||
msgid "Slug"
|
msgid "Slug"
|
||||||
msgstr "Slug"
|
msgstr "Slug"
|
||||||
|
|
||||||
|
@ -1791,59 +1803,59 @@ msgstr[1] "%d Kartenupdates verarbeitet."
|
||||||
msgid "Last processed update: %(date)s (#%(id)d)"
|
msgid "Last processed update: %(date)s (#%(id)d)"
|
||||||
msgstr "Letztes verarbeitetes Update: %(date)s (#%(id)d)"
|
msgstr "Letztes verarbeitetes Update: %(date)s (#%(id)d)"
|
||||||
|
|
||||||
#: c3nav/mapdata/utils/locations.py:280
|
#: c3nav/mapdata/utils/locations.py:298
|
||||||
msgid "Coordinates"
|
msgid "Coordinates"
|
||||||
msgstr "Koordinaten"
|
msgstr "Koordinaten"
|
||||||
|
|
||||||
#: c3nav/mapdata/utils/locations.py:301
|
#: c3nav/mapdata/utils/locations.py:319
|
||||||
msgid "Near Area"
|
msgid "Near Area"
|
||||||
msgstr "Naher Bereich"
|
msgstr "Naher Bereich"
|
||||||
|
|
||||||
#: c3nav/mapdata/utils/locations.py:307
|
#: c3nav/mapdata/utils/locations.py:325
|
||||||
msgid "Near POI"
|
msgid "Near POI"
|
||||||
msgstr "Naher POI"
|
msgstr "Naher POI"
|
||||||
|
|
||||||
#: c3nav/mapdata/utils/locations.py:313
|
#: c3nav/mapdata/utils/locations.py:331
|
||||||
msgid "X Coordinate"
|
msgid "X Coordinate"
|
||||||
msgstr "X-Koordinate"
|
msgstr "X-Koordinate"
|
||||||
|
|
||||||
#: c3nav/mapdata/utils/locations.py:314
|
#: c3nav/mapdata/utils/locations.py:332
|
||||||
msgid "Y Coordinate"
|
msgid "Y Coordinate"
|
||||||
msgstr "Y-Koordinate"
|
msgstr "Y-Koordinate"
|
||||||
|
|
||||||
#: c3nav/mapdata/utils/locations.py:315
|
#: c3nav/mapdata/utils/locations.py:333
|
||||||
msgid "Altitude"
|
msgid "Altitude"
|
||||||
msgstr "Höhe"
|
msgstr "Höhe"
|
||||||
|
|
||||||
#: c3nav/mapdata/utils/locations.py:317
|
#: c3nav/mapdata/utils/locations.py:335
|
||||||
msgid "Subtitle"
|
msgid "Subtitle"
|
||||||
msgstr "Untertitel"
|
msgstr "Untertitel"
|
||||||
|
|
||||||
#: c3nav/mapdata/utils/locations.py:349
|
#: c3nav/mapdata/utils/locations.py:367
|
||||||
msgid "Point"
|
msgid "Point"
|
||||||
msgstr "Punkt"
|
msgstr "Punkt"
|
||||||
|
|
||||||
#: c3nav/mapdata/utils/locations.py:356
|
#: c3nav/mapdata/utils/locations.py:374
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Point near %(poi)s"
|
msgid "Point near %(poi)s"
|
||||||
msgstr "Punkt nahe %(poi)s"
|
msgstr "Punkt nahe %(poi)s"
|
||||||
|
|
||||||
#: c3nav/mapdata/utils/locations.py:360
|
#: c3nav/mapdata/utils/locations.py:378
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "near %(area)s"
|
msgid "near %(area)s"
|
||||||
msgstr "nahe %(area)s"
|
msgstr "nahe %(area)s"
|
||||||
|
|
||||||
#: c3nav/mapdata/utils/locations.py:362
|
#: c3nav/mapdata/utils/locations.py:380
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Point in %(area)s"
|
msgid "Point in %(area)s"
|
||||||
msgstr "Punkt innerhalb %(area)s"
|
msgstr "Punkt innerhalb %(area)s"
|
||||||
|
|
||||||
#: c3nav/mapdata/utils/locations.py:366
|
#: c3nav/mapdata/utils/locations.py:384
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Point near %(area)s"
|
msgid "Point near %(area)s"
|
||||||
msgstr "Punkt nahe %(area)s"
|
msgstr "Punkt nahe %(area)s"
|
||||||
|
|
||||||
#: c3nav/mapdata/utils/locations.py:368
|
#: c3nav/mapdata/utils/locations.py:386
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Point in %(space)s"
|
msgid "Point in %(space)s"
|
||||||
msgstr "Punkt innerhalb %(space)s"
|
msgstr "Punkt innerhalb %(space)s"
|
||||||
|
|
|
@ -0,0 +1,33 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Generated by Django 1.11.7 on 2017-12-20 19:44
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
import c3nav.mapdata.fields
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('mapdata', '0064_access_permission_unique_key'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='AccessRestrictionGroup',
|
||||||
|
fields=[
|
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('title', c3nav.mapdata.fields.I18nField(blank=True, fallback_any=True, fallback_value='{model} {pk}', plural_name='titles', verbose_name='Title')),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'verbose_name': 'Access Restriction Group',
|
||||||
|
'verbose_name_plural': 'Access Restriction Groups',
|
||||||
|
'default_related_name': 'accessrestrictiongroups',
|
||||||
|
},
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='accessrestriction',
|
||||||
|
name='groups',
|
||||||
|
field=models.ManyToManyField(blank=True, related_name='accessrestrictions', to='mapdata.AccessRestrictionGroup', verbose_name='Groups'),
|
||||||
|
),
|
||||||
|
]
|
|
@ -21,6 +21,7 @@ class AccessRestriction(TitledMixin, models.Model):
|
||||||
An access restriction
|
An access restriction
|
||||||
"""
|
"""
|
||||||
open = models.BooleanField(default=False, verbose_name=_('open'))
|
open = models.BooleanField(default=False, verbose_name=_('open'))
|
||||||
|
groups = models.ManyToManyField('mapdata.AccessRestrictionGroup', verbose_name=_('Groups'), blank=True)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
verbose_name = _('Access Restriction')
|
verbose_name = _('Access Restriction')
|
||||||
|
@ -38,6 +39,27 @@ class AccessRestriction(TitledMixin, models.Model):
|
||||||
return Q(pk__in=AccessPermission.get_for_request(request))
|
return Q(pk__in=AccessPermission.get_for_request(request))
|
||||||
|
|
||||||
|
|
||||||
|
class AccessRestrictionGroup(TitledMixin, models.Model):
|
||||||
|
"""
|
||||||
|
An access restriction group
|
||||||
|
"""
|
||||||
|
class Meta:
|
||||||
|
verbose_name = _('Access Restriction Group')
|
||||||
|
verbose_name_plural = _('Access Restriction Groups')
|
||||||
|
default_related_name = 'accessrestrictiongroups'
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def qs_for_request(cls, request):
|
||||||
|
return cls.objects.filter(cls.q_for_request(request))
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def q_for_request(cls, request):
|
||||||
|
if request.user.is_authenticated and request.user.is_superuser:
|
||||||
|
return Q()
|
||||||
|
permissions = AccessPermission.get_for_request(request)
|
||||||
|
return Q(Q(accessrestrictions=None) | Q(accessrestrictions__pk__in=permissions))
|
||||||
|
|
||||||
|
|
||||||
def default_valid_until():
|
def default_valid_until():
|
||||||
return timezone.now()+timedelta(seconds=20)
|
return timezone.now()+timedelta(seconds=20)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue