From 441145c65cc36ee3efd4c0881c96686ac2a1c6a3 Mon Sep 17 00:00:00 2001 From: dagnello Date: Thu, 12 Nov 2015 13:22:06 -0800 Subject: [PATCH] Removing translation to work with Django 1.7.x Django 1.7.x changed such that trying to use any of the translation functions prior to instantiating the wsgi app results in failures. Removing all translation until it can be handled properly with Django 1.7.x or greater. Change-Id: I0725e64001a8ae877e6e1422d5aa8ca81e2d1aa4 --- _70_cue_panel_group.py | 4 +- cuedashboard/messagebroker/panel.py | 3 +- cuedashboard/messagebroker/tables.py | 13 +++--- cuedashboard/messagebroker/tabs.py | 3 +- cuedashboard/messagebroker/views.py | 7 ++-- cuedashboard/messagebroker/workflows.py | 55 ++++++++++++------------- cuedashboard/tests/settings.py | 4 +- requirements.txt | 4 +- setup.cfg | 1 - test-requirements.txt | 2 + 10 files changed, 44 insertions(+), 52 deletions(-) diff --git a/_70_cue_panel_group.py b/_70_cue_panel_group.py index 4132a35..b36c873 100644 --- a/_70_cue_panel_group.py +++ b/_70_cue_panel_group.py @@ -1,5 +1,3 @@ -from django.utils.translation import ugettext_lazy as _ - PANEL_GROUP = 'messagebroker' -PANEL_GROUP_NAME = _('Message Broker') +PANEL_GROUP_NAME = 'Message Broker' PANEL_GROUP_DASHBOARD = 'project' diff --git a/cuedashboard/messagebroker/panel.py b/cuedashboard/messagebroker/panel.py index 6c2a024..4b684ce 100644 --- a/cuedashboard/messagebroker/panel.py +++ b/cuedashboard/messagebroker/panel.py @@ -16,11 +16,10 @@ # Copyright [2014] Hewlett-Packard Development Company, L.P. # limitations under the License. -from django.utils.translation import ugettext_lazy as _ import horizon class CuePanel(horizon.Panel): - name = _("Clusters") + name = "Clusters" slug = 'messagebroker' permissions = ('openstack.services.message-broker',) diff --git a/cuedashboard/messagebroker/tables.py b/cuedashboard/messagebroker/tables.py index a14afbb..8968ad5 100644 --- a/cuedashboard/messagebroker/tables.py +++ b/cuedashboard/messagebroker/tables.py @@ -18,14 +18,13 @@ from cuedashboard import api -from django.utils.translation import ugettext as _ from django.utils.translation import ungettext_lazy from horizon import tables class CreateCluster(tables.LinkAction): name = "create" - verbose_name = _("Create Cluster") + verbose_name = "Create Cluster" url = "horizon:project:messagebroker:create" classes = ("ajax-modal", "btn-create") @@ -72,15 +71,15 @@ def format_endpoints(cluster): class ClusterTable(tables.DataTable): name = tables.Column("name", - verbose_name=_("Name"), + verbose_name="Name", link='horizon:project:messagebroker:detail') - size = tables.Column("size", verbose_name=_("Cluster Size"),) - endpoint = tables.Column(format_endpoints, verbose_name=_("Endpoints")) - status = tables.Column("status", verbose_name=_("Status")) + size = tables.Column("size", verbose_name="Cluster Size",) + endpoint = tables.Column(format_endpoints, verbose_name="Endpoints") + status = tables.Column("status", verbose_name="Status") class Meta: name = "clusters" - verbose_name = _("Clusters") + verbose_name = "Clusters" row_class = UpdateRow table_actions = (CreateCluster, DeleteCluster,) row_actions = (DeleteCluster,) diff --git a/cuedashboard/messagebroker/tabs.py b/cuedashboard/messagebroker/tabs.py index 1432761..810ee8e 100644 --- a/cuedashboard/messagebroker/tabs.py +++ b/cuedashboard/messagebroker/tabs.py @@ -14,12 +14,11 @@ # Copyright [2014] Hewlett-Packard Development Company, L.P. # limitations under the License. -from django.utils.translation import ugettext_lazy as _ from horizon import tabs class OverviewTab(tabs.Tab): - name = _("Overview") + name = "Overview" slug = "overview" template_name = "project/messagebroker/_detail_overview.html" diff --git a/cuedashboard/messagebroker/views.py b/cuedashboard/messagebroker/views.py index 96f9ce7..0e9513e 100644 --- a/cuedashboard/messagebroker/views.py +++ b/cuedashboard/messagebroker/views.py @@ -22,7 +22,6 @@ from cuedashboard.messagebroker.tabs import ClusterDetailTabs from cuedashboard.messagebroker import workflows as cue_workflows from django.core.urlresolvers import reverse -from django.utils.translation import ugettext_lazy as _ from horizon import tables from horizon import tabs as horizon_tabs from horizon.utils import memoized @@ -32,7 +31,7 @@ from horizon import workflows class IndexView(tables.DataTableView): table_class = ClusterTable template_name = 'messagebroker/index.html' - page_title = _("Clusters") + page_title = "Clusters" def get_data(self): return api.clusters_list(self.request) @@ -41,13 +40,13 @@ class IndexView(tables.DataTableView): class CreateClusterView(workflows.WorkflowView): workflow_class = cue_workflows.CreateCluster template_name = "messagebroker/launch.html" - page_title = _("Create Cluster") + page_title = "Create Cluster" class DetailView(horizon_tabs.TabbedTableView): tab_group_class = ClusterDetailTabs template_name = 'messagebroker/detail.html' - page_title = _("Cluster Details: {{ cluster.name }}") + page_title = "Cluster Details: {{ cluster.name }}" def get_context_data(self, **kwargs): context = super(DetailView, self).get_context_data(**kwargs) diff --git a/cuedashboard/messagebroker/workflows.py b/cuedashboard/messagebroker/workflows.py index 75b9dda..c554d5c 100644 --- a/cuedashboard/messagebroker/workflows.py +++ b/cuedashboard/messagebroker/workflows.py @@ -18,7 +18,6 @@ import logging from django.conf import settings from django.core.urlresolvers import reverse from django.forms import ValidationError -from django.utils.translation import ugettext_lazy as _ from horizon import exceptions from horizon import forms from horizon.utils import memoized @@ -38,12 +37,12 @@ LOG = logging.getLogger(__name__) class PasswordMixin(forms.SelfHandlingForm): password = forms.RegexField( - label=_("Password"), + label="Password", widget=forms.PasswordInput(render_value=False), regex=validators.password_validator(), error_messages={'invalid': validators.password_validator_msg()}) confirm_password = forms.CharField( - label=_("Confirm Password"), + label="Confirm Password", widget=forms.PasswordInput(render_value=False)) no_autocomplete = True @@ -52,33 +51,33 @@ class PasswordMixin(forms.SelfHandlingForm): data = super(forms.Form, self).clean() if 'password' in data: if data['password'] != data.get('confirm_password', None): - raise ValidationError(_('Passwords do not match.')) + raise ValidationError('Passwords do not match.') return data class SetInstanceDetailsAction(workflows.Action): - name = forms.CharField(max_length=80, label=_("Cluster Name")) - flavor = forms.ChoiceField(label=_("Flavor"), - help_text=_("The amount of RAM and CPU included" - " in each node of the cluster.")) - size = forms.IntegerField(label=_("Cluster Size"), + name = forms.CharField(max_length=80, label="Cluster Name") + flavor = forms.ChoiceField(label="Flavor", + help_text="The amount of RAM and CPU included" + " in each node of the cluster.") + size = forms.IntegerField(label="Cluster Size", min_value=1, initial=1, - help_text=_("The number of nodes that make up " - "the cluster.")) - network = forms.ChoiceField(label=_("Network"), - help_text=_("Network to attach to the " - "cluster.")) - username = forms.CharField(max_length=80, label=_("User Name"), - help_text=_("User name for logging into the " - "RabbitMQ Management UI.")) + help_text="The number of nodes that make up " + "the cluster.") + network = forms.ChoiceField(label="Network", + help_text="Network to attach to the " + "cluster.") + username = forms.CharField(max_length=80, label="User Name", + help_text="User name for logging into the " + "RabbitMQ Management UI.") password = forms.RegexField( - label=_("Password"), + label="Password", widget=forms.PasswordInput(render_value=False), regex=validators.password_validator(), error_messages={'invalid': validators.password_validator_msg()}) confirm_password = forms.CharField( - label=_("Confirm Password"), + label="Confirm Password", widget=forms.PasswordInput(render_value=False)) def clean(self): @@ -86,11 +85,11 @@ class SetInstanceDetailsAction(workflows.Action): data = super(forms.Form, self).clean() if 'password' in data: if data['password'] != data.get('confirm_password', None): - raise ValidationError(_('Passwords do not match.')) + raise ValidationError('Passwords do not match.') return data class Meta(object): - name = _("Details") + name = "Details" help_text_template = "messagebroker/_launch_details_help.html" @memoized.memoized_method @@ -101,7 +100,7 @@ class SetInstanceDetailsAction(workflows.Action): LOG.exception("Exception while obtaining flavors list") redirect = reverse("horizon:project:messagebroker:index") exceptions.handle(request, - _('Unable to obtain flavors.'), + 'Unable to obtain flavors.', redirect=redirect) def populate_flavor_choices(self, request, context): @@ -120,7 +119,7 @@ class SetInstanceDetailsAction(workflows.Action): except Exception: network_list = [] exceptions.handle(request, - _('Unable to retrieve networks.')) + 'Unable to retrieve networks.') return network_list def populate_network_choices(self, request, context): @@ -135,7 +134,7 @@ class SetInstanceDetailsAction(workflows.Action): except Exception: exceptions.handle(self.request, - _("Unable to retrieve quota information.")) + "Unable to retrieve quota information.") return super(SetInstanceDetailsAction, self).get_help_text(extra) @@ -146,10 +145,10 @@ class SetClusterDetails(workflows.Step): class CreateCluster(workflows.Workflow): slug = "create_cluster" - name = _("Create Cluster") - finalize_button_name = _("Create") - success_message = _('Created cluster named "%(name)s".') - failure_message = _('Unable to create cluster named "%(name)s".') + name = "Create Cluster" + finalize_button_name = "Create" + success_message = 'Created cluster named "%(name)s".' + failure_message = 'Unable to create cluster named "%(name)s".' success_url = "horizon:project:messagebroker:index" default_steps = (SetClusterDetails,) diff --git a/cuedashboard/tests/settings.py b/cuedashboard/tests/settings.py index c49ea35..59043ab 100644 --- a/cuedashboard/tests/settings.py +++ b/cuedashboard/tests/settings.py @@ -15,8 +15,6 @@ import os -from django.utils.translation import ugettext as _ - from horizon.test.settings import * # noqa from horizon.utils import secret_key as secret_key_utils from openstack_dashboard import exceptions @@ -62,7 +60,7 @@ HORIZON_CONFIG = { 'default_dashboard': 'project', "password_validator": { "regex": '^.{8,18}$', - "help_text": _("Password must be between 8 and 18 characters.") + "help_text": "Password must be between 8 and 18 characters." }, 'user_home': None, 'help_url': "http://docs.openstack.org", diff --git a/requirements.txt b/requirements.txt index a91dd77..47915e3 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,2 @@ -Django>=1.4,<1.7 --e git+https://github.com/openstack/python-cueclient.git#egg=python-cueclient \ No newline at end of file +Django<1.8,>=1.4.2 +django-openstack-auth>=1.2.0,<2.0.0 diff --git a/setup.cfg b/setup.cfg index c0763e5..8695962 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,6 +1,5 @@ [metadata] name = cuedashboard -version = 1 summary = Cue Dashboard description-file = README.rst license = Apache Software License diff --git a/test-requirements.txt b/test-requirements.txt index a170e89..b8bffcd 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -10,4 +10,6 @@ django_nose sphinx>=1.1.2,!=1.2.0,<1.3 oslosphinx>=2.2.0 # Apache-2.0 +-e git+https://github.com/openstack/python-cueclient.git#egg=python-cueclient http://tarballs.openstack.org/horizon/horizon-master.tar.gz#egg=horizon +