From 00ffbe4aa0dbcb9743b39eec5790823a0684ff23 Mon Sep 17 00:00:00 2001 From: tehfink Date: Wed, 20 Jan 2010 08:56:07 +0800 Subject: [PATCH 01/91] added ActivatorModelManager, returns active or inactive instances of ActivatorModel --- django_extensions/db/models.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/django_extensions/db/models.py b/django_extensions/db/models.py index 2f7f732b7..4a3d0e992 100644 --- a/django_extensions/db/models.py +++ b/django_extensions/db/models.py @@ -30,6 +30,18 @@ class TitleSlugDescriptionModel(models.Model): class Meta: abstract = True +class ActivatorModelManager(models.Manager): + """ ActivatorModelManager + Manager to return instances of ActivatorModel: SomeModel.objects.active() / .inactive() + """ + def active(self): + """ Returns active instances of ActivatorModel: SomeModel.objects.active() """ + return super(ActivatorModelManager, self).get_query_set().filter(status=1) + + def inactive(self): + """ Returns inactive instances of ActivatorModel: SomeModel.objects.inactive() """ + return super(ActivatorModelManager, self).get_query_set().filter(status=0) + class ActivatorModel(models.Model): """ ActivatorModel An abstract base class model that provides activate and deactivate fields. @@ -44,6 +56,7 @@ class ActivatorModel(models.Model): help_text=_('keep empty for an immediate activation')) deactivate_date = models.DateTimeField(blank=True, null=True, help_text=_('keep empty for indefinite activation')) + objects = ActivatorModelManager() class Meta: abstract = True From fa91da58df4bb98b7717c54a5819a33ccf42120b Mon Sep 17 00:00:00 2001 From: Andreas Date: Mon, 1 Feb 2010 18:23:27 +0200 Subject: [PATCH 02/91] Initialize the i18n procedure. --- .../locale/cs/LC_MESSAGES/django.po | 76 +++++++++++++++++++ .../locale/da/LC_MESSAGES/django.po | 76 +++++++++++++++++++ .../locale/de/LC_MESSAGES/django.po | 76 +++++++++++++++++++ .../locale/el/LC_MESSAGES/django.po | 76 +++++++++++++++++++ .../locale/en/LC_MESSAGES/django.po | 76 +++++++++++++++++++ .../locale/es/LC_MESSAGES/django.po | 76 +++++++++++++++++++ .../locale/et/LC_MESSAGES/django.po | 76 +++++++++++++++++++ .../locale/fr/LC_MESSAGES/django.po | 76 +++++++++++++++++++ .../locale/it/LC_MESSAGES/django.po | 76 +++++++++++++++++++ .../locale/ja/LC_MESSAGES/django.po | 76 +++++++++++++++++++ .../locale/ru/LC_MESSAGES/django.po | 76 +++++++++++++++++++ .../locale/sk/LC_MESSAGES/django.po | 76 +++++++++++++++++++ .../locale/tr/LC_MESSAGES/django.po | 76 +++++++++++++++++++ .../locale/zh/LC_MESSAGES/django.po | 76 +++++++++++++++++++ 14 files changed, 1064 insertions(+) create mode 100644 django_extensions/locale/cs/LC_MESSAGES/django.po create mode 100644 django_extensions/locale/da/LC_MESSAGES/django.po create mode 100644 django_extensions/locale/de/LC_MESSAGES/django.po create mode 100644 django_extensions/locale/el/LC_MESSAGES/django.po create mode 100644 django_extensions/locale/en/LC_MESSAGES/django.po create mode 100644 django_extensions/locale/es/LC_MESSAGES/django.po create mode 100644 django_extensions/locale/et/LC_MESSAGES/django.po create mode 100644 django_extensions/locale/fr/LC_MESSAGES/django.po create mode 100644 django_extensions/locale/it/LC_MESSAGES/django.po create mode 100644 django_extensions/locale/ja/LC_MESSAGES/django.po create mode 100644 django_extensions/locale/ru/LC_MESSAGES/django.po create mode 100644 django_extensions/locale/sk/LC_MESSAGES/django.po create mode 100644 django_extensions/locale/tr/LC_MESSAGES/django.po create mode 100644 django_extensions/locale/zh/LC_MESSAGES/django.po diff --git a/django_extensions/locale/cs/LC_MESSAGES/django.po b/django_extensions/locale/cs/LC_MESSAGES/django.po new file mode 100644 index 000000000..dfc5cbc55 --- /dev/null +++ b/django_extensions/locale/cs/LC_MESSAGES/django.po @@ -0,0 +1,76 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-02-01 18:11+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: admin/__init__.py:121 +msgid "and" +msgstr "" + +#: admin/__init__.py:123 +#, python-format +msgid "" +"Use the left field to do %(model_name)s lookups in the fields %(field_list)s." +msgstr "" + +#: db/models.py:15 +msgid "created" +msgstr "" + +#: db/models.py:16 +msgid "modified" +msgstr "" + +#: db/models.py:26 +msgid "title" +msgstr "" + +#: db/models.py:27 +msgid "slug" +msgstr "" + +#: db/models.py:28 +msgid "description" +msgstr "" + +#: db/models.py:50 +msgid "Inactive" +msgstr "" + +#: db/models.py:51 +msgid "Active" +msgstr "" + +#: db/models.py:53 +msgid "status" +msgstr "" + +#: db/models.py:56 +msgid "keep empty for an immediate activation" +msgstr "" + +#: db/models.py:58 +msgid "keep empty for indefinite activation" +msgstr "" + +#: management/commands/show_urls.py:33 +#, python-format +msgid "%s does not appear to be a urlpattern object" +msgstr "" + +#: templates/django_extensions/widgets/foreignkey_searchinput.html:4 +msgid "Lookup" +msgstr "" diff --git a/django_extensions/locale/da/LC_MESSAGES/django.po b/django_extensions/locale/da/LC_MESSAGES/django.po new file mode 100644 index 000000000..a8cc3b34a --- /dev/null +++ b/django_extensions/locale/da/LC_MESSAGES/django.po @@ -0,0 +1,76 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-02-01 18:10+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: admin/__init__.py:121 +msgid "and" +msgstr "" + +#: admin/__init__.py:123 +#, python-format +msgid "" +"Use the left field to do %(model_name)s lookups in the fields %(field_list)s." +msgstr "" + +#: db/models.py:15 +msgid "created" +msgstr "" + +#: db/models.py:16 +msgid "modified" +msgstr "" + +#: db/models.py:26 +msgid "title" +msgstr "" + +#: db/models.py:27 +msgid "slug" +msgstr "" + +#: db/models.py:28 +msgid "description" +msgstr "" + +#: db/models.py:50 +msgid "Inactive" +msgstr "" + +#: db/models.py:51 +msgid "Active" +msgstr "" + +#: db/models.py:53 +msgid "status" +msgstr "" + +#: db/models.py:56 +msgid "keep empty for an immediate activation" +msgstr "" + +#: db/models.py:58 +msgid "keep empty for indefinite activation" +msgstr "" + +#: management/commands/show_urls.py:33 +#, python-format +msgid "%s does not appear to be a urlpattern object" +msgstr "" + +#: templates/django_extensions/widgets/foreignkey_searchinput.html:4 +msgid "Lookup" +msgstr "" diff --git a/django_extensions/locale/de/LC_MESSAGES/django.po b/django_extensions/locale/de/LC_MESSAGES/django.po new file mode 100644 index 000000000..89212ebb7 --- /dev/null +++ b/django_extensions/locale/de/LC_MESSAGES/django.po @@ -0,0 +1,76 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-02-01 18:08+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: admin/__init__.py:121 +msgid "and" +msgstr "" + +#: admin/__init__.py:123 +#, python-format +msgid "" +"Use the left field to do %(model_name)s lookups in the fields %(field_list)s." +msgstr "" + +#: db/models.py:15 +msgid "created" +msgstr "" + +#: db/models.py:16 +msgid "modified" +msgstr "" + +#: db/models.py:26 +msgid "title" +msgstr "" + +#: db/models.py:27 +msgid "slug" +msgstr "" + +#: db/models.py:28 +msgid "description" +msgstr "" + +#: db/models.py:50 +msgid "Inactive" +msgstr "" + +#: db/models.py:51 +msgid "Active" +msgstr "" + +#: db/models.py:53 +msgid "status" +msgstr "" + +#: db/models.py:56 +msgid "keep empty for an immediate activation" +msgstr "" + +#: db/models.py:58 +msgid "keep empty for indefinite activation" +msgstr "" + +#: management/commands/show_urls.py:33 +#, python-format +msgid "%s does not appear to be a urlpattern object" +msgstr "" + +#: templates/django_extensions/widgets/foreignkey_searchinput.html:4 +msgid "Lookup" +msgstr "" diff --git a/django_extensions/locale/el/LC_MESSAGES/django.po b/django_extensions/locale/el/LC_MESSAGES/django.po new file mode 100644 index 000000000..01b9ad600 --- /dev/null +++ b/django_extensions/locale/el/LC_MESSAGES/django.po @@ -0,0 +1,76 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-02-01 18:07+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: admin/__init__.py:121 +msgid "and" +msgstr "" + +#: admin/__init__.py:123 +#, python-format +msgid "" +"Use the left field to do %(model_name)s lookups in the fields %(field_list)s." +msgstr "" + +#: db/models.py:15 +msgid "created" +msgstr "" + +#: db/models.py:16 +msgid "modified" +msgstr "" + +#: db/models.py:26 +msgid "title" +msgstr "" + +#: db/models.py:27 +msgid "slug" +msgstr "" + +#: db/models.py:28 +msgid "description" +msgstr "" + +#: db/models.py:50 +msgid "Inactive" +msgstr "" + +#: db/models.py:51 +msgid "Active" +msgstr "" + +#: db/models.py:53 +msgid "status" +msgstr "" + +#: db/models.py:56 +msgid "keep empty for an immediate activation" +msgstr "" + +#: db/models.py:58 +msgid "keep empty for indefinite activation" +msgstr "" + +#: management/commands/show_urls.py:33 +#, python-format +msgid "%s does not appear to be a urlpattern object" +msgstr "" + +#: templates/django_extensions/widgets/foreignkey_searchinput.html:4 +msgid "Lookup" +msgstr "" diff --git a/django_extensions/locale/en/LC_MESSAGES/django.po b/django_extensions/locale/en/LC_MESSAGES/django.po new file mode 100644 index 000000000..01b9ad600 --- /dev/null +++ b/django_extensions/locale/en/LC_MESSAGES/django.po @@ -0,0 +1,76 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-02-01 18:07+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: admin/__init__.py:121 +msgid "and" +msgstr "" + +#: admin/__init__.py:123 +#, python-format +msgid "" +"Use the left field to do %(model_name)s lookups in the fields %(field_list)s." +msgstr "" + +#: db/models.py:15 +msgid "created" +msgstr "" + +#: db/models.py:16 +msgid "modified" +msgstr "" + +#: db/models.py:26 +msgid "title" +msgstr "" + +#: db/models.py:27 +msgid "slug" +msgstr "" + +#: db/models.py:28 +msgid "description" +msgstr "" + +#: db/models.py:50 +msgid "Inactive" +msgstr "" + +#: db/models.py:51 +msgid "Active" +msgstr "" + +#: db/models.py:53 +msgid "status" +msgstr "" + +#: db/models.py:56 +msgid "keep empty for an immediate activation" +msgstr "" + +#: db/models.py:58 +msgid "keep empty for indefinite activation" +msgstr "" + +#: management/commands/show_urls.py:33 +#, python-format +msgid "%s does not appear to be a urlpattern object" +msgstr "" + +#: templates/django_extensions/widgets/foreignkey_searchinput.html:4 +msgid "Lookup" +msgstr "" diff --git a/django_extensions/locale/es/LC_MESSAGES/django.po b/django_extensions/locale/es/LC_MESSAGES/django.po new file mode 100644 index 000000000..a8cc3b34a --- /dev/null +++ b/django_extensions/locale/es/LC_MESSAGES/django.po @@ -0,0 +1,76 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-02-01 18:10+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: admin/__init__.py:121 +msgid "and" +msgstr "" + +#: admin/__init__.py:123 +#, python-format +msgid "" +"Use the left field to do %(model_name)s lookups in the fields %(field_list)s." +msgstr "" + +#: db/models.py:15 +msgid "created" +msgstr "" + +#: db/models.py:16 +msgid "modified" +msgstr "" + +#: db/models.py:26 +msgid "title" +msgstr "" + +#: db/models.py:27 +msgid "slug" +msgstr "" + +#: db/models.py:28 +msgid "description" +msgstr "" + +#: db/models.py:50 +msgid "Inactive" +msgstr "" + +#: db/models.py:51 +msgid "Active" +msgstr "" + +#: db/models.py:53 +msgid "status" +msgstr "" + +#: db/models.py:56 +msgid "keep empty for an immediate activation" +msgstr "" + +#: db/models.py:58 +msgid "keep empty for indefinite activation" +msgstr "" + +#: management/commands/show_urls.py:33 +#, python-format +msgid "%s does not appear to be a urlpattern object" +msgstr "" + +#: templates/django_extensions/widgets/foreignkey_searchinput.html:4 +msgid "Lookup" +msgstr "" diff --git a/django_extensions/locale/et/LC_MESSAGES/django.po b/django_extensions/locale/et/LC_MESSAGES/django.po new file mode 100644 index 000000000..dfc5cbc55 --- /dev/null +++ b/django_extensions/locale/et/LC_MESSAGES/django.po @@ -0,0 +1,76 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-02-01 18:11+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: admin/__init__.py:121 +msgid "and" +msgstr "" + +#: admin/__init__.py:123 +#, python-format +msgid "" +"Use the left field to do %(model_name)s lookups in the fields %(field_list)s." +msgstr "" + +#: db/models.py:15 +msgid "created" +msgstr "" + +#: db/models.py:16 +msgid "modified" +msgstr "" + +#: db/models.py:26 +msgid "title" +msgstr "" + +#: db/models.py:27 +msgid "slug" +msgstr "" + +#: db/models.py:28 +msgid "description" +msgstr "" + +#: db/models.py:50 +msgid "Inactive" +msgstr "" + +#: db/models.py:51 +msgid "Active" +msgstr "" + +#: db/models.py:53 +msgid "status" +msgstr "" + +#: db/models.py:56 +msgid "keep empty for an immediate activation" +msgstr "" + +#: db/models.py:58 +msgid "keep empty for indefinite activation" +msgstr "" + +#: management/commands/show_urls.py:33 +#, python-format +msgid "%s does not appear to be a urlpattern object" +msgstr "" + +#: templates/django_extensions/widgets/foreignkey_searchinput.html:4 +msgid "Lookup" +msgstr "" diff --git a/django_extensions/locale/fr/LC_MESSAGES/django.po b/django_extensions/locale/fr/LC_MESSAGES/django.po new file mode 100644 index 000000000..a8cc3b34a --- /dev/null +++ b/django_extensions/locale/fr/LC_MESSAGES/django.po @@ -0,0 +1,76 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-02-01 18:10+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: admin/__init__.py:121 +msgid "and" +msgstr "" + +#: admin/__init__.py:123 +#, python-format +msgid "" +"Use the left field to do %(model_name)s lookups in the fields %(field_list)s." +msgstr "" + +#: db/models.py:15 +msgid "created" +msgstr "" + +#: db/models.py:16 +msgid "modified" +msgstr "" + +#: db/models.py:26 +msgid "title" +msgstr "" + +#: db/models.py:27 +msgid "slug" +msgstr "" + +#: db/models.py:28 +msgid "description" +msgstr "" + +#: db/models.py:50 +msgid "Inactive" +msgstr "" + +#: db/models.py:51 +msgid "Active" +msgstr "" + +#: db/models.py:53 +msgid "status" +msgstr "" + +#: db/models.py:56 +msgid "keep empty for an immediate activation" +msgstr "" + +#: db/models.py:58 +msgid "keep empty for indefinite activation" +msgstr "" + +#: management/commands/show_urls.py:33 +#, python-format +msgid "%s does not appear to be a urlpattern object" +msgstr "" + +#: templates/django_extensions/widgets/foreignkey_searchinput.html:4 +msgid "Lookup" +msgstr "" diff --git a/django_extensions/locale/it/LC_MESSAGES/django.po b/django_extensions/locale/it/LC_MESSAGES/django.po new file mode 100644 index 000000000..01b9ad600 --- /dev/null +++ b/django_extensions/locale/it/LC_MESSAGES/django.po @@ -0,0 +1,76 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-02-01 18:07+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: admin/__init__.py:121 +msgid "and" +msgstr "" + +#: admin/__init__.py:123 +#, python-format +msgid "" +"Use the left field to do %(model_name)s lookups in the fields %(field_list)s." +msgstr "" + +#: db/models.py:15 +msgid "created" +msgstr "" + +#: db/models.py:16 +msgid "modified" +msgstr "" + +#: db/models.py:26 +msgid "title" +msgstr "" + +#: db/models.py:27 +msgid "slug" +msgstr "" + +#: db/models.py:28 +msgid "description" +msgstr "" + +#: db/models.py:50 +msgid "Inactive" +msgstr "" + +#: db/models.py:51 +msgid "Active" +msgstr "" + +#: db/models.py:53 +msgid "status" +msgstr "" + +#: db/models.py:56 +msgid "keep empty for an immediate activation" +msgstr "" + +#: db/models.py:58 +msgid "keep empty for indefinite activation" +msgstr "" + +#: management/commands/show_urls.py:33 +#, python-format +msgid "%s does not appear to be a urlpattern object" +msgstr "" + +#: templates/django_extensions/widgets/foreignkey_searchinput.html:4 +msgid "Lookup" +msgstr "" diff --git a/django_extensions/locale/ja/LC_MESSAGES/django.po b/django_extensions/locale/ja/LC_MESSAGES/django.po new file mode 100644 index 000000000..dfc5cbc55 --- /dev/null +++ b/django_extensions/locale/ja/LC_MESSAGES/django.po @@ -0,0 +1,76 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-02-01 18:11+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: admin/__init__.py:121 +msgid "and" +msgstr "" + +#: admin/__init__.py:123 +#, python-format +msgid "" +"Use the left field to do %(model_name)s lookups in the fields %(field_list)s." +msgstr "" + +#: db/models.py:15 +msgid "created" +msgstr "" + +#: db/models.py:16 +msgid "modified" +msgstr "" + +#: db/models.py:26 +msgid "title" +msgstr "" + +#: db/models.py:27 +msgid "slug" +msgstr "" + +#: db/models.py:28 +msgid "description" +msgstr "" + +#: db/models.py:50 +msgid "Inactive" +msgstr "" + +#: db/models.py:51 +msgid "Active" +msgstr "" + +#: db/models.py:53 +msgid "status" +msgstr "" + +#: db/models.py:56 +msgid "keep empty for an immediate activation" +msgstr "" + +#: db/models.py:58 +msgid "keep empty for indefinite activation" +msgstr "" + +#: management/commands/show_urls.py:33 +#, python-format +msgid "%s does not appear to be a urlpattern object" +msgstr "" + +#: templates/django_extensions/widgets/foreignkey_searchinput.html:4 +msgid "Lookup" +msgstr "" diff --git a/django_extensions/locale/ru/LC_MESSAGES/django.po b/django_extensions/locale/ru/LC_MESSAGES/django.po new file mode 100644 index 000000000..a8cc3b34a --- /dev/null +++ b/django_extensions/locale/ru/LC_MESSAGES/django.po @@ -0,0 +1,76 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-02-01 18:10+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: admin/__init__.py:121 +msgid "and" +msgstr "" + +#: admin/__init__.py:123 +#, python-format +msgid "" +"Use the left field to do %(model_name)s lookups in the fields %(field_list)s." +msgstr "" + +#: db/models.py:15 +msgid "created" +msgstr "" + +#: db/models.py:16 +msgid "modified" +msgstr "" + +#: db/models.py:26 +msgid "title" +msgstr "" + +#: db/models.py:27 +msgid "slug" +msgstr "" + +#: db/models.py:28 +msgid "description" +msgstr "" + +#: db/models.py:50 +msgid "Inactive" +msgstr "" + +#: db/models.py:51 +msgid "Active" +msgstr "" + +#: db/models.py:53 +msgid "status" +msgstr "" + +#: db/models.py:56 +msgid "keep empty for an immediate activation" +msgstr "" + +#: db/models.py:58 +msgid "keep empty for indefinite activation" +msgstr "" + +#: management/commands/show_urls.py:33 +#, python-format +msgid "%s does not appear to be a urlpattern object" +msgstr "" + +#: templates/django_extensions/widgets/foreignkey_searchinput.html:4 +msgid "Lookup" +msgstr "" diff --git a/django_extensions/locale/sk/LC_MESSAGES/django.po b/django_extensions/locale/sk/LC_MESSAGES/django.po new file mode 100644 index 000000000..dfc5cbc55 --- /dev/null +++ b/django_extensions/locale/sk/LC_MESSAGES/django.po @@ -0,0 +1,76 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-02-01 18:11+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: admin/__init__.py:121 +msgid "and" +msgstr "" + +#: admin/__init__.py:123 +#, python-format +msgid "" +"Use the left field to do %(model_name)s lookups in the fields %(field_list)s." +msgstr "" + +#: db/models.py:15 +msgid "created" +msgstr "" + +#: db/models.py:16 +msgid "modified" +msgstr "" + +#: db/models.py:26 +msgid "title" +msgstr "" + +#: db/models.py:27 +msgid "slug" +msgstr "" + +#: db/models.py:28 +msgid "description" +msgstr "" + +#: db/models.py:50 +msgid "Inactive" +msgstr "" + +#: db/models.py:51 +msgid "Active" +msgstr "" + +#: db/models.py:53 +msgid "status" +msgstr "" + +#: db/models.py:56 +msgid "keep empty for an immediate activation" +msgstr "" + +#: db/models.py:58 +msgid "keep empty for indefinite activation" +msgstr "" + +#: management/commands/show_urls.py:33 +#, python-format +msgid "%s does not appear to be a urlpattern object" +msgstr "" + +#: templates/django_extensions/widgets/foreignkey_searchinput.html:4 +msgid "Lookup" +msgstr "" diff --git a/django_extensions/locale/tr/LC_MESSAGES/django.po b/django_extensions/locale/tr/LC_MESSAGES/django.po new file mode 100644 index 000000000..a8cc3b34a --- /dev/null +++ b/django_extensions/locale/tr/LC_MESSAGES/django.po @@ -0,0 +1,76 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-02-01 18:10+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: admin/__init__.py:121 +msgid "and" +msgstr "" + +#: admin/__init__.py:123 +#, python-format +msgid "" +"Use the left field to do %(model_name)s lookups in the fields %(field_list)s." +msgstr "" + +#: db/models.py:15 +msgid "created" +msgstr "" + +#: db/models.py:16 +msgid "modified" +msgstr "" + +#: db/models.py:26 +msgid "title" +msgstr "" + +#: db/models.py:27 +msgid "slug" +msgstr "" + +#: db/models.py:28 +msgid "description" +msgstr "" + +#: db/models.py:50 +msgid "Inactive" +msgstr "" + +#: db/models.py:51 +msgid "Active" +msgstr "" + +#: db/models.py:53 +msgid "status" +msgstr "" + +#: db/models.py:56 +msgid "keep empty for an immediate activation" +msgstr "" + +#: db/models.py:58 +msgid "keep empty for indefinite activation" +msgstr "" + +#: management/commands/show_urls.py:33 +#, python-format +msgid "%s does not appear to be a urlpattern object" +msgstr "" + +#: templates/django_extensions/widgets/foreignkey_searchinput.html:4 +msgid "Lookup" +msgstr "" diff --git a/django_extensions/locale/zh/LC_MESSAGES/django.po b/django_extensions/locale/zh/LC_MESSAGES/django.po new file mode 100644 index 000000000..59f09bcbe --- /dev/null +++ b/django_extensions/locale/zh/LC_MESSAGES/django.po @@ -0,0 +1,76 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-02-01 18:09+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: admin/__init__.py:121 +msgid "and" +msgstr "" + +#: admin/__init__.py:123 +#, python-format +msgid "" +"Use the left field to do %(model_name)s lookups in the fields %(field_list)s." +msgstr "" + +#: db/models.py:15 +msgid "created" +msgstr "" + +#: db/models.py:16 +msgid "modified" +msgstr "" + +#: db/models.py:26 +msgid "title" +msgstr "" + +#: db/models.py:27 +msgid "slug" +msgstr "" + +#: db/models.py:28 +msgid "description" +msgstr "" + +#: db/models.py:50 +msgid "Inactive" +msgstr "" + +#: db/models.py:51 +msgid "Active" +msgstr "" + +#: db/models.py:53 +msgid "status" +msgstr "" + +#: db/models.py:56 +msgid "keep empty for an immediate activation" +msgstr "" + +#: db/models.py:58 +msgid "keep empty for indefinite activation" +msgstr "" + +#: management/commands/show_urls.py:33 +#, python-format +msgid "%s does not appear to be a urlpattern object" +msgstr "" + +#: templates/django_extensions/widgets/foreignkey_searchinput.html:4 +msgid "Lookup" +msgstr "" From ef8811d61d65023fec568343e0aa238fc9e260ce Mon Sep 17 00:00:00 2001 From: alup Date: Mon, 1 Feb 2010 16:40:16 +0000 Subject: [PATCH 03/91] l10n: Updates to Greek (el) translation Transmitted-via: Transifex (www.transifex.net) --- .../locale/el/LC_MESSAGES/django.po | 35 +++++++++---------- 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/django_extensions/locale/el/LC_MESSAGES/django.po b/django_extensions/locale/el/LC_MESSAGES/django.po index 01b9ad600..3d807cde7 100644 --- a/django_extensions/locale/el/LC_MESSAGES/django.po +++ b/django_extensions/locale/el/LC_MESSAGES/django.po @@ -2,8 +2,7 @@ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. -# -#, fuzzy +# msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" @@ -18,59 +17,59 @@ msgstr "" #: admin/__init__.py:121 msgid "and" -msgstr "" +msgstr "και" #: admin/__init__.py:123 #, python-format -msgid "" -"Use the left field to do %(model_name)s lookups in the fields %(field_list)s." -msgstr "" +msgid "Use the left field to do %(model_name)s lookups in the fields %(field_list)s." +msgstr "Χρησιμοποίησε το αριστερό πεδίο για να κάνεις αναζήτηση του %(model_name)s με βάσει τα πεδία %(field_list)s." #: db/models.py:15 msgid "created" -msgstr "" +msgstr "δημιουργήθηκε" #: db/models.py:16 msgid "modified" -msgstr "" +msgstr "τροποποιήθηκε" #: db/models.py:26 msgid "title" -msgstr "" +msgstr "τίτλος" #: db/models.py:27 +#, fuzzy msgid "slug" -msgstr "" +msgstr "slug" #: db/models.py:28 msgid "description" -msgstr "" +msgstr "περιγραφή" #: db/models.py:50 msgid "Inactive" -msgstr "" +msgstr "ανενεργό" #: db/models.py:51 msgid "Active" -msgstr "" +msgstr "Ενεργό" #: db/models.py:53 msgid "status" -msgstr "" +msgstr "κατάσταση" #: db/models.py:56 msgid "keep empty for an immediate activation" -msgstr "" +msgstr "αφήστε άδειο για άμεση ενεργοποίηση" #: db/models.py:58 msgid "keep empty for indefinite activation" -msgstr "" +msgstr "αφήστε άδειο για αόριστη ενεργοποίηση" #: management/commands/show_urls.py:33 #, python-format msgid "%s does not appear to be a urlpattern object" -msgstr "" +msgstr "% s δεν φαίνεται να είναι ένα αντικείμενο urlpattern" #: templates/django_extensions/widgets/foreignkey_searchinput.html:4 msgid "Lookup" -msgstr "" +msgstr "Αναζήτηση" From 8b0befd0b2c82d61f752dacf83dc0cbe0dcfaf1c Mon Sep 17 00:00:00 2001 From: Jeff Balogh Date: Wed, 3 Feb 2010 06:21:58 +0800 Subject: [PATCH 04/91] Django removed ERROR_OUTPUT in [12009]; ERROR does the same thing --- django_extensions/management/commands/export_emails.py | 2 +- django_extensions/management/commands/runscript.py | 2 +- django_extensions/management/commands/shell_plus.py | 2 +- django_extensions/management/commands/sqldiff.py | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/django_extensions/management/commands/export_emails.py b/django_extensions/management/commands/export_emails.py index c95b82400..3228ee53c 100644 --- a/django_extensions/management/commands/export_emails.py +++ b/django_extensions/management/commands/export_emails.py @@ -97,7 +97,7 @@ def vcard(self, qs, out): try: import vobject except ImportError: - print self.style.ERROR_OUTPUT("Please install python-vobject to use the vcard export format.") + print self.style.ERROR("Please install python-vobject to use the vcard export format.") import sys sys.exit(1) for ent in qs: diff --git a/django_extensions/management/commands/runscript.py b/django_extensions/management/commands/runscript.py index 9a2d0ef52..e5978563b 100644 --- a/django_extensions/management/commands/runscript.py +++ b/django_extensions/management/commands/runscript.py @@ -28,7 +28,7 @@ def handle(self, *scripts, **options): NOTICE = self.style.SQL_TABLE NOTICE2 = self.style.SQL_FIELD - ERROR = self.style.ERROR_OUTPUT + ERROR = self.style.ERROR ERROR2 = self.style.NOTICE subdirs = [] diff --git a/django_extensions/management/commands/shell_plus.py b/django_extensions/management/commands/shell_plus.py index c9051807e..6f19a436e 100644 --- a/django_extensions/management/commands/shell_plus.py +++ b/django_extensions/management/commands/shell_plus.py @@ -41,7 +41,7 @@ def handle_noargs(self, **options): try: imported_objects[model.__name__] = getattr(__import__(app_mod.__name__, {}, {}, model.__name__), model.__name__) except AttributeError, e: - print self.style.ERROR_OUTPUT("Failed to import '%s' from '%s' reason: %s" % (model.__name__, app_mod.__name__.split('.')[-2], str(e))) + print self.style.ERROR("Failed to import '%s' from '%s' reason: %s" % (model.__name__, app_mod.__name__.split('.')[-2], str(e))) continue try: if use_plain: diff --git a/django_extensions/management/commands/sqldiff.py b/django_extensions/management/commands/sqldiff.py index 452810710..9b9225ab7 100644 --- a/django_extensions/management/commands/sqldiff.py +++ b/django_extensions/management/commands/sqldiff.py @@ -364,7 +364,7 @@ def print_diff_text(self, style): for diff in diffs: diff_type, diff_args = diff text = self.DIFF_TEXTS[diff_type] % dict((str(i), style.SQL_TABLE(e)) for i, e in enumerate(diff_args)) - text = "'".join(i%2==0 and style.ERROR_OUTPUT(e) or e for i, e in enumerate(text.split("'"))) + text = "'".join(i%2==0 and style.ERROR(e) or e for i, e in enumerate(text.split("'"))) if not self.dense: print style.NOTICE("|--+"), text else: From e0b5f42076c61524f3fc35e775dcf631ff29c789 Mon Sep 17 00:00:00 2001 From: Flavio Curella Date: Sat, 13 Feb 2010 16:21:57 +0000 Subject: [PATCH 05/91] l10n: Updates to Italian (it) translation Transmitted-via: Transifex (www.transifex.net) --- .../locale/it/LC_MESSAGES/django.po | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/django_extensions/locale/it/LC_MESSAGES/django.po b/django_extensions/locale/it/LC_MESSAGES/django.po index 01b9ad600..607c3edeb 100644 --- a/django_extensions/locale/it/LC_MESSAGES/django.po +++ b/django_extensions/locale/it/LC_MESSAGES/django.po @@ -2,8 +2,7 @@ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. -# -#, fuzzy +# msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" @@ -18,59 +17,60 @@ msgstr "" #: admin/__init__.py:121 msgid "and" -msgstr "" +msgstr "e" #: admin/__init__.py:123 #, python-format -msgid "" -"Use the left field to do %(model_name)s lookups in the fields %(field_list)s." -msgstr "" +msgid "Use the left field to do %(model_name)s lookups in the fields %(field_list)s." +msgstr "Utilizzare il campo a sinistra per fare ricerche nei campi %(field_list)s del modello %(model_name)s." #: db/models.py:15 msgid "created" -msgstr "" +msgstr "creato" #: db/models.py:16 msgid "modified" -msgstr "" +msgstr "modificato" #: db/models.py:26 msgid "title" -msgstr "" +msgstr "titolo" #: db/models.py:27 +#, fuzzy msgid "slug" -msgstr "" +msgstr "slug" #: db/models.py:28 msgid "description" -msgstr "" +msgstr "descrizione" #: db/models.py:50 msgid "Inactive" -msgstr "" +msgstr "Inattivo" #: db/models.py:51 msgid "Active" -msgstr "" +msgstr "Attivo" #: db/models.py:53 msgid "status" -msgstr "" +msgstr "stato" #: db/models.py:56 msgid "keep empty for an immediate activation" -msgstr "" +msgstr "lasciare vuoto per attivazione immediata" #: db/models.py:58 msgid "keep empty for indefinite activation" -msgstr "" +msgstr "lasciare vuoti per attivazione indefinita" #: management/commands/show_urls.py:33 -#, python-format +#, python-format, fuzzy msgid "%s does not appear to be a urlpattern object" -msgstr "" +msgstr "% s non sembra essere un oggetto urlPattern" #: templates/django_extensions/widgets/foreignkey_searchinput.html:4 +#, fuzzy msgid "Lookup" -msgstr "" +msgstr "Ricerca" From 3aa769e638e92cb2b88022d2ab711f7cff603d32 Mon Sep 17 00:00:00 2001 From: Flavio Curella Date: Sat, 13 Feb 2010 16:22:31 +0000 Subject: [PATCH 06/91] l10n: Updates to Italian (it) translation Transmitted-via: Transifex (www.transifex.net) --- django_extensions/locale/it/LC_MESSAGES/django.po | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/django_extensions/locale/it/LC_MESSAGES/django.po b/django_extensions/locale/it/LC_MESSAGES/django.po index 607c3edeb..88e88d2bc 100644 --- a/django_extensions/locale/it/LC_MESSAGES/django.po +++ b/django_extensions/locale/it/LC_MESSAGES/django.po @@ -37,7 +37,6 @@ msgid "title" msgstr "titolo" #: db/models.py:27 -#, fuzzy msgid "slug" msgstr "slug" @@ -66,11 +65,10 @@ msgid "keep empty for indefinite activation" msgstr "lasciare vuoti per attivazione indefinita" #: management/commands/show_urls.py:33 -#, python-format, fuzzy +#, python-format msgid "%s does not appear to be a urlpattern object" msgstr "% s non sembra essere un oggetto urlPattern" #: templates/django_extensions/widgets/foreignkey_searchinput.html:4 -#, fuzzy msgid "Lookup" msgstr "Ricerca" From 655a1c36c0143c928328475da9b379dd2474c5a6 Mon Sep 17 00:00:00 2001 From: Dimitris Glezos Date: Sun, 14 Feb 2010 13:02:09 +0000 Subject: [PATCH 07/91] l10n: Updates to Greek (el) translation Transmitted-via: Transifex (www.transifex.net) --- django_extensions/locale/el/LC_MESSAGES/django.po | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/django_extensions/locale/el/LC_MESSAGES/django.po b/django_extensions/locale/el/LC_MESSAGES/django.po index 3d807cde7..4d921c0a0 100644 --- a/django_extensions/locale/el/LC_MESSAGES/django.po +++ b/django_extensions/locale/el/LC_MESSAGES/django.po @@ -37,9 +37,8 @@ msgid "title" msgstr "τίτλος" #: db/models.py:27 -#, fuzzy msgid "slug" -msgstr "slug" +msgstr "μίνι-όνομα" #: db/models.py:28 msgid "description" From 7390864813023b9f2a699cf5ffa58ed1ade269ec Mon Sep 17 00:00:00 2001 From: Jannis Leidel Date: Wed, 17 Feb 2010 09:51:07 +0000 Subject: [PATCH 08/91] l10n: Updates to German (de) translation Transmitted-via: Transifex (www.transifex.net) --- .../locale/de/LC_MESSAGES/django.po | 34 +++++++++---------- 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/django_extensions/locale/de/LC_MESSAGES/django.po b/django_extensions/locale/de/LC_MESSAGES/django.po index 89212ebb7..3db9185e9 100644 --- a/django_extensions/locale/de/LC_MESSAGES/django.po +++ b/django_extensions/locale/de/LC_MESSAGES/django.po @@ -2,8 +2,7 @@ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. -# -#, fuzzy +# msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" @@ -18,59 +17,58 @@ msgstr "" #: admin/__init__.py:121 msgid "and" -msgstr "" +msgstr "und" #: admin/__init__.py:123 #, python-format -msgid "" -"Use the left field to do %(model_name)s lookups in the fields %(field_list)s." -msgstr "" +msgid "Use the left field to do %(model_name)s lookups in the fields %(field_list)s." +msgstr "Das linke Feld benutzen, um %(model_name)s Abfragen in den Feldern %(field_list)s durchführen." #: db/models.py:15 msgid "created" -msgstr "" +msgstr "erstellt" #: db/models.py:16 msgid "modified" -msgstr "" +msgstr "geändert" #: db/models.py:26 msgid "title" -msgstr "" +msgstr "Titel" #: db/models.py:27 msgid "slug" -msgstr "" +msgstr "Slug" #: db/models.py:28 msgid "description" -msgstr "" +msgstr "Beschreibung" #: db/models.py:50 msgid "Inactive" -msgstr "" +msgstr "Inaktiv" #: db/models.py:51 msgid "Active" -msgstr "" +msgstr "Aktiv" #: db/models.py:53 msgid "status" -msgstr "" +msgstr "Status" #: db/models.py:56 msgid "keep empty for an immediate activation" -msgstr "" +msgstr "Leer lassen für sofortige Aktivierung" #: db/models.py:58 msgid "keep empty for indefinite activation" -msgstr "" +msgstr "Leer lassen für unbefristete Aktivierung" #: management/commands/show_urls.py:33 #, python-format msgid "%s does not appear to be a urlpattern object" -msgstr "" +msgstr "%s ist kein urlpattern Objekt" #: templates/django_extensions/widgets/foreignkey_searchinput.html:4 msgid "Lookup" -msgstr "" +msgstr "Abfrage" From 8f6b8f424eef7e875c9c751e476b301e5b9839c6 Mon Sep 17 00:00:00 2001 From: Alejandro Varas Date: Sun, 21 Feb 2010 05:42:24 +0000 Subject: [PATCH 09/91] l10n: Updates to Spanish (Castilian) (es) translation Transmitted-via: Transifex (www.transifex.net) --- .../locale/es/LC_MESSAGES/django.po | 35 +++++++++---------- 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/django_extensions/locale/es/LC_MESSAGES/django.po b/django_extensions/locale/es/LC_MESSAGES/django.po index a8cc3b34a..25fcb6e38 100644 --- a/django_extensions/locale/es/LC_MESSAGES/django.po +++ b/django_extensions/locale/es/LC_MESSAGES/django.po @@ -2,8 +2,7 @@ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. -# -#, fuzzy +# msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" @@ -18,25 +17,24 @@ msgstr "" #: admin/__init__.py:121 msgid "and" -msgstr "" +msgstr "y" #: admin/__init__.py:123 -#, python-format -msgid "" -"Use the left field to do %(model_name)s lookups in the fields %(field_list)s." -msgstr "" +#, python-format, fuzzy +msgid "Use the left field to do %(model_name)s lookups in the fields %(field_list)s." +msgstr "Utilice el campo de la izquierda para hacer búsquedas de de %(model_name)s en los campos %(field_list)s ." #: db/models.py:15 msgid "created" -msgstr "" +msgstr "creado" #: db/models.py:16 msgid "modified" -msgstr "" +msgstr "modificado" #: db/models.py:26 msgid "title" -msgstr "" +msgstr "titulo" #: db/models.py:27 msgid "slug" @@ -44,33 +42,34 @@ msgstr "" #: db/models.py:28 msgid "description" -msgstr "" +msgstr "descripción" #: db/models.py:50 msgid "Inactive" -msgstr "" +msgstr "Inactivo" #: db/models.py:51 msgid "Active" -msgstr "" +msgstr "Activo" #: db/models.py:53 msgid "status" -msgstr "" +msgstr "estado" #: db/models.py:56 msgid "keep empty for an immediate activation" -msgstr "" +msgstr "mantener vacío para una activación inmediata" #: db/models.py:58 +#, fuzzy msgid "keep empty for indefinite activation" -msgstr "" +msgstr "vacío para mantener indefinidamente la activación" #: management/commands/show_urls.py:33 #, python-format msgid "%s does not appear to be a urlpattern object" -msgstr "" +msgstr "% s no parece ser un objeto urlpattern" #: templates/django_extensions/widgets/foreignkey_searchinput.html:4 msgid "Lookup" -msgstr "" +msgstr "Buscar" From 9a93358f7be3bca21e43a1ee7cc3924b61b6bc5f Mon Sep 17 00:00:00 2001 From: Alejandro Varas Date: Sun, 21 Feb 2010 05:43:55 +0000 Subject: [PATCH 10/91] l10n: Updates to Spanish (Castilian) (es) translation Transmitted-via: Transifex (www.transifex.net) --- django_extensions/locale/es/LC_MESSAGES/django.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/django_extensions/locale/es/LC_MESSAGES/django.po b/django_extensions/locale/es/LC_MESSAGES/django.po index 25fcb6e38..963abadcc 100644 --- a/django_extensions/locale/es/LC_MESSAGES/django.po +++ b/django_extensions/locale/es/LC_MESSAGES/django.po @@ -38,7 +38,7 @@ msgstr "titulo" #: db/models.py:27 msgid "slug" -msgstr "" +msgstr "slug" #: db/models.py:28 msgid "description" From 0e35ffb4fb15b2fac75606370179d12beae454cf Mon Sep 17 00:00:00 2001 From: yed Date: Sun, 6 Dec 2009 00:06:31 +0800 Subject: [PATCH 11/91] removed sha1/md5 import in favor of hashlib --- django_extensions/utils/uuid.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/django_extensions/utils/uuid.py b/django_extensions/utils/uuid.py index ae3da25ca..e21b07007 100644 --- a/django_extensions/utils/uuid.py +++ b/django_extensions/utils/uuid.py @@ -506,8 +506,8 @@ def uuid1(node=None, clock_seq=None): def uuid3(namespace, name): """Generate a UUID from the MD5 hash of a namespace UUID and a name.""" - import md5 - hash = md5.md5(namespace.bytes + name).digest() + from hashlib import md5 + hash = md5(namespace.bytes + name).digest() return UUID(bytes=hash[:16], version=3) def uuid4(): @@ -529,8 +529,8 @@ def uuid4(): def uuid5(namespace, name): """Generate a UUID from the SHA-1 hash of a namespace UUID and a name.""" - import sha - hash = sha.sha(namespace.bytes + name).digest() + from hashlib import sha1 + hash = sha1(namespace.bytes + name).digest() return UUID(bytes=hash[:16], version=5) # The following standard UUIDs are for use with uuid3() or uuid5(). From e842d7e17e35ca0be429ff3b66c0c7a5a20da3bb Mon Sep 17 00:00:00 2001 From: yedpodtrzitko Date: Tue, 19 Jan 2010 06:42:44 +0800 Subject: [PATCH 12/91] fallback for hashlib import --- django_extensions/utils/uuid.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/django_extensions/utils/uuid.py b/django_extensions/utils/uuid.py index e21b07007..b77a12d45 100644 --- a/django_extensions/utils/uuid.py +++ b/django_extensions/utils/uuid.py @@ -506,7 +506,10 @@ def uuid1(node=None, clock_seq=None): def uuid3(namespace, name): """Generate a UUID from the MD5 hash of a namespace UUID and a name.""" - from hashlib import md5 + try: + from hashlib import md5 + except ImportError: + from md5 import md5 hash = md5(namespace.bytes + name).digest() return UUID(bytes=hash[:16], version=3) @@ -529,8 +532,11 @@ def uuid4(): def uuid5(namespace, name): """Generate a UUID from the SHA-1 hash of a namespace UUID and a name.""" - from hashlib import sha1 - hash = sha1(namespace.bytes + name).digest() + try: + from hashlib import sha1 as sha + except ImportError: + from sha import sha + hash = sha(namespace.bytes + name).digest() return UUID(bytes=hash[:16], version=5) # The following standard UUIDs are for use with uuid3() or uuid5(). From f8abb3e416ddae4a1f2e6cf095166ca0c5e23853 Mon Sep 17 00:00:00 2001 From: Yosuke Ikeda Date: Tue, 2 Mar 2010 03:56:03 +0000 Subject: [PATCH 13/91] l10n: Updates to Japanese (ja) translation Transmitted-via: Transifex (www.transifex.net) --- .../locale/ja/LC_MESSAGES/django.po | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/django_extensions/locale/ja/LC_MESSAGES/django.po b/django_extensions/locale/ja/LC_MESSAGES/django.po index dfc5cbc55..881941192 100644 --- a/django_extensions/locale/ja/LC_MESSAGES/django.po +++ b/django_extensions/locale/ja/LC_MESSAGES/django.po @@ -2,8 +2,7 @@ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. -# -#, fuzzy +# msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" @@ -22,8 +21,7 @@ msgstr "" #: admin/__init__.py:123 #, python-format -msgid "" -"Use the left field to do %(model_name)s lookups in the fields %(field_list)s." +msgid "Use the left field to do %(model_name)s lookups in the fields %(field_list)s." msgstr "" #: db/models.py:15 @@ -35,28 +33,31 @@ msgid "modified" msgstr "" #: db/models.py:26 +#, fuzzy msgid "title" -msgstr "" +msgstr "タイトル" #: db/models.py:27 msgid "slug" msgstr "" #: db/models.py:28 +#, fuzzy msgid "description" -msgstr "" +msgstr "説明" #: db/models.py:50 msgid "Inactive" msgstr "" #: db/models.py:51 +#, fuzzy msgid "Active" -msgstr "" +msgstr "アクティブ" #: db/models.py:53 msgid "status" -msgstr "" +msgstr "ステータス" #: db/models.py:56 msgid "keep empty for an immediate activation" From 754bbff7df51a732ac63be6be6c4e2225156559b Mon Sep 17 00:00:00 2001 From: Shinya Okano Date: Tue, 2 Mar 2010 04:01:12 +0000 Subject: [PATCH 14/91] l10n: Updates to Japanese (ja) translation Transmitted-via: Transifex (www.transifex.net) --- django_extensions/locale/ja/LC_MESSAGES/django.po | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/django_extensions/locale/ja/LC_MESSAGES/django.po b/django_extensions/locale/ja/LC_MESSAGES/django.po index 881941192..9955007b4 100644 --- a/django_extensions/locale/ja/LC_MESSAGES/django.po +++ b/django_extensions/locale/ja/LC_MESSAGES/django.po @@ -26,32 +26,29 @@ msgstr "" #: db/models.py:15 msgid "created" -msgstr "" +msgstr "作成日時" #: db/models.py:16 msgid "modified" -msgstr "" +msgstr "変更日時" #: db/models.py:26 -#, fuzzy msgid "title" msgstr "タイトル" #: db/models.py:27 msgid "slug" -msgstr "" +msgstr "スラグ" #: db/models.py:28 -#, fuzzy msgid "description" msgstr "説明" #: db/models.py:50 msgid "Inactive" -msgstr "" +msgstr "非アクティブ" #: db/models.py:51 -#, fuzzy msgid "Active" msgstr "アクティブ" From 4081e04327b7303ce2b5a7200cb9eb68b0b5198b Mon Sep 17 00:00:00 2001 From: Yosuke Ikeda Date: Tue, 2 Mar 2010 04:07:21 +0000 Subject: [PATCH 15/91] l10n: Updates to Japanese (ja) translation Transmitted-via: Transifex (www.transifex.net) --- django_extensions/locale/ja/LC_MESSAGES/django.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/django_extensions/locale/ja/LC_MESSAGES/django.po b/django_extensions/locale/ja/LC_MESSAGES/django.po index 9955007b4..1385126a8 100644 --- a/django_extensions/locale/ja/LC_MESSAGES/django.po +++ b/django_extensions/locale/ja/LC_MESSAGES/django.po @@ -71,4 +71,4 @@ msgstr "" #: templates/django_extensions/widgets/foreignkey_searchinput.html:4 msgid "Lookup" -msgstr "" +msgstr "検索" From 644099c942e221ae0e06f4398b9f406730dd65d9 Mon Sep 17 00:00:00 2001 From: Yosuke Ikeda Date: Tue, 2 Mar 2010 04:09:48 +0000 Subject: [PATCH 16/91] l10n: Updates to Japanese (ja) translation Transmitted-via: Transifex (www.transifex.net) --- django_extensions/locale/ja/LC_MESSAGES/django.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/django_extensions/locale/ja/LC_MESSAGES/django.po b/django_extensions/locale/ja/LC_MESSAGES/django.po index 1385126a8..d89b3a581 100644 --- a/django_extensions/locale/ja/LC_MESSAGES/django.po +++ b/django_extensions/locale/ja/LC_MESSAGES/django.po @@ -17,7 +17,7 @@ msgstr "" #: admin/__init__.py:121 msgid "and" -msgstr "" +msgstr "と" #: admin/__init__.py:123 #, python-format From d60a1b84a819f95abd0045653a82d395ff90eaa1 Mon Sep 17 00:00:00 2001 From: Yosuke Ikeda Date: Tue, 2 Mar 2010 12:50:30 +0000 Subject: [PATCH 17/91] l10n: Updates to Japanese (ja) translation Transmitted-via: Transifex (www.transifex.net) --- django_extensions/locale/ja/LC_MESSAGES/django.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/django_extensions/locale/ja/LC_MESSAGES/django.po b/django_extensions/locale/ja/LC_MESSAGES/django.po index d89b3a581..1fdf11f12 100644 --- a/django_extensions/locale/ja/LC_MESSAGES/django.po +++ b/django_extensions/locale/ja/LC_MESSAGES/django.po @@ -22,7 +22,7 @@ msgstr "と" #: admin/__init__.py:123 #, python-format msgid "Use the left field to do %(model_name)s lookups in the fields %(field_list)s." -msgstr "" +msgstr "%(field_list)s フィールドの内容から %(model_name)s を検索するには左のフィールドを使用して下さい。" #: db/models.py:15 msgid "created" From 34a7aae95521ed689dc357682ef2f7a536f5b7bd Mon Sep 17 00:00:00 2001 From: Yosuke Ikeda Date: Thu, 4 Mar 2010 14:58:36 +0000 Subject: [PATCH 18/91] l10n: Updates to Japanese (ja) translation Transmitted-via: Transifex (www.transifex.net) --- django_extensions/locale/ja/LC_MESSAGES/django.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/django_extensions/locale/ja/LC_MESSAGES/django.po b/django_extensions/locale/ja/LC_MESSAGES/django.po index 1fdf11f12..24a2c4ce6 100644 --- a/django_extensions/locale/ja/LC_MESSAGES/django.po +++ b/django_extensions/locale/ja/LC_MESSAGES/django.po @@ -67,7 +67,7 @@ msgstr "" #: management/commands/show_urls.py:33 #, python-format msgid "%s does not appear to be a urlpattern object" -msgstr "" +msgstr "%s は urlpattern オブジェクトではないようです" #: templates/django_extensions/widgets/foreignkey_searchinput.html:4 msgid "Lookup" From 349454f9bb773cbcaddaa33064a0bca68d59cab7 Mon Sep 17 00:00:00 2001 From: Yosuke Ikeda Date: Thu, 4 Mar 2010 15:02:59 +0000 Subject: [PATCH 19/91] l10n: Updates to Japanese (ja) translation Transmitted-via: Transifex (www.transifex.net) --- django_extensions/locale/ja/LC_MESSAGES/django.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/django_extensions/locale/ja/LC_MESSAGES/django.po b/django_extensions/locale/ja/LC_MESSAGES/django.po index 24a2c4ce6..4ede6da93 100644 --- a/django_extensions/locale/ja/LC_MESSAGES/django.po +++ b/django_extensions/locale/ja/LC_MESSAGES/django.po @@ -58,11 +58,11 @@ msgstr "ステータス" #: db/models.py:56 msgid "keep empty for an immediate activation" -msgstr "" +msgstr "すぐに有効化する場合は空白のままにして下さい" #: db/models.py:58 msgid "keep empty for indefinite activation" -msgstr "" +msgstr "無期限に有効化しておく場合は空白のままにして下さい" #: management/commands/show_urls.py:33 #, python-format From 571eb04e3c2a5f1889dafb7b3e9b6bcb88e3e41a Mon Sep 17 00:00:00 2001 From: botondus Date: Thu, 4 Mar 2010 21:26:57 +0000 Subject: [PATCH 20/91] l10n: Added Romanian translation. Transmitted-via: Transifex (www.transifex.net) --- .../locale/ro/LC_MESSAGES/django.po | 76 +++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 django_extensions/locale/ro/LC_MESSAGES/django.po diff --git a/django_extensions/locale/ro/LC_MESSAGES/django.po b/django_extensions/locale/ro/LC_MESSAGES/django.po new file mode 100644 index 000000000..db5fa03f1 --- /dev/null +++ b/django_extensions/locale/ro/LC_MESSAGES/django.po @@ -0,0 +1,76 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-02-01 18:07+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: admin/__init__.py:121 +msgid "and" +msgstr "și" + +#: admin/__init__.py:123 +#, python-format +msgid "" +"Use the left field to do %(model_name)s lookups in the fields %(field_list)s." +msgstr "" +"Folosește câmpul din stânga pentru a efectua căutări de %(model_name)s în câmpurile %(field_list)s." + +#: db/models.py:15 +msgid "created" +msgstr "creat" + +#: db/models.py:16 +msgid "modified" +msgstr "modificat" + +#: db/models.py:26 +msgid "title" +msgstr "Titlu" + +#: db/models.py:27 +msgid "slug" +msgstr "Slug" + +#: db/models.py:28 +msgid "description" +msgstr "Descriere" + +#: db/models.py:50 +msgid "Inactive" +msgstr "Inactiv" + +#: db/models.py:51 +msgid "Active" +msgstr "Activ" + +#: db/models.py:53 +msgid "status" +msgstr "Stare" + +#: db/models.py:56 +msgid "keep empty for an immediate activation" +msgstr "A se lăsa gol pentru activare imediată" + +#: db/models.py:58 +msgid "keep empty for indefinite activation" +msgstr "A se lăsa gol pentru activare nelimitată" + +#: management/commands/show_urls.py:33 +#, python-format +msgid "%s does not appear to be a urlpattern object" +msgstr "%s nu pare să fie un obiect urlpattern" + +#: templates/django_extensions/widgets/foreignkey_searchinput.html:4 +msgid "Lookup" +msgstr "Căutare" From 8a8862acb32f695c0b39a86d88665b1a43a3615f Mon Sep 17 00:00:00 2001 From: botondus Date: Thu, 4 Mar 2010 21:49:38 +0000 Subject: [PATCH 21/91] l10n: Added Hungarian translation. Transmitted-via: Transifex (www.transifex.net) --- .../locale/hu/LC_MESSAGES/django.po | 76 +++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 django_extensions/locale/hu/LC_MESSAGES/django.po diff --git a/django_extensions/locale/hu/LC_MESSAGES/django.po b/django_extensions/locale/hu/LC_MESSAGES/django.po new file mode 100644 index 000000000..535f064b2 --- /dev/null +++ b/django_extensions/locale/hu/LC_MESSAGES/django.po @@ -0,0 +1,76 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-02-01 18:07+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: admin/__init__.py:121 +msgid "and" +msgstr "és" + +#: admin/__init__.py:123 +#, python-format +msgid "" +"Use the left field to do %(model_name)s lookups in the fields %(field_list)s." +msgstr "" +"Használd a baloldali mezőt hogy keress a %(model_name)s %(field_list)s. mezőiben" + +#: db/models.py:15 +msgid "created" +msgstr "létrehozva" + +#: db/models.py:16 +msgid "modified" +msgstr "módosítva" + +#: db/models.py:26 +msgid "title" +msgstr "Cím" + +#: db/models.py:27 +msgid "slug" +msgstr "Slug" + +#: db/models.py:28 +msgid "description" +msgstr "Leírás" + +#: db/models.py:50 +msgid "Inactive" +msgstr "Inaktív" + +#: db/models.py:51 +msgid "Active" +msgstr "Aktív" + +#: db/models.py:53 +msgid "status" +msgstr "Állapot" + +#: db/models.py:56 +msgid "keep empty for an immediate activation" +msgstr "Üresen hagyni azonnali aktiváláshoz" + +#: db/models.py:58 +msgid "keep empty for indefinite activation" +msgstr "Üresen hagyni korlátlan aktiváláshoz" + +#: management/commands/show_urls.py:33 +#, python-format +msgid "%s does not appear to be a urlpattern object" +msgstr "Úgy néz ki hogy %s nem egy urlpattern objektum" + +#: templates/django_extensions/widgets/foreignkey_searchinput.html:4 +msgid "Lookup" +msgstr "Lekérdezés" From d43ca1dc05352ccd082819751279cb0ed83068d5 Mon Sep 17 00:00:00 2001 From: Jannis Leidel Date: Sat, 6 Mar 2010 14:01:34 +0100 Subject: [PATCH 22/91] Updated Danish translation, thanks Michael Lind Mortensen --- .../locale/da/LC_MESSAGES/django.po | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/django_extensions/locale/da/LC_MESSAGES/django.po b/django_extensions/locale/da/LC_MESSAGES/django.po index a8cc3b34a..bccf9eb46 100644 --- a/django_extensions/locale/da/LC_MESSAGES/django.po +++ b/django_extensions/locale/da/LC_MESSAGES/django.po @@ -1,14 +1,15 @@ -# SOME DESCRIPTIVE TITLE. +# django_extentions in Danish. +# django_extensions på Dansk. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. +# Michael Lind Mortensen , 2009. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-02-01 18:10+0200\n" +"POT-Creation-Date: 2010-03-06 14:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,33 +19,35 @@ msgstr "" #: admin/__init__.py:121 msgid "and" -msgstr "" +msgstr "og" #: admin/__init__.py:123 #, python-format msgid "" "Use the left field to do %(model_name)s lookups in the fields %(field_list)s." msgstr "" +"Brug feltet til venstre til at lave %(model_name)s lookups i felterne %" +"(field_list)s." #: db/models.py:15 msgid "created" -msgstr "" +msgstr "skabt" #: db/models.py:16 msgid "modified" -msgstr "" +msgstr "ændret" #: db/models.py:26 msgid "title" -msgstr "" +msgstr "titel" #: db/models.py:27 msgid "slug" -msgstr "" +msgstr "slug" #: db/models.py:28 msgid "description" -msgstr "" +msgstr "beskrivelse" #: db/models.py:50 msgid "Inactive" @@ -73,4 +76,4 @@ msgstr "" #: templates/django_extensions/widgets/foreignkey_searchinput.html:4 msgid "Lookup" -msgstr "" +msgstr "Lookup" From 04fd8f49ada93f24a252c898b62624065494acf0 Mon Sep 17 00:00:00 2001 From: Allen Riddell Date: Sat, 6 Mar 2010 18:32:20 +0000 Subject: [PATCH 23/91] l10n: Updates to French (fr) translation Transmitted-via: Transifex (www.transifex.net) --- .../locale/fr/LC_MESSAGES/django.po | 41 ++++++++++--------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/django_extensions/locale/fr/LC_MESSAGES/django.po b/django_extensions/locale/fr/LC_MESSAGES/django.po index a8cc3b34a..980399803 100644 --- a/django_extensions/locale/fr/LC_MESSAGES/django.po +++ b/django_extensions/locale/fr/LC_MESSAGES/django.po @@ -2,8 +2,7 @@ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. -# -#, fuzzy +# msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" @@ -18,59 +17,61 @@ msgstr "" #: admin/__init__.py:121 msgid "and" -msgstr "" +msgstr "et" #: admin/__init__.py:123 -#, python-format -msgid "" -"Use the left field to do %(model_name)s lookups in the fields %(field_list)s." -msgstr "" +#, python-format, fuzzy +msgid "Use the left field to do %(model_name)s lookups in the fields %(field_list)s." +msgstr "Utilisez le champ de gauche pour faire des recheres de %(MODEL_NAME)s dans les champs %(field_list)s." #: db/models.py:15 msgid "created" -msgstr "" +msgstr "créé" #: db/models.py:16 msgid "modified" -msgstr "" +msgstr "mise à jour" #: db/models.py:26 msgid "title" -msgstr "" +msgstr "titre" #: db/models.py:27 msgid "slug" -msgstr "" +msgstr "slug" #: db/models.py:28 msgid "description" -msgstr "" +msgstr "description" #: db/models.py:50 msgid "Inactive" -msgstr "" +msgstr "inactif" #: db/models.py:51 msgid "Active" -msgstr "" +msgstr "active" #: db/models.py:53 msgid "status" -msgstr "" +msgstr "état" #: db/models.py:56 +#, fuzzy msgid "keep empty for an immediate activation" -msgstr "" +msgstr "garder vide pour l'activation immédiate" #: db/models.py:58 +#, fuzzy msgid "keep empty for indefinite activation" -msgstr "" +msgstr "garder vide pour l'activation de durée indéterminée" #: management/commands/show_urls.py:33 -#, python-format +#, python-format, fuzzy msgid "%s does not appear to be a urlpattern object" -msgstr "" +msgstr "%s ne semble pas être un objet urlpattern" #: templates/django_extensions/widgets/foreignkey_searchinput.html:4 +#, fuzzy msgid "Lookup" -msgstr "" +msgstr "Recherche" From d1afa6e7cbc4fe9f05cd346a933888faa3a11473 Mon Sep 17 00:00:00 2001 From: Jannis Leidel Date: Fri, 2 Apr 2010 17:16:50 +0200 Subject: [PATCH 24/91] Revert "fix naming so pip can install with -e to virtualenvs" This reverts commit e3974fdf7dd157e8f2f808837873aa674b9dce58. --- setup.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/setup.py b/setup.py index 58c576074..1d19ac01d 100644 --- a/setup.py +++ b/setup.py @@ -66,10 +66,10 @@ def fullsplit(path, result=None): version = __import__('django_extensions').__version__ setup( - name = 'django_extensions', + name = 'django-extensions', version = version, description = "Extensions for Django", - long_description = """django_extensions bundles several useful + long_description = """django-extensions bundles several useful additions for Django projects. See the project page for more information: http://code.google.com/p/django-command-extensions/""", author = 'Michael Trier', From 5bd6448df48131fd3f32dda00f74148fc0cc3d88 Mon Sep 17 00:00:00 2001 From: sqrbass Date: Wed, 14 Apr 2010 17:38:29 +0200 Subject: [PATCH 25/91] fixed #28 solved problems with new versions of IPython --- django_extensions/management/commands/shell_plus.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/django_extensions/management/commands/shell_plus.py b/django_extensions/management/commands/shell_plus.py index 6f19a436e..f3ca737ec 100644 --- a/django_extensions/management/commands/shell_plus.py +++ b/django_extensions/management/commands/shell_plus.py @@ -54,10 +54,14 @@ def handle_noargs(self, **options): from bpython import embed embed(imported_objects) except ImportError: - import IPython # Explicitly pass an empty list as arguments, because otherwise IPython # would use sys.argv from this script. - shell = IPython.Shell.IPShell(argv=[], user_ns=imported_objects) + try: + from IPython.core.iplib import InteractiveShell + shell = InteractiveShell(user_ns=imported_objects) + except ImportError: + import IPython + shell = IPython.Shell.IPShell(argv=[], user_ns=imported_objects) shell.mainloop() except ImportError: # Using normal Python shell From bee2f6027d6d363948492c4609423e408a815fe8 Mon Sep 17 00:00:00 2001 From: sqrbass Date: Wed, 14 Apr 2010 17:49:10 +0200 Subject: [PATCH 26/91] add note that reset_db does not work on django 1.2 and multiple db support --- django_extensions/management/commands/reset_db.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/django_extensions/management/commands/reset_db.py b/django_extensions/management/commands/reset_db.py index 3d5e090ba..14d8c748b 100644 --- a/django_extensions/management/commands/reset_db.py +++ b/django_extensions/management/commands/reset_db.py @@ -6,6 +6,7 @@ from django.conf import settings from django.core.management.base import CommandError, BaseCommand from django.db import connection +import django import logging from optparse import make_option @@ -36,6 +37,10 @@ def handle(self, *args, **options): Note: Transaction wrappers are in reverse as a work around for autocommit, anybody know how to do this the right way? """ + + if django.get_version()>="1.2": + raise CommandError, "reset_db is currently not compatible with Django 1.2 or higher" + if options.get('interactive'): confirm = raw_input(""" From 82aca2c139a27f97f379cdcde7911e9fbea97c5d Mon Sep 17 00:00:00 2001 From: sqrbass Date: Wed, 14 Apr 2010 17:57:00 +0200 Subject: [PATCH 27/91] patch for understanding proxy models --- .../management/commands/sqldiff.py | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/django_extensions/management/commands/sqldiff.py b/django_extensions/management/commands/sqldiff.py index 9b9225ab7..95679f8a0 100644 --- a/django_extensions/management/commands/sqldiff.py +++ b/django_extensions/management/commands/sqldiff.py @@ -45,6 +45,12 @@ def flatten(l, ltypes=(list, tuple)): i += 1 return ltype(l) +def all_local_fields(meta): + all_fields = meta.local_fields[:] + for parent in meta.parents: + all_fields.extend(all_local_fields(parent._meta)) + return all_fields + class SQLDiff(object): DATA_TYPES_REVERSE_OVERRIDE = { } @@ -211,7 +217,7 @@ def strip_parameters(self, field_type): return field_type def find_unique_missing_in_db(self, meta, table_indexes, table_name): - for field in meta.local_fields: + for field in all_local_fields(meta): if field.unique: attname = field.db_column or field.attname if attname in table_indexes and table_indexes[attname]['unique']: @@ -221,21 +227,21 @@ def find_unique_missing_in_db(self, meta, table_indexes, table_name): def find_unique_missing_in_model(self, meta, table_indexes, table_name): # TODO: Postgresql does not list unique_togethers in table_indexes # MySQL does - fields = dict([(field.db_column or field.name, field.unique) for field in meta.local_fields]) + fields = dict([(field.db_column or field.name, field.unique) for field in all_local_fields(meta)]) for att_name, att_opts in table_indexes.iteritems(): if att_opts['unique'] and att_name in fields and not fields[att_name]: if att_name in flatten(meta.unique_together): continue self.add_difference('unique-missing-in-model', table_name, att_name) def find_index_missing_in_db(self, meta, table_indexes, table_name): - for field in meta.local_fields: + for field in all_local_fields(meta): if field.db_index: attname = field.db_column or field.attname if not attname in table_indexes: self.add_difference('index-missing-in-db', table_name, attname) def find_index_missing_in_model(self, meta, table_indexes, table_name): - fields = dict([(field.name, field) for field in meta.local_fields]) + fields = dict([(field.name, field) for field in all_local_fields(meta)]) for att_name, att_opts in table_indexes.iteritems(): if att_name in fields: field = fields[att_name] @@ -258,7 +264,7 @@ def find_field_missing_in_db(self, fieldmap, table_description, table_name): def find_field_type_differ(self, meta, table_description, table_name, func=None): db_fields = dict([(row[0], row) for row in table_description]) - for field in meta.local_fields: + for field in all_local_fields(meta): if field.name not in db_fields: continue description = db_fields[field.name] @@ -274,7 +280,7 @@ def find_field_type_differ(self, meta, table_description, table_name, func=None) def find_field_parameter_differ(self, meta, table_description, table_name, func=None): db_fields = dict([(row[0], row) for row in table_description]) - for field in meta.local_fields: + for field in all_local_fields(meta): if field.name not in db_fields: continue description = db_fields[field.name] @@ -310,7 +316,7 @@ def find_differences(self): continue table_indexes = self.introspection.get_indexes(self.cursor, table_name) - fieldmap = dict([(field.db_column or field.get_attname(), field) for field in meta.local_fields]) + fieldmap = dict([(field.db_column or field.get_attname(), field) for field in all_local_fields(meta)]) # add ordering field if model uses order_with_respect_to if meta.order_with_respect_to: @@ -429,7 +435,7 @@ class SqliteSQLDiff(SQLDiff): # if this is more generic among databases this might be usefull # to add to the superclass's find_unique_missing_in_db method def find_unique_missing_in_db(self, meta, table_indexes, table_name): - for field in meta.local_fields: + for field in all_local_fields(meta): if field.unique: attname = field.db_column or field.attname if attname in table_indexes and table_indexes[attname]['unique']: From 9bf983ebff6dc966dee39929080d41e97333f864 Mon Sep 17 00:00:00 2001 From: sqrbass Date: Wed, 14 Apr 2010 18:02:23 +0200 Subject: [PATCH 28/91] fixed #22 --- django_extensions/management/commands/reset_db.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/django_extensions/management/commands/reset_db.py b/django_extensions/management/commands/reset_db.py index 14d8c748b..768f6dc84 100644 --- a/django_extensions/management/commands/reset_db.py +++ b/django_extensions/management/commands/reset_db.py @@ -134,6 +134,6 @@ def handle(self, *args, **options): cursor.execute(create_query) else: - raise CommandError, "Unknown database engine %s", engine + raise CommandError, "Unknown database engine %s" % engine print "Reset successful." From 42113308b0a57219f031a60189ecd5a76dbb59db Mon Sep 17 00:00:00 2001 From: sqrbass Date: Wed, 21 Apr 2010 13:31:05 +0200 Subject: [PATCH 29/91] updates release documentation --- docs/creating_release.txt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/creating_release.txt b/docs/creating_release.txt index 5b4b090ab..9dfe698b4 100644 --- a/docs/creating_release.txt +++ b/docs/creating_release.txt @@ -12,9 +12,10 @@ Get a fresh copy $ git clone git@github.com:django-extensions/django-extensions.git $ cd django-extensions -Change version number in django_extensions/__init__.py +Change version numbers in django_extensions/__init__.py and docs/conf.py - $ vi django_extension/__init__.py + $ vi django_extension/__init__.py (1 occurance) + $ vi docs/conf.py (2 occurances) $ git commit -a -m v0.4.1 Tag it From b4b8e5cee3a6dfec0cd9412ca7c28e2d3e08ff8d Mon Sep 17 00:00:00 2001 From: sqrbass Date: Wed, 21 Apr 2010 13:31:44 +0200 Subject: [PATCH 30/91] v0.5 --- django_extensions/__init__.py | 2 +- docs/conf.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/django_extensions/__init__.py b/django_extensions/__init__.py index ed4fe66b9..7e509ffcc 100644 --- a/django_extensions/__init__.py +++ b/django_extensions/__init__.py @@ -1,5 +1,5 @@ -VERSION = (0, "4.2", "pre") +VERSION = (0, 5,) # Dynamically calculate the version based on VERSION tuple if len(VERSION)>2 and VERSION[2] is not None: diff --git a/docs/conf.py b/docs/conf.py index 15a9258e3..ff31de50b 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -45,9 +45,9 @@ # built documents. # # The short X.Y version. -version = '0.4' +version = '0.5' # The full version, including alpha/beta/rc tags. -release = '0.4' +release = '0.5' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. From ae96c05512bcc9505d2d9b4a3c86629222ca7c0e Mon Sep 17 00:00:00 2001 From: sqrbass Date: Wed, 21 Apr 2010 14:20:33 +0200 Subject: [PATCH 31/91] added sqldiff to the toc of sphinx documentation --- docs/index.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/index.rst b/docs/index.rst index 7f87a044e..a326b1385 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -27,6 +27,7 @@ Contents: runprofileserver runserver_plus sync_media_s3 + sqldiff Indices and tables From 1516642f89a22cda1f1e70d4aa917b8ef9b191a5 Mon Sep 17 00:00:00 2001 From: sqrbass Date: Wed, 21 Apr 2010 14:20:54 +0200 Subject: [PATCH 32/91] updated creating_release.txt with documentation instructions --- docs/creating_release.txt | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/docs/creating_release.txt b/docs/creating_release.txt index 9dfe698b4..97cec8e5c 100644 --- a/docs/creating_release.txt +++ b/docs/creating_release.txt @@ -31,6 +31,17 @@ Upload release to pypi $ python ./setup.py register $ python ./setup.py sdist upload -s +Upload new documentation to pypi + + $ cd docs + $ make html + $ cd _build/html + $ zip -r9v ../django_extensions_docs.zip * + +Now goto http://pypi.python.org, login and edit the django_extensions package. +At the bottom of the page your can upload documentation. Click browse, select +the zip file and hit "Upload Documentation". + Bumb version number to new in-development pre version $ vi django_extensions/__init__.py From 3f9719da11c9adfdf4fa9e37570870cd3be97dec Mon Sep 17 00:00:00 2001 From: sqrbass Date: Wed, 21 Apr 2010 14:22:46 +0200 Subject: [PATCH 33/91] updated copyright notice --- docs/conf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/conf.py b/docs/conf.py index ff31de50b..2e626029c 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -38,7 +38,7 @@ # General information about the project. project = u'django-extensions' -copyright = u'Copyright (C) 2008, 2009 Michael Trier and contributors' +copyright = u'Copyright (C) 2008, 2009, 2010 Michael Trier and contributors' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the From 07275f9d98466db33c874f1171591ecb26b22138 Mon Sep 17 00:00:00 2001 From: sqrbass Date: Wed, 21 Apr 2010 14:25:13 +0200 Subject: [PATCH 34/91] updated maintainer information --- setup.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/setup.py b/setup.py index 1d19ac01d..93b408315 100644 --- a/setup.py +++ b/setup.py @@ -74,6 +74,8 @@ def fullsplit(path, result=None): http://code.google.com/p/django-command-extensions/""", author = 'Michael Trier', author_email = 'mtrier@gmail.com', + maintainer = 'Bas van Oostveen', + maintainer_email = 'v.oostveen@gmail.com', url = 'http://code.google.com/p/django-command-extensions/', license = 'New BSD License', platforms = ['any'], From d27a13170b4feb413e2cceb72a93784dc887386b Mon Sep 17 00:00:00 2001 From: Trbs Date: Tue, 18 May 2010 12:22:04 +0200 Subject: [PATCH 35/91] fixed #30 raise exception formatting --- django_extensions/management/commands/reset_db.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/django_extensions/management/commands/reset_db.py b/django_extensions/management/commands/reset_db.py index 768f6dc84..9c6e840fd 100644 --- a/django_extensions/management/commands/reset_db.py +++ b/django_extensions/management/commands/reset_db.py @@ -39,7 +39,7 @@ def handle(self, *args, **options): """ if django.get_version()>="1.2": - raise CommandError, "reset_db is currently not compatible with Django 1.2 or higher" + raise CommandError("reset_db is currently not compatible with Django 1.2 or higher") if options.get('interactive'): @@ -100,7 +100,7 @@ def handle(self, *args, **options): if settings.DATABASE_NAME == '': from django.core.exceptions import ImproperlyConfigured - raise ImproperlyConfigured, "You need to specify DATABASE_NAME in your Django settings file." + raise ImproperlyConfigured("You need to specify DATABASE_NAME in your Django settings file.") database_name = options.get('dbname', 'template1') conn_string = "dbname=%s" % database_name @@ -134,6 +134,6 @@ def handle(self, *args, **options): cursor.execute(create_query) else: - raise CommandError, "Unknown database engine %s" % engine + raise CommandError("Unknown database engine %s" % engine) print "Reset successful." From 94be9c0468467a5db3e76f07f36777258e731980 Mon Sep 17 00:00:00 2001 From: Trbs Date: Tue, 25 May 2010 19:51:06 +0200 Subject: [PATCH 36/91] ticket #32 fixed by flipping isinstance check for OneToOnefield and Foreignkey --- django_extensions/management/modelviz.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/django_extensions/management/modelviz.py b/django_extensions/management/modelviz.py index f3a6a5185..3c1f79278 100644 --- a/django_extensions/management/modelviz.py +++ b/django_extensions/management/modelviz.py @@ -220,10 +220,10 @@ def add_relation(field, extras=""): model['relations'].append(_rel) for field in appmodel._meta.fields: - if isinstance(field, ForeignKey): - add_relation(field) - elif isinstance(field, OneToOneField): + if isinstance(field, OneToOneField): add_relation(field, '[arrowhead=none arrowtail=none]') + elif isinstance(field, ForeignKey): + add_relation(field) if appmodel._meta.many_to_many: for field in appmodel._meta.many_to_many: From 12dda865fcb1647589a738f6b22889a6d9980015 Mon Sep 17 00:00:00 2001 From: Trbs Date: Tue, 25 May 2010 19:58:30 +0200 Subject: [PATCH 37/91] ticket #31 on github, using verbose_names in drawing graph_model this patch makes an option to use verbose_names from metadata instead of class and field names. thanks to qMax for this patch! --- .../management/commands/graph_models.py | 6 ++-- django_extensions/management/modelviz.py | 33 ++++++++++++++++--- docs/AUTHORS | 1 + 3 files changed, 34 insertions(+), 6 deletions(-) diff --git a/django_extensions/management/commands/graph_models.py b/django_extensions/management/commands/graph_models.py index 2a1a505f9..9acb98082 100644 --- a/django_extensions/management/commands/graph_models.py +++ b/django_extensions/management/commands/graph_models.py @@ -14,6 +14,8 @@ class Command(BaseCommand): help='Render output file. Type of output dependend on file extensions. Use png or jpg to render graph to image.'), make_option('--layout', '-l', action='store', dest='layout', default='dot', help='Layout to be used by GraphViz for visualization. Layouts: circo dot fdp neato nop nop1 nop2 twopi'), + make_option('--verbose-names', '-n', action='store_true', dest='verbose_names', + help='Use verbose_name of models and fields'), ) help = ("Creates a GraphViz dot file for the specified app names. You can pass multiple app names and they will all be combined into a single model. Output is usually directed to a dot file.") @@ -34,7 +36,7 @@ def handle(self, *args, **options): self.print_output(dotdata) def print_output(self, dotdata): - print dotdata + print dotdata.encode('utf-8') def render_output(self, dotdata, **kwargs): try: @@ -42,7 +44,7 @@ def render_output(self, dotdata, **kwargs): except ImportError, e: raise CommandError("need pygraphviz python module ( apt-get install python-pygraphviz )") - vizdata = ' '.join(dotdata.split("\n")).strip() + vizdata = ' '.join(dotdata.split("\n")).strip().encode('utf-8') version = pygraphviz.__version__.rstrip("-svn") try: if [int(v) for v in version.split('.')]<(0,36): diff --git a/django_extensions/management/modelviz.py b/django_extensions/management/modelviz.py index 3c1f79278..bd8ba4a7a 100644 --- a/django_extensions/management/modelviz.py +++ b/django_extensions/management/modelviz.py @@ -24,6 +24,9 @@ -i, --include_models=User,Person,Car only include selected models in graph. + + -n, --verbose_names + use verbose_name for field and models. """ __version__ = "0.9" __svnid__ = "$Id$" @@ -98,12 +101,12 @@ + >{{ model.label }}{% if model.abstracts %}
<{{ model.abstracts|join:"," }}>{% endif %} {% if not disable_fields %} {% for field in model.fields %}
{{ model.name }}{% if model.abstracts %}
<{{ model.abstracts|join:"," }}>{% endif %}
{{ field.name }}{{ field.label }} {{ field.type }}] {% endif %} {{ model.app_name }}_{{ model.name }} -> {{ relation.target_app }}_{{ relation.target }} - [label="{{ relation.name }}"] {{ relation.arrows }}; + [label="{{ relation.label }}"] {{ relation.arrows }}; {% endfor %} {% endfor %} """ @@ -146,6 +149,7 @@ def generate_dot(app_labels, **kwargs): include_models = kwargs.get('include_models', []) all_applications = kwargs.get('all_applications', False) use_subgraph = kwargs.get('group_models', False) + verbose_names = kwargs.get('verbose_names', False) dot = head_template @@ -190,14 +194,26 @@ def consider(model_name): if not consider(appmodel._meta.object_name): continue + if verbose_names and appmodel._meta.verbose_name: + model['label'] = appmodel._meta.verbose_name + else: + model['label'] = model['name'] + # model attributes def add_attributes(field): + if verbose_names and field.verbose_name: + label = field.verbose_name + else: + label = field.name + model['fields'].append({ 'name': field.name, + 'label': label, 'type': type(field).__name__, 'blank': field.blank, 'abstract': field in abstract_fields, }) + for field in appmodel._meta.fields: add_attributes(field) @@ -208,11 +224,17 @@ def add_attributes(field): # relations def add_relation(field, extras=""): + if verbose_names and field.verbose_name: + label = field.verbose_name + else: + label = field.name + _rel = { 'target_app': field.rel.to.__module__.replace('.','_'), 'target': field.rel.to.__name__, 'type': type(field).__name__, 'name': field.name, + 'label': label, 'arrows': extras, 'needs_node': True } @@ -258,7 +280,7 @@ def add_relation(field, extras=""): def main(): try: opts, args = getopt.getopt(sys.argv[1:], "hadgi:", - ["help", "all_applications", "disable_fields", "group_models", "include_models="]) + ["help", "all_applications", "disable_fields", "group_models", "include_models=", "verbose_names"]) except getopt.GetoptError, error: print __doc__ sys.exit(error) @@ -276,6 +298,9 @@ def main(): kwargs['group_models'] = True if opt in ("-i", "--include_models"): kwargs['include_models'] = arg.split(',') + if opt in ("-n", "--verbose-names"): + kwargs['verbose_names'] = True + if not args and not kwargs.get('all_applications', False): print __doc__ diff --git a/docs/AUTHORS b/docs/AUTHORS index 993684202..ccf911857 100644 --- a/docs/AUTHORS +++ b/docs/AUTHORS @@ -13,3 +13,4 @@ David Krauth (dakrauth) Will Larson (lethain) - For syntax_color template filters. Patrick Altman (paltman) - Patched sync_media_s3 Chris Beaven (smileychris) - widont filter +qMax - various graph_model patches From ee5c6085af49cfd30db84006b66c59298f16f6dd Mon Sep 17 00:00:00 2001 From: Trbs Date: Mon, 7 Jun 2010 13:49:50 +0200 Subject: [PATCH 38/91] added tyson clugg to the authors document --- docs/AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/AUTHORS b/docs/AUTHORS index ccf911857..fdd05677b 100644 --- a/docs/AUTHORS +++ b/docs/AUTHORS @@ -14,3 +14,4 @@ Will Larson (lethain) - For syntax_color template filters. Patrick Altman (paltman) - Patched sync_media_s3 Chris Beaven (smileychris) - widont filter qMax - various graph_model patches +Tyson Clugg (tclugg) - Patched sqldiff From cdf8fae28b3830f8dcf3d0d9f25992b50261633d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lauri=20V=C3=B5sandi?= Date: Thu, 1 Jul 2010 21:32:34 +0000 Subject: [PATCH 39/91] l10n: Updated Estonian (et) translation to 7% New status: 1 message complete with 0 fuzzies and 13 untranslated. Transmitted-via: Transifex (www.transifex.net). --- django_extensions/locale/et/LC_MESSAGES/django.po | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/django_extensions/locale/et/LC_MESSAGES/django.po b/django_extensions/locale/et/LC_MESSAGES/django.po index dfc5cbc55..d028cbad3 100644 --- a/django_extensions/locale/et/LC_MESSAGES/django.po +++ b/django_extensions/locale/et/LC_MESSAGES/django.po @@ -2,8 +2,7 @@ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. -# -#, fuzzy +# msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" @@ -18,12 +17,11 @@ msgstr "" #: admin/__init__.py:121 msgid "and" -msgstr "" +msgstr "ja" #: admin/__init__.py:123 #, python-format -msgid "" -"Use the left field to do %(model_name)s lookups in the fields %(field_list)s." +msgid "Use the left field to do %(model_name)s lookups in the fields %(field_list)s." msgstr "" #: db/models.py:15 From a2a4c908f2c2e3ac677dd139171e5e69cfd6ae92 Mon Sep 17 00:00:00 2001 From: Rense VanderHoek Date: Wed, 14 Jul 2010 23:34:28 +0800 Subject: [PATCH 40/91] Fixes issue #10 --- django_extensions/management/commands/sync_media_s3.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/django_extensions/management/commands/sync_media_s3.py b/django_extensions/management/commands/sync_media_s3.py index 4999ae947..98999d979 100644 --- a/django_extensions/management/commands/sync_media_s3.py +++ b/django_extensions/management/commands/sync_media_s3.py @@ -125,11 +125,11 @@ def handle(self, *args, **options): self.do_force = options.get('force') self.DIRECTORY = options.get('dir') self.FILTER_LIST = getattr(settings, 'FILTER_LIST', self.FILTER_LIST) - filter_list = options.get('filter_list').split(',') + filter_list = options.get('filter_list') if filter_list: # command line option overrides default filter_list and # settings.filter_list - self.FILTER_LIST = filter_list + self.FILTER_LIST = filter_list.split(',') # Now call the syncing method to walk the MEDIA_ROOT directory and # upload all files found. From fde73203ddd7955dd2227fc060cc004831166d5c Mon Sep 17 00:00:00 2001 From: Erik Romijn Date: Thu, 18 Mar 2010 04:32:45 +0800 Subject: [PATCH 41/91] adding support for minutely jobs --- django_extensions/management/commands/runjobs.py | 10 ++++++---- django_extensions/management/jobs.py | 5 ++++- django_extensions/management/signals.py | 1 + 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/django_extensions/management/commands/runjobs.py b/django_extensions/management/commands/runjobs.py index 36773829c..37816a824 100644 --- a/django_extensions/management/commands/runjobs.py +++ b/django_extensions/management/commands/runjobs.py @@ -8,13 +8,13 @@ class Command(LabelCommand): help="List all jobs with their description"), ) help = "Runs scheduled maintenance jobs." - args = "[hourly daily weekly monthly yearly]" + args = "[minutely hourly daily weekly monthly yearly]" label = "" requires_model_validation = True def usage_msg(self): - print "Run scheduled jobs. Please specify 'hourly', 'daily', 'weekly', 'monthly' or 'yearly'" + print "Run scheduled jobs. Please specify 'minutely', 'hourly', 'daily', 'weekly', 'monthly' or 'yearly'" def runjobs(self, when, options): verbosity = int(options.get('verbosity', 1)) @@ -52,7 +52,9 @@ def runjobs_by_signals(self, when, options): if verbosity>1: app_name = '.'.join(app.__name__.rsplit('.')[:-1]) print "Sending %s job signal for: %s" % (when, app_name) - if when == 'hourly': + if when == 'minutely': + signals.run_minutely_jobs.send(sender=app, app=app) + elif when == 'hourly': signals.run_hourly_jobs.send(sender=app, app=app) elif when == 'daily': signals.run_daily_jobs.send(sender=app, app=app) @@ -69,7 +71,7 @@ def handle(self, *args, **options): self.usage_msg() return elif len(args)==1: - if not args[0] in ['hourly', 'daily', 'weekly', 'monthly', 'yearly']: + if not args[0] in ['minutely', 'hourly', 'daily', 'weekly', 'monthly', 'yearly']: self.usage_msg() return else: diff --git a/django_extensions/management/jobs.py b/django_extensions/management/jobs.py index 691aec84e..266ad4733 100644 --- a/django_extensions/management/jobs.py +++ b/django_extensions/management/jobs.py @@ -20,6 +20,9 @@ class BaseJob(object): def execute(self): raise NotImplementedError("Job needs to implement the execute method") +class MinutelyJob(BaseJob): + when = "minutely" + class HourlyJob(BaseJob): when = "hourly" @@ -94,7 +97,7 @@ def get_jobs(when=None, only_scheduled=False): if True: from django.conf import settings for app_name in settings.INSTALLED_APPS: - scandirs = (None, 'hourly', 'daily', 'weekly', 'monthly', 'yearly') + scandirs = (None, 'minutely', 'hourly', 'daily', 'weekly', 'monthly', 'yearly') if when: scandirs = None, when for subdir in scandirs: diff --git a/django_extensions/management/signals.py b/django_extensions/management/signals.py index 40f3cbf43..cb23d5b35 100644 --- a/django_extensions/management/signals.py +++ b/django_extensions/management/signals.py @@ -3,6 +3,7 @@ """ from django.dispatch import Signal +run_minutely_jobs = Signal() run_hourly_jobs = Signal() run_daily_jobs = Signal() run_weekly_jobs = Signal() From ec6f835a93b0e5ac0d9767c845379bee0948fdf4 Mon Sep 17 00:00:00 2001 From: Wai Yi Leung Date: Fri, 4 Jun 2010 08:29:42 +0800 Subject: [PATCH 42/91] Modified the reset_db to use Django>=1.2 database routers --- .../management/commands/reset_db.py | 28 ++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/django_extensions/management/commands/reset_db.py b/django_extensions/management/commands/reset_db.py index 9c6e840fd..a88a01667 100644 --- a/django_extensions/management/commands/reset_db.py +++ b/django_extensions/management/commands/reset_db.py @@ -27,9 +27,32 @@ class Command(BaseCommand): make_option('-D', '--dbname', action='store', dest='dbname', default=None, help='Use another database name then defined in settings.py (For PostgreSQL this defaults to "template1")'), + make_option('-R', '--router', action='store', + dest='router', default=None, + help='Use this router-database other then defined in settings.py'), ) help = "Resets the database for this project." + def set_db_settings(self, *args, **options ): + if django.get_version()>="1.2": + router = options.get('router') + print router + if router==None: + return False + + # retrieve this with the 'using' argument + dbinfo = settings.DATABASES.get( router ) + settings.DATABASE_ENGINE = dbinfo.get('ENGINE').split('.')[-1] + settings.DATABASE_USER = dbinfo.get('USER') + settings.DATABASE_PASSWORD = dbinfo.get('PASSWORD') + settings.DATABASE_NAME = dbinfo.get('NAME') + settings.DATABASE_HOST = dbinfo.get('HOST') + settings.DATABASE_PORT = dbinfo.get('PORT') + return True + else: + # settings are set for django < 1.2 no modification needed + return True + def handle(self, *args, **options): """ Resets the database for this project. @@ -39,7 +62,10 @@ def handle(self, *args, **options): """ if django.get_version()>="1.2": - raise CommandError("reset_db is currently not compatible with Django 1.2 or higher") + got_db_settings = self.set_db_settings(*args, **options) + if not got_db_settings: + raise CommandError("You are using Django %s which requires to specify the db-router.\nPlease specify the router by adding --router= to this command." % django.get_version()) + return if options.get('interactive'): From 51ef5c0d32921228855fe9922611301d43cc099c Mon Sep 17 00:00:00 2001 From: wyleung Date: Fri, 4 Jun 2010 20:58:34 +0800 Subject: [PATCH 43/91] Removed print statement (used in debug) --- django_extensions/management/commands/reset_db.py | 1 - 1 file changed, 1 deletion(-) diff --git a/django_extensions/management/commands/reset_db.py b/django_extensions/management/commands/reset_db.py index a88a01667..8dd886bbc 100644 --- a/django_extensions/management/commands/reset_db.py +++ b/django_extensions/management/commands/reset_db.py @@ -36,7 +36,6 @@ class Command(BaseCommand): def set_db_settings(self, *args, **options ): if django.get_version()>="1.2": router = options.get('router') - print router if router==None: return False From 3ceb8749b361c06f93692881af62aebb9817f7f5 Mon Sep 17 00:00:00 2001 From: wyleung Date: Mon, 7 Jun 2010 23:22:05 +0800 Subject: [PATCH 44/91] Solve ticket #9 and #12 on github about connection parameters --- django_extensions/management/commands/reset_db.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/django_extensions/management/commands/reset_db.py b/django_extensions/management/commands/reset_db.py index 8dd886bbc..cc08e5e01 100644 --- a/django_extensions/management/commands/reset_db.py +++ b/django_extensions/management/commands/reset_db.py @@ -107,6 +107,12 @@ def handle(self, *args, **options): kwargs['unix_socket'] = settings.DATABASE_HOST else: kwargs['host'] = settings.DATABASE_HOST + if settings.DATABASE_USER: + kwargs['user'] = settings.DATABASE_USER + if settings.DATABASE_PASSWORD: + kwargs['password'] = settings_dict.DATABASE_PASSWORD + if settings_dict['DATABASE_HOST']: + kwargs['host'] = settings_dict.DATABASE_HOST if settings.DATABASE_PORT: kwargs['port'] = int(settings.DATABASE_PORT) connection = Database.connect(**kwargs) From d562a64a2301f05ad527828c66a102f64e02ead8 Mon Sep 17 00:00:00 2001 From: wyleung Date: Mon, 7 Jun 2010 23:24:23 +0800 Subject: [PATCH 45/91] Fix indent problem, sorry! --- django_extensions/management/commands/reset_db.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/django_extensions/management/commands/reset_db.py b/django_extensions/management/commands/reset_db.py index cc08e5e01..5ea8d0265 100644 --- a/django_extensions/management/commands/reset_db.py +++ b/django_extensions/management/commands/reset_db.py @@ -107,12 +107,12 @@ def handle(self, *args, **options): kwargs['unix_socket'] = settings.DATABASE_HOST else: kwargs['host'] = settings.DATABASE_HOST - if settings.DATABASE_USER: - kwargs['user'] = settings.DATABASE_USER - if settings.DATABASE_PASSWORD: - kwargs['password'] = settings_dict.DATABASE_PASSWORD - if settings_dict['DATABASE_HOST']: - kwargs['host'] = settings_dict.DATABASE_HOST + if settings.DATABASE_USER: + kwargs['user'] = settings.DATABASE_USER + if settings.DATABASE_PASSWORD: + kwargs['password'] = settings_dict.DATABASE_PASSWORD + if settings_dict['DATABASE_HOST']: + kwargs['host'] = settings_dict.DATABASE_HOST if settings.DATABASE_PORT: kwargs['port'] = int(settings.DATABASE_PORT) connection = Database.connect(**kwargs) From f6cd367b0ee81b889dac47ca05dcf17763e902a4 Mon Sep 17 00:00:00 2001 From: wyleung Date: Tue, 8 Jun 2010 03:18:31 +0800 Subject: [PATCH 46/91] Removed mysql settings added last time, postgresql: removed tablespace depency. --- .../management/commands/reset_db.py | 25 ++++++++----------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/django_extensions/management/commands/reset_db.py b/django_extensions/management/commands/reset_db.py index 5ea8d0265..675c702c0 100644 --- a/django_extensions/management/commands/reset_db.py +++ b/django_extensions/management/commands/reset_db.py @@ -107,14 +107,9 @@ def handle(self, *args, **options): kwargs['unix_socket'] = settings.DATABASE_HOST else: kwargs['host'] = settings.DATABASE_HOST - if settings.DATABASE_USER: - kwargs['user'] = settings.DATABASE_USER - if settings.DATABASE_PASSWORD: - kwargs['password'] = settings_dict.DATABASE_PASSWORD - if settings_dict['DATABASE_HOST']: - kwargs['host'] = settings_dict.DATABASE_HOST if settings.DATABASE_PORT: kwargs['port'] = int(settings.DATABASE_PORT) + connection = Database.connect(**kwargs) drop_query = 'DROP DATABASE IF EXISTS %s' % settings.DATABASE_NAME utf8_support = options.get('no_utf8_support', False) and '' or 'CHARACTER SET utf8' @@ -133,7 +128,9 @@ def handle(self, *args, **options): from django.core.exceptions import ImproperlyConfigured raise ImproperlyConfigured("You need to specify DATABASE_NAME in your Django settings file.") - database_name = options.get('dbname', 'template1') + database_name = options.get('dbname', 'template1') + if options.get('dbname') == None: + database_name = 'template1' conn_string = "dbname=%s" % database_name if settings.DATABASE_USER: conn_string += " user=%s" % user @@ -143,6 +140,7 @@ def handle(self, *args, **options): conn_string += " host=%s" % settings.DATABASE_HOST if settings.DATABASE_PORT: conn_string += " port=%s" % settings.DATABASE_PORT + #print conn_string connection = Database.connect(conn_string) connection.set_isolation_level(0) #autocommit false cursor = connection.cursor() @@ -155,16 +153,15 @@ def handle(self, *args, **options): logging.info("Error: "+str(e)) # Encoding should be SQL_ASCII (7-bit postgres default) or prefered UTF8 (8-bit) - create_query = (""" -CREATE DATABASE %s - WITH OWNER = %s - ENCODING = 'UTF8' - TABLESPACE = %s; -""" % (settings.DATABASE_NAME, settings.DATABASE_USER, settings.DEFAULT_TABLESPACE)) + create_query = """CREATE DATABASE %s WITH OWNER = %s ENCODING = 'UTF8' """ % (settings.DATABASE_NAME, settings.DATABASE_USER) + if settings.DEFAULT_TABLESPACE: + create_query+= 'TABLESPACE = %s;' % (settings.DEFAULT_TABLESPACE) + else: + create_query+= ';' logging.info('Executing... "' + create_query + '"') cursor.execute(create_query) else: raise CommandError("Unknown database engine %s" % engine) - print "Reset successful." + print "Reset successful." \ No newline at end of file From 549662c34a3079884077fbfabb35e6d129c532f2 Mon Sep 17 00:00:00 2001 From: wyleung Date: Tue, 8 Jun 2010 03:31:27 +0800 Subject: [PATCH 47/91] Add verbosity options --- django_extensions/management/commands/reset_db.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/django_extensions/management/commands/reset_db.py b/django_extensions/management/commands/reset_db.py index 675c702c0..eb542aade 100644 --- a/django_extensions/management/commands/reset_db.py +++ b/django_extensions/management/commands/reset_db.py @@ -66,7 +66,7 @@ def handle(self, *args, **options): raise CommandError("You are using Django %s which requires to specify the db-router.\nPlease specify the router by adding --router= to this command." % django.get_version()) return - + verbosity = int(options.get('verbosity', 1)) if options.get('interactive'): confirm = raw_input(""" You have requested a database reset. @@ -140,7 +140,7 @@ def handle(self, *args, **options): conn_string += " host=%s" % settings.DATABASE_HOST if settings.DATABASE_PORT: conn_string += " port=%s" % settings.DATABASE_PORT - #print conn_string + connection = Database.connect(conn_string) connection.set_isolation_level(0) #autocommit false cursor = connection.cursor() @@ -163,5 +163,6 @@ def handle(self, *args, **options): else: raise CommandError("Unknown database engine %s" % engine) - - print "Reset successful." \ No newline at end of file + + if verbosity >= 2 or options.get('interactive'): + print "Reset successful." From 7506644c7dd6b81d93181796577913a166c32675 Mon Sep 17 00:00:00 2001 From: Richard Bullington-McGuire Date: Fri, 23 Jul 2010 03:10:52 +0800 Subject: [PATCH 48/91] Resolve issue #17: omit tests if keyczar is not installed --- django_extensions/tests/__init__.py | 7 ++++-- django_extensions/tests/encrypted_fields.py | 26 +++++++++++++++++---- django_extensions/tests/models.py | 15 ++++++++++-- 3 files changed, 39 insertions(+), 9 deletions(-) diff --git a/django_extensions/tests/__init__.py b/django_extensions/tests/__init__.py index c64ff0b2a..10ada9dfa 100644 --- a/django_extensions/tests/__init__.py +++ b/django_extensions/tests/__init__.py @@ -1,7 +1,10 @@ from django.db import models from django_extensions.tests.utils import UTILS_TESTS -from django_extensions.tests.encrypted_fields import EncryptedFieldsTestCase -from django_extensions.tests.models import Secret +try: + from django_extensions.tests.encrypted_fields import EncryptedFieldsTestCase + from django_extensions.tests.models import Secret +except ImportError: + pass __test__ = { 'UTILS_TESTS': UTILS_TESTS, diff --git a/django_extensions/tests/encrypted_fields.py b/django_extensions/tests/encrypted_fields.py index 68c6836a7..4b8931fdb 100644 --- a/django_extensions/tests/encrypted_fields.py +++ b/django_extensions/tests/encrypted_fields.py @@ -1,18 +1,26 @@ import unittest -from keyczar import keyczar + from django.db import connection from django.conf import settings from django.core.management import call_command from django.db.models import loading -from django_extensions.tests.models import Secret -from django_extensions.db.fields.encrypted import EncryptedTextField, EncryptedCharField +# Only perform encrypted fields tests if keyczar is present +# Resolves http://github.com/django-extensions/django-extensions/issues/#issue/17 +try: + from keyczar import keyczar + from django_extensions.tests.models import Secret + from django_extensions.db.fields.encrypted import EncryptedTextField, EncryptedCharField + keyczar_active = True +except ImportError: + keyczar_active = False class EncryptedFieldsTestCase(unittest.TestCase): def __init__(self, *args, **kwargs): - self.crypt = keyczar.Crypter.Read(settings.ENCRYPTED_FIELD_KEYS_DIR) + if keyczar_active: + self.crypt = keyczar.Crypter.Read(settings.ENCRYPTED_FIELD_KEYS_DIR) super(EncryptedFieldsTestCase, self).__init__(*args, **kwargs) @@ -26,6 +34,8 @@ def tearDown(self): settings.INSTALLED_APPS = self.old_installed_apps def testCharFieldCreate(self): + if not keyczar_active: + return test_val = "Test Secret" secret = Secret.objects.create(name=test_val) cursor = connection.cursor() @@ -36,12 +46,16 @@ def testCharFieldCreate(self): self.assertEqual(test_val, decrypted_val) def testCharFieldRead(self): + if not keyczar_active: + return test_val = "Test Secret" secret = Secret.objects.create(name=test_val) retrieved_secret = Secret.objects.get(id=secret.id) self.assertEqual(test_val, retrieved_secret.name) def testTextFieldCreate(self): + if not keyczar_active: + return test_val = "Test Secret" secret = Secret.objects.create(text=test_val) cursor = connection.cursor() @@ -52,7 +66,9 @@ def testTextFieldCreate(self): self.assertEqual(test_val, decrypted_val) def testTextFieldRead(self): + if not keyczar_active: + return test_val = "Test Secret" secret = Secret.objects.create(text=test_val) retrieved_secret = Secret.objects.get(id=secret.id) - self.assertEqual(test_val, retrieved_secret.text) \ No newline at end of file + self.assertEqual(test_val, retrieved_secret.text) diff --git a/django_extensions/tests/models.py b/django_extensions/tests/models.py index d159c9fbe..1338f35e5 100644 --- a/django_extensions/tests/models.py +++ b/django_extensions/tests/models.py @@ -1,7 +1,18 @@ from django.db import models -from django_extensions.db.fields.encrypted import EncryptedTextField, EncryptedCharField +try: + from django_extensions.db.fields.encrypted import EncryptedTextField, EncryptedCharField +except ImportError: + + class EncryptedCharField(): + def __init__(self, **kwargs): + pass; + + class EncryptedTextField(): + def __init__(self, **kwargs): + pass; + class Secret(models.Model): name = EncryptedCharField(blank=True, max_length=255) - text = EncryptedTextField(blank=True) \ No newline at end of file + text = EncryptedTextField(blank=True) From be3ee0a06ec350431e66efbcbcead28075056f55 Mon Sep 17 00:00:00 2001 From: Richard Bullington-McGuire Date: Fri, 23 Jul 2010 04:15:56 +0800 Subject: [PATCH 49/91] Remove bogus semicolons, thanks justinlilly --- django_extensions/tests/models.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/django_extensions/tests/models.py b/django_extensions/tests/models.py index 1338f35e5..e80082532 100644 --- a/django_extensions/tests/models.py +++ b/django_extensions/tests/models.py @@ -6,11 +6,11 @@ class EncryptedCharField(): def __init__(self, **kwargs): - pass; + pass class EncryptedTextField(): def __init__(self, **kwargs): - pass; + pass class Secret(models.Model): From d905318ef40bca2d0719ee1d3a5d256e465261f2 Mon Sep 17 00:00:00 2001 From: unknown Date: Sat, 31 Jul 2010 22:45:07 -0400 Subject: [PATCH 50/91] specifies default manager instead of object - issue 21 --- django_extensions/management/commands/dumpscript.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/django_extensions/management/commands/dumpscript.py b/django_extensions/management/commands/dumpscript.py index 703978607..1c3cc0412 100644 --- a/django_extensions/management/commands/dumpscript.py +++ b/django_extensions/management/commands/dumpscript.py @@ -141,7 +141,7 @@ def get_lines(self): """ code = [] - for counter, item in enumerate(self.model.objects.all()): + for counter, item in enumerate(self.model._default_manager.all()): instance = InstanceCode(instance=item, id=counter+1, context=self.context) self.instances.append(instance) if instance.waiting_list: From 16b5cfdc820a2776fef683989159f19965db8cc2 Mon Sep 17 00:00:00 2001 From: Jim Phares Date: Sat, 31 Jul 2010 22:57:57 -0400 Subject: [PATCH 51/91] specifies default manager instead of object - issue 21 --- .../django_extensions/js/jquery.ajaxQueue.js | 230 +++++++++--------- 1 file changed, 115 insertions(+), 115 deletions(-) diff --git a/django_extensions/media/django_extensions/js/jquery.ajaxQueue.js b/django_extensions/media/django_extensions/js/jquery.ajaxQueue.js index bdd2e4f82..ca42082a8 100644 --- a/django_extensions/media/django_extensions/js/jquery.ajaxQueue.js +++ b/django_extensions/media/django_extensions/js/jquery.ajaxQueue.js @@ -1,116 +1,116 @@ -/** - * Ajax Queue Plugin - * - * Homepage: http://jquery.com/plugins/project/ajaxqueue - * Documentation: http://docs.jquery.com/AjaxQueue - */ - -/** - - -
    - - */ -/* - * Queued Ajax requests. - * A new Ajax request won't be started until the previous queued - * request has finished. - */ - -/* - * Synced Ajax requests. - * The Ajax request will happen as soon as you call this method, but - * the callbacks (success/error/complete) won't fire until all previous - * synced requests have been completed. - */ - - -(function($) { - - var ajax = $.ajax; - - var pendingRequests = {}; - - var synced = []; - var syncedData = []; - - $.ajax = function(settings) { - // create settings for compatibility with ajaxSetup - settings = jQuery.extend(settings, jQuery.extend({}, jQuery.ajaxSettings, settings)); - - var port = settings.port; - - switch(settings.mode) { - case "abort": - if ( pendingRequests[port] ) { - pendingRequests[port].abort(); - } - return pendingRequests[port] = ajax.apply(this, arguments); - case "queue": - var _old = settings.complete; - settings.complete = function(){ - if ( _old ) - _old.apply( this, arguments ); - jQuery([ajax]).dequeue("ajax" + port );; - }; - - jQuery([ ajax ]).queue("ajax" + port, function(){ - ajax( settings ); - }); - return; - case "sync": - var pos = synced.length; - - synced[ pos ] = { - error: settings.error, - success: settings.success, - complete: settings.complete, - done: false - }; - - syncedData[ pos ] = { - error: [], - success: [], - complete: [] - }; - - settings.error = function(){ syncedData[ pos ].error = arguments; }; - settings.success = function(){ syncedData[ pos ].success = arguments; }; - settings.complete = function(){ - syncedData[ pos ].complete = arguments; - synced[ pos ].done = true; - - if ( pos == 0 || !synced[ pos-1 ] ) - for ( var i = pos; i < synced.length && synced[i].done; i++ ) { - if ( synced[i].error ) synced[i].error.apply( jQuery, syncedData[i].error ); - if ( synced[i].success ) synced[i].success.apply( jQuery, syncedData[i].success ); - if ( synced[i].complete ) synced[i].complete.apply( jQuery, syncedData[i].complete ); - - synced[i] = null; - syncedData[i] = null; - } - }; - } - return ajax.apply(this, arguments); - }; - +/** + * Ajax Queue Plugin + * + * Homepage: http://jquery.com/plugins/project/ajaxqueue + * Documentation: http://docs.jquery.com/AjaxQueue + */ + +/** + + +
      + + */ +/* + * Queued Ajax requests. + * A new Ajax request won't be started until the previous queued + * request has finished. + */ + +/* + * Synced Ajax requests. + * The Ajax request will happen as soon as you call this method, but + * the callbacks (success/error/complete) won't fire until all previous + * synced requests have been completed. + */ + + +(function($) { + + var ajax = $.ajax; + + var pendingRequests = {}; + + var synced = []; + var syncedData = []; + + $.ajax = function(settings) { + // create settings for compatibility with ajaxSetup + settings = jQuery.extend(settings, jQuery.extend({}, jQuery.ajaxSettings, settings)); + + var port = settings.port; + + switch(settings.mode) { + case "abort": + if ( pendingRequests[port] ) { + pendingRequests[port].abort(); + } + return pendingRequests[port] = ajax.apply(this, arguments); + case "queue": + var _old = settings.complete; + settings.complete = function(){ + if ( _old ) + _old.apply( this, arguments ); + jQuery([ajax]).dequeue("ajax" + port );; + }; + + jQuery([ ajax ]).queue("ajax" + port, function(){ + ajax( settings ); + }); + return; + case "sync": + var pos = synced.length; + + synced[ pos ] = { + error: settings.error, + success: settings.success, + complete: settings.complete, + done: false + }; + + syncedData[ pos ] = { + error: [], + success: [], + complete: [] + }; + + settings.error = function(){ syncedData[ pos ].error = arguments; }; + settings.success = function(){ syncedData[ pos ].success = arguments; }; + settings.complete = function(){ + syncedData[ pos ].complete = arguments; + synced[ pos ].done = true; + + if ( pos == 0 || !synced[ pos-1 ] ) + for ( var i = pos; i < synced.length && synced[i].done; i++ ) { + if ( synced[i].error ) synced[i].error.apply( jQuery, syncedData[i].error ); + if ( synced[i].success ) synced[i].success.apply( jQuery, syncedData[i].success ); + if ( synced[i].complete ) synced[i].complete.apply( jQuery, syncedData[i].complete ); + + synced[i] = null; + syncedData[i] = null; + } + }; + } + return ajax.apply(this, arguments); + }; + })(jQuery); \ No newline at end of file From ee1eb6dc8f1652b43eb1c6d2299108752214a1c3 Mon Sep 17 00:00:00 2001 From: Jim Phares Date: Sun, 1 Aug 2010 10:57:57 +0800 Subject: [PATCH 52/91] specifies default manager instead of object - issue 21 --- .../django_extensions/js/jquery.ajaxQueue.js | 230 +++++++++--------- 1 file changed, 115 insertions(+), 115 deletions(-) diff --git a/django_extensions/media/django_extensions/js/jquery.ajaxQueue.js b/django_extensions/media/django_extensions/js/jquery.ajaxQueue.js index bdd2e4f82..ca42082a8 100644 --- a/django_extensions/media/django_extensions/js/jquery.ajaxQueue.js +++ b/django_extensions/media/django_extensions/js/jquery.ajaxQueue.js @@ -1,116 +1,116 @@ -/** - * Ajax Queue Plugin - * - * Homepage: http://jquery.com/plugins/project/ajaxqueue - * Documentation: http://docs.jquery.com/AjaxQueue - */ - -/** - - -
        - - */ -/* - * Queued Ajax requests. - * A new Ajax request won't be started until the previous queued - * request has finished. - */ - -/* - * Synced Ajax requests. - * The Ajax request will happen as soon as you call this method, but - * the callbacks (success/error/complete) won't fire until all previous - * synced requests have been completed. - */ - - -(function($) { - - var ajax = $.ajax; - - var pendingRequests = {}; - - var synced = []; - var syncedData = []; - - $.ajax = function(settings) { - // create settings for compatibility with ajaxSetup - settings = jQuery.extend(settings, jQuery.extend({}, jQuery.ajaxSettings, settings)); - - var port = settings.port; - - switch(settings.mode) { - case "abort": - if ( pendingRequests[port] ) { - pendingRequests[port].abort(); - } - return pendingRequests[port] = ajax.apply(this, arguments); - case "queue": - var _old = settings.complete; - settings.complete = function(){ - if ( _old ) - _old.apply( this, arguments ); - jQuery([ajax]).dequeue("ajax" + port );; - }; - - jQuery([ ajax ]).queue("ajax" + port, function(){ - ajax( settings ); - }); - return; - case "sync": - var pos = synced.length; - - synced[ pos ] = { - error: settings.error, - success: settings.success, - complete: settings.complete, - done: false - }; - - syncedData[ pos ] = { - error: [], - success: [], - complete: [] - }; - - settings.error = function(){ syncedData[ pos ].error = arguments; }; - settings.success = function(){ syncedData[ pos ].success = arguments; }; - settings.complete = function(){ - syncedData[ pos ].complete = arguments; - synced[ pos ].done = true; - - if ( pos == 0 || !synced[ pos-1 ] ) - for ( var i = pos; i < synced.length && synced[i].done; i++ ) { - if ( synced[i].error ) synced[i].error.apply( jQuery, syncedData[i].error ); - if ( synced[i].success ) synced[i].success.apply( jQuery, syncedData[i].success ); - if ( synced[i].complete ) synced[i].complete.apply( jQuery, syncedData[i].complete ); - - synced[i] = null; - syncedData[i] = null; - } - }; - } - return ajax.apply(this, arguments); - }; - +/** + * Ajax Queue Plugin + * + * Homepage: http://jquery.com/plugins/project/ajaxqueue + * Documentation: http://docs.jquery.com/AjaxQueue + */ + +/** + + +
          + + */ +/* + * Queued Ajax requests. + * A new Ajax request won't be started until the previous queued + * request has finished. + */ + +/* + * Synced Ajax requests. + * The Ajax request will happen as soon as you call this method, but + * the callbacks (success/error/complete) won't fire until all previous + * synced requests have been completed. + */ + + +(function($) { + + var ajax = $.ajax; + + var pendingRequests = {}; + + var synced = []; + var syncedData = []; + + $.ajax = function(settings) { + // create settings for compatibility with ajaxSetup + settings = jQuery.extend(settings, jQuery.extend({}, jQuery.ajaxSettings, settings)); + + var port = settings.port; + + switch(settings.mode) { + case "abort": + if ( pendingRequests[port] ) { + pendingRequests[port].abort(); + } + return pendingRequests[port] = ajax.apply(this, arguments); + case "queue": + var _old = settings.complete; + settings.complete = function(){ + if ( _old ) + _old.apply( this, arguments ); + jQuery([ajax]).dequeue("ajax" + port );; + }; + + jQuery([ ajax ]).queue("ajax" + port, function(){ + ajax( settings ); + }); + return; + case "sync": + var pos = synced.length; + + synced[ pos ] = { + error: settings.error, + success: settings.success, + complete: settings.complete, + done: false + }; + + syncedData[ pos ] = { + error: [], + success: [], + complete: [] + }; + + settings.error = function(){ syncedData[ pos ].error = arguments; }; + settings.success = function(){ syncedData[ pos ].success = arguments; }; + settings.complete = function(){ + syncedData[ pos ].complete = arguments; + synced[ pos ].done = true; + + if ( pos == 0 || !synced[ pos-1 ] ) + for ( var i = pos; i < synced.length && synced[i].done; i++ ) { + if ( synced[i].error ) synced[i].error.apply( jQuery, syncedData[i].error ); + if ( synced[i].success ) synced[i].success.apply( jQuery, syncedData[i].success ); + if ( synced[i].complete ) synced[i].complete.apply( jQuery, syncedData[i].complete ); + + synced[i] = null; + syncedData[i] = null; + } + }; + } + return ajax.apply(this, arguments); + }; + })(jQuery); \ No newline at end of file From 82253161f5a1228f3501394e689672ea660d664b Mon Sep 17 00:00:00 2001 From: Alejandro Varas Date: Thu, 23 Sep 2010 03:39:44 +0000 Subject: [PATCH 53/91] l10n: Updated Spanish (Castilian) (es) translation to 100% New status: 14 messages complete with 0 fuzzies and 0 untranslated. Transmitted-via: Transifex (www.transifex.net). --- django_extensions/locale/es/LC_MESSAGES/django.po | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/django_extensions/locale/es/LC_MESSAGES/django.po b/django_extensions/locale/es/LC_MESSAGES/django.po index 963abadcc..a2e9349f9 100644 --- a/django_extensions/locale/es/LC_MESSAGES/django.po +++ b/django_extensions/locale/es/LC_MESSAGES/django.po @@ -20,9 +20,9 @@ msgid "and" msgstr "y" #: admin/__init__.py:123 -#, python-format, fuzzy +#, python-format msgid "Use the left field to do %(model_name)s lookups in the fields %(field_list)s." -msgstr "Utilice el campo de la izquierda para hacer búsquedas de de %(model_name)s en los campos %(field_list)s ." +msgstr "Utilice el campo de la izquierda para hacer búsquedas en los campos %(field_list)s de %(model_name)s." #: db/models.py:15 msgid "created" @@ -61,9 +61,8 @@ msgid "keep empty for an immediate activation" msgstr "mantener vacío para una activación inmediata" #: db/models.py:58 -#, fuzzy msgid "keep empty for indefinite activation" -msgstr "vacío para mantener indefinidamente la activación" +msgstr "deje vacío para mantener la activación indefinida" #: management/commands/show_urls.py:33 #, python-format From d5b33b3b946ca6c3c3c4bea908b83f75bd2a97d1 Mon Sep 17 00:00:00 2001 From: Mark van Lent Date: Thu, 4 Nov 2010 16:29:51 +0800 Subject: [PATCH 54/91] Fix for issue 6: graph_models m2m relations don't appear. Solution is tested with Django 1.1.1 and 1.2.3. --- django_extensions/management/modelviz.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/django_extensions/management/modelviz.py b/django_extensions/management/modelviz.py index bd8ba4a7a..248703093 100644 --- a/django_extensions/management/modelviz.py +++ b/django_extensions/management/modelviz.py @@ -249,8 +249,10 @@ def add_relation(field, extras=""): if appmodel._meta.many_to_many: for field in appmodel._meta.many_to_many: - if isinstance(field, ManyToManyField) and getattr(field, 'creates_table', False): - add_relation(field, '[arrowhead=normal arrowtail=normal]') + if isinstance(field, ManyToManyField): + if (getattr(field, 'creates_table', False) or # django 1.1. + (field.rel.through and field.rel.through._meta.auto_created)): # django 1.2 + add_relation(field, '[arrowhead=normal arrowtail=normal]') elif isinstance(field, GenericRelation): add_relation(field, mark_safe('[style="dotted"] [arrowhead=normal arrowtail=normal]')) graph['models'].append(model) From 541b564281fe7e4108c524ea2b141766d8c2702c Mon Sep 17 00:00:00 2001 From: Chris Adams Date: Fri, 12 Mar 2010 22:57:03 +0800 Subject: [PATCH 55/91] Added an option to shell_plus to print SQL queries shell_plus with --print-sql will print SQL queries as they're issued --- .../management/commands/shell_plus.py | 34 ++++++++++++++++--- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/django_extensions/management/commands/shell_plus.py b/django_extensions/management/commands/shell_plus.py index f3ca737ec..25100e8f8 100644 --- a/django_extensions/management/commands/shell_plus.py +++ b/django_extensions/management/commands/shell_plus.py @@ -10,6 +10,8 @@ class Command(NoArgsCommand): help='Tells Django to use plain Python, not BPython nor IPython.'), make_option('--no-pythonrc', action='store_true', dest='no_pythonrc', help='Tells Django to use plain Python, not IPython.'), + make_option('--print-sql', action='store_true', default=False, + help="Print SQL queries as they're executed"), ) help = "Like the 'shell' command but autoloads the models of all installed Django apps." @@ -26,6 +28,28 @@ def handle_noargs(self, **options): use_plain = options.get('plain', False) use_pythonrc = not options.get('no_pythonrc', True) + if options.get("print_sql", False): + # Code from http://gist.github.com/118990 + from django.db.backends import util + try: + import sqlparse + except ImportError: + sqlparse = None + + class PrintQueryWrapper(util.CursorDebugWrapper): + def execute(self, sql, params=()): + try: + return self.cursor.execute(sql, params) + finally: + raw_sql = self.db.ops.last_executed_query(self.cursor, sql, params) + if sqlparse: + print sqlparse.format(raw_sql, reindent=True) + else: + print raw_sql + print + + util.CursorDebugWrapper = PrintQueryWrapper + # Set up a dictionary to serve as the environment for the shell, so # that tab completion works on objects that are imported at runtime. # See ticket 5082. @@ -80,11 +104,11 @@ def handle_noargs(self, **options): # We want to honor both $PYTHONSTARTUP and .pythonrc.py, so follow system # conventions and get $PYTHONSTARTUP first then import user. if use_pythonrc: - pythonrc = os.environ.get("PYTHONSTARTUP") - if pythonrc and os.path.isfile(pythonrc): - try: - execfile(pythonrc) - except NameError: + pythonrc = os.environ.get("PYTHONSTARTUP") + if pythonrc and os.path.isfile(pythonrc): + try: + execfile(pythonrc) + except NameError: pass # This will import .pythonrc.py as a side-effect import user From 02a8905a9f5f679cf2b3a7d15dc6727b35e50cba Mon Sep 17 00:00:00 2001 From: Miguel Araujo Perez Date: Mon, 18 Oct 2010 18:24:27 +0800 Subject: [PATCH 56/91] Enhacement: Adding support for Postgis Spatial Backend to reset_db --- django_extensions/management/commands/reset_db.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/django_extensions/management/commands/reset_db.py b/django_extensions/management/commands/reset_db.py index eb542aade..f6010cfe0 100644 --- a/django_extensions/management/commands/reset_db.py +++ b/django_extensions/management/commands/reset_db.py @@ -8,6 +8,7 @@ from django.db import connection import django import logging +import re from optparse import make_option class Command(BaseCommand): @@ -82,6 +83,7 @@ def handle(self, *args, **options): print "Reset cancelled." return + postgis = re.compile('.*postgis') engine = settings.DATABASE_ENGINE user = options.get('user', settings.DATABASE_USER) if user==None: @@ -118,10 +120,11 @@ def handle(self, *args, **options): connection.query(drop_query) logging.info('Executing... "' + create_query + '"') connection.query(create_query) - elif engine == 'postgresql' or engine == 'postgresql_psycopg2': + + elif engine == 'postgresql' or engine == 'postgresql_psycopg2' or postgis.match(engine): if engine == 'postgresql': import psycopg as Database - elif engine == 'postgresql_psycopg2': + elif engine == 'postgresql_psycopg2' or postgis.match(engine): import psycopg2 as Database if settings.DATABASE_NAME == '': @@ -154,6 +157,9 @@ def handle(self, *args, **options): # Encoding should be SQL_ASCII (7-bit postgres default) or prefered UTF8 (8-bit) create_query = """CREATE DATABASE %s WITH OWNER = %s ENCODING = 'UTF8' """ % (settings.DATABASE_NAME, settings.DATABASE_USER) + + if postgis.match(engine): + create_query+= 'TEMPLATE = template_postgis ' if settings.DEFAULT_TABLESPACE: create_query+= 'TABLESPACE = %s;' % (settings.DEFAULT_TABLESPACE) else: From fb1051f82a76aece8185eff7bad21b186bad72db Mon Sep 17 00:00:00 2001 From: Viliam Segeda Date: Sat, 7 Aug 2010 00:25:26 +0800 Subject: [PATCH 57/91] fix #23, sqlite3 doesn't preserve precision for decimal fields --- django_extensions/management/commands/sqldiff.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/django_extensions/management/commands/sqldiff.py b/django_extensions/management/commands/sqldiff.py index 95679f8a0..f8bbdf790 100644 --- a/django_extensions/management/commands/sqldiff.py +++ b/django_extensions/management/commands/sqldiff.py @@ -193,7 +193,7 @@ def get_field_db_type(self, description, field=None, table_name=None): if reverse_type == "DecimalField": kwargs['max_digits'] = description[4] - kwargs['decimal_places'] = abs(description[5]) + kwargs['decimal_places'] = description[5] and abs(description[5]) or description[5] if description[6]: kwargs['blank'] = True From 85b26b3115582a8cc6198a0c7651e49d4a9b3549 Mon Sep 17 00:00:00 2001 From: Viliam Segeda Date: Sat, 7 Aug 2010 00:38:07 +0800 Subject: [PATCH 58/91] fix sqldiff exception for not indexed unique fields in sqlite3 db --- django_extensions/management/commands/sqldiff.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/django_extensions/management/commands/sqldiff.py b/django_extensions/management/commands/sqldiff.py index f8bbdf790..6bcb10d03 100644 --- a/django_extensions/management/commands/sqldiff.py +++ b/django_extensions/management/commands/sqldiff.py @@ -440,7 +440,7 @@ def find_unique_missing_in_db(self, meta, table_indexes, table_name): attname = field.db_column or field.attname if attname in table_indexes and table_indexes[attname]['unique']: continue - if table_indexes[attname]['primary_key']: + if attname in table_indexes and table_indexes[attname]['primary_key']: continue self.add_difference('unique-missing-in-db', table_name, attname) From 597456ad2723b515a7130356a57bf1a85d1ca752 Mon Sep 17 00:00:00 2001 From: Ivan Fedorov Date: Mon, 5 Apr 2010 23:50:58 +0800 Subject: [PATCH 59/91] Add South support to JSONField --- django_extensions/db/fields/json.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/django_extensions/db/fields/json.py b/django_extensions/db/fields/json.py index bdc8e4b3b..038aa4602 100644 --- a/django_extensions/db/fields/json.py +++ b/django_extensions/db/fields/json.py @@ -75,3 +75,12 @@ def get_db_prep_save(self, value): return super(JSONField, self).get_db_prep_save("") else: return super(JSONField, self).get_db_prep_save(dumps(value)) + + def south_field_triple(self): + "Returns a suitable description of this field for South." + # We'll just introspect the _actual_ field. + from south.modelsinspector import introspector + field_class = "django.db.models.fields.TextField" + args, kwargs = introspector(self) + # That's our definition! + return (field_class, args, kwargs) From c7790edf99f05988e83474738cb1ac649981787e Mon Sep 17 00:00:00 2001 From: Christian Oudard Date: Fri, 12 Nov 2010 04:36:44 +0800 Subject: [PATCH 60/91] Made set_fake_passwords use an update call instead of a loop. --- .../management/commands/set_fake_passwords.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/django_extensions/management/commands/set_fake_passwords.py b/django_extensions/management/commands/set_fake_passwords.py index 2a65ef4d4..1f6964bdb 100644 --- a/django_extensions/management/commands/set_fake_passwords.py +++ b/django_extensions/management/commands/set_fake_passwords.py @@ -35,10 +35,9 @@ def handle_noargs(self, **options): raise CommandError('You must enter a valid password') else: passwd = options.get('default_passwd', DEFAULT_FAKE_PASSWORD) - - users = User.objects.all() - for user in users: - user.set_password(passwd) - user.save() - - print 'Reset %d passwords' % users.count() + + user = User() + user.set_password(passwd) + count = User.objects.all().update(password=user.password) + + print 'Reset %d passwords' % count From 64f22a0bca55826cc73d69a9ea7acbf3812d16ee Mon Sep 17 00:00:00 2001 From: Petr Filipsky Date: Sun, 21 Nov 2010 06:51:16 +0800 Subject: [PATCH 61/91] Added --language option to graph_model command in order to support the localization of generated graphs --- .../management/commands/graph_models.py | 2 ++ django_extensions/management/modelviz.py | 16 ++++++++++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/django_extensions/management/commands/graph_models.py b/django_extensions/management/commands/graph_models.py index 9acb98082..eff388bbf 100644 --- a/django_extensions/management/commands/graph_models.py +++ b/django_extensions/management/commands/graph_models.py @@ -16,6 +16,8 @@ class Command(BaseCommand): help='Layout to be used by GraphViz for visualization. Layouts: circo dot fdp neato nop nop1 nop2 twopi'), make_option('--verbose-names', '-n', action='store_true', dest='verbose_names', help='Use verbose_name of models and fields'), + make_option('--language', '-L', action='store', dest='language', + help='Specify language used for verrbose_name localization'), ) help = ("Creates a GraphViz dot file for the specified app names. You can pass multiple app names and they will all be combined into a single model. Output is usually directed to a dot file.") diff --git a/django_extensions/management/modelviz.py b/django_extensions/management/modelviz.py index 248703093..2731d823d 100644 --- a/django_extensions/management/modelviz.py +++ b/django_extensions/management/modelviz.py @@ -6,7 +6,7 @@ place this script in the same directory of the project and call the script like this: -$ python modelviz.py [-h] [-a] [-d] [-g] [-i ] ... > .dot +$ python modelviz.py [-h] [-a] [-d] [-g] [-n] [-L ] [-i ] ... > .dot $ dot .dot -Tpng -o .png options: @@ -27,6 +27,9 @@ -n, --verbose_names use verbose_name for field and models. + + -L, --language + specify language used for verrbose_name localization """ __version__ = "0.9" __svnid__ = "$Id$" @@ -53,6 +56,7 @@ else: setup_environ(settings) +from django.utils.translation import activate as activate_language from django.utils.safestring import mark_safe from django.template import Template, Context from django.db import models @@ -150,6 +154,9 @@ def generate_dot(app_labels, **kwargs): all_applications = kwargs.get('all_applications', False) use_subgraph = kwargs.get('group_models', False) verbose_names = kwargs.get('verbose_names', False) + language = kwargs.get('language', None) + if language is not None: + activate_language( language ) dot = head_template @@ -281,8 +288,8 @@ def add_relation(field, extras=""): def main(): try: - opts, args = getopt.getopt(sys.argv[1:], "hadgi:", - ["help", "all_applications", "disable_fields", "group_models", "include_models=", "verbose_names"]) + opts, args = getopt.getopt(sys.argv[1:], "hadgi:L:", + ["help", "all_applications", "disable_fields", "group_models", "include_models=", "verbose_names", "language="]) except getopt.GetoptError, error: print __doc__ sys.exit(error) @@ -302,7 +309,8 @@ def main(): kwargs['include_models'] = arg.split(',') if opt in ("-n", "--verbose-names"): kwargs['verbose_names'] = True - + if opt in ("-L", "--language"): + kwargs['language'] = arg if not args and not kwargs.get('all_applications', False): print __doc__ From 67bbb87dc7f826766f7dd24151dfc04adf6eefa1 Mon Sep 17 00:00:00 2001 From: trbs Date: Tue, 23 Nov 2010 00:34:45 +0100 Subject: [PATCH 62/91] removed space in usage example --- django_extensions/management/modelviz.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/django_extensions/management/modelviz.py b/django_extensions/management/modelviz.py index 2731d823d..ab522ec74 100644 --- a/django_extensions/management/modelviz.py +++ b/django_extensions/management/modelviz.py @@ -6,7 +6,7 @@ place this script in the same directory of the project and call the script like this: -$ python modelviz.py [-h] [-a] [-d] [-g] [-n] [-L ] [-i ] ... > .dot +$ python modelviz.py [-h] [-a] [-d] [-g] [-n] [-L ] [-i ] ... > .dot $ dot .dot -Tpng -o .png options: From 70c28a60df298cb2029908722a1a7d69ceac6be2 Mon Sep 17 00:00:00 2001 From: Fernando Silva Date: Tue, 16 Nov 2010 08:15:41 +0800 Subject: [PATCH 63/91] Portuguese Language Suport --- .../locale/pt/LC_MESSAGES/django.po | 75 +++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 django_extensions/locale/pt/LC_MESSAGES/django.po diff --git a/django_extensions/locale/pt/LC_MESSAGES/django.po b/django_extensions/locale/pt/LC_MESSAGES/django.po new file mode 100644 index 000000000..ea38769c4 --- /dev/null +++ b/django_extensions/locale/pt/LC_MESSAGES/django.po @@ -0,0 +1,75 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-02-01 18:07+0200\n" +"PO-Revision-Date: 2010-11-15 22:06-0300\n" +"Last-Translator: Fernando Silva \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: admin/__init__.py:121 +msgid "and" +msgstr "e" + +#: admin/__init__.py:123 +#, python-format +msgid "Use the left field to do %(model_name)s lookups in the fields %(field_list)s." +msgstr "Use o campo esquerdo para fazer com que o modelo %(model_name) procure nos campos %(field_list)." + +#: db/models.py:15 +msgid "created" +msgstr "criado" + +#: db/models.py:16 +msgid "modified" +msgstr "modificado" + +#: db/models.py:26 +msgid "title" +msgstr "título" + +#: db/models.py:27 +msgid "slug" +msgstr "slug" + +#: db/models.py:28 +msgid "description" +msgstr "descrição" + +#: db/models.py:50 +msgid "Inactive" +msgstr "Inativo" + +#: db/models.py:51 +msgid "Active" +msgstr "Ativo" + +#: db/models.py:53 +msgid "status" +msgstr "estado" + +#: db/models.py:56 +msgid "keep empty for an immediate activation" +msgstr "deixe vazio para ativação imediata" + +#: db/models.py:58 +msgid "keep empty for indefinite activation" +msgstr "deixe vazio para ativação por tempo indeterminado" + +#: management/commands/show_urls.py:33 +#, python-format +msgid "%s does not appear to be a urlpattern object" +msgstr "%s não parece ser um objeto urlpattern" + +#: templates/django_extensions/widgets/foreignkey_searchinput.html:4 +msgid "Lookup" +msgstr "Busca" + From b96cec8e9aff5fee3da6988fc6d17bcb8ca8e0e0 Mon Sep 17 00:00:00 2001 From: hbussell Date: Sun, 14 Feb 2010 14:17:01 +0800 Subject: [PATCH 64/91] add find_template command to resolve template paths --- .../management/commands/find_template.py | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 django_extensions/management/commands/find_template.py diff --git a/django_extensions/management/commands/find_template.py b/django_extensions/management/commands/find_template.py new file mode 100644 index 000000000..e03994f2f --- /dev/null +++ b/django_extensions/management/commands/find_template.py @@ -0,0 +1,24 @@ +from django.core.management.base import LabelCommand +from django.template.loader import find_template +from django.template import TemplateDoesNotExist +import sys + +def get_template_path(path): + try: + template = find_template(path) + return template[1].name + except TemplateDoesNotExist: + return None + +class Command(LabelCommand): + help = "Finds the location of the given template by resolving its path" + args = "[template_path]" + label = 'template path' + + def handle_label(self, template_path, **options): + path = get_template_path(template_path) + if path is None: + sys.stderr.write("No template found\n") + sys.exit(1) + else: + print path From e366b762430e2e9d92862b0d392c9e6e0d178bd3 Mon Sep 17 00:00:00 2001 From: aneil Date: Fri, 8 Oct 2010 10:17:27 -0700 Subject: [PATCH 65/91] sync_media_s3 now looks at settings.SYNC_MEDIA_S3_PREFIX as a default argument for --prefix option Thanks to amallavarapu for the patch. --- django_extensions/management/commands/sync_media_s3.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/django_extensions/management/commands/sync_media_s3.py b/django_extensions/management/commands/sync_media_s3.py index 98999d979..e007b4017 100644 --- a/django_extensions/management/commands/sync_media_s3.py +++ b/django_extensions/management/commands/sync_media_s3.py @@ -69,7 +69,8 @@ class Command(BaseCommand): option_list = BaseCommand.option_list + ( optparse.make_option('-p', '--prefix', - dest='prefix', default='', + dest='prefix', + default=getattr(settings, 'SYNC_MEDIA_S3_PREFIX', ''), help="The prefix to prepend to the path on S3."), optparse.make_option('-d', '--dir', dest='dir', default=settings.MEDIA_ROOT, From a2c7f998f95ee13a67254325f48c7ff6454a926a Mon Sep 17 00:00:00 2001 From: Dan Fairs Date: Wed, 14 Oct 2009 00:29:52 +0800 Subject: [PATCH 66/91] Add a --script-args option to the runscript management command, which allows arbitrary positional string arguments to be passed to the scripts being run. The same arguments are passed to all scripts. This should be backwards-compatible with existing, no-argument scripts. --- .../management/commands/runscript.py | 33 ++++++++++++++++--- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/django_extensions/management/commands/runscript.py b/django_extensions/management/commands/runscript.py index e5978563b..a79f4804c 100644 --- a/django_extensions/management/commands/runscript.py +++ b/django_extensions/management/commands/runscript.py @@ -9,6 +9,22 @@ except NameError: from sets import Set as set # Python 2.3 fallback +def vararg_callback(option, opt_str, opt_value, parser): + parser.rargs.insert(0, opt_value) + value = [] + for arg in parser.rargs: + # stop on --foo like options + if arg[:2] == "--" and len(arg) > 2: + break + # stop on -a like options + if arg[:1] == "-": + break + value.append(arg) + + del parser.rargs[:len(value)] + setattr(parser.values, option.dest, value) + + class Command(BaseCommand): option_list = BaseCommand.option_list + ( make_option('--fixtures', action='store_true', dest='infixtures', default=False, @@ -19,6 +35,9 @@ class Command(BaseCommand): help='Run silently, do not show errors and tracebacks'), make_option('--no-traceback', action='store_true', dest='no_traceback', default=False, help='Do not show tracebacks'), + make_option('--script-args', action='callback', callback=vararg_callback, type='string', + help='Space-separated argument list to be passed to the scripts. Note that the ' + 'same arguments will be passed to all named scripts.'), ) help = 'Runs a script in django context.' args = "script [script ...]" @@ -57,10 +76,9 @@ def handle(self, *scripts, **options): print ERROR("Script name required.") return - def run_script(mod): - # TODO: add arguments to run + def run_script(mod, *script_args): try: - mod.run() + mod.run(*script_args) except Exception, e: if silent: return @@ -114,7 +132,11 @@ def find_modules_for_script(script): modules.append(mod) return modules - + + if options.get('script_args'): + script_args = options['script_args'] + else: + script_args = [] for script in scripts: modules = find_modules_for_script(script) if not modules: @@ -123,7 +145,8 @@ def find_modules_for_script(script): for mod in modules: if verbosity>1: print NOTICE2("Running script '%s' ..." % mod.__name__) - run_script(mod) + run_script(mod, *script_args) + # Backwards compatibility for Django r9110 if not [opt for opt in Command.option_list if opt.dest=='verbosity']: From fce4eb65adfe182845cbeb3355b7fd6943407ddb Mon Sep 17 00:00:00 2001 From: Joern Hees Date: Wed, 3 Nov 2010 05:33:00 +0800 Subject: [PATCH 67/91] Fixed a bug, where only one level of abstract attributes were included in children. --- django_extensions/management/modelviz.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/django_extensions/management/modelviz.py b/django_extensions/management/modelviz.py index ab522ec74..1abb339e0 100644 --- a/django_extensions/management/modelviz.py +++ b/django_extensions/management/modelviz.py @@ -182,10 +182,17 @@ def generate_dot(app_labels, **kwargs): for appmodel in get_models(app): abstracts = [e.__name__ for e in appmodel.__bases__ if hasattr(e, '_meta') and e._meta.abstract] - abstract_fields = [] - for e in appmodel.__bases__: - if hasattr(e, '_meta') and e._meta.abstract: - abstract_fields.extend(e._meta.fields) + + # collect all attribs of abstract superclasses + def getBasesAbstractFields(c): + _abstract_fields = [] + for e in c.__bases__: + if hasattr(e, '_meta') and e._meta.abstract: + _abstract_fields.extend(e._meta.fields) + _abstract_fields.extend(getBasesAbstractFields(e)) + return _abstract_fields + abstract_fields = getBasesAbstractFields(appmodel) + model = { 'app_name': appmodel.__module__.replace(".", "_"), 'name': appmodel.__name__, From 117d35d6826ec33ed24d552b5d170df6af7e0627 Mon Sep 17 00:00:00 2001 From: Zbigniew Siciarz Date: Wed, 24 Nov 2010 21:30:16 +0800 Subject: [PATCH 68/91] Polish translation. --- .../locale/pl/LC_MESSAGES/django.po | 77 +++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 django_extensions/locale/pl/LC_MESSAGES/django.po diff --git a/django_extensions/locale/pl/LC_MESSAGES/django.po b/django_extensions/locale/pl/LC_MESSAGES/django.po new file mode 100644 index 000000000..1699986db --- /dev/null +++ b/django_extensions/locale/pl/LC_MESSAGES/django.po @@ -0,0 +1,77 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-11-24 14:20+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Zbigniew Siciarz \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: .\admin\__init__.py:121 +msgid "and" +msgstr "i" + +#: .\admin\__init__.py:123 +#, python-format +msgid "" +"Use the left field to do %(model_name)s lookups in the fields %(field_list)s." +msgstr "Użyj pola po lewej, by wyszukać pola %(field_list)s w modelu %(model_name)s." + +#: .\db\models.py:15 +msgid "created" +msgstr "utworzony" + +#: .\db\models.py:16 +msgid "modified" +msgstr "zmodyfikowany" + +#: .\db\models.py:26 +msgid "title" +msgstr "tytuł" + +#: .\db\models.py:27 +msgid "slug" +msgstr "slug" + +#: .\db\models.py:28 +msgid "description" +msgstr "opis" + +#: .\db\models.py:50 +msgid "Inactive" +msgstr "Nieaktywny" + +#: .\db\models.py:51 +msgid "Active" +msgstr "Aktywny" + +#: .\db\models.py:53 +msgid "status" +msgstr "stan" + +#: .\db\models.py:56 +msgid "keep empty for an immediate activation" +msgstr "pozostaw puste, by aktywować od razu" + +#: .\db\models.py:58 +msgid "keep empty for indefinite activation" +msgstr "pozostaw puste, by nie definiować daty deaktywacji" + +#: .\management\commands\show_urls.py:33 +#, python-format +msgid "%s does not appear to be a urlpattern object" +msgstr "%s nie jest obiektem typu urlpattern" + +#: .\templates\django_extensions\widgets\foreignkey_searchinput.html.py:4 +msgid "Lookup" +msgstr "Szukaj" + From 22b5af8679f2ea8da57778a48ab70b33d9efefa4 Mon Sep 17 00:00:00 2001 From: trbs Date: Thu, 25 Nov 2010 14:38:49 +0100 Subject: [PATCH 69/91] Ticket 50: Added proposed fix for UUIDField to allow it to be fixed as primary_key --- django_extensions/db/fields/__init__.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/django_extensions/db/fields/__init__.py b/django_extensions/db/fields/__init__.py index 3cdb32bc0..748b48997 100644 --- a/django_extensions/db/fields/__init__.py +++ b/django_extensions/db/fields/__init__.py @@ -211,6 +211,15 @@ def __init__(self, verbose_name=None, name=None, auto=True, version=1, node=None def get_internal_type(self): return CharField.__name__ + def contribute_to_class(self, cls, name): + if self.primary_key: + assert not cls._meta.has_auto_field, "A model can't have more than one AutoField: %s %s %s; have %s" % (self,cls,name,cls._meta.auto_field) + super(UUIDField, self).contribute_to_class(cls, name) + cls._meta.has_auto_field = True + cls._meta.auto_field = self + else: + super(UUIDField, self).contribute_to_class(cls, name) + def create_uuid(self): if not self.version or self.version==4: return uuid.uuid4() @@ -244,4 +253,4 @@ def south_field_triple(self): field_class = "django.db.models.fields.CharField" args, kwargs = introspector(self) # That's our definition! - return (field_class, args, kwargs) \ No newline at end of file + return (field_class, args, kwargs) From 7896310ab42c7fa7729174e16d39993d5db8afc4 Mon Sep 17 00:00:00 2001 From: trbs Date: Sun, 12 Dec 2010 00:01:49 +0100 Subject: [PATCH 70/91] Split doctests for utils into seperated parts for truncate_letters and uuid tests --- django_extensions/tests/__init__.py | 6 ++++-- django_extensions/tests/utils.py | 4 +++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/django_extensions/tests/__init__.py b/django_extensions/tests/__init__.py index 10ada9dfa..7f1eb85f9 100644 --- a/django_extensions/tests/__init__.py +++ b/django_extensions/tests/__init__.py @@ -1,5 +1,6 @@ from django.db import models -from django_extensions.tests.utils import UTILS_TESTS +from django_extensions.tests.utils import UTILS_TRUNCATE_LETTERS_TESTS +from django_extensions.tests.utils import UTILS_UUID_TESTS try: from django_extensions.tests.encrypted_fields import EncryptedFieldsTestCase from django_extensions.tests.models import Secret @@ -7,5 +8,6 @@ pass __test__ = { - 'UTILS_TESTS': UTILS_TESTS, + 'UTILS_TRUNCATE_LETTERS_TESTS': UTILS_TRUNCATE_LETTERS_TESTS, + 'UTILS_UUID_TESTS': UTILS_UUID_TESTS, } diff --git a/django_extensions/tests/utils.py b/django_extensions/tests/utils.py index 1b9fd36c8..738aa0020 100644 --- a/django_extensions/tests/utils.py +++ b/django_extensions/tests/utils.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- -UTILS_TESTS = """ +UTILS_TRUNCATE_LETTERS_TESTS = """ >>> from django_extensions.utils.text import truncate_letters >>> truncate_letters("hello tests", 100) u'hello tests' @@ -21,7 +21,9 @@ >>> truncate_letters("峠 (とうげ tōge - mountain pass)", 10) u'\u5ce0 (\u3068\u3046\u3052 t\u014dg...' +""" +UTILS_UUID_TESTS = """ >>> from django_extensions.utils import uuid # make a UUID using an MD5 hash of a namespace UUID and a name From 4723cdd043d055946bea1171283d5ce0bc5cfc4a Mon Sep 17 00:00:00 2001 From: trbs Date: Sun, 12 Dec 2010 00:29:46 +0100 Subject: [PATCH 71/91] added README file this should show up nicely in github :) --- README.rst | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 README.rst diff --git a/README.rst b/README.rst new file mode 100644 index 000000000..19f133318 --- /dev/null +++ b/README.rst @@ -0,0 +1,30 @@ +=================== + Django Extensions +=================== + +Django Extensions is a collection of custom extensions for the Django Framework. + +Getting it +========== + +You can get Django Extentions by using pip or easy_install:: + + $ pip install django-extensions + or + $ easy_install django-extensions + +If you want to install it from source, grab the git repository from github and run setup.py:: + + $ git clone git://github.com/django-extensions/django-extensions.git + $ cd django-extensions + $ python setup.py install + +Documentation +============= + +You can view documentation online at:: + http://packages.python.org/django-extensions/ + +Or you can look at the docs/ directory in the repository. + + From 508f8f3e8fa9c1086eb648c6860fae441265f552 Mon Sep 17 00:00:00 2001 From: trbs Date: Sun, 12 Dec 2010 00:31:00 +0100 Subject: [PATCH 72/91] preparing for release, bumped version number to 0.6 --- django_extensions/__init__.py | 2 +- docs/conf.py | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/django_extensions/__init__.py b/django_extensions/__init__.py index 7e509ffcc..16f78ae43 100644 --- a/django_extensions/__init__.py +++ b/django_extensions/__init__.py @@ -1,5 +1,5 @@ -VERSION = (0, 5,) +VERSION = (0, 6,) # Dynamically calculate the version based on VERSION tuple if len(VERSION)>2 and VERSION[2] is not None: diff --git a/docs/conf.py b/docs/conf.py index 2e626029c..246850343 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -38,16 +38,16 @@ # General information about the project. project = u'django-extensions' -copyright = u'Copyright (C) 2008, 2009, 2010 Michael Trier and contributors' +copyright = u'Copyright (C) 2008, 2009, 2010, 2011 Michael Trier and contributors' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # # The short X.Y version. -version = '0.5' +version = '0.6' # The full version, including alpha/beta/rc tags. -release = '0.5' +release = '0.6' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. From be72d51f628214f2a43ec8bb3fc85d40b38a29ff Mon Sep 17 00:00:00 2001 From: trbs Date: Sun, 12 Dec 2010 01:02:28 +0100 Subject: [PATCH 73/91] Added basic README text to documentation index --- docs/index.rst | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/docs/index.rst b/docs/index.rst index a326b1385..20c84c037 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -6,7 +6,28 @@ Welcome to django-extensions's documentation! ============================================= -Contents: +Django Extensions is a collection of custom extensions for the Django Framework. + +These include management commands, additional database field, admin extensions and +much more. + +Getting it +========== + +You can get Django Extensions by using pip or easy_install:: + + $ pip install django-extensions + or + $ easy_install django-extensions + +If you want to install it from source, grab the git repository and run setup.py:: + + $ git clone git://github.com/django-extensions/django-extensions.git + $ cd django-extensions + $ python setup.py install + +Contents +======== .. toctree:: :maxdepth: 3 From 96b7cdd71370d41e98b660e3adf81bf727a09861 Mon Sep 17 00:00:00 2001 From: trbs Date: Sun, 12 Dec 2010 01:19:29 +0100 Subject: [PATCH 74/91] changed url to github --- setup.py | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/setup.py b/setup.py index 93b408315..d6a61b917 100644 --- a/setup.py +++ b/setup.py @@ -71,24 +71,27 @@ def fullsplit(path, result=None): description = "Extensions for Django", long_description = """django-extensions bundles several useful additions for Django projects. See the project page for more information: - http://code.google.com/p/django-command-extensions/""", + http://github.com/django-extensions/django-extensions""", author = 'Michael Trier', author_email = 'mtrier@gmail.com', maintainer = 'Bas van Oostveen', maintainer_email = 'v.oostveen@gmail.com', - url = 'http://code.google.com/p/django-command-extensions/', + url = 'http://github.com/django-extensions/django-extensions', license = 'New BSD License', platforms = ['any'], packages = packages, cmdclass = cmdclasses, data_files = data_files, - classifiers = ['Development Status :: 4 - Beta', - 'Environment :: Web Environment', - 'Framework :: Django', - 'Intended Audience :: Developers', - 'License :: OSI Approved :: BSD License', - 'Operating System :: OS Independent', - 'Programming Language :: Python', - 'Topic :: Utilities'], + classifiers = [ + 'Development Status :: 4 - Beta', + 'Development Status :: 5 - Production/Stable', + 'Environment :: Web Environment', + 'Framework :: Django', + 'Intended Audience :: Developers', + 'License :: OSI Approved :: BSD License', + 'Operating System :: OS Independent', + 'Programming Language :: Python', + 'Topic :: Utilities' + ], ) From 29b2532c4bc2ded7e7263bee623c8e46955fb6d3 Mon Sep 17 00:00:00 2001 From: trbs Date: Sun, 12 Dec 2010 01:51:15 +0100 Subject: [PATCH 75/91] added information about Eric Holscher's screencast to the documentation --- README.rst | 10 +++++++++- docs/index.rst | 8 ++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/README.rst b/README.rst index 19f133318..5c79cf240 100644 --- a/README.rst +++ b/README.rst @@ -4,7 +4,12 @@ Django Extensions is a collection of custom extensions for the Django Framework. -Getting it +Getting Started +=============== + +The easiest way to figure out what Django Extensions are all about is to watch the `excellent screencast by Eric Holscher`__. In a couple minutes Eric walks you through a half a dozen command extensions. + +Getting It ========== You can get Django Extentions by using pip or easy_install:: @@ -19,6 +24,8 @@ If you want to install it from source, grab the git repository from github and r $ cd django-extensions $ python setup.py install +For more information look + Documentation ============= @@ -27,4 +34,5 @@ You can view documentation online at:: Or you can look at the docs/ directory in the repository. +__ http://ericholscher.com/blog/2008/sep/12/screencast-django-command-extensions/ diff --git a/docs/index.rst b/docs/index.rst index 20c84c037..00e71105d 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -11,6 +11,11 @@ Django Extensions is a collection of custom extensions for the Django Framework. These include management commands, additional database field, admin extensions and much more. +Getting Started +=============== + +The easiest way to figure out what Django Extensions are all about is to watch the `excellent screencast by Eric Holscher`__. In a couple minutes Eric walks you through a half a dozen command extensions. + Getting it ========== @@ -26,6 +31,8 @@ If you want to install it from source, grab the git repository and run setup.py: $ cd django-extensions $ python setup.py install +For more detailed instructions check out our :doc:`installation_instructions`. Enjoy. + Contents ======== @@ -56,3 +63,4 @@ Indices and tables * :ref:`search` +__ http://ericholscher.com/blog/2008/sep/12/screencast-django-command-extensions/ From a1f28f22aa4f7f6587e21cf0b1d20b0e50fce8f6 Mon Sep 17 00:00:00 2001 From: trbs Date: Sun, 12 Dec 2010 01:53:18 +0100 Subject: [PATCH 76/91] updated version information in Installation Instruction --- docs/installation_instructions.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/installation_instructions.rst b/docs/installation_instructions.rst index 1c27a5c6b..e544bd325 100644 --- a/docs/installation_instructions.rst +++ b/docs/installation_instructions.rst @@ -84,7 +84,7 @@ You can verify that the application is available on your PYTHONPATH by opening a >>> import django_extensions >>> django_extensions.VERSION - (0, 2, 'pre') + (0, 6) Keep in mind that the current code in SVN trunk may be different from the packaged release, and may contain bugs and backwards-incompatible changes, as From c26ef2b6514153b77c3616ac0d1af578a5fc2aa8 Mon Sep 17 00:00:00 2001 From: trbs Date: Sun, 12 Dec 2010 02:12:10 +0100 Subject: [PATCH 77/91] bumped version number to new development version --- django_extensions/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/django_extensions/__init__.py b/django_extensions/__init__.py index 16f78ae43..711109ae5 100644 --- a/django_extensions/__init__.py +++ b/django_extensions/__init__.py @@ -1,5 +1,5 @@ -VERSION = (0, 6,) +VERSION = (0, 7, 'pre') # Dynamically calculate the version based on VERSION tuple if len(VERSION)>2 and VERSION[2] is not None: From 8255fbee388848947aeb70bc960e23b28c11a0dd Mon Sep 17 00:00:00 2001 From: Antti Kaihola Date: Mon, 24 Jan 2011 18:31:31 +0800 Subject: [PATCH 78/91] Fixes ticket #66: customize output colors only if colors supported --- django_extensions/management/color.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/django_extensions/management/color.py b/django_extensions/management/color.py index 047adcda2..299bbca50 100644 --- a/django_extensions/management/color.py +++ b/django_extensions/management/color.py @@ -7,8 +7,9 @@ def color_style(): style = color.color_style() - style.URL = termcolors.make_style(fg='green', opts=('bold',)) - style.MODULE = termcolors.make_style(fg='yellow') - style.MODULE_NAME = termcolors.make_style(opts=('bold',)) - style.URL_NAME = termcolors.make_style(fg='red') + if color.supports_color(): + style.URL = termcolors.make_style(fg='green', opts=('bold',)) + style.MODULE = termcolors.make_style(fg='yellow') + style.MODULE_NAME = termcolors.make_style(opts=('bold',)) + style.URL_NAME = termcolors.make_style(fg='red') return style From 049296b97b805720b2a758567580df17e4e0696c Mon Sep 17 00:00:00 2001 From: Antti Kaihola Date: Mon, 24 Jan 2011 20:29:48 +0800 Subject: [PATCH 79/91] Fixes ticket #68: show_urls prints class instances and other 'exotic' view objects in a nicer form --- django_extensions/management/commands/show_urls.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/django_extensions/management/commands/show_urls.py b/django_extensions/management/commands/show_urls.py index 9829c6796..1f45f682e 100644 --- a/django_extensions/management/commands/show_urls.py +++ b/django_extensions/management/commands/show_urls.py @@ -7,6 +7,7 @@ except ImportError: # fall back to trunk, pre-NFA merge from django.contrib.admin.views.doc import simplify_regex +import re from django_extensions.management.color import color_style @@ -61,7 +62,12 @@ def handle(self, *args, **options): continue view_functions = extract_views_from_urlpatterns(urlconf.urlpatterns) for (func, regex, url_name) in view_functions: - func_name = hasattr(func, '__name__') and func.__name__ or repr(func) + if hasattr(func, '__name__'): + func_name = func.__name__ + elif hasattr(func, '__class__'): + func_name = '%s()' % func.__class__.__name__ + else: + func_name = re.sub(r' at 0x[0-9a-f]+', '', repr(func)) views.append("%(url)s\t%(module)s.%(name)s\t%(url_name)s" % {'name': style.MODULE_NAME(func_name), 'module': style.MODULE(func.__module__), 'url_name': style.URL_NAME(url_name or ''), From f20d84ca58a8cbef5cde60988ad7abca8e69944d Mon Sep 17 00:00:00 2001 From: Jannis Leidel Date: Wed, 2 Feb 2011 11:32:23 +0100 Subject: [PATCH 80/91] Updated translation files, including the source file (en/django.po). --- .../locale/cs/LC_MESSAGES/django.mo | Bin 0 -> 367 bytes .../locale/cs/LC_MESSAGES/django.po | 4 +- .../locale/da/LC_MESSAGES/django.mo | Bin 0 -> 797 bytes .../locale/da/LC_MESSAGES/django.po | 4 +- .../locale/de/LC_MESSAGES/django.mo | Bin 0 -> 1227 bytes .../locale/de/LC_MESSAGES/django.po | 13 +- .../locale/el/LC_MESSAGES/django.mo | Bin 0 -> 1522 bytes .../locale/el/LC_MESSAGES/django.po | 13 +- .../locale/en/LC_MESSAGES/django.mo | Bin 0 -> 367 bytes .../locale/en/LC_MESSAGES/django.po | 4 +- .../locale/es/LC_MESSAGES/django.mo | Bin 0 -> 1260 bytes .../locale/es/LC_MESSAGES/django.po | 13 +- .../locale/et/LC_MESSAGES/django.mo | Bin 0 -> 398 bytes .../locale/et/LC_MESSAGES/django.po | 9 +- .../locale/fr/LC_MESSAGES/django.mo | Bin 0 -> 685 bytes .../locale/fr/LC_MESSAGES/django.po | 17 +- .../locale/hu/LC_MESSAGES/django.mo | Bin 0 -> 1242 bytes .../locale/hu/LC_MESSAGES/django.po | 7 +- .../locale/it/LC_MESSAGES/django.mo | Bin 0 -> 1247 bytes .../locale/it/LC_MESSAGES/django.po | 13 +- .../locale/ja/LC_MESSAGES/django.mo | Bin 0 -> 1397 bytes .../locale/ja/LC_MESSAGES/django.po | 13 +- .../locale/pl/LC_MESSAGES/django.mo | Bin 0 -> 1236 bytes .../locale/pl/LC_MESSAGES/django.po | 152 +++++++++--------- .../locale/pt/LC_MESSAGES/django.mo | Bin 0 -> 1262 bytes .../locale/pt/LC_MESSAGES/django.po | 12 +- .../locale/ro/LC_MESSAGES/django.mo | Bin 0 -> 1245 bytes .../locale/ro/LC_MESSAGES/django.po | 7 +- .../locale/ru/LC_MESSAGES/django.mo | Bin 0 -> 367 bytes .../locale/ru/LC_MESSAGES/django.po | 4 +- .../locale/sk/LC_MESSAGES/django.mo | Bin 0 -> 367 bytes .../locale/sk/LC_MESSAGES/django.po | 4 +- .../locale/tr/LC_MESSAGES/django.mo | Bin 0 -> 367 bytes .../locale/tr/LC_MESSAGES/django.po | 4 +- .../locale/zh/LC_MESSAGES/django.mo | Bin 0 -> 367 bytes .../locale/zh/LC_MESSAGES/django.po | 4 +- 36 files changed, 160 insertions(+), 137 deletions(-) create mode 100644 django_extensions/locale/cs/LC_MESSAGES/django.mo create mode 100644 django_extensions/locale/da/LC_MESSAGES/django.mo create mode 100644 django_extensions/locale/de/LC_MESSAGES/django.mo create mode 100644 django_extensions/locale/el/LC_MESSAGES/django.mo create mode 100644 django_extensions/locale/en/LC_MESSAGES/django.mo create mode 100644 django_extensions/locale/es/LC_MESSAGES/django.mo create mode 100644 django_extensions/locale/et/LC_MESSAGES/django.mo create mode 100644 django_extensions/locale/fr/LC_MESSAGES/django.mo create mode 100644 django_extensions/locale/hu/LC_MESSAGES/django.mo create mode 100644 django_extensions/locale/it/LC_MESSAGES/django.mo create mode 100644 django_extensions/locale/ja/LC_MESSAGES/django.mo create mode 100644 django_extensions/locale/pl/LC_MESSAGES/django.mo create mode 100644 django_extensions/locale/pt/LC_MESSAGES/django.mo create mode 100644 django_extensions/locale/ro/LC_MESSAGES/django.mo create mode 100644 django_extensions/locale/ru/LC_MESSAGES/django.mo create mode 100644 django_extensions/locale/sk/LC_MESSAGES/django.mo create mode 100644 django_extensions/locale/tr/LC_MESSAGES/django.mo create mode 100644 django_extensions/locale/zh/LC_MESSAGES/django.mo diff --git a/django_extensions/locale/cs/LC_MESSAGES/django.mo b/django_extensions/locale/cs/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..7a82089ff589b48a4fcf79c61c783542ab8af4d3 GIT binary patch literal 367 zcmYL^K~KUk7=|@^+R?Lz9=zd)9mWJJ5-KaW*luJD61`QZa|T<|6{A1Izvpl9TVmu* zpY+hDU*Gflmcl ziejGTSyY&<^8r*-)oZxhRSlGmk!Y5eF!n|Vyab63hLIkPW1u};B#zl7?a-J~6rnI5 zbvyjedlb9?l|#bGea=+cdCD^pN!}?ETkkESAq\n" "Language-Team: LANGUAGE \n" @@ -66,7 +66,7 @@ msgstr "" msgid "keep empty for indefinite activation" msgstr "" -#: management/commands/show_urls.py:33 +#: management/commands/show_urls.py:34 #, python-format msgid "%s does not appear to be a urlpattern object" msgstr "" diff --git a/django_extensions/locale/da/LC_MESSAGES/django.mo b/django_extensions/locale/da/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..b9745078beb40e4dc86fffc466d0926f46aef931 GIT binary patch literal 797 zcmZ{h%We}f6ow6y+aNaGuwijFNK}=>qzF_^OVvp-EfF(GluHo^sd6$WQxnIIY$t*T zL1M>_6>q_NAlUH&NURXY;Zm{SX#V*u`S*W3b3ScuykS(=Nw-NQ=_cs|Db#1u719?{ zLHbI%M0$9Ev8%*{c!Ss=UL$sh8^ou?%fuJN2c$76VqGC8?1c*6kP~``3U>&^f-f)tUqXXJ5e7O#(G}3N|wB_tQ;Sj1fpJd z$eW=J9pWwOmcUM2uk(0^9;nxo`|);Mk7F|OKCWa4|LuF0rF~v>c`Jp--K1!5Kks(3 zC>PH2p%vOG;f+n;Xq4yBNsA2jvm$NhhiR+T&jy17vg&FnD&#{H^91s=b36)H-p}(x zC2Pi32T{>3vh$Cs*W##Yv`0-nUN7jf9$)!;3nir9gUOk&4*jFi@QCl8`@&tOXnCe5 z^zU?)!0uT3=+D?1c3Hs`l}8U=Dp;X*-qI*(Ej%c(!v9Y2*Ey?$dp1Tl UvvP&XA^Z4Vmlpls(V=2L0s3#sfB*mh literal 0 HcmV?d00001 diff --git a/django_extensions/locale/da/LC_MESSAGES/django.po b/django_extensions/locale/da/LC_MESSAGES/django.po index bccf9eb46..8cb0747fb 100644 --- a/django_extensions/locale/da/LC_MESSAGES/django.po +++ b/django_extensions/locale/da/LC_MESSAGES/django.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-06 14:00+0100\n" +"POT-Creation-Date: 2011-02-02 11:30+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -69,7 +69,7 @@ msgstr "" msgid "keep empty for indefinite activation" msgstr "" -#: management/commands/show_urls.py:33 +#: management/commands/show_urls.py:34 #, python-format msgid "%s does not appear to be a urlpattern object" msgstr "" diff --git a/django_extensions/locale/de/LC_MESSAGES/django.mo b/django_extensions/locale/de/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..74c1c529d17bae28f7de86f08c43adcb53138fc7 GIT binary patch literal 1227 zcmZva!H?5M6vl^^mNr0<+CwizdIvzPz)M0^3AupqZoClTY?dU81P4}=_{EvVnXzWZ ztM15Rc{qsD^*-juRU?Bdg_1CL;1$Lh^1oW@y}y@^WJCA_xG2_p9+jKnBQPN z!TcKY)G^#J=HO*efuDlUz|X*+4%feceXM^4KL-B=Pk{e{C&3dR32_1Z3OonKVA#I{ z9tY=OsJjF|0X_H~_U?mcv3`M~;r*XrsQdbme}Ow#{{!L@T@(v-?|`Skdtm7M2wVXl zgP()XL0sZD+(O@%V5t8Gh_;RA(_nZP{>jl1>c1VZ*ZBDY4D~|KP(RcRqjiAh9{h>( zj&j3}wDBaXilrrQXu>3^wq+%~XRFCfe&DGW$<(V|7CkKw9x`JVbtSePlb<;vNa;r2C>=!2!%nH3UvaBK>Re1MOV7E;*-fpgyfRuW zm@DFC<@ac2EJ;mjx#V0yNR1!)A(_%S&y-g0i(pHkYc5<_7s7ezYbU(&C5tUs@I$@<;oc1rit;ixy*Yz?_G)<=C;s61M$3m1(|Os%cKI9dyi zolexgii3lS{QoB-m zV`JLb&NA9e`YByc`$;dmm2|tqbTqmNsV-_+a5QGQj44YtZ*K?7*R$+asaB0GZnpZp ze){gCI;-v0y3w9BdhAs&>-k52r7ES;-_vw1tz&;s3)BNH{^yW$DEll7!c4QtLuw%$7>&97;iM$r(h- ptAeSqs@Q%|R_h7REIyPGr=!Y(U;T`rSuaK*P@{uDjgh)iya9GWKjHuY literal 0 HcmV?d00001 diff --git a/django_extensions/locale/de/LC_MESSAGES/django.po b/django_extensions/locale/de/LC_MESSAGES/django.po index 3db9185e9..11a021aae 100644 --- a/django_extensions/locale/de/LC_MESSAGES/django.po +++ b/django_extensions/locale/de/LC_MESSAGES/django.po @@ -2,12 +2,12 @@ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. -# +# msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-02-01 18:08+0200\n" +"POT-Creation-Date: 2011-02-02 11:30+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -21,8 +21,11 @@ msgstr "und" #: admin/__init__.py:123 #, python-format -msgid "Use the left field to do %(model_name)s lookups in the fields %(field_list)s." -msgstr "Das linke Feld benutzen, um %(model_name)s Abfragen in den Feldern %(field_list)s durchführen." +msgid "" +"Use the left field to do %(model_name)s lookups in the fields %(field_list)s." +msgstr "" +"Das linke Feld benutzen, um %(model_name)s Abfragen in den Feldern %" +"(field_list)s durchführen." #: db/models.py:15 msgid "created" @@ -64,7 +67,7 @@ msgstr "Leer lassen für sofortige Aktivierung" msgid "keep empty for indefinite activation" msgstr "Leer lassen für unbefristete Aktivierung" -#: management/commands/show_urls.py:33 +#: management/commands/show_urls.py:34 #, python-format msgid "%s does not appear to be a urlpattern object" msgstr "%s ist kein urlpattern Objekt" diff --git a/django_extensions/locale/el/LC_MESSAGES/django.mo b/django_extensions/locale/el/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..5486ba5bd6b25580480b89d570435170626e6966 GIT binary patch literal 1522 zcmaiyO>Y}T7{>?b3pM3M=>fIk@JJ9uRW{f~Mb-92-6or2VaJid^F06gXMY*n zcb{RrjQJYo=a{cz9)1Qt7)#*Wpac(qUx3epUv9@=gLTBK;B(*~;6d<5DP_7tcfRy;3?^t76ozYr(wdi7HLHB;uX=>%xi0TO|WXjw-&WH zzS>XNyb`3B1cjobsUt-g*cw4h<8SriK!ghs?}_7z!XjOfjEeLkQz5BXEQC_&<7$HO zC}8bWa4iBB2-QwyqGcSht3o6sdWpV4oj4^Pk?i$EAdyIg9{z7>G73aTM)Jud$dc$9 zFctQ@OlhwBifO4s!DiFgzSXG)&SjA*barXhoBY7L%aw{#K8Zi7RNQyVC(4y_8Hr9)T$8r=cHW1+*L3O) zXUe1Z8*aUN;-kilU#fAXomR>t6>=S?E=|wZYBb~3eLCycy=v`(H#ODt=jP5MHR|?x zS2!)fdoIER4D?onDl>#KuXH`Q8l7Cgt}`X4cK78RU1c8WNTn z;mGb4@#@x2W;T&AG!Kij$M&)r?fL4MxsRPee$zb2ml>`i*t_u=g3SD2)=*_5zil>{ z`3A{$IW&*WDF4)q(A35QLe7XxhVx;58v)AZ%Y>8xWUt$^2e<{Dh1iE?rRX-yZ{gC@ zeTriF-KRfq^c;}+&aBvmcsIIayB)HBeCT*M>|p4>fvZCZzH8rV*36ICfh)|)vx;HB zO=!Po)?kCh))NRSt>?J9BY(xJux41tx7~Zf3b^z?C9-^Z$EN=%lixvBVRB*gaF1?i gu>b6#lP?1!gc-B1g(EP>`eGF_EY>j}p~@}x7tu&kJOBUy literal 0 HcmV?d00001 diff --git a/django_extensions/locale/el/LC_MESSAGES/django.po b/django_extensions/locale/el/LC_MESSAGES/django.po index 4d921c0a0..fcdbc3494 100644 --- a/django_extensions/locale/el/LC_MESSAGES/django.po +++ b/django_extensions/locale/el/LC_MESSAGES/django.po @@ -2,12 +2,12 @@ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. -# +# msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-02-01 18:07+0200\n" +"POT-Creation-Date: 2011-02-02 11:30+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -21,8 +21,11 @@ msgstr "και" #: admin/__init__.py:123 #, python-format -msgid "Use the left field to do %(model_name)s lookups in the fields %(field_list)s." -msgstr "Χρησιμοποίησε το αριστερό πεδίο για να κάνεις αναζήτηση του %(model_name)s με βάσει τα πεδία %(field_list)s." +msgid "" +"Use the left field to do %(model_name)s lookups in the fields %(field_list)s." +msgstr "" +"Χρησιμοποίησε το αριστερό πεδίο για να κάνεις αναζήτηση του %(model_name)s " +"με βάσει τα πεδία %(field_list)s." #: db/models.py:15 msgid "created" @@ -64,7 +67,7 @@ msgstr "αφήστε άδειο για άμεση ενεργοποίηση" msgid "keep empty for indefinite activation" msgstr "αφήστε άδειο για αόριστη ενεργοποίηση" -#: management/commands/show_urls.py:33 +#: management/commands/show_urls.py:34 #, python-format msgid "%s does not appear to be a urlpattern object" msgstr "% s δεν φαίνεται να είναι ένα αντικείμενο urlpattern" diff --git a/django_extensions/locale/en/LC_MESSAGES/django.mo b/django_extensions/locale/en/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..7a82089ff589b48a4fcf79c61c783542ab8af4d3 GIT binary patch literal 367 zcmYL^K~KUk7=|@^+R?Lz9=zd)9mWJJ5-KaW*luJD61`QZa|T<|6{A1Izvpl9TVmu* zpY+hDU*Gflmcl ziejGTSyY&<^8r*-)oZxhRSlGmk!Y5eF!n|Vyab63hLIkPW1u};B#zl7?a-J~6rnI5 zbvyjedlb9?l|#bGea=+cdCD^pN!}?ETkkESAq\n" "Language-Team: LANGUAGE \n" @@ -66,7 +66,7 @@ msgstr "" msgid "keep empty for indefinite activation" msgstr "" -#: management/commands/show_urls.py:33 +#: management/commands/show_urls.py:34 #, python-format msgid "%s does not appear to be a urlpattern object" msgstr "" diff --git a/django_extensions/locale/es/LC_MESSAGES/django.mo b/django_extensions/locale/es/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..e52ff0c297b101d87fde21d5f77739f10478e305 GIT binary patch literal 1260 zcmZvaPmdHu7{&_)kr5?<0~ZhP!8H=>aRx#{8YDEk4Njcd+04#h^x&qp`<J7{15Dp|>y^)x3?IeH@*M|eX3{1b&YSj`d5{H-aplOjxL^lCJ+~}KE?V8 z>oV5)Q+Off;Fq8RKLDSDAA&zG&%b~JoL_?PgYUqz;9uZJ;MwBL*z}Frt1B^aOn%N(@YK^(agm1_ zxuLZ$N|ST3qh-lg92Je+kRe=&rRQAa>@uq=uZ$LZ%oTB2 z`2(67OHz|6OU@O9)XXFQPo{LvQ>E2O5yn#JnhRIdGvU1SwG&?Xg2k3K;jU3Hj~=ph z=p55lvi@!IAf<=tXuCJuY>l`w)<*+3Q+af+p1EjjVrp#-$I*J297)jz=8EZBr`wG> z*YHrc8(;5S?Q}aG2%{12t5AHY`#w!Z(O?*DB=pTN9`vsMFx*UAed&BOwoh2!Cc8_b$r6bm`lv||y*GHkmN&B_MLF233tZbF3!&h3AGW-Kn-j~_o%jOR7 wzLrZ&9>l$6*h{)rAp%1B8E0EC2ui literal 0 HcmV?d00001 diff --git a/django_extensions/locale/es/LC_MESSAGES/django.po b/django_extensions/locale/es/LC_MESSAGES/django.po index a2e9349f9..0428ea20a 100644 --- a/django_extensions/locale/es/LC_MESSAGES/django.po +++ b/django_extensions/locale/es/LC_MESSAGES/django.po @@ -2,12 +2,12 @@ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. -# +# msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-02-01 18:10+0200\n" +"POT-Creation-Date: 2011-02-02 11:30+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -21,8 +21,11 @@ msgstr "y" #: admin/__init__.py:123 #, python-format -msgid "Use the left field to do %(model_name)s lookups in the fields %(field_list)s." -msgstr "Utilice el campo de la izquierda para hacer búsquedas en los campos %(field_list)s de %(model_name)s." +msgid "" +"Use the left field to do %(model_name)s lookups in the fields %(field_list)s." +msgstr "" +"Utilice el campo de la izquierda para hacer búsquedas en los campos %" +"(field_list)s de %(model_name)s." #: db/models.py:15 msgid "created" @@ -64,7 +67,7 @@ msgstr "mantener vacío para una activación inmediata" msgid "keep empty for indefinite activation" msgstr "deje vacío para mantener la activación indefinida" -#: management/commands/show_urls.py:33 +#: management/commands/show_urls.py:34 #, python-format msgid "%s does not appear to be a urlpattern object" msgstr "% s no parece ser un objeto urlpattern" diff --git a/django_extensions/locale/et/LC_MESSAGES/django.mo b/django_extensions/locale/et/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..ede26961e2b3a5a6b47790d1090919e1d271810e GIT binary patch literal 398 zcmYL^%TB{E5JkgllO<~w-j^v!5mIGJRnxd7A}`XU66{Q4LQt_Q$3^fBtoc2@g$Y9R zYK}aX?s%@hj}N~b)IM^8oFYfa2P{ zCnFxSFq*I+$oXP1Mysl~qLxrd@k&X=l6l!h9!1e)-SoAo$8H?PeD^88@3~X0tW>z; vV}oI>e79$twP@5OSv?EWN_$lnGZ^lCU6v, YEAR. -# +# msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-02-01 18:11+0200\n" +"POT-Creation-Date: 2011-02-02 11:30+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -21,7 +21,8 @@ msgstr "ja" #: admin/__init__.py:123 #, python-format -msgid "Use the left field to do %(model_name)s lookups in the fields %(field_list)s." +msgid "" +"Use the left field to do %(model_name)s lookups in the fields %(field_list)s." msgstr "" #: db/models.py:15 @@ -64,7 +65,7 @@ msgstr "" msgid "keep empty for indefinite activation" msgstr "" -#: management/commands/show_urls.py:33 +#: management/commands/show_urls.py:34 #, python-format msgid "%s does not appear to be a urlpattern object" msgstr "" diff --git a/django_extensions/locale/fr/LC_MESSAGES/django.mo b/django_extensions/locale/fr/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..96a7109fba73d26f0a11927551ca9affa61e37f0 GIT binary patch literal 685 zcmY+AF>ljA6vwa7QZRI3Lt;3wFjN=p0#ap4Rg<{I!cHQ`sRY|$U)+maJH0zsRAS=; zFtIVfgz_EO@;&$rurcz#BvQrG{r$7=-h21_|8;-!3qd&0L#Tpwpr4S9-_R}S4|E&) z3*Ce^HVD}Ux4^sL4rtFGfSceW(AGT$x4;hg9D26ipWay2Uw~NT3J;tA5w!h2f%m}A zpzZe+w0*v>`2$3&<=nQ;=Gd?^;b=LF{kAnW?m%{K668i+3KG?P^}_3d*Z=smXa$$ceh#@(=Z)HgT9lB zS)&X~bSVq=sx39k8lO7DLB_iFHWaZQF7@f2>v_!G!=j$&KXrFq&vlW=QgJD5^L5_a zFi2T4V7-989{5SL`)<$=otSIGGR13ManmTD9*^Ug_Jbs(2VoLK@lnw0rQv9Fh}61l zc_~;X__l_x=rBCHC_qw4>J&+e*gdg literal 0 HcmV?d00001 diff --git a/django_extensions/locale/fr/LC_MESSAGES/django.po b/django_extensions/locale/fr/LC_MESSAGES/django.po index 980399803..1e91460a4 100644 --- a/django_extensions/locale/fr/LC_MESSAGES/django.po +++ b/django_extensions/locale/fr/LC_MESSAGES/django.po @@ -2,12 +2,12 @@ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. -# +# msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-02-01 18:10+0200\n" +"POT-Creation-Date: 2011-02-02 11:30+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -20,9 +20,12 @@ msgid "and" msgstr "et" #: admin/__init__.py:123 -#, python-format, fuzzy -msgid "Use the left field to do %(model_name)s lookups in the fields %(field_list)s." -msgstr "Utilisez le champ de gauche pour faire des recheres de %(MODEL_NAME)s dans les champs %(field_list)s." +#, fuzzy, python-format +msgid "" +"Use the left field to do %(model_name)s lookups in the fields %(field_list)s." +msgstr "" +"Utilisez le champ de gauche pour faire des recheres de %(MODEL_NAME)s dans " +"les champs %(field_list)s." #: db/models.py:15 msgid "created" @@ -66,8 +69,8 @@ msgstr "garder vide pour l'activation immédiate" msgid "keep empty for indefinite activation" msgstr "garder vide pour l'activation de durée indéterminée" -#: management/commands/show_urls.py:33 -#, python-format, fuzzy +#: management/commands/show_urls.py:34 +#, fuzzy, python-format msgid "%s does not appear to be a urlpattern object" msgstr "%s ne semble pas être un objet urlpattern" diff --git a/django_extensions/locale/hu/LC_MESSAGES/django.mo b/django_extensions/locale/hu/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..e0d8cba0f66508372a4ebcd36ac6e3aed8223807 GIT binary patch literal 1242 zcmZvav5y-?6vhV#1WW)43L1)65R@qFVFw{aONg@EZ4!(1`DFV}g61^#KCcJw&a7s} z7UzyX0R$8XiZn=9SVE$tTp=1-S|mDJY9!zr`%u7QG&8>$&G+8>cJ+RF@zUo4;{~i& zus*|j8SBbp*f3_`>!1Rk0>1#C2EV?ze*^Y#UxQD8e}I?4zrbg~%a0538u$|UDj0(y z{uI0f&cKkj0-ppu_!eSUU>o;uku<#j3Wm7fz$@VI;1K*1#1sQ03-wOGpc{js?i{=Z zetPl#J%}lO#1?cvUEF^LQFfE#IWTw$|K#5z=>Hk8xB1TJ!H_R_dIl?a4WqTiW)J?v zRY$pDN7{Ijb+e2o|d{K*I$K+>BB~Lv~ z6_ttui^6r&?Bg-BG!bJ5qWh-zXhKo5N|ToWJh&gw(m1SeBl1k+YjvReNQ$ zm^0VJRqfAcYAi`js;W3w5Yonv{6Cq}IZu^V{}sWOLe*Tja#0B9rC&JVl`mNwSrfiB z>gLf2TZhUq9VPqkCHGT0Ne9Dj|FAXS+E^d;T%q#l-9_P|k%_5w)E`Cr!8wAW1Ne&R zX1mjg+BY$&(}~|~-)MK*Z3v?QFI7l>p?g0~22rmc9VGOiANRU9KIk8&txP%}jjYtJ zl-}5w?j2_t9VWe$Zl}GZo83(g4hHFPcn4BlEM&pah-DR1mK@$c4wi3c+1*m@8C%?G z^}4GMA;IidR2;;\n" "Language-Team: LANGUAGE \n" @@ -24,7 +24,8 @@ msgstr "és" msgid "" "Use the left field to do %(model_name)s lookups in the fields %(field_list)s." msgstr "" -"Használd a baloldali mezőt hogy keress a %(model_name)s %(field_list)s. mezőiben" +"Használd a baloldali mezőt hogy keress a %(model_name)s %(field_list)s. " +"mezőiben" #: db/models.py:15 msgid "created" @@ -66,7 +67,7 @@ msgstr "Üresen hagyni azonnali aktiváláshoz" msgid "keep empty for indefinite activation" msgstr "Üresen hagyni korlátlan aktiváláshoz" -#: management/commands/show_urls.py:33 +#: management/commands/show_urls.py:34 #, python-format msgid "%s does not appear to be a urlpattern object" msgstr "Úgy néz ki hogy %s nem egy urlpattern objektum" diff --git a/django_extensions/locale/it/LC_MESSAGES/django.mo b/django_extensions/locale/it/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..29757252a42d5f2480becd309268a9c6d672dfcc GIT binary patch literal 1247 zcmZvbPjA#l7{;d*NV^1(+Cwirya$331&7_BO30-MlbEn#HydqsBNbJOCic6|6nn;+ znT<+5M~k@h$_KCcnu81i0$p-#xXhzNV(oqW1N|D%QRnmI0kq24UwTSTZ8R_JxKFrpB1j&j3} zwDBbCnx!RgXopGC)RwjMo~jSkJOsTgzgXGes}TVU_EX1r1R0pO6^MNjg9Hv zxYwigq@U8Qw4Zc)caqiBVY<0_8&X|NWx>&iWffB|SzjB6k#F^ScS^NnY;n8Q@AlK< zhw3b~TPsF;*68uL#;~6M@Ym~7D*ZEMyV5%Lzl=xsqMOIMFw2B(lPkV3)e`jMZbLg#od;=DxbeRgZ_ofEJ jhE~mRvf2J, YEAR. -# +# msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-02-01 18:07+0200\n" +"POT-Creation-Date: 2011-02-02 11:30+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -21,8 +21,11 @@ msgstr "e" #: admin/__init__.py:123 #, python-format -msgid "Use the left field to do %(model_name)s lookups in the fields %(field_list)s." -msgstr "Utilizzare il campo a sinistra per fare ricerche nei campi %(field_list)s del modello %(model_name)s." +msgid "" +"Use the left field to do %(model_name)s lookups in the fields %(field_list)s." +msgstr "" +"Utilizzare il campo a sinistra per fare ricerche nei campi %(field_list)s " +"del modello %(model_name)s." #: db/models.py:15 msgid "created" @@ -64,7 +67,7 @@ msgstr "lasciare vuoto per attivazione immediata" msgid "keep empty for indefinite activation" msgstr "lasciare vuoti per attivazione indefinita" -#: management/commands/show_urls.py:33 +#: management/commands/show_urls.py:34 #, python-format msgid "%s does not appear to be a urlpattern object" msgstr "% s non sembra essere un oggetto urlPattern" diff --git a/django_extensions/locale/ja/LC_MESSAGES/django.mo b/django_extensions/locale/ja/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..5e5feb804bf0ce0f19bf192693db25faf75194cd GIT binary patch literal 1397 zcmb7??{5@E7{^CN(G$hs3*Pu*UWk$4);o*|IV)jl7rbykn(LLQZ<_7x+}+6D?q+9> zh_Bo|Y$zCQ2rZr#RICMBrGzw*8Y=&ZZ>D!AFMR1MWAr=QDz@>Blb!v{v-^FX=R3Re z^PU|u1YMyZ{yue-Aze{toU0{{)`~cRotU zOW^b1i(nSi`QzXYumS42P4ID0g0Ca@18@-WZ4}kseg*e{e}G#59Fk*jFR1%|4(p8-(+Ngx+6vvkmXd`Y^(WqARY}aMmrN_qdd0I3J79F$-W-fok93C!Pqoao* z_3ACV&WsAPn^~GSi^s>b<-vUZh|353uzomI$Q7)Io5~ENQ$xNdnTH-{0+^NTefetO z+T44CRvUIGn0#}ra?CjNP^Z1rSZG*Y6`#rp#sc8A%M@Geqsy(aXyDGk} z;$_u7r=si7sAy3|XH|@FGI`P=D!!H|CRO|ma>#=#SGPav&Cm5$u92;0g{t;Ul5$VA zmsER7MYp<>A9Zi7s_24>r?wwI6<^#aqoR(AFQ{kf0_~QE7{r;sJD!Qzq zh4s4-&uG^l#zaLo$okq`@7#3n^0&QCOnzDXuJ_p|c-~RbG>Z1-rn=`>yC2VPwCR4e z(w)X;m-{z=?0435v*@SfLi;V%N&oEEy}2(RbhcH|A{Cui(Wn2TR(F1?_r=PlMHR2A b_DvPv#;3+=Qnl}?_&(N%fqDIN+DqgwtDp3D literal 0 HcmV?d00001 diff --git a/django_extensions/locale/ja/LC_MESSAGES/django.po b/django_extensions/locale/ja/LC_MESSAGES/django.po index 4ede6da93..91a272f9a 100644 --- a/django_extensions/locale/ja/LC_MESSAGES/django.po +++ b/django_extensions/locale/ja/LC_MESSAGES/django.po @@ -2,12 +2,12 @@ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. -# +# msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-02-01 18:11+0200\n" +"POT-Creation-Date: 2011-02-02 11:30+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -21,8 +21,11 @@ msgstr "と" #: admin/__init__.py:123 #, python-format -msgid "Use the left field to do %(model_name)s lookups in the fields %(field_list)s." -msgstr "%(field_list)s フィールドの内容から %(model_name)s を検索するには左のフィールドを使用して下さい。" +msgid "" +"Use the left field to do %(model_name)s lookups in the fields %(field_list)s." +msgstr "" +"%(field_list)s フィールドの内容から %(model_name)s を検索するには左のフィール" +"ドを使用して下さい。" #: db/models.py:15 msgid "created" @@ -64,7 +67,7 @@ msgstr "すぐに有効化する場合は空白のままにして下さい" msgid "keep empty for indefinite activation" msgstr "無期限に有効化しておく場合は空白のままにして下さい" -#: management/commands/show_urls.py:33 +#: management/commands/show_urls.py:34 #, python-format msgid "%s does not appear to be a urlpattern object" msgstr "%s は urlpattern オブジェクトではないようです" diff --git a/django_extensions/locale/pl/LC_MESSAGES/django.mo b/django_extensions/locale/pl/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..f385312695a0db85e981b26f32dd528396b4abde GIT binary patch literal 1236 zcmZvay^q{P7{&(@NU|hEf`TT+TM$H)c-c*w$Rtsg%Mup$<8-%oQj+2{YrpH8U3Fx^Bc?0JoDIo|N7wMPXcuw;{wKy z7$0GreG3!n5WE5^@Llj{@HF`N=>7>f!u>Dc3Gg|13j7az4?Oj@5TAe_f**r181^54 zC&5E7_!i(hpa*-{y9R^)DNKXk-(U;;2Mqdu!7=z8gj{?Lvoqij48HrAE`krhYv6a_ zIq+8ym-y|7e}KX7PcZm|%t05jgm3b4h1|!5culVN!QgimBb*<+LWQiyg@_2_C^hUz z8&9$OX1X1xV*}Q^U_yNc;#~z+t!44jRtA7&(`7O zn6`Uc-}LVGX}`a-JD7}HJ6sy;qmj#08hue^E}EK{THBLpv=x$LQ*;NpV!GPtcB9T! zT-5Ex*E*Lw-A)I>XonxEV1A^#*YE8_qe*n9M_*0i(ctp^$++JdO6Q}gmD=Uf8ynO8 znaZ@{7451-NxP;SQv3Sh!sy#sAywW^OmPd_bXLiXqbbWGreSY17dM?PVJt5vV{Tw5qn`IWJ2gTqXzoG8uO;E%7Uteoe@x=CPG v!P}%{<+^&4D!kODnKsf?q7~Cke3>kiSR+C`S4%v`VaKhdg|B_}?0fM)8OBJx literal 0 HcmV?d00001 diff --git a/django_extensions/locale/pl/LC_MESSAGES/django.po b/django_extensions/locale/pl/LC_MESSAGES/django.po index 1699986db..9dc2fb6e8 100644 --- a/django_extensions/locale/pl/LC_MESSAGES/django.po +++ b/django_extensions/locale/pl/LC_MESSAGES/django.po @@ -1,77 +1,77 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-11-24 14:20+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: Zbigniew Siciarz \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: .\admin\__init__.py:121 -msgid "and" -msgstr "i" - -#: .\admin\__init__.py:123 -#, python-format +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy msgid "" -"Use the left field to do %(model_name)s lookups in the fields %(field_list)s." -msgstr "Użyj pola po lewej, by wyszukać pola %(field_list)s w modelu %(model_name)s." - -#: .\db\models.py:15 -msgid "created" -msgstr "utworzony" - -#: .\db\models.py:16 -msgid "modified" -msgstr "zmodyfikowany" - -#: .\db\models.py:26 -msgid "title" -msgstr "tytuł" - -#: .\db\models.py:27 -msgid "slug" -msgstr "slug" - -#: .\db\models.py:28 -msgid "description" -msgstr "opis" - -#: .\db\models.py:50 -msgid "Inactive" -msgstr "Nieaktywny" - -#: .\db\models.py:51 -msgid "Active" -msgstr "Aktywny" - -#: .\db\models.py:53 -msgid "status" -msgstr "stan" - -#: .\db\models.py:56 -msgid "keep empty for an immediate activation" -msgstr "pozostaw puste, by aktywować od razu" - -#: .\db\models.py:58 -msgid "keep empty for indefinite activation" -msgstr "pozostaw puste, by nie definiować daty deaktywacji" - -#: .\management\commands\show_urls.py:33 -#, python-format -msgid "%s does not appear to be a urlpattern object" -msgstr "%s nie jest obiektem typu urlpattern" - -#: .\templates\django_extensions\widgets\foreignkey_searchinput.html.py:4 -msgid "Lookup" -msgstr "Szukaj" - +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-02-02 11:30+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Zbigniew Siciarz \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: admin/__init__.py:121 +msgid "and" +msgstr "i" + +#: admin/__init__.py:123 +#, python-format +msgid "" +"Use the left field to do %(model_name)s lookups in the fields %(field_list)s." +msgstr "" +"Użyj pola po lewej, by wyszukać pola %(field_list)s w modelu %(model_name)s." + +#: db/models.py:15 +msgid "created" +msgstr "utworzony" + +#: db/models.py:16 +msgid "modified" +msgstr "zmodyfikowany" + +#: db/models.py:26 +msgid "title" +msgstr "tytuł" + +#: db/models.py:27 +msgid "slug" +msgstr "slug" + +#: db/models.py:28 +msgid "description" +msgstr "opis" + +#: db/models.py:50 +msgid "Inactive" +msgstr "Nieaktywny" + +#: db/models.py:51 +msgid "Active" +msgstr "Aktywny" + +#: db/models.py:53 +msgid "status" +msgstr "stan" + +#: db/models.py:56 +msgid "keep empty for an immediate activation" +msgstr "pozostaw puste, by aktywować od razu" + +#: db/models.py:58 +msgid "keep empty for indefinite activation" +msgstr "pozostaw puste, by nie definiować daty deaktywacji" + +#: management/commands/show_urls.py:34 +#, python-format +msgid "%s does not appear to be a urlpattern object" +msgstr "%s nie jest obiektem typu urlpattern" + +#: templates/django_extensions/widgets/foreignkey_searchinput.html:4 +msgid "Lookup" +msgstr "Szukaj" diff --git a/django_extensions/locale/pt/LC_MESSAGES/django.mo b/django_extensions/locale/pt/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..308a2fcde78da5b1db99c5b84d3c5b40f3ce1b75 GIT binary patch literal 1262 zcmaKr%T5$Q6o$*Yj;M()+_*RkZ$uk=AR5vlaYP`*;SwC&lA`;}P|#h~R8>!a=TJAs zm5Hu+33&kbE_CO@l}i&7^{)nlMq{PVd{sSvopY+@pAYAcJ`)({5SI{75f>2yhwy>1 z3f=@2cpQ8Vo&;a+uU~_+Snq&Gz;ECQ@CSGrJaJfvtKbFjGMIp2|1x+KTm?hk0z3wK za2k8J!E0E*Mbhy8GZ^xI*aKy8!9F+wz5pBGI}nd}kB^}L z2!_0$z>p{GJ%b1}!=3y-Lf^jz+N<}S1w+08#3@9`8Ahn}YoJ9Tt~kmJJJQCJEK8P_ zyrC5)NtMk@={;LbW@U|2FIuTreHJrX?oHaptXHL2a!h`eDd(=IuHrlkIWj|6t`{cb zd|Ata2OZ_L+>z3?yjD7h>dA7hoF8;ULh4MUmZj%RWb9I_O0SF->&zu_QTi?F8cR}> zDhkdNgjDw<|0Pp8rgqNh1SHQ z*7PJjnOuB4Ge6f@@vn*BI7>s}>$9CcV03AI~u(@WtHW9|0+Tn!o98*j|c%uXI0vpEzu zCXDv1QFW_C`<^%btumKN-=%a_TF3t0QfDd}J%h^rKTXfB}28p z{xVu=O\n" "Language-Team: LANGUAGE \n" @@ -21,8 +21,11 @@ msgstr "e" #: admin/__init__.py:123 #, python-format -msgid "Use the left field to do %(model_name)s lookups in the fields %(field_list)s." -msgstr "Use o campo esquerdo para fazer com que o modelo %(model_name) procure nos campos %(field_list)." +msgid "" +"Use the left field to do %(model_name)s lookups in the fields %(field_list)s." +msgstr "" +"Use o campo esquerdo para fazer com que o modelo %(model_name)s procure nos " +"campos %(field_list)s." #: db/models.py:15 msgid "created" @@ -64,7 +67,7 @@ msgstr "deixe vazio para ativação imediata" msgid "keep empty for indefinite activation" msgstr "deixe vazio para ativação por tempo indeterminado" -#: management/commands/show_urls.py:33 +#: management/commands/show_urls.py:34 #, python-format msgid "%s does not appear to be a urlpattern object" msgstr "%s não parece ser um objeto urlpattern" @@ -72,4 +75,3 @@ msgstr "%s não parece ser um objeto urlpattern" #: templates/django_extensions/widgets/foreignkey_searchinput.html:4 msgid "Lookup" msgstr "Busca" - diff --git a/django_extensions/locale/ro/LC_MESSAGES/django.mo b/django_extensions/locale/ro/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..e52b9444c3d798879ca179df82177bb1e2ea273a GIT binary patch literal 1245 zcmaiyKaU(W7{(0*LY4qhC}=3&f{=tT$8Hc(G$c`m+qtk}_x7~A7bz)n^3A+E=VZnn z*`A2d?pGi|DQHsA1@RfUEmF`>L6wr04?qErXE)@JB4OG7jb|Re?`zNV_{5RB0_|Ol z4=}#Ncpu~VE11v@z)wI0z5(6?-vobHuYUwbSU&_`1OEn(g8zVTfk$5z;v?`q@Ix>L z!~Q++2zUU7xE1(1=)upi_gnB3);}X?c>f0&;ywn${y)K+;9nrRxQ<{!cLO{I=HO{i zgCB$6uiyUyqKjWK1^sVp{thB-Tl3ps_!jQu*%tCXX(+F)=N&M_JB|_ZhO>m$S)rXn zed45}+^{2UJjuFdX~`SfXOh&|vXa^^*nd3Bq`K+Dy`(3o3IEp{D~KVT|( z?rE;L%tMUa(8<%4$+_Iqvf?w2%2w`3=~mt<9YpQJUa6cv<2HoUxyUR_&$-CiWmeT* z87*!x*Thxr@6g;>lA2UiajqbwwjTL1nbJAWl~&J-P?kd0T)46+g!9rjPI%=@7CY92 zvqpnFy2{oeb4)wQ=GV!Ul&+?e>0rFwnQ(2ak4COgdGuvdxM*f#>grf z)UK4?*qF92!JtQe8B%;AqCOifNc^U)c>MUlgH{Vm*K3Kdnot^cR#JNbA^N+?{Pj=b!3AEpxU}sxw@n zE@C>ruY4!iNH+*iyhc(MHZB)dQO+;A?C>YO4q{aqzCLfSNB7mrUZUTci;+Gd wIJjIcoTS2(|D_8i4<}M9n=KdrC)8Z3O2JK#t}K>GFQ&m`)ApP*SgaBM0^R{jRsaA1 literal 0 HcmV?d00001 diff --git a/django_extensions/locale/ro/LC_MESSAGES/django.po b/django_extensions/locale/ro/LC_MESSAGES/django.po index db5fa03f1..c43732da1 100644 --- a/django_extensions/locale/ro/LC_MESSAGES/django.po +++ b/django_extensions/locale/ro/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-02-01 18:07+0200\n" +"POT-Creation-Date: 2011-02-02 11:30+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -24,7 +24,8 @@ msgstr "și" msgid "" "Use the left field to do %(model_name)s lookups in the fields %(field_list)s." msgstr "" -"Folosește câmpul din stânga pentru a efectua căutări de %(model_name)s în câmpurile %(field_list)s." +"Folosește câmpul din stânga pentru a efectua căutări de %(model_name)s în " +"câmpurile %(field_list)s." #: db/models.py:15 msgid "created" @@ -66,7 +67,7 @@ msgstr "A se lăsa gol pentru activare imediată" msgid "keep empty for indefinite activation" msgstr "A se lăsa gol pentru activare nelimitată" -#: management/commands/show_urls.py:33 +#: management/commands/show_urls.py:34 #, python-format msgid "%s does not appear to be a urlpattern object" msgstr "%s nu pare să fie un obiect urlpattern" diff --git a/django_extensions/locale/ru/LC_MESSAGES/django.mo b/django_extensions/locale/ru/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..7a82089ff589b48a4fcf79c61c783542ab8af4d3 GIT binary patch literal 367 zcmYL^K~KUk7=|@^+R?Lz9=zd)9mWJJ5-KaW*luJD61`QZa|T<|6{A1Izvpl9TVmu* zpY+hDU*Gflmcl ziejGTSyY&<^8r*-)oZxhRSlGmk!Y5eF!n|Vyab63hLIkPW1u};B#zl7?a-J~6rnI5 zbvyjedlb9?l|#bGea=+cdCD^pN!}?ETkkESAq\n" "Language-Team: LANGUAGE \n" @@ -66,7 +66,7 @@ msgstr "" msgid "keep empty for indefinite activation" msgstr "" -#: management/commands/show_urls.py:33 +#: management/commands/show_urls.py:34 #, python-format msgid "%s does not appear to be a urlpattern object" msgstr "" diff --git a/django_extensions/locale/sk/LC_MESSAGES/django.mo b/django_extensions/locale/sk/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..7a82089ff589b48a4fcf79c61c783542ab8af4d3 GIT binary patch literal 367 zcmYL^K~KUk7=|@^+R?Lz9=zd)9mWJJ5-KaW*luJD61`QZa|T<|6{A1Izvpl9TVmu* zpY+hDU*Gflmcl ziejGTSyY&<^8r*-)oZxhRSlGmk!Y5eF!n|Vyab63hLIkPW1u};B#zl7?a-J~6rnI5 zbvyjedlb9?l|#bGea=+cdCD^pN!}?ETkkESAq\n" "Language-Team: LANGUAGE \n" @@ -66,7 +66,7 @@ msgstr "" msgid "keep empty for indefinite activation" msgstr "" -#: management/commands/show_urls.py:33 +#: management/commands/show_urls.py:34 #, python-format msgid "%s does not appear to be a urlpattern object" msgstr "" diff --git a/django_extensions/locale/tr/LC_MESSAGES/django.mo b/django_extensions/locale/tr/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..7a82089ff589b48a4fcf79c61c783542ab8af4d3 GIT binary patch literal 367 zcmYL^K~KUk7=|@^+R?Lz9=zd)9mWJJ5-KaW*luJD61`QZa|T<|6{A1Izvpl9TVmu* zpY+hDU*Gflmcl ziejGTSyY&<^8r*-)oZxhRSlGmk!Y5eF!n|Vyab63hLIkPW1u};B#zl7?a-J~6rnI5 zbvyjedlb9?l|#bGea=+cdCD^pN!}?ETkkESAq\n" "Language-Team: LANGUAGE \n" @@ -66,7 +66,7 @@ msgstr "" msgid "keep empty for indefinite activation" msgstr "" -#: management/commands/show_urls.py:33 +#: management/commands/show_urls.py:34 #, python-format msgid "%s does not appear to be a urlpattern object" msgstr "" diff --git a/django_extensions/locale/zh/LC_MESSAGES/django.mo b/django_extensions/locale/zh/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..7a82089ff589b48a4fcf79c61c783542ab8af4d3 GIT binary patch literal 367 zcmYL^K~KUk7=|@^+R?Lz9=zd)9mWJJ5-KaW*luJD61`QZa|T<|6{A1Izvpl9TVmu* zpY+hDU*Gflmcl ziejGTSyY&<^8r*-)oZxhRSlGmk!Y5eF!n|Vyab63hLIkPW1u};B#zl7?a-J~6rnI5 zbvyjedlb9?l|#bGea=+cdCD^pN!}?ETkkESAq\n" "Language-Team: LANGUAGE \n" @@ -66,7 +66,7 @@ msgstr "" msgid "keep empty for indefinite activation" msgstr "" -#: management/commands/show_urls.py:33 +#: management/commands/show_urls.py:34 #, python-format msgid "%s does not appear to be a urlpattern object" msgstr "" From aae719cc356b96e870b98625729eff24d5e785ff Mon Sep 17 00:00:00 2001 From: Jannis Leidel Date: Wed, 2 Feb 2011 11:39:52 +0100 Subject: [PATCH 81/91] Renamed invalid "zh" locale to "zh_CN". --- .../locale/{zh => zh_CN}/LC_MESSAGES/django.mo | Bin .../locale/{zh => zh_CN}/LC_MESSAGES/django.po | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename django_extensions/locale/{zh => zh_CN}/LC_MESSAGES/django.mo (100%) rename django_extensions/locale/{zh => zh_CN}/LC_MESSAGES/django.po (100%) diff --git a/django_extensions/locale/zh/LC_MESSAGES/django.mo b/django_extensions/locale/zh_CN/LC_MESSAGES/django.mo similarity index 100% rename from django_extensions/locale/zh/LC_MESSAGES/django.mo rename to django_extensions/locale/zh_CN/LC_MESSAGES/django.mo diff --git a/django_extensions/locale/zh/LC_MESSAGES/django.po b/django_extensions/locale/zh_CN/LC_MESSAGES/django.po similarity index 100% rename from django_extensions/locale/zh/LC_MESSAGES/django.po rename to django_extensions/locale/zh_CN/LC_MESSAGES/django.po From 8a41395915fd3168ec218a77bd2d50d3d89421ec Mon Sep 17 00:00:00 2001 From: Jannis Leidel Date: Wed, 2 Feb 2011 11:44:01 +0100 Subject: [PATCH 82/91] Added Transifex config file. --- .tx/config | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 .tx/config diff --git a/.tx/config b/.tx/config new file mode 100644 index 000000000..680d72f1f --- /dev/null +++ b/.tx/config @@ -0,0 +1,8 @@ +[django-extensions.master] +file_filter = django_extensions/locale//LC_MESSAGES/django.po +source_file = django_extensions/locale/en/LC_MESSAGES/django.po +source_lang = en + +[main] +host = https://www.transifex.net + From bba8b12c398e83a165318c7017bda437de84882f Mon Sep 17 00:00:00 2001 From: Jannis Leidel Date: Wed, 2 Feb 2011 11:44:33 +0100 Subject: [PATCH 83/91] Pulled updates from Transifex (again), fixing plural forms and other things. --- .../locale/cs/LC_MESSAGES/django.mo | Bin 367 -> 451 bytes .../locale/cs/LC_MESSAGES/django.po | 9 +++++---- .../locale/da/LC_MESSAGES/django.mo | Bin 797 -> 797 bytes .../locale/da/LC_MESSAGES/django.po | 2 +- .../locale/de/LC_MESSAGES/django.mo | Bin 1227 -> 1227 bytes .../locale/de/LC_MESSAGES/django.po | 2 +- .../locale/el/LC_MESSAGES/django.mo | Bin 1522 -> 1581 bytes .../locale/el/LC_MESSAGES/django.po | 10 ++++++---- .../locale/en/LC_MESSAGES/django.mo | Bin 367 -> 367 bytes .../locale/en/LC_MESSAGES/django.po | 2 +- .../locale/es/LC_MESSAGES/django.mo | Bin 1260 -> 1260 bytes .../locale/es/LC_MESSAGES/django.po | 2 +- .../locale/et/LC_MESSAGES/django.mo | Bin 398 -> 398 bytes .../locale/et/LC_MESSAGES/django.po | 2 +- .../locale/fr/LC_MESSAGES/django.mo | Bin 685 -> 743 bytes .../locale/fr/LC_MESSAGES/django.po | 10 ++++++---- .../locale/hu/LC_MESSAGES/django.mo | Bin 1242 -> 1242 bytes .../locale/hu/LC_MESSAGES/django.po | 2 +- .../locale/it/LC_MESSAGES/django.mo | Bin 1247 -> 1247 bytes .../locale/it/LC_MESSAGES/django.po | 2 +- .../locale/ja/LC_MESSAGES/django.mo | Bin 1397 -> 1397 bytes .../locale/ja/LC_MESSAGES/django.po | 2 +- .../locale/pl/LC_MESSAGES/django.mo | Bin 1236 -> 1236 bytes .../locale/pl/LC_MESSAGES/django.po | 4 ++-- .../locale/pt/LC_MESSAGES/django.mo | Bin 1262 -> 1262 bytes .../locale/pt/LC_MESSAGES/django.po | 2 +- .../locale/ro/LC_MESSAGES/django.mo | Bin 1245 -> 1352 bytes .../locale/ro/LC_MESSAGES/django.po | 11 +++++++---- .../locale/ru/LC_MESSAGES/django.mo | Bin 367 -> 498 bytes .../locale/ru/LC_MESSAGES/django.po | 10 ++++++---- .../locale/sk/LC_MESSAGES/django.mo | Bin 367 -> 451 bytes .../locale/sk/LC_MESSAGES/django.po | 9 +++++---- .../locale/tr/LC_MESSAGES/django.mo | Bin 367 -> 417 bytes .../locale/tr/LC_MESSAGES/django.po | 9 +++++---- .../locale/zh_CN/LC_MESSAGES/django.mo | Bin 367 -> 420 bytes .../locale/zh_CN/LC_MESSAGES/django.po | 9 +++++---- 36 files changed, 56 insertions(+), 43 deletions(-) diff --git a/django_extensions/locale/cs/LC_MESSAGES/django.mo b/django_extensions/locale/cs/LC_MESSAGES/django.mo index 7a82089ff589b48a4fcf79c61c783542ab8af4d3..c2635d7ec15efbe0746bc75210332ea5ddccf6a7 100644 GIT binary patch delta 167 zcmaFQbeMU93S;L)RSm(Eti-(ZeBIQFlGME7%>2CKi7}S?CPvx@h6V;)0sgu{sb!fU zab1_hl2j`NBLhQ2T>~Q^QZO{I0;vOniAPoi`v8q8O-u(WNiOCJ$SEyK%+YnrFUl>p zQphU+bBk?_trZ|lTa7$hTSH9+dj$gpD+P@_J6j_KH8q7i8(R~QpdnDuh>HOLX9F=; delta 83 zcmX@i{GMro3Zv;nRSo_CM`v$GcUOfl*Pvief4_-wmiop9+6IOO23!IDx, YEAR. # -#, fuzzy msgid "" msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" +"Project-Id-Version: django-extensions\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-02 11:30+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"POT-Creation-Date: 2011-02-02 11:42+0100\n" +"PO-Revision-Date: 2011-02-02 10:42+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Language: cs\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2\n" #: admin/__init__.py:121 msgid "and" diff --git a/django_extensions/locale/da/LC_MESSAGES/django.mo b/django_extensions/locale/da/LC_MESSAGES/django.mo index b9745078beb40e4dc86fffc466d0926f46aef931..1972c4f810fe8a171483e0d5b51ffd60e8c425dd 100644 GIT binary patch delta 15 WcmbQsHkWO~K1L=Jqs<2xV;KP|!36LC delta 15 WcmbQsHkWO~K1L>EgUtsRV;KP|t_1A> diff --git a/django_extensions/locale/da/LC_MESSAGES/django.po b/django_extensions/locale/da/LC_MESSAGES/django.po index 8cb0747fb..42e323e93 100644 --- a/django_extensions/locale/da/LC_MESSAGES/django.po +++ b/django_extensions/locale/da/LC_MESSAGES/django.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-02 11:30+0100\n" +"POT-Creation-Date: 2011-02-02 11:42+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/django_extensions/locale/de/LC_MESSAGES/django.mo b/django_extensions/locale/de/LC_MESSAGES/django.mo index 74c1c529d17bae28f7de86f08c43adcb53138fc7..6367477a60131e171dced2207a9dd526008a3235 100644 GIT binary patch delta 15 XcmX@jd75*>H6|t#qs=#%J~ILUGM@$- delta 15 XcmX@jd75*>H6|uwgUvUXJ~ILUGK>Zn diff --git a/django_extensions/locale/de/LC_MESSAGES/django.po b/django_extensions/locale/de/LC_MESSAGES/django.po index 11a021aae..81a35db99 100644 --- a/django_extensions/locale/de/LC_MESSAGES/django.po +++ b/django_extensions/locale/de/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-02 11:30+0100\n" +"POT-Creation-Date: 2011-02-02 11:42+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/django_extensions/locale/el/LC_MESSAGES/django.mo b/django_extensions/locale/el/LC_MESSAGES/django.mo index 5486ba5bd6b25580480b89d570435170626e6966..de23560b7e65bd11cb60ed170e0a0721bc4b953a 100644 GIT binary patch delta 300 zcmeywy_RRfl==cj28Jpo28Iv@28P$n3=BL#+JS|EK>$em0%;*29S5Y>0_j2^%?709 zSs56lfV3Kr2FW`DX(u2Z0;Ju5^mM5FJs>R%p?fHcrr25tt1&BBb; zjDjgyiFxVyx~UZej`FX{Y=Q3Fem>6jr7#bLG1^DX*rIuwDPu|BQW@=z%Y@uxc z1YACe#U;8SMTvREIf*6tMOF%4iFtXM#R@h+!+^9yPHJXKYK~rJURwTSedY!;AD|tj ziRr0U3aL3<0Xd~bi8;D%`9-^ND-HlzLM}28Jpo28Iv@28IpH3=BL#nw5otK>$b#0cjy1tqi2s0%8{TeFI#>&9p1msHsX*VDp1EfLni-EK-klqKRLFQZn(jfDn0%@SN4BQM1n}r#x z8TkVooxL61T@}JygMvN%{U*<6vWzq~&^9nMFyIRC*9}T7%Ph{!&(n2DEJ?Leh;(%f z()IP%b#YYi@VD~y)Q6951SF=PM$ diff --git a/django_extensions/locale/el/LC_MESSAGES/django.po b/django_extensions/locale/el/LC_MESSAGES/django.po index fcdbc3494..19355db51 100644 --- a/django_extensions/locale/el/LC_MESSAGES/django.po +++ b/django_extensions/locale/el/LC_MESSAGES/django.po @@ -5,15 +5,17 @@ # msgid "" msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" +"Project-Id-Version: django-extensions\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-02 11:30+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2011-02-02 11:42+0100\n" +"PO-Revision-Date: 2011-02-02 10:38+0000\n" +"Last-Translator: Jannis \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Language: el\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" #: admin/__init__.py:121 msgid "and" diff --git a/django_extensions/locale/en/LC_MESSAGES/django.mo b/django_extensions/locale/en/LC_MESSAGES/django.mo index 7a82089ff589b48a4fcf79c61c783542ab8af4d3..4ed8824d31092b07af760f84f33aad2e54a619d0 100644 GIT binary patch delta 12 UcmaFQ^qy(LR3;OniPLWY03zZAZ~y=R delta 12 UcmaFQ^qy(LR3>ACiPLWY03y`|Z2$lO diff --git a/django_extensions/locale/en/LC_MESSAGES/django.po b/django_extensions/locale/en/LC_MESSAGES/django.po index a7c881ca7..8fd54f325 100644 --- a/django_extensions/locale/en/LC_MESSAGES/django.po +++ b/django_extensions/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-02 11:30+0100\n" +"POT-Creation-Date: 2011-02-02 11:42+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/django_extensions/locale/es/LC_MESSAGES/django.mo b/django_extensions/locale/es/LC_MESSAGES/django.mo index e52ff0c297b101d87fde21d5f77739f10478e305..8ff3f06505ed1a813b53b4ce90f7a41f80d2b2eb 100644 GIT binary patch delta 15 WcmaFE`G#}DH6|t#\n" "Language-Team: LANGUAGE \n" diff --git a/django_extensions/locale/et/LC_MESSAGES/django.mo b/django_extensions/locale/et/LC_MESSAGES/django.mo index ede26961e2b3a5a6b47790d1090919e1d271810e..caac6b973f5d044ef484ca2035fbc750731cf248 100644 GIT binary patch delta 12 TcmeBU?qi;?k;%k(;^x}`8>0m5 delta 12 TcmeBU?qi;?k;&L#;^x}`8\n" "Language-Team: LANGUAGE \n" diff --git a/django_extensions/locale/fr/LC_MESSAGES/django.mo b/django_extensions/locale/fr/LC_MESSAGES/django.mo index 96a7109fba73d26f0a11927551ca9affa61e37f0..bc4e1cd7c3416b1264193e62b7fe6e494248a863 100644 GIT binary patch delta 263 zcmZ3>`kZw_j&D9A1A_?=voSC*EMa0`UqS z($|1AE0Deor5{e**)N!qm6(^FubWy?lA2eXnV(lYIh@fl+QeAfz|g>eE5KhjD77pT zB%$k)Sdwa`U}RuusB2&ZL<)umR>l_E20*~&lUQ7$8&Z^*SDcerl3!${;FXw{mszY} z12i2-JLIHhrljWRW#*;jPkzbRVCn<3v@|gtXkJb)Aw|*v delta 205 zcmaFPx|Vf9j;|>r1A_?=voSC*WHB)?umkBrAPqzel|TX{UIV1LfpjyF<^j_EK$-l2j{&NLR-oU0;7)7e@sTe=A>4?I?dgS1zB#;u77EqQt!7oWzp+A}a;AP#+%! gKSy6z1shjiM^7IIM;DhM*WlpEZy6gVFJ^K906>{7SpWb4 diff --git a/django_extensions/locale/fr/LC_MESSAGES/django.po b/django_extensions/locale/fr/LC_MESSAGES/django.po index 1e91460a4..276d6d19f 100644 --- a/django_extensions/locale/fr/LC_MESSAGES/django.po +++ b/django_extensions/locale/fr/LC_MESSAGES/django.po @@ -5,15 +5,17 @@ # msgid "" msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" +"Project-Id-Version: django-extensions\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-02 11:30+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2011-02-02 11:43+0100\n" +"PO-Revision-Date: 2011-02-02 10:38+0000\n" +"Last-Translator: Jannis \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Language: fr\n" +"Plural-Forms: nplurals=2; plural=(n > 1)\n" #: admin/__init__.py:121 msgid "and" diff --git a/django_extensions/locale/hu/LC_MESSAGES/django.mo b/django_extensions/locale/hu/LC_MESSAGES/django.mo index e0d8cba0f66508372a4ebcd36ac6e3aed8223807..2f98573ee24df46945ece336df0b4ad3a4b4c3e2 100644 GIT binary patch delta 15 Wcmcb`d5d$yH6|t#\n" "Language-Team: LANGUAGE \n" diff --git a/django_extensions/locale/it/LC_MESSAGES/django.mo b/django_extensions/locale/it/LC_MESSAGES/django.mo index 29757252a42d5f2480becd309268a9c6d672dfcc..c7fa82971b769f7fc126b8bef6d9f0d9e721d052 100644 GIT binary patch delta 15 Wcmcc5d7pE`H6|t#\n" "Language-Team: LANGUAGE \n" diff --git a/django_extensions/locale/ja/LC_MESSAGES/django.mo b/django_extensions/locale/ja/LC_MESSAGES/django.mo index 5e5feb804bf0ce0f19bf192693db25faf75194cd..95b488d8cfefb148f58a0efc5ea6ea9a1f526061 100644 GIT binary patch delta 15 Xcmey$^_6SGH6|t#\n" "Language-Team: LANGUAGE \n" diff --git a/django_extensions/locale/pl/LC_MESSAGES/django.mo b/django_extensions/locale/pl/LC_MESSAGES/django.mo index f385312695a0db85e981b26f32dd528396b4abde..bf43c6447f9f13dc72ccaf8d6776d4b5e8873852 100644 GIT binary patch delta 15 Xcmcb@d4+SsH6|t#, YEAR. -# +# #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-02 11:30+0100\n" +"POT-Creation-Date: 2011-02-02 11:43+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Zbigniew Siciarz \n" "Language-Team: LANGUAGE \n" diff --git a/django_extensions/locale/pt/LC_MESSAGES/django.mo b/django_extensions/locale/pt/LC_MESSAGES/django.mo index 308a2fcde78da5b1db99c5b84d3c5b40f3ce1b75..7f9a633edef85317e55941a9980ce13b04824d37 100644 GIT binary patch delta 15 WcmaFI`HpkLH6|t# delta 15 WcmaFI`HpkLH6|uwgUvUX#Fzjyrv-rk diff --git a/django_extensions/locale/pt/LC_MESSAGES/django.po b/django_extensions/locale/pt/LC_MESSAGES/django.po index 3842a73ff..eb6c68b4b 100644 --- a/django_extensions/locale/pt/LC_MESSAGES/django.po +++ b/django_extensions/locale/pt/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-02 11:30+0100\n" +"POT-Creation-Date: 2011-02-02 11:43+0100\n" "PO-Revision-Date: 2010-11-15 22:06-0300\n" "Last-Translator: Fernando Silva \n" "Language-Team: LANGUAGE \n" diff --git a/django_extensions/locale/ro/LC_MESSAGES/django.mo b/django_extensions/locale/ro/LC_MESSAGES/django.mo index e52b9444c3d798879ca179df82177bb1e2ea273a..00626a0d2b3b73aa10f15b57e2b0938610174fb2 100644 GIT binary patch delta 348 zcmXZWF-yZh6bJB^MA61Y5nNo}Vr?z4mqt-zqoN=v1*jPpqoUVPJwl}WTR!)JSI zb}gs~UkJB(;+@6Ui5b4x3+o~bHY)*P1BU=5ZO7R22EV%YsABYr%s7iY0uA ZcQ7p$dEC^wCdy?beI#q;(W_InegR6mOQrw- delta 258 zcmX@Xb(eF(lzLM}28Jpo1_pHo28IpH3=FJ5`Ua3@2h#U|GzXA=2Bfoq^m`x;L<~_Z z5Or}tniI%R0n!>kIuA%|0qN;b@k2lwh#1ZQ36QxLq4aei4YZbln}K1oFk>|%e}JR2 zx1+nOLYQk%u&2M@\n" +"POT-Creation-Date: 2011-02-02 11:43+0100\n" +"PO-Revision-Date: 2011-02-02 10:38+0000\n" +"Last-Translator: Jannis \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Language: ro\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " +"20)) ? 1 : 2)\n" #: admin/__init__.py:121 msgid "and" diff --git a/django_extensions/locale/ru/LC_MESSAGES/django.mo b/django_extensions/locale/ru/LC_MESSAGES/django.mo index 7a82089ff589b48a4fcf79c61c783542ab8af4d3..c02cf9cdb381556b53229deec431bb9661c807e6 100644 GIT binary patch delta 215 zcmaFQ^oeGEnfZCe6Jsp(O^me-3=Isp0{nG@Qp++y z;<_%0C8<^lMh1q4x&}r-q+n=ZWn!dl00a|{tg80`8dI8>4pdT9$`z1PT9lZh>y}@X zTWqC}R{-V~+nQJ_K$x}~d8&p6wzh@}YHA7~rh%fZp`n7kf`I~1IgoE>YXpgK7yuBKJAVKG delta 83 zcmeyw{GMro3Zv;nRSo_CM`v$GcUOfl*Pvief4_-wmiop9+6IOO23!IDx, YEAR. # -#, fuzzy msgid "" msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" +"Project-Id-Version: django-extensions\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-02 11:30+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"POT-Creation-Date: 2011-02-02 11:43+0100\n" +"PO-Revision-Date: 2011-02-02 10:42+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Language: ru\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" +"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n" #: admin/__init__.py:121 msgid "and" diff --git a/django_extensions/locale/sk/LC_MESSAGES/django.mo b/django_extensions/locale/sk/LC_MESSAGES/django.mo index 7a82089ff589b48a4fcf79c61c783542ab8af4d3..3fdc5cfe4eda47f04c59935fa3cdb444409e68ad 100644 GIT binary patch delta 167 zcmaFQbeMU93S;L)RSm(Eti-(ZeBIQFlGME7%>2CKi7}S?CdS$Zh6V;)0sgu{sb!fU zab1_hl2j`NBLhQ2T>~Q^QZO{IGBMIN0D_4}Rt5V2jVVn`2P!Gf<_gFuElSMMb;~cx zEw)m~D*$tgZH=uJAWU10JX>2sO$B=e0|hGujXXPBBLy`zg*+Qu6Of=GP|%2r0RU;( BF<<}y delta 83 zcmX@i{GMro3Zv;nRSo_CM`v$GcUOfl*Pvief4_-wmiop9+6IOO23!IDx, YEAR. # -#, fuzzy msgid "" msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" +"Project-Id-Version: django-extensions\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-02 11:30+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"POT-Creation-Date: 2011-02-02 11:43+0100\n" +"PO-Revision-Date: 2011-02-02 10:42+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Language: sk\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2\n" #: admin/__init__.py:121 msgid "and" diff --git a/django_extensions/locale/tr/LC_MESSAGES/django.mo b/django_extensions/locale/tr/LC_MESSAGES/django.mo index 7a82089ff589b48a4fcf79c61c783542ab8af4d3..800d1fe15493b61654bf4cf2d6de3229fa8614fa 100644 GIT binary patch delta 133 zcmaFQw2*m%3S;_2RSm(Eti-(ZeBIQFlGME7%>2CKi7}S?CdS$Zh6V;)0sgu{sb!fU zab1_hl2j`NBLhQ2T>~Q^QZO{IGBMIN0D_4}RvG#LjVVn`2P!Ek;tI$qElSMMb;~cx WEw)m~D*$tgZ4IpzAWT~WE(QP+QYtP0 delta 83 zcmZ3;{GMro3Zv;nRSo_CM`v$GcUOfl*Pvief4_-wmiop9+6IOO23!IDx, YEAR. # -#, fuzzy msgid "" msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" +"Project-Id-Version: django-extensions\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-02 11:30+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"POT-Creation-Date: 2011-02-02 11:43+0100\n" +"PO-Revision-Date: 2011-02-02 10:42+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Language: tr\n" +"Plural-Forms: nplurals=1; plural=0\n" #: admin/__init__.py:121 msgid "and" diff --git a/django_extensions/locale/zh_CN/LC_MESSAGES/django.mo b/django_extensions/locale/zh_CN/LC_MESSAGES/django.mo index 7a82089ff589b48a4fcf79c61c783542ab8af4d3..5276f0c2072f39d80b6a26ff4ad932940d186034 100644 GIT binary patch delta 136 zcmaFQw1jzr3S-tpRSm(Eti-(ZeBIQFlGME7%>2CKi7}S?CdS$Zh6V;)0sgu{sb!fU zab1_hl2j`NBLhQ2T>~Q^QZO{IGBMIN0D_4}R+;z!jVVn`2P&z`h, YEAR. # -#, fuzzy msgid "" msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" +"Project-Id-Version: django-extensions\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-02 11:30+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"POT-Creation-Date: 2011-02-02 11:43+0100\n" +"PO-Revision-Date: 2011-02-02 10:42+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Language: zh_CN\n" +"Plural-Forms: nplurals=1; plural=0\n" #: admin/__init__.py:121 msgid "and" From a2213e0b49ef967967a2fe8dbf02295958930746 Mon Sep 17 00:00:00 2001 From: trbs Date: Thu, 3 Feb 2011 14:14:17 +0100 Subject: [PATCH 84/91] fixes #70, fix database quoting patch by carbonXT --- django_extensions/jobs/daily/cache_cleanup.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/django_extensions/jobs/daily/cache_cleanup.py b/django_extensions/jobs/daily/cache_cleanup.py index 09f4e68ae..6924b6a68 100644 --- a/django_extensions/jobs/daily/cache_cleanup.py +++ b/django_extensions/jobs/daily/cache_cleanup.py @@ -12,6 +12,7 @@ class Job(DailyJob): def execute(self): from django.conf import settings + from django.db import connection import os if settings.CACHE_BACKEND.startswith('db://'): @@ -19,5 +20,6 @@ def execute(self): table_name = settings.CACHE_BACKEND[5:] cursor = connection.cursor() cursor.execute("DELETE FROM %s WHERE %s < UTC_TIMESTAMP()" % \ - (backend.quote_name(table_name), backend.quote_name('expires'))) + (connection.ops.quote_name(table_name), + connection.ops.quote_name('expires'))) transaction.commit_unless_managed() From 7e8ca6e9577fe3b6f3286d72dd54e2757352c203 Mon Sep 17 00:00:00 2001 From: trbs Date: Thu, 24 Feb 2011 13:36:36 +0100 Subject: [PATCH 85/91] fixed ticket #74 spelling error in help text, thanks to ChrisMatthews for fixing this. --- django_extensions/management/commands/graph_models.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/django_extensions/management/commands/graph_models.py b/django_extensions/management/commands/graph_models.py index eff388bbf..b7ce5a8f7 100644 --- a/django_extensions/management/commands/graph_models.py +++ b/django_extensions/management/commands/graph_models.py @@ -7,11 +7,11 @@ class Command(BaseCommand): make_option('--disable-fields', '-d', action='store_true', dest='disable_fields', help='Do not show the class member fields'), make_option('--group-models', '-g', action='store_true', dest='group_models', - help='Group models together respective to there application'), + help='Group models together respective to their application'), make_option('--all-applications', '-a', action='store_true', dest='all_applications', - help='Automaticly include all applications from INSTALLED_APPS'), + help='Automatically include all applications from INSTALLED_APPS'), make_option('--output', '-o', action='store', dest='outputfile', - help='Render output file. Type of output dependend on file extensions. Use png or jpg to render graph to image.'), + help='Render output file. Type of output dependent on file extensions. Use png or jpg to render graph to image.'), make_option('--layout', '-l', action='store', dest='layout', default='dot', help='Layout to be used by GraphViz for visualization. Layouts: circo dot fdp neato nop nop1 nop2 twopi'), make_option('--verbose-names', '-n', action='store_true', dest='verbose_names', From 55f887b3234ca662a53f1c0707d533ecfe50dec9 Mon Sep 17 00:00:00 2001 From: Kevin Tran Date: Sat, 5 Feb 2011 15:29:58 +0800 Subject: [PATCH 86/91] corrected spelling --- docs/sqldiff.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/sqldiff.rst b/docs/sqldiff.rst index 847a12560..e264c9bce 100644 --- a/docs/sqldiff.rst +++ b/docs/sqldiff.rst @@ -4,7 +4,7 @@ sqldiff :synopsis: Prints the ALTER TABLE statemens for the given appnames. Django command that scans all models for the given appnames and compares -there database schema with the real database tables. +their database schema with the real database tables. It indicates how columns in the database are different from the SQL that would be generated by Django. This command is not a database migration tool. Though From 3f653cb798141b880f9360235c46e1f6281c604b Mon Sep 17 00:00:00 2001 From: trbs Date: Thu, 24 Feb 2011 13:43:31 +0100 Subject: [PATCH 87/91] corrected another typo in help text --- django_extensions/management/commands/graph_models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/django_extensions/management/commands/graph_models.py b/django_extensions/management/commands/graph_models.py index b7ce5a8f7..c297c9952 100644 --- a/django_extensions/management/commands/graph_models.py +++ b/django_extensions/management/commands/graph_models.py @@ -17,7 +17,7 @@ class Command(BaseCommand): make_option('--verbose-names', '-n', action='store_true', dest='verbose_names', help='Use verbose_name of models and fields'), make_option('--language', '-L', action='store', dest='language', - help='Specify language used for verrbose_name localization'), + help='Specify language used for verbose_name localization'), ) help = ("Creates a GraphViz dot file for the specified app names. You can pass multiple app names and they will all be combined into a single model. Output is usually directed to a dot file.") From 1a4d7896ecb0b2a3dd4e23ed581ff6fdaba516fc Mon Sep 17 00:00:00 2001 From: trbs Date: Fri, 25 Feb 2011 16:45:12 +0100 Subject: [PATCH 88/91] added support for exclude models and exclude columns --- .../management/commands/graph_models.py | 4 ++ django_extensions/management/modelviz.py | 45 ++++++++++++++++--- 2 files changed, 42 insertions(+), 7 deletions(-) diff --git a/django_extensions/management/commands/graph_models.py b/django_extensions/management/commands/graph_models.py index c297c9952..0ef3d5704 100644 --- a/django_extensions/management/commands/graph_models.py +++ b/django_extensions/management/commands/graph_models.py @@ -18,6 +18,10 @@ class Command(BaseCommand): help='Use verbose_name of models and fields'), make_option('--language', '-L', action='store', dest='language', help='Specify language used for verbose_name localization'), + make_option('--exclude-columns', '-x', action='store', dest='exclude_columns', + help='Exclude specific column(s) from the graph'), + make_option('--exclude-models', '-X', action='store', dest='exclude_models', + help='Exclude specific model(s) from the graph'), ) help = ("Creates a GraphViz dot file for the specified app names. You can pass multiple app names and they will all be combined into a single model. Output is usually directed to a dot file.") diff --git a/django_extensions/management/modelviz.py b/django_extensions/management/modelviz.py index 1abb339e0..2ef0de5ed 100644 --- a/django_extensions/management/modelviz.py +++ b/django_extensions/management/modelviz.py @@ -30,6 +30,12 @@ -L, --language specify language used for verrbose_name localization + + -x, --exclude_columns + exclude specific column(s) from the graph. + + -X, --exclude_models + exclude specific model(s) from the graph. """ __version__ = "0.9" __svnid__ = "$Id$" @@ -156,7 +162,18 @@ def generate_dot(app_labels, **kwargs): verbose_names = kwargs.get('verbose_names', False) language = kwargs.get('language', None) if language is not None: - activate_language( language ) + activate_language(language) + exclude_columns = kwargs.get('exclude_columns', None) + exclude_models = kwargs.get('exclude_models', None) + + def skip_field(field): + if exclude_columns: + if verbose_names and field.verbose_name: + if field.verbose_name in exclude_columns: + return True + if field.name in exclude_columns: + return True + return False dot = head_template @@ -203,6 +220,8 @@ def getBasesAbstractFields(c): # consider given model name ? def consider(model_name): + if exclude_models and model_name in exclude_models: + return False return not include_models or model_name in include_models if not consider(appmodel._meta.object_name): @@ -211,7 +230,7 @@ def consider(model_name): if verbose_names and appmodel._meta.verbose_name: model['label'] = appmodel._meta.verbose_name else: - model['label'] = model['name'] + model['label'] = model['name'] # model attributes def add_attributes(field): @@ -219,7 +238,7 @@ def add_attributes(field): label = field.verbose_name else: label = field.name - + model['fields'].append({ 'name': field.name, 'label': label, @@ -227,13 +246,17 @@ def add_attributes(field): 'blank': field.blank, 'abstract': field in abstract_fields, }) - + for field in appmodel._meta.fields: + if skip_field(field): + continue add_attributes(field) if appmodel._meta.many_to_many: for field in appmodel._meta.many_to_many: + if skip_field(field): + continue add_attributes(field) # relations @@ -242,7 +265,7 @@ def add_relation(field, extras=""): label = field.verbose_name else: label = field.name - + _rel = { 'target_app': field.rel.to.__module__.replace('.','_'), 'target': field.rel.to.__name__, @@ -256,6 +279,8 @@ def add_relation(field, extras=""): model['relations'].append(_rel) for field in appmodel._meta.fields: + if skip_field(field): + continue if isinstance(field, OneToOneField): add_relation(field, '[arrowhead=none arrowtail=none]') elif isinstance(field, ForeignKey): @@ -263,6 +288,8 @@ def add_relation(field, extras=""): if appmodel._meta.many_to_many: for field in appmodel._meta.many_to_many: + if skip_field(field): + continue if isinstance(field, ManyToManyField): if (getattr(field, 'creates_table', False) or # django 1.1. (field.rel.through and field.rel.through._meta.auto_created)): # django 1.2 @@ -295,8 +322,8 @@ def add_relation(field, extras=""): def main(): try: - opts, args = getopt.getopt(sys.argv[1:], "hadgi:L:", - ["help", "all_applications", "disable_fields", "group_models", "include_models=", "verbose_names", "language="]) + opts, args = getopt.getopt(sys.argv[1:], "hadgi:L:x:X:", + ["help", "all_applications", "disable_fields", "group_models", "include_models=", "verbose_names", "language=", "exclude_columns=", "exclude_models="]) except getopt.GetoptError, error: print __doc__ sys.exit(error) @@ -318,6 +345,10 @@ def main(): kwargs['verbose_names'] = True if opt in ("-L", "--language"): kwargs['language'] = arg + if opt in ("-x", "--exclude_columns"): + kwargs['exclude_columns'] = arg.split(',') + if opt in ("-X", "--exclude_models"): + kwargs['exclude_models'] = arg.split(',') if not args and not kwargs.get('all_applications', False): print __doc__ From 31afe04ec784a477f43d7a70b065e8ae2c5a3af3 Mon Sep 17 00:00:00 2001 From: trbs Date: Tue, 1 Mar 2011 22:12:05 +0100 Subject: [PATCH 89/91] added support for loading exclude and include lists from file --- .../management/commands/graph_models.py | 4 +-- django_extensions/management/modelviz.py | 31 +++++++++++-------- 2 files changed, 20 insertions(+), 15 deletions(-) diff --git a/django_extensions/management/commands/graph_models.py b/django_extensions/management/commands/graph_models.py index 0ef3d5704..08caf85ea 100644 --- a/django_extensions/management/commands/graph_models.py +++ b/django_extensions/management/commands/graph_models.py @@ -19,9 +19,9 @@ class Command(BaseCommand): make_option('--language', '-L', action='store', dest='language', help='Specify language used for verbose_name localization'), make_option('--exclude-columns', '-x', action='store', dest='exclude_columns', - help='Exclude specific column(s) from the graph'), + help='Exclude specific column(s) from the graph. Can also load exclude list from file.'), make_option('--exclude-models', '-X', action='store', dest='exclude_models', - help='Exclude specific model(s) from the graph'), + help='Exclude specific model(s) from the graph. Can also load exclude list from file.'), ) help = ("Creates a GraphViz dot file for the specified app names. You can pass multiple app names and they will all be combined into a single model. Output is usually directed to a dot file.") diff --git a/django_extensions/management/modelviz.py b/django_extensions/management/modelviz.py index 2ef0de5ed..72576960d 100644 --- a/django_extensions/management/modelviz.py +++ b/django_extensions/management/modelviz.py @@ -51,7 +51,9 @@ "Bas van Oostveen ", ] -import getopt, sys +import os +import sys +import getopt from django.core.management import setup_environ @@ -105,14 +107,12 @@ color=olivedrab4 style="rounded" {% endif %} - - {% for model in models %} +{% for model in models %} {{ model.app_name }}_{{ model.name }} [label=< - {% if not disable_fields %} {% for field in model.fields %}
          {{ model.label }}{% if model.abstracts %}
          <{{ model.abstracts|join:"," }}>{% endif %}
          >] - {% endfor %} - +{% endfor %} {% if use_subgraph %} } {% endif %} @@ -154,17 +153,24 @@ } """ +def parse_file_or_list(arg): + if not arg: + return [] + if not ',' in arg and os.path.isfile(arg): + return [e.strip() for e in open(arg).readlines()] + return arg.split(',') + def generate_dot(app_labels, **kwargs): disable_fields = kwargs.get('disable_fields', False) - include_models = kwargs.get('include_models', []) + include_models = parse_file_or_list(kwargs.get('include_models', "")) all_applications = kwargs.get('all_applications', False) use_subgraph = kwargs.get('group_models', False) verbose_names = kwargs.get('verbose_names', False) language = kwargs.get('language', None) if language is not None: activate_language(language) - exclude_columns = kwargs.get('exclude_columns', None) - exclude_models = kwargs.get('exclude_models', None) + exclude_columns = parse_file_or_list(kwargs.get('exclude_columns', "")) + exclude_models = parse_file_or_list(kwargs.get('exclude_models', "")) def skip_field(field): if exclude_columns: @@ -247,7 +253,6 @@ def add_attributes(field): 'abstract': field in abstract_fields, }) - for field in appmodel._meta.fields: if skip_field(field): continue @@ -340,15 +345,15 @@ def main(): if opt in ("-g", "--group_models"): kwargs['group_models'] = True if opt in ("-i", "--include_models"): - kwargs['include_models'] = arg.split(',') + kwargs['include_models'] = arg if opt in ("-n", "--verbose-names"): kwargs['verbose_names'] = True if opt in ("-L", "--language"): kwargs['language'] = arg if opt in ("-x", "--exclude_columns"): - kwargs['exclude_columns'] = arg.split(',') + kwargs['exclude_columns'] = arg if opt in ("-X", "--exclude_models"): - kwargs['exclude_models'] = arg.split(',') + kwargs['exclude_models'] = arg if not args and not kwargs.get('all_applications', False): print __doc__ From 38227bd68e499a51b9269857bc73b2aef1517b39 Mon Sep 17 00:00:00 2001 From: trbs Date: Thu, 10 Mar 2011 01:41:31 +0100 Subject: [PATCH 90/91] PEP 8 love (for issue #80) --- django_extensions/__init__.py | 2 +- django_extensions/admin/__init__.py | 16 +- django_extensions/admin/widgets.py | 5 +- django_extensions/db/fields/__init__.py | 31 ++- django_extensions/db/fields/encrypted.py | 23 +- django_extensions/db/fields/json.py | 10 +- django_extensions/db/models.py | 4 + django_extensions/jobs/daily/cache_cleanup.py | 1 + django_extensions/jobs/daily/daily_cleanup.py | 1 + django_extensions/management/color.py | 1 + .../management/commands/clean_pyc.py | 13 +- .../management/commands/compile_pyc.py | 15 +- .../management/commands/create_app.py | 13 +- .../management/commands/create_command.py | 14 +- .../management/commands/create_jobs.py | 6 +- .../management/commands/describe_form.py | 20 +- .../management/commands/dumpscript.py | 76 +++--- .../management/commands/export_emails.py | 33 +-- .../management/commands/find_template.py | 2 + .../commands/generate_secret_key.py | 5 +- .../management/commands/graph_models.py | 3 +- .../management/commands/mail_debug.py | 5 +- .../management/commands/passwd.py | 1 + .../commands/print_user_for_session.py | 6 +- .../management/commands/reset_db.py | 50 ++-- .../management/commands/runjob.py | 13 +- .../management/commands/runjobs.py | 11 +- .../management/commands/runprofileserver.py | 9 +- .../management/commands/runscript.py | 23 +- .../management/commands/runserver_plus.py | 6 +- .../management/commands/set_fake_emails.py | 9 +- .../management/commands/set_fake_passwords.py | 7 +- .../management/commands/shell_plus.py | 4 +- .../management/commands/show_templatetags.py | 48 ++-- .../management/commands/show_urls.py | 10 +- .../management/commands/sqldiff.py | 140 ++++++----- .../management/commands/sync_media_s3.py | 30 ++- .../management/commands/syncdata.py | 35 ++- .../management/commands/unreferenced_files.py | 3 +- django_extensions/management/jobs.py | 27 +- django_extensions/management/modelviz.py | 21 +- django_extensions/management/utils.py | 1 + .../templatetags/highlighting.py | 9 +- .../templatetags/syntax_color.py | 23 +- .../templatetags/truncate_letters.py | 7 +- django_extensions/templatetags/widont.py | 15 +- django_extensions/tests/encrypted_fields.py | 24 +- django_extensions/tests/models.py | 9 +- django_extensions/utils/dia2django.py | 230 ++++++++++-------- django_extensions/utils/text.py | 3 +- django_extensions/utils/uuid.py | 53 ++-- setup.py | 48 ++-- 52 files changed, 656 insertions(+), 518 deletions(-) diff --git a/django_extensions/__init__.py b/django_extensions/__init__.py index 711109ae5..01a9ad603 100644 --- a/django_extensions/__init__.py +++ b/django_extensions/__init__.py @@ -2,7 +2,7 @@ VERSION = (0, 7, 'pre') # Dynamically calculate the version based on VERSION tuple -if len(VERSION)>2 and VERSION[2] is not None: +if len(VERSION) > 2 and VERSION[2] is not None: str_version = "%s.%s_%s" % VERSION[:3] else: str_version = "%s.%s" % VERSION[:2] diff --git a/django_extensions/admin/__init__.py b/django_extensions/admin/__init__.py index 63e2aca03..23d948242 100644 --- a/django_extensions/admin/__init__.py +++ b/django_extensions/admin/__init__.py @@ -1,13 +1,14 @@ # -# Autocomplete feature for admin panel +# Autocomplete feature for admin panel # -# Most of the code has been written by Jannis Leidel and was updated a bit -# for django_extensions. -# http://jannisleidel.com/2008/11/autocomplete-form-widget-foreignkey-model-fields/ +# Most of the code has been written by Jannis Leidel and was updated a bit +# for django_extensions. +# http://jannisleidel.com/2008/11/autocomplete-form-widget-foreignkey-model-fields/ # -# to_string_function, Satchmo adaptation and some comments added by emes -# (Michal Salaban) +# to_string_function, Satchmo adaptation and some comments added by emes +# (Michal Salaban) # + import operator from django.http import HttpResponse, HttpResponseNotFound from django.db import models @@ -20,11 +21,13 @@ from django_extensions.admin.widgets import ForeignKeySearchInput from django.conf import settings + if 'reversion' in settings.INSTALLED_APPS: from reversion.admin import VersionAdmin as ModelAdmin else: from django.contrib.admin import ModelAdmin + class ForeignKeyAutocompleteAdmin(ModelAdmin): """Admin class for models using the autocomplete feature. @@ -139,4 +142,3 @@ def formfield_for_dbfield(self, db_field, **kwargs): kwargs['help_text'] = help_text return super(ForeignKeyAutocompleteAdmin, self).formfield_for_dbfield(db_field, **kwargs) - diff --git a/django_extensions/admin/widgets.py b/django_extensions/admin/widgets.py index 77c53874e..2ee17e503 100644 --- a/django_extensions/admin/widgets.py +++ b/django_extensions/admin/widgets.py @@ -5,9 +5,10 @@ from django.template.loader import render_to_string from django.contrib.admin.widgets import ForeignKeyRawIdWidget + class ForeignKeySearchInput(ForeignKeyRawIdWidget): """ - A Widget for displaying ForeignKeys in an autocomplete search input + A Widget for displaying ForeignKeys in an autocomplete search input instead in a