From e005863336aee3ac7e98b2cc094e45a09afd073c Mon Sep 17 00:00:00 2001 From: Andy Kittner Date: Sat, 19 May 2012 12:46:54 +0200 Subject: [PATCH] Changed/ added logmessages for applications (#184, #187) - Added a logmessage when a version is accepted/ rejected - Made logmessage for trivial changes more explicit and include the names of the changed fields - Updated translations --- openslides/application/models.py | 31 ++-- openslides/application/views.py | 4 +- openslides/locale/de/LC_MESSAGES/django.mo | Bin 32255 -> 32483 bytes openslides/locale/de/LC_MESSAGES/django.po | 177 +++++++++++---------- 4 files changed, 120 insertions(+), 92 deletions(-) diff --git a/openslides/application/models.py b/openslides/application/models.py index f7774a358..4d0632b3d 100644 --- a/openslides/application/models.py +++ b/openslides/application/models.py @@ -82,7 +82,7 @@ class Application(models.Model, SlideMixin): else: return self.last_version - def accept_version(self, version): + def accept_version(self, version, user = None): """ accept a Version """ @@ -90,11 +90,15 @@ class Application(models.Model, SlideMixin): self.save(nonewversion=True) version.rejected = False version.save() + self.writelog(_("Application version %d allowed") % (version.aid, ), + user) - def reject_version(self, version): + def reject_version(self, version, user = None): if version.id > self.permitted.id: version.rejected = True version.save() + self.writelog(_("Application version %d rejected") + % (version.aid, ), user) return True return False @@ -175,10 +179,11 @@ class Application(models.Model, SlideMixin): if nonewversion: return last_version = self.last_version + fields = ["text", "title", "reason"] if last_version is not None: - if (last_version.text == self.text - and last_version.title == self.title - and last_version.reason == self.reason): + changed_fields = [f for f in fields + if getattr(last_version, f) != getattr(self, f)] + if not changed_fields: return # No changes try: if trivial_change and last_version is not None: @@ -186,7 +191,15 @@ class Application(models.Model, SlideMixin): last_version.title = self.title last_version.reason = self.reason last_version.save() - self.writelog(_("Version %s modified") % last_version.aid, user) + + meta = AVersion._meta + field_names = [unicode(meta.get_field(f).verbose_name) + for f in changed_fields] + + self.writelog(_("Trivial changes to version %(version)d; " + "changed fields: %(changed_fields)s") + % dict(version = last_version.aid, + changed_fields = ", ".join(field_names))) return # Done if self.title != "": @@ -492,9 +505,9 @@ class Application(models.Model, SlideMixin): class AVersion(models.Model): - title = models.CharField(max_length=100) - text = models.TextField() - reason = models.TextField(null=True, blank=True) + title = models.CharField(max_length=100, verbose_name = _("Title")) + text = models.TextField(verbose_name = _("Text")) + reason = models.TextField(null=True, blank=True, verbose_name = _("Reason")) rejected = models.BooleanField() time = models.DateTimeField(auto_now=True) application = models.ForeignKey(Application) diff --git a/openslides/application/views.py b/openslides/application/views.py index 224697249..9caffb3ca 100644 --- a/openslides/application/views.py +++ b/openslides/application/views.py @@ -505,7 +505,7 @@ def permit_version(request, aversion_id): aversion = AVersion.objects.get(pk=aversion_id) application = aversion.application if request.method == 'POST': - application.accept_version(aversion) + application.accept_version(aversion, user = request.user) messages.success(request, _("Version %s accepted.") % (aversion.aid)) else: gen_confirm_form(request, _('Do you really want to permit version %s?') % aversion.aid, reverse('application_version_permit', args=[aversion.id])) @@ -517,7 +517,7 @@ def reject_version(request, aversion_id): aversion = AVersion.objects.get(pk=aversion_id) application = aversion.application if request.method == 'POST': - if application.reject_version(aversion): + if application.reject_version(aversion, user = request.user): messages.success(request, _("Version %s rejected.") % (aversion.aid)) else: messages.error(request, _("ERROR by rejecting the version.") ) diff --git a/openslides/locale/de/LC_MESSAGES/django.mo b/openslides/locale/de/LC_MESSAGES/django.mo index 7d7091771277ad31df4d5db07b4dd880894088e1..695bd944018d01164aa8640e16fbcbd6eea80c24 100644 GIT binary patch delta 9501 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 diff --git a/openslides/locale/de/LC_MESSAGES/django.po b/openslides/locale/de/LC_MESSAGES/django.po index aba64ffcb..ff386407b 100644 --- a/openslides/locale/de/LC_MESSAGES/django.po +++ b/openslides/locale/de/LC_MESSAGES/django.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: OpenSlides 1.x\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-05-19 08:39+0200\n" +"POT-Creation-Date: 2012-05-19 12:27+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Emanuel Schuetze \n" "Language-Team: German\n" @@ -28,13 +28,13 @@ msgstr "Englisch" msgid "Parent item" msgstr "Elternelement" -#: agenda/models.py:38 application/forms.py:40 +#: agenda/models.py:38 application/forms.py:40 application/models.py:508 #: application/templates/application/view.html:243 config/forms.py:27 #: projector/models.py:28 msgid "Title" msgstr "Titel" -#: agenda/models.py:39 application/forms.py:41 +#: agenda/models.py:39 application/forms.py:41 application/models.py:509 #: application/templates/application/view.html:244 projector/models.py:29 msgid "Text" msgstr "Text" @@ -93,7 +93,7 @@ msgid "Item %s was successfully deleted." msgstr "Eintrag %s wurde erfolgreich gelöscht." #: agenda/views.py:156 agenda/views.py:158 -#: agenda/templates/agenda/overview.html:46 application/models.py:530 +#: agenda/templates/agenda/overview.html:46 application/models.py:543 #: application/views.py:472 application/views.py:764 application/views.py:814 #: application/templates/application/view.html:79 #: application/templates/projector/Application.html:37 @@ -106,7 +106,7 @@ msgid "Yes" msgstr "Ja" #: agenda/views.py:156 agenda/views.py:158 -#: agenda/templates/agenda/overview.html:47 application/models.py:530 +#: agenda/templates/agenda/overview.html:47 application/models.py:543 #: application/views.py:472 application/views.py:764 application/views.py:815 #: application/templates/application/view.html:80 #: application/templates/projector/Application.html:38 @@ -121,7 +121,7 @@ msgid "Yes, with all child items." msgstr "Ja, mit allen Kindelementen." #: agenda/views.py:164 agenda/views.py:166 application/views.py:482 -#: participant/views.py:194 participant/views.py:289 utils/utils.py:47 +#: participant/views.py:196 participant/views.py:291 utils/utils.py:47 #: utils/views.py:212 #, python-format msgid "Do you really want to delete %s?" @@ -198,7 +198,6 @@ msgid "Cancel" msgstr "Abbrechen" #: agenda/templates/agenda/control_item.html:10 -#: projector/templates/projector/control_customslide.html:11 #: projector/templates/projector/default_control_slidefunc.html:9 #: projector/templates/projector/default_control_slidemodel.html:10 msgid "Preview" @@ -277,7 +276,7 @@ msgstr "Aktionen" msgid "No items available." msgstr "Keine Einträge vorhanden." -#: application/forms.py:42 application/views.py:782 +#: application/forms.py:42 application/models.py:510 application/views.py:782 #: application/templates/application/view.html:226 #: application/templates/application/view.html:246 #: application/templates/projector/Application.html:77 @@ -396,95 +395,108 @@ msgstr "Verworfen (nicht zulässig)" msgid "Needs Review" msgstr "Benötigt Review" -#: application/models.py:125 +#: application/models.py:93 +#, python-format +msgid "Application version %d allowed" +msgstr "Antrag Version %d zugelassen" + +#: application/models.py:100 +#, python-format +msgid "Application version %d rejected" +msgstr "Antrag Version %d zurückgewiesen" + +#: application/models.py:129 msgid "Searching for supporters." msgstr "Auf Unterstützersuche." -#: application/models.py:127 +#: application/models.py:131 msgid "Not yet permitted." msgstr "Noch nicht zugelassen." -#: application/models.py:129 +#: application/models.py:133 msgid "Not yet permitted changes." msgstr "Noch nicht zugelassene Änderungen." -#: application/models.py:189 +#: application/models.py:199 #, python-format -msgid "Version %s modified" -msgstr "Version %s bearbeitet" +msgid "" +"Trivial changes to version %(version)d; changed fields: %(changed_fields)s" +msgstr "" +"Triviale Änderung an Version %(version)d; Geänderte Felder: " +"%(changed_fields)s" -#: application/models.py:198 +#: application/models.py:211 #, python-format msgid "Version %s created" msgstr "Version %s erstellt" -#: application/models.py:207 +#: application/models.py:220 msgid "Supporters removed" msgstr "Unterstützer/innen gelöscht" -#: application/models.py:216 +#: application/models.py:229 #, python-format msgid "Status reseted to: %s" msgstr "Status zurückgesetzt auf: %s" -#: application/models.py:229 application/views.py:230 +#: application/models.py:242 application/views.py:230 #, python-format msgid "Supporter: +%s" msgstr "Unterstützer/in: +%s" -#: application/models.py:239 application/views.py:241 +#: application/models.py:252 application/views.py:241 #, python-format msgid "Supporter: -%s" msgstr "Unterstützer/in: -%s" -#: application/models.py:255 +#: application/models.py:268 #, python-format msgid "Number set: %s" msgstr "Nummer gesetzt: %s" -#: application/models.py:268 +#: application/models.py:281 #, python-format msgid "Version %s permitted" msgstr "Version %s zugelassen" -#: application/models.py:282 +#: application/models.py:295 #, python-format msgid "Version %s not permitted" msgstr "Version %s nicht zugelassen" -#: application/models.py:308 +#: application/models.py:321 msgid "Status modified" msgstr "Status geändert" -#: application/models.py:406 +#: application/models.py:419 msgid "by" msgstr "von" -#: application/models.py:439 +#: application/models.py:452 msgid "Poll created" msgstr "Abstimmung erstellt" -#: application/models.py:487 +#: application/models.py:500 msgid "Can see application" msgstr "Darf Anträge sehen" -#: application/models.py:488 +#: application/models.py:501 msgid "Can create application" msgstr "Darf Anträge erstellen" -#: application/models.py:489 +#: application/models.py:502 msgid "Can support application" msgstr "Darf Anträge unterstützen" -#: application/models.py:490 +#: application/models.py:503 msgid "Can manage application" msgstr "Darf Anträge verwalten" -#: application/models.py:530 +#: application/models.py:543 msgid "Abstain" msgstr "Enthaltung" -#: application/models.py:563 application/views.py:667 application/views.py:873 +#: application/models.py:576 application/views.py:667 application/views.py:873 #: application/templates/application/base_application.html:9 #: application/templates/application/overview.html:7 #: application/templates/application/overview.html:10 @@ -510,8 +522,8 @@ msgid "Application was successfully modified." msgstr "Antrag wurde erfolgreich geändert." #: application/views.py:252 application/views.py:638 assignment/views.py:130 -#: participant/views.py:171 participant/views.py:274 participant/views.py:303 -#: participant/views.py:461 utils/views.py:157 utils/views.py:173 +#: participant/views.py:173 participant/views.py:276 participant/views.py:305 +#: participant/views.py:463 utils/views.py:157 utils/views.py:173 #: utils/views.py:193 msgid "Please check the form for errors." msgstr "Bitte kontrollieren Sie das Formular nach Fehlern." @@ -619,7 +631,7 @@ msgstr "FEHLER beim Zurückweisen der Version." msgid "Do you really want to reject version %s?" msgstr "Soll Version %s wirklich zurückgewiesen werden?" -#: application/views.py:534 participant/views.py:319 +#: application/views.py:534 participant/views.py:321 msgid "" "The import function is available for the superuser (without user profile) " "only." @@ -627,7 +639,7 @@ msgstr "" "Die Importfunktion ist nur für den 'superuser' (ohne Nutzerprofil) verfügbar." #: application/views.py:565 application/views.py:569 application/views.py:575 -#: application/views.py:578 participant/views.py:388 +#: application/views.py:578 participant/views.py:390 #, python-format msgid "Ignoring malformed line %d in import file." msgstr "Fehlerhafte Zeile %d der Quelldatei wurde ignoriert." @@ -653,11 +665,11 @@ msgid_plural "%d new users were added." msgstr[0] "%d neuer Nutzer wurde erstellt." msgstr[1] "%d neue Nutzer wurden erstellt." -#: application/views.py:634 participant/views.py:457 +#: application/views.py:634 participant/views.py:459 msgid "Import aborted because of severe errors in the input file." msgstr "Import auf Grund von schweren Fehlern in der Quelldatei abgebrochen." -#: application/views.py:636 participant/views.py:459 +#: application/views.py:636 participant/views.py:461 msgid "Import file has wrong character encoding, only UTF-8 is supported!" msgstr "" "Die Quelldatei benutzt eine ungültige Zeichenkodierung, es wird nur UTF-8 " @@ -1575,7 +1587,7 @@ msgstr "Gast" msgid "Gender" msgstr "Geschlecht" -#: participant/models.py:34 participant/views.py:501 +#: participant/models.py:34 participant/views.py:503 #: participant/templates/participant/overview.html:28 #: participant/templates/participant/overview.html:66 msgid "Group" @@ -1585,7 +1597,7 @@ msgstr "Gruppe" msgid "Typ" msgstr "Typ" -#: participant/models.py:36 participant/views.py:501 +#: participant/models.py:36 participant/views.py:503 #: participant/templates/participant/overview.html:43 #: participant/templates/participant/overview.html:68 msgid "Committee" @@ -1603,63 +1615,63 @@ msgstr "Darf die Teilnehmer/inen sehen" msgid "Can manage participant" msgstr "Darf die Teilnehmer/inen verwalten" -#: participant/views.py:163 +#: participant/views.py:165 msgid "New participant was successfully created." msgstr "Neue/r Teilnehmer/in wurde erfolgreich angelegt." -#: participant/views.py:165 +#: participant/views.py:167 msgid "Participant was successfully modified." msgstr "Teilnehmer/in wurde erfolgreich geändert." -#: participant/views.py:192 +#: participant/views.py:194 #, python-format msgid "Participant %s was successfully deleted." msgstr "Teilnehmer/in %s wurde erfolgreich gelöscht." -#: participant/views.py:205 +#: participant/views.py:207 #, python-format msgid "Participant %d does not exist." msgstr "Teilnehmer/in %d existiert nicht." -#: participant/views.py:252 +#: participant/views.py:254 #, python-format msgid "Group name \"%s\" is reserved for internal use." msgstr "Der Gruppenname \"%s\" ist für interne Verwendung reserviert." -#: participant/views.py:266 +#: participant/views.py:268 msgid "New group was successfully created." msgstr "Neue Gruppe wurde erfolgreich angelegt." -#: participant/views.py:268 +#: participant/views.py:270 msgid "Group was successfully modified." msgstr "Gruppe wurde erfolgreich geändert." -#: participant/views.py:287 +#: participant/views.py:289 #, python-format msgid "Group %s was successfully deleted." msgstr "Gruppe %s wurde erfolgreich gelöscht." -#: participant/views.py:301 +#: participant/views.py:303 msgid "User settings successfully saved." msgstr "Nutzereinstellungen wurden erfolgreich gespeichert." -#: participant/views.py:371 +#: participant/views.py:373 msgid "Supporters removed after user import." msgstr "Unterstützer/innen nach Benutzerimport zurückgesetzt." -#: participant/views.py:424 +#: participant/views.py:426 #, python-format msgid "Reassigned to \"%s\" after (re)importing users." msgstr "Nach Benutzerimport erneut \"%s\" zugeordnet." -#: participant/views.py:427 participant/views.py:441 +#: participant/views.py:429 participant/views.py:443 #, python-format msgid "Could not reassing application %d - object not found!" msgstr "" "Antrag Id#%d konnte nicht neu zugewiesen werden - Das Objekt wurde nicht " "gefunden!" -#: participant/views.py:444 +#: participant/views.py:446 #, python-format msgid "%d application could not be reassigned and needs a review!" msgid_plural "%d applications could not be reassigned and need a review!" @@ -1668,26 +1680,26 @@ msgstr[0] "" msgstr[1] "" "%d Anträge konnten nicht neu zugewiesen werden und benötigen ein Review!" -#: participant/views.py:447 +#: participant/views.py:449 #, python-format msgid "%d application was successfully reassigned." msgid_plural "%d applications were successfully reassigned." msgstr[0] "%d Antrag wurde erfolgreich neu zugewiesen." msgstr[1] "%d Anträge wurden erfolgreich neu zugewiesen." -#: participant/views.py:450 +#: participant/views.py:452 #, python-format msgid "%d application was discarded." msgid_plural "%d applications were discarded." msgstr[0] "%d Antrag wurde gelöscht." msgstr[1] "%d Anträge wurden gelöscht." -#: participant/views.py:454 +#: participant/views.py:456 #, python-format msgid "%d new participants were successfully imported." msgstr "%d neue Teilnehmer/innen wurden erfolgreich importiert." -#: participant/views.py:463 +#: participant/views.py:465 msgid "" "Attention: All existing participants will be removed if you import new " "participants." @@ -1695,12 +1707,12 @@ msgstr "" "Achtung: Alle existierenden Teilnehmer/innen werden gelöscht, wenn Sie neue " "Teilnehmer/innen importieren." -#: participant/views.py:465 +#: participant/views.py:467 msgid "Attention: Supporters from all existing applications will be removed." msgstr "" "Achtung: Alle Unterstützer/innen werden von existiernden Anträgen gelöscht." -#: participant/views.py:466 +#: participant/views.py:468 msgid "" "Attention: Applications which can't be mapped to new users will be set to " "'Needs Review'." @@ -1708,17 +1720,17 @@ msgstr "" "Achtung: Anträge welche keinem Nutzer zugeordnet werden können bekommen " "automatisch den Status \"Benötigt Review\"." -#: participant/views.py:478 +#: participant/views.py:480 #, python-format msgid "The Password for %s was successfully reset." msgstr "Das Passwort für %s wurde erfolgreich zurückgesetzt." -#: participant/views.py:480 +#: participant/views.py:482 #, python-format msgid "Do you really want to reset the password for %s?" msgstr "Soll das Passwort für %s wirklich zurückgesetzt werden?" -#: participant/views.py:488 +#: participant/views.py:490 #: participant/templates/participant/base_participant.html:12 #: participant/templates/participant/overview.html:6 #: participant/templates/participant/overview.html:16 @@ -1726,56 +1738,56 @@ msgstr "Soll das Passwort für %s wirklich zurückgesetzt werden?" msgid "Participants" msgstr "Teilnehmer/innen" -#: participant/views.py:497 +#: participant/views.py:499 msgid "Participant-list" msgstr "Teilnehmerliste" -#: participant/views.py:498 +#: participant/views.py:500 msgid "List of Participants" msgstr "Teilnehmerliste" -#: participant/views.py:501 participant/templates/participant/overview.html:65 +#: participant/views.py:503 participant/templates/participant/overview.html:65 msgid "Last Name" msgstr "Nachname" -#: participant/views.py:501 participant/templates/participant/overview.html:64 +#: participant/views.py:503 participant/templates/participant/overview.html:64 msgid "First Name" msgstr "Vorname" -#: participant/views.py:501 participant/templates/participant/overview.html:35 +#: participant/views.py:503 participant/templates/participant/overview.html:35 #: participant/templates/participant/overview.html:67 msgid "Type" msgstr "Typ" -#: participant/views.py:532 +#: participant/views.py:534 msgid "Participant-passwords" msgstr "Teilnehmer-Passwoerter" -#: participant/views.py:550 +#: participant/views.py:552 msgid "Account for OpenSlides" msgstr "Zugang für OpenSlides" -#: participant/views.py:551 +#: participant/views.py:553 #, python-format msgid "for %s" msgstr "für %s" -#: participant/views.py:553 +#: participant/views.py:555 #, python-format msgid "User: %s" msgstr "Nutzername: %s" -#: participant/views.py:554 +#: participant/views.py:556 #, python-format msgid "Password: %s" msgstr "Passwort: %s" -#: participant/views.py:556 +#: participant/views.py:558 #, python-format msgid "URL: %s" msgstr "URL: %s" -#: participant/views.py:591 +#: participant/views.py:593 msgid "Participants settings successfully saved." msgstr "Teilnehmer Einstellungen wurden erfolgreich gespeichert." @@ -1865,7 +1877,7 @@ msgstr "" #: participant/templates/participant/login.html:8 #: participant/templates/participant/login.html:16 -#: participant/templates/participant/login.html:45 templates/base.html:31 +#: participant/templates/participant/login.html:50 templates/base.html:31 msgid "Login" msgstr "Anmelden" @@ -1874,12 +1886,13 @@ msgstr "Anmelden" msgid "Close this notification" msgstr "Meldung ausblenden" -#: participant/templates/participant/login.html:23 +#: participant/templates/participant/login.html:27 msgid "Your username and password were not accepted. Please try again." msgstr "" -"Benutzername und Passwort wurden nicht akzeptiert. Bitte versuchen Sie es erneut." +"Benutzername und Passwort wurden nicht akzeptiert. Bitte versuchen Sie es " +"erneut." -#: participant/templates/participant/login.html:49 +#: participant/templates/participant/login.html:54 msgid "Continue as guest" msgstr "Weiter als Gast" @@ -2028,10 +2041,6 @@ msgstr "Benutzerdefinierte Folien" msgid "New slide" msgstr "Neue Folie" -#: projector/templates/projector/control_customslide.html:10 -msgid "Delete slide" -msgstr "Folie löschen" - #: projector/templates/projector/new.html:6 #: projector/templates/projector/new.html:9 msgid "Custom slide" @@ -2080,3 +2089,9 @@ msgstr "Bedaure, Sie haben keine Berechtigung diese Seite zu sehen." #: utils/views.py:231 msgid "undefined-filename" msgstr "undefinierter-dateiname" + +#~ msgid "Version %s modified" +#~ msgstr "Version %s bearbeitet" + +#~ msgid "Delete slide" +#~ msgstr "Folie löschen"