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 ##