def admin_editmessage(self, message, language, translation, start, skey, rkey, query, REQUEST=None): """ """ ob = self.get_message_catalog() ob.edit_message(message_decode(message), language, translation) if REQUEST: self.setSessionInfoTrans(MESSAGE_SAVEDCHANGES, date=self.utGetTodayDate()) REQUEST.RESPONSE.redirect('%s/admin_messages_html?msg=%s&start=%s&skey=%s&rkey=%s&query=%s&trans_lang=%s&saved=True' % \ (self.absolute_url(), quote(message), start, skey, rkey, query, language))
def manage_delMessage(self, message, REQUEST, RESPONSE): """Deletes a message in catalog""" message_key = message_decode(message) self.get_message_catalog().del_message(message_key) url = get_url(REQUEST.URL1 + '/manage_messages', REQUEST['batch_start'], REQUEST['batch_size'], REQUEST['regex'], REQUEST.get('lang', ''), REQUEST.get('empty', 0), manage_tabs_message=self.get_translation(u'Saved changes.')) RESPONSE.redirect(url)
def manage_delMessage(self, message, REQUEST, RESPONSE): """Deletes a message in catalog""" message_key = message_decode(message) self.get_message_catalog().del_message(message_key) url = get_url( REQUEST.URL1 + '/manage_messages', REQUEST['batch_start'], REQUEST['batch_size'], REQUEST['regex'], REQUEST.get('lang', ''), REQUEST.get('empty', 0), manage_tabs_message=self.get_translation(u'Saved changes.')) RESPONSE.redirect(url)
def manage_editMessage(self, message, language, translation, REQUEST, RESPONSE): """Modifies a message. """ message_encoded = message message_key = message_decode(message_encoded) self.get_message_catalog()\ .edit_message(message_key, language, translation) url = get_url(REQUEST.URL1 + '/manage_messages', REQUEST['batch_start'], REQUEST['batch_size'], REQUEST['regex'], REQUEST.get('lang', ''), REQUEST.get('empty', 0), msg=message_encoded, manage_tabs_message=self.get_translation(u'Saved changes.')) RESPONSE.redirect(url)
def manage_editMessage(self, message, language, translation, REQUEST, RESPONSE): """Modifies a message. """ message_encoded = message message_key = message_decode(message_encoded) self.get_message_catalog()\ .edit_message(message_key, language, translation) url = get_url( REQUEST.URL1 + '/manage_messages', REQUEST['batch_start'], REQUEST['batch_size'], REQUEST['regex'], REQUEST.get('lang', ''), REQUEST.get('empty', 0), msg=message_encoded, manage_tabs_message=self.get_translation(u'Saved changes.')) RESPONSE.redirect(url)
def get_namespace(self, REQUEST): """For the management interface, allows to filter the messages to show. """ # Check whether there are languages or not languages = self.get_languages_mapping() if not languages: return {} # Input batch_start = REQUEST.get('batch_start', 0) batch_size = REQUEST.get('batch_size', 15) empty = REQUEST.get('empty', 0) regex = REQUEST.get('regex', '') message = REQUEST.get('msg', None) # Build the namespace namespace = {} namespace['batch_size'] = batch_size namespace['empty'] = empty namespace['regex'] = regex # The language lang = REQUEST.get('lang', None) or languages[0]['code'] namespace['language'] = lang # Filter the messages query = regex.strip() try: query = re.compile(query) except: query = re.compile('') messages = [] for m, t in self.get_message_catalog().messages(): if query.search(m) and (not empty or not t.get(lang, '').strip()): messages.append(m) messages.sort() # How many messages n = len(messages) namespace['n_messages'] = n # Calculate the start while batch_start >= n: batch_start = batch_start - batch_size if batch_start < 0: batch_start = 0 namespace['batch_start'] = batch_start # Select the batch to show batch_end = batch_start + batch_size messages = messages[batch_start:batch_end] # Batch links namespace['previous'] = get_url(REQUEST.URL, batch_start - batch_size, batch_size, regex, lang, empty) namespace['next'] = get_url(REQUEST.URL, batch_start + batch_size, batch_size, regex, lang, empty) # Get the message message_encoded = None #translations = {} translation = None if message is None: if messages: message = messages[0] translation = self.get_message_catalog()\ .gettext(message, lang, '') message_encoded = message_encode(message) else: message_encoded = message message = message_decode(message_encoded) #translations = self.get_translations(message) translation = self.get_message_catalog().gettext(message, lang, '') namespace['message'] = message namespace['message_encoded'] = message_encoded #namespace['translations'] = translations namespace['translation'] = translation # Calculate the current message namespace['messages'] = [] for x in messages: x_encoded = message_encode(x) url = get_url( REQUEST.URL, batch_start, batch_size, regex, lang, empty, msg=x_encoded) namespace['messages'].append({ 'message': x, 'message_encoded': x_encoded, 'current': x == message, 'url': url}) # The languages for language in languages: code = language['code'] language['name'] = self.get_translation(unicode(language['name'])) language['url'] = get_url(REQUEST.URL, batch_start, batch_size, regex, code, empty, msg=message_encoded) namespace['languages'] = languages return namespace
def get_namespace(self, REQUEST): """For the management interface, allows to filter the messages to show. """ # Check whether there are languages or not languages = self.get_languages_mapping() if not languages: return {} # Input batch_start = REQUEST.get('batch_start', 0) batch_size = REQUEST.get('batch_size', 15) empty = REQUEST.get('empty', 0) regex = REQUEST.get('regex', '') message = REQUEST.get('msg', None) # Build the namespace namespace = {} namespace['batch_size'] = batch_size namespace['empty'] = empty namespace['regex'] = regex # The language lang = REQUEST.get('lang', None) or languages[0]['code'] namespace['language'] = lang # Filter the messages query = regex.strip() try: query = re.compile(query) except: query = re.compile('') messages = [] for m, t in self.get_message_catalog().messages(): if query.search(m) and (not empty or not t.get(lang, '').strip()): messages.append(m) messages.sort() # How many messages n = len(messages) namespace['n_messages'] = n # Calculate the start while batch_start >= n: batch_start = batch_start - batch_size if batch_start < 0: batch_start = 0 namespace['batch_start'] = batch_start # Select the batch to show batch_end = batch_start + batch_size messages = messages[batch_start:batch_end] # Batch links namespace['previous'] = get_url(REQUEST.URL, batch_start - batch_size, batch_size, regex, lang, empty) namespace['next'] = get_url(REQUEST.URL, batch_start + batch_size, batch_size, regex, lang, empty) # Get the message message_encoded = None #translations = {} translation = None if message is None: if messages: message = messages[0] translation = self.get_message_catalog()\ .gettext(message, lang, '') message_encoded = message_encode(message) else: message_encoded = message message = message_decode(message_encoded) #translations = self.get_translations(message) translation = self.get_message_catalog().gettext(message, lang, '') namespace['message'] = message namespace['message_encoded'] = message_encoded #namespace['translations'] = translations namespace['translation'] = translation # Calculate the current message namespace['messages'] = [] for x in messages: x_encoded = message_encode(x) url = get_url(REQUEST.URL, batch_start, batch_size, regex, lang, empty, msg=x_encoded) namespace['messages'].append({ 'message': x, 'message_encoded': x_encoded, 'current': x == message, 'url': url }) # The languages for language in languages: code = language['code'] language['name'] = self.get_translation(unicode(language['name'])) language['url'] = get_url(REQUEST.URL, batch_start, batch_size, regex, code, empty, msg=message_encoded) namespace['languages'] = languages return namespace