ProjectDjangoTagsMenu/DjangoTagsMenuHandler.py

changeset 11
7e3e1ee102c5
parent 10
ef5694c0bf3a
child 12
8bc18ea91897
diff -r ef5694c0bf3a -r 7e3e1ee102c5 ProjectDjangoTagsMenu/DjangoTagsMenuHandler.py
--- a/ProjectDjangoTagsMenu/DjangoTagsMenuHandler.py	Mon Feb 10 19:21:55 2014 +0100
+++ b/ProjectDjangoTagsMenu/DjangoTagsMenuHandler.py	Wed Feb 12 19:54:24 2014 +0100
@@ -66,9 +66,7 @@
         mainMenu.addMenu(self.__initStaticMenu())
         mainMenu.addMenu(self.__initCommentsMenu())
         mainMenu.addMenu(self.__initInternationalizationMenu())
-        # TODO: add localization tags/filters menu
         mainMenu.addMenu(self.__initlocalizationMenu())
-        # TODO: add timezone tags/filters menu
         mainMenu.addMenu(self.__initTimezoneMenu())
     
     def __initTagsMenu(self):
@@ -603,8 +601,22 @@
         mainMenu.addSeparator()
         
         menu = QMenu(self.tr("Tags"), mainMenu)
+        menu.addAction(
+            self.tr("localize on - Activate Localization"),
+            lambda: self.__applyTemplate("localize_on"))
+        menu.addAction(
+            self.tr("localize off - Dectivate Localization"),
+            lambda: self.__applyTemplate("localize_off"))
+        mainMenu.addMenu(menu)
         
         menu = QMenu(self.tr("Filters"), mainMenu)
+        menu.addAction(
+            self.tr("localize - Output value localized"),
+            lambda: self.__applyTemplate("localize"))
+        menu.addAction(
+            self.tr("unlocalize - Output value non-localized"),
+            lambda: self.__applyTemplate("unlocalize"))
+        mainMenu.addMenu(menu)
         
         self.__localizationMenu = mainMenu
         return mainMenu
@@ -615,14 +627,45 @@
         
         @return generated menu (QMenu)
         """
-        menu = QMenu(self.tr("Timezone (tz)"))
-        menu.addAction(
+        mainMenu = QMenu(self.tr("Timezone (tz)"))
+        mainMenu.addAction(
             self.tr("Load Package"),
             lambda: self.__applyTemplate("loadtz"))
-        menu.addSeparator()
+        mainMenu.addSeparator()
         
-        self.__timezoneMenu = menu
-        return menu
+        menu = QMenu(self.tr("Tags"), mainMenu)
+        menu.addAction(
+            self.tr("localtime on - Activate date and time conversion"),
+            lambda: self.__applyTemplate("localtime_on"))
+        menu.addAction(
+            self.tr("localtime off - Deactivate date and time conversion"),
+            lambda: self.__applyTemplate("localtime_off"))
+        menu.addAction(
+            self.tr("timezone - Set timezone for date and time conversion"),
+            lambda: self.__applyTemplate("timezone_set"))
+        menu.addAction(
+            self.tr("timezone None - Unset timezone for date and time"
+                    " conversion"),
+            lambda: self.__applyTemplate("timezone_unset"))
+        menu.addAction(
+            self.tr("get_current_timezone - Get current time zone"),
+            lambda: self.__applyTemplate("get_current_timezone"))
+        mainMenu.addMenu(menu)
+        
+        menu = QMenu(self.tr("Filters"), mainMenu)
+        menu.addAction(
+            self.tr("localtime - Convert to local time zone"),
+            lambda: self.__applyTemplate("localtime"))
+        menu.addAction(
+            self.tr("utc - Convert to UTC"),
+            lambda: self.__applyTemplate("utc"))
+        menu.addAction(
+            self.tr("timezone - Convert to a specific time zone"),
+            lambda: self.__applyTemplate("timezone"))
+        mainMenu.addMenu(menu)
+        
+        self.__timezoneMenu = mainMenu
+        return mainMenu
     
     def __findTemplateTag(self):
         """
@@ -1469,21 +1512,69 @@
         elif tag == "bidi":
             templateText = '|bidi'
         
-        # TODO: add localization tags/filters
         ####################################################
         ## Localization                                   ##
         ####################################################
         
         elif tag == "loadl10n":
             templateText = '{% load l10n %}'
+        ## Tags ##
+        elif tag == "localize_on":
+            templateText = '{{% localize on %}}{0}{{% endlocalize %}}'.format(
+                selectedText)
+            replace = True
+        elif tag == "localize_off":
+            templateText = '{{% localize off %}}{0}{{% endlocalize %}}'.format(
+                selectedText)
+            replace = True
+        ## Filters ##
+        elif tag == "localize":
+            templateText = '|localize'
+        elif tag == "unlocalize":
+            templateText = '|unlocalize'
         
-        # TODO: add timezone tags/filters
         ####################################################
         ## Timezone                                       ##
         ####################################################
         
         elif tag == "loadtz":
             templateText = '{% load tz %}'
+        ## Tags ##
+        elif tag == "localtime_on":
+            templateText = (
+                '{{% localtime on %}}{0}{{% endlocaltime %}}'.format(
+                selectedText))
+            replace = True
+        elif tag == "localtime_off":
+            templateText = (
+                '{{% localtime off %}}{0}{{% endlocaltime %}}'.format(
+                selectedText))
+            replace = True
+        elif tag == "timezone_set":
+            from .TimezoneSelectionDialog import TimezoneSelectionDialog
+            timezone, ok = TimezoneSelectionDialog.getTimezone()
+            if ok:
+                templateText = (
+                    '{{% timezone "{0}" %}}{1}{{% endtimezone %}}'.format(
+                    timezone, selectedText))
+                replace = True
+        elif tag == "timezone_unset":
+            templateText = (
+                '{{% timezone None %}}{0}{{% endlocaltime %}}'.format(
+                selectedText))
+            replace = True
+        elif tag == "get_current_timezone":
+            templateText = '{% get_current_timezone as TIME_ZONE %}'
+        ## Filters ##
+        elif tag == "localtime":
+            templateText = '|localtime'
+        elif tag == "utc":
+            templateText = '|utc'
+        elif tag == "timezone":
+            from .TimezoneSelectionDialog import TimezoneSelectionDialog
+            timezone, ok = TimezoneSelectionDialog.getTimezone()
+            if ok:
+                templateText = '|timezone:"{0}"'.format(timezone)
         
         ####################################################
         ## Fallback: return just the tag name             ##

eric ide

mercurial