|
41 |
import time |
41 |
import time |
42 |
import json |
42 |
import json |
43 |
import traceback |
43 |
import traceback |
|
|
44 |
from struct import error as StructError |
44 |
|
45 |
|
45 |
import ldap.filter |
46 |
import ldap.filter |
46 |
|
47 |
|
Lines 386-391
class Processor(signals.Provider):
|
Link Here
|
---|
|
386 |
CORE.warn('Failed to open UDM user object %s: %s' % (self.__user_dn, e)) |
387 |
CORE.warn('Failed to open UDM user object %s: %s' % (self.__user_dn, e)) |
387 |
return None |
388 |
return None |
388 |
|
389 |
|
|
|
390 |
def _translate(self, message, translationId): |
391 |
try: |
392 |
return self.i18n._(message, translationId) |
393 |
except StructError: |
394 |
CORE.error('Corrupted .mo file detected for translation domain %r' % (translationId,)) |
395 |
return message |
396 |
|
389 |
def handle_request_get(self, msg): |
397 |
def handle_request_get(self, msg): |
390 |
"""Handles a GET request. The following possible variants are supported: |
398 |
"""Handles a GET request. The following possible variants are supported: |
391 |
|
399 |
|
Lines 442-453
class Processor(signals.Provider):
|
Link Here
|
---|
|
442 |
modules.append({ |
450 |
modules.append({ |
443 |
'id': id, |
451 |
'id': id, |
444 |
'flavor': flavor.id, |
452 |
'flavor': flavor.id, |
445 |
'name': self.i18n._(flavor.name, translationId), |
453 |
'name': self._translate(flavor.name, translationId), |
446 |
'description': self.i18n._(flavor.description, translationId), |
454 |
'description': self._translate(flavor.description, translationId), |
447 |
'icon': flavor.icon, |
455 |
'icon': flavor.icon, |
448 |
'categories': (flavor.categories or module.categories) + favcat, |
456 |
'categories': (flavor.categories or module.categories) + favcat, |
449 |
'priority': flavor.priority, |
457 |
'priority': flavor.priority, |
450 |
'keywords': list(set(flavor.keywords + [self.i18n._(keyword, translationId) for keyword in flavor.keywords])) |
458 |
'keywords': list(set(flavor.keywords + [self._translate(keyword, translationId) for keyword in flavor.keywords])) |
451 |
}) |
459 |
}) |
452 |
else: |
460 |
else: |
453 |
favcat = [] |
461 |
favcat = [] |
Lines 455-466
class Processor(signals.Provider):
|
Link Here
|
---|
|
455 |
favcat.append('_favorites_') |
463 |
favcat.append('_favorites_') |
456 |
modules.append({ |
464 |
modules.append({ |
457 |
'id': id, |
465 |
'id': id, |
458 |
'name': self.i18n._(module.name, id), |
466 |
'name': self._translate(module.name, id), |
459 |
'description': self.i18n._(module.description, id), |
467 |
'description': self._translate(module.description, id), |
460 |
'icon': module.icon, |
468 |
'icon': module.icon, |
461 |
'categories': module.categories + favcat, |
469 |
'categories': module.categories + favcat, |
462 |
'priority': module.priority, |
470 |
'priority': module.priority, |
463 |
'keywords': list(set(module.keywords + [self.i18n._(keyword, id) for keyword in module.keywords])) |
471 |
'keywords': list(set(module.keywords + [self._translate(keyword, id) for keyword in module.keywords])) |
464 |
}) |
472 |
}) |
465 |
res.body['modules'] = modules |
473 |
res.body['modules'] = modules |
466 |
CORE.info('Modules: %s' % (modules,)) |
474 |
CORE.info('Modules: %s' % (modules,)) |
Lines 475-481
class Processor(signals.Provider):
|
Link Here
|
---|
|
475 |
'id': catID, |
483 |
'id': catID, |
476 |
'icon': category.icon, |
484 |
'icon': category.icon, |
477 |
'color': category.color, |
485 |
'color': category.color, |
478 |
'name': self.i18n._(category.name, category.domain).format(**_ucr_dict), |
486 |
'name': self._translate(category.name, category.domain).format(**_ucr_dict), |
479 |
'priority': category.priority |
487 |
'priority': category.priority |
480 |
}) |
488 |
}) |
481 |
res.body['categories'] = categories |
489 |
res.body['categories'] = categories |