diff options
author | Aleksey Lim <alsroot@activitycentral.org> | 2011-02-06 15:52:50 (GMT) |
---|---|---|
committer | Anish Mangal <anish@activitycentral.com> | 2012-04-27 10:02:35 (GMT) |
commit | ac0fcde62aa0aa866c8a435a314ac90445621fcc (patch) | |
tree | 0f11acd326db8966cc9f82df039b6a9e8f4784a1 | |
parent | 8cb45c9e3d88847a2564b830f1e4b1ad66d147b6 (diff) |
Notify on not sent feedbacks; fix issue with not auto resend
-rw-r--r-- | src/jarabe/model/feedback_collector.py | 32 |
1 files changed, 20 insertions, 12 deletions
diff --git a/src/jarabe/model/feedback_collector.py b/src/jarabe/model/feedback_collector.py index 93fa704..e239c9a 100644 --- a/src/jarabe/model/feedback_collector.py +++ b/src/jarabe/model/feedback_collector.py @@ -25,12 +25,14 @@ from email.mime.multipart import MIMEMultipart from email.mime.application import MIMEApplication from email.generator import Generator from email.encoders import encode_noop +from gettext import gettext as _ import gconf import gobject import simplejson from sugar import logger, feedback, util +from jarabe import frame _reports = {} @@ -47,7 +49,7 @@ def start(host, port, auto_submit_delay): _port = port if auto_submit_delay > 0: - gobject.timeout_add_seconds(auto_submit_delay, anonymous_submit) + gobject.timeout_add_seconds(auto_submit_delay, anonymous_submit, True) def update(bundle_id, report, log_file): @@ -86,24 +88,26 @@ def submit(message): 'nick': '', 'jabber_server': jabber, } - _submit(data) + _submit(data, False) -def anonymous_submit(): +def anonymous_submit(implicit=False): from jarabe.journal import misc data = {} client = gconf.client_get_default() if client.get_bool('/desktop/sugar/feedback/anonymous_with_sn'): data['serial_number'] = misc.get_xo_serial() - _submit(data) + _submit(data, implicit) + + return True -def _submit(data=None): +def _submit(data, implicit): if data: _reports.update(data) if is_empty(): - return True + return logging.debug('Sending feedback report: %r', _reports) @@ -126,16 +130,15 @@ def _submit(data=None): tar.close() - _SubmitThread(tar_file).run() - - return True + _SubmitThread(tar_file, implicit).run() class _SubmitThread(threading.Thread): - def __init__(self, tar_file): + def __init__(self, tar_file, implicit): threading.Thread.__init__(self) self._tar_file = tar_file + self._implicit = implicit def run(self): try: @@ -151,11 +154,16 @@ class _SubmitThread(threading.Thread): response = conn.getresponse() if response.status != 200: - logging.error('Incorrect feedback submit: %s, %s', + raise Exception('Incorrect feedback submit: %s, %s', response.status, response.read()) except Exception: - logging.exception('Cannot submit feedback') + title = _('Cannot submit feedback') + msg = _('Feedback was not sent to %s:%s.') % (_host, _port) + if not self._implicit: + gobject.idle_add(lambda: + frame.get_view().add_message(summary=title, body=msg)) + logging.exception('%s: %s', title, msg) finally: os.unlink(self._tar_file) self._tar_file = None |