Fixed issue with company details if its name has unicode chars
Also: * fixed case of company name * inner decorator functions are renamed to simplify stack trace analysis Fixes bug 1202169 Change-Id: Idd7212b838fb3ae88228d513a24bf1d104d2b617
This commit is contained in:
parent
b3bfb7b7f2
commit
31101fa618
@ -80,7 +80,7 @@ class CachedMemoryStorage(MemoryStorage):
|
||||
|
||||
def get_record_ids_by_companies(self, companies):
|
||||
return self._get_record_ids_from_index(
|
||||
map(self._get_company_name, companies),
|
||||
map(self.get_original_company_name, companies),
|
||||
self.company_index)
|
||||
|
||||
def get_record_ids_by_launchpad_ids(self, launchpad_ids):
|
||||
@ -97,7 +97,7 @@ class CachedMemoryStorage(MemoryStorage):
|
||||
for i in record_ids:
|
||||
yield self.records[i]
|
||||
|
||||
def _get_company_name(self, company_name):
|
||||
def get_original_company_name(self, company_name):
|
||||
normalized = company_name.lower()
|
||||
if normalized not in self.company_name_mapping:
|
||||
raise Exception('Unknown company name %s' % company_name)
|
||||
|
@ -203,7 +203,7 @@
|
||||
return index + "=" + val;
|
||||
}).join("&");
|
||||
|
||||
return uri + "?" + str;
|
||||
return (str == "")? uri: uri + "?" + str;
|
||||
}
|
||||
|
||||
function make_std_options() {
|
||||
|
@ -142,7 +142,7 @@ def record_filter(ignore=None, use_default=True):
|
||||
|
||||
def decorator(f):
|
||||
@functools.wraps(f)
|
||||
def decorated_function(*args, **kwargs):
|
||||
def record_filter_decorated_function(*args, **kwargs):
|
||||
|
||||
vault = get_vault()
|
||||
memory_storage = vault['memory_storage']
|
||||
@ -188,7 +188,7 @@ def record_filter(ignore=None, use_default=True):
|
||||
kwargs['records'] = memory_storage.get_records(record_ids)
|
||||
return f(*args, **kwargs)
|
||||
|
||||
return decorated_function
|
||||
return record_filter_decorated_function
|
||||
|
||||
return decorator
|
||||
|
||||
@ -196,7 +196,7 @@ def record_filter(ignore=None, use_default=True):
|
||||
def aggregate_filter():
|
||||
def decorator(f):
|
||||
@functools.wraps(f)
|
||||
def decorated_function(*args, **kwargs):
|
||||
def aggregate_filter_decorated_function(*args, **kwargs):
|
||||
|
||||
metric_param = (flask.request.args.get('metric') or
|
||||
get_default('metric'))
|
||||
@ -211,7 +211,7 @@ def aggregate_filter():
|
||||
kwargs['metric_filter'] = metric_filter
|
||||
return f(*args, **kwargs)
|
||||
|
||||
return decorated_function
|
||||
return aggregate_filter_decorated_function
|
||||
|
||||
return decorator
|
||||
|
||||
@ -219,14 +219,14 @@ def aggregate_filter():
|
||||
def exception_handler():
|
||||
def decorator(f):
|
||||
@functools.wraps(f)
|
||||
def decorated_function(*args, **kwargs):
|
||||
def exception_handler_decorated_function(*args, **kwargs):
|
||||
try:
|
||||
return f(*args, **kwargs)
|
||||
except Exception as e:
|
||||
LOG.debug(e)
|
||||
flask.abort(404)
|
||||
|
||||
return decorated_function
|
||||
return exception_handler_decorated_function
|
||||
|
||||
return decorator
|
||||
|
||||
@ -234,7 +234,7 @@ def exception_handler():
|
||||
def templated(template=None):
|
||||
def decorator(f):
|
||||
@functools.wraps(f)
|
||||
def decorated_function(*args, **kwargs):
|
||||
def templated_decorated_function(*args, **kwargs):
|
||||
|
||||
vault = get_vault()
|
||||
template_name = template
|
||||
@ -270,7 +270,7 @@ def templated(template=None):
|
||||
|
||||
return flask.render_template(template_name, **ctx)
|
||||
|
||||
return decorated_function
|
||||
return templated_decorated_function
|
||||
|
||||
return decorator
|
||||
|
||||
@ -336,7 +336,8 @@ def contribution_details(records, limit=DEFAULT_RECORDS_LIMIT):
|
||||
@record_filter()
|
||||
def company_details(company, records):
|
||||
details = contribution_details(records)
|
||||
details['company'] = company
|
||||
details['company'] = (
|
||||
get_memory_storage().get_original_company_name(company))
|
||||
return details
|
||||
|
||||
|
||||
@ -486,7 +487,7 @@ def format_launchpad_module_link(module):
|
||||
|
||||
@app.template_filter('encode')
|
||||
def safe_encode(s):
|
||||
return urllib.quote_plus(s)
|
||||
return urllib.quote_plus(s.encode('utf-8'))
|
||||
|
||||
|
||||
@app.template_filter('link')
|
||||
|
Loading…
x
Reference in New Issue
Block a user