Correct page title for complementary projects

Change-Id: I38020bac15a30ebcf817617dd82cdbff089d3494
This commit is contained in:
Ilya Shakhat 2015-04-06 16:15:19 +03:00
parent fec25e9404
commit ec6004149d
3 changed files with 35 additions and 10 deletions

View File

@ -414,6 +414,7 @@ def templated(template=None, return_code=200):
project_type = parameters.get_single_parameter(
kwargs, 'project_type', use_default=True)
ctx['project_type'] = project_type
ctx['project_type_inst'] = vault.get_project_type(project_type)
ctx['release'] = parameters.get_single_parameter(
kwargs, 'release', use_default=True)
@ -436,6 +437,7 @@ def templated(template=None, return_code=200):
ctx['user_id'])
ctx['page_title'] = helpers.make_page_title(
ctx['project_type_inst'],
ctx.get('release'), ctx.get('module_inst'),
ctx.get('company_original'), ctx.get('user_inst'))

View File

@ -274,7 +274,10 @@ def make_commit_message(record):
return s
def make_page_title(release, module_inst, company, user_inst):
def make_page_title(project_type_inst, release, module_inst, company,
user_inst):
is_openstack = (project_type_inst['id'] in
['openstack', 'stackforge', 'all', 'integrated', 'other'])
if company or user_inst:
if user_inst:
s = user_inst['user_name']
@ -283,12 +286,19 @@ def make_page_title(release, module_inst, company, user_inst):
else:
s = company
else:
s = 'OpenStack community'
if is_openstack:
s = 'OpenStack community'
else:
s = project_type_inst['title'] + ' community'
s += ' contribution'
if module_inst:
s += ' to %s' % module_inst['module_group_name']
if release != 'all':
s += ' in %s release' % release.capitalize()
if is_openstack:
if release != 'all':
s += ' in %s release' % release.capitalize()
else:
s += ' in all releases'
else:
s += ' in all releases'
if release != 'all':
s += ' during OpenStack %s release' % release.capitalize()
return s

View File

@ -87,23 +87,36 @@ Implements Blueprint ''' + (
@mock.patch('stackalytics.dashboard.vault.get_vault')
@mock.patch('stackalytics.dashboard.vault.get_user_from_runtime_storage')
def test_make_page_title(self, user_patch, vault_patch):
def _pt(id, title=None):
return dict(id=id.lower(), title=title or id)
user_inst = {'user_name': 'John Doe'}
module_inst = {'module_group_name': 'neutron'}
self.assertEqual('OpenStack community contribution in all releases',
helpers.make_page_title('all', None, None, None))
helpers.make_page_title(
_pt('OpenStack'), 'all', None, None, None))
self.assertEqual('OpenStack community contribution in Havana release',
helpers.make_page_title('Havana', None, None, None))
helpers.make_page_title(
_pt('OpenStack'), 'Havana', None, None, None))
self.assertEqual('Mirantis contribution in Havana release',
helpers.make_page_title(
'Havana', None, 'Mirantis', None))
_pt('Stackforge'), 'Havana', None, 'Mirantis',
None))
self.assertEqual('John Doe contribution in Havana release',
helpers.make_page_title(
'Havana', None, None, user_inst))
_pt('all'), 'Havana', None, None, user_inst))
self.assertEqual(
'John Doe (Mirantis) contribution to neutron in Havana release',
helpers.make_page_title(
'Havana', module_inst, 'Mirantis', user_inst))
_pt('all'), 'Havana', module_inst, 'Mirantis', user_inst))
self.assertEqual('Ansible community contribution during OpenStack '
'Havana release',
helpers.make_page_title(
_pt('Ansible'), 'Havana', None, None, None))
self.assertEqual('Docker community contribution',
helpers.make_page_title(
_pt('Docker'), 'all', None, None, None))
@mock.patch('flask.request')
@mock.patch('stackalytics.dashboard.parameters.get_default')