def _checked_update_presta_data(shop, data_list, language): domain = shop.domain user = shop.user # TODO: this is something weird, it seems that update status is never updated after creation status, created = UpdateStatus.objects.get_or_create(domain=domain, defaults={'update_status': 'wait'}) try: result_dict = shop.api.update_presta_data(data_list) start_char = u'\u2713 ' result_dict['language'] = language if result_dict['errors']: start_char = u'\u2717 ' send_html_email.delay('mail/customers/update_report.html', result_dict, 'Update failure for {0}'.format(shop.domain)) send_html_email.delay('mail/customers/update_report.html', result_dict, start_char + _('Update report for %s') % shop.domain, email=[user.email]) except SoftTimeLimitExceeded: # send email send_email.delay('mail/feedback', {'message': unicode(shop.domain), 'email': user.email}, 'Time limit exceeded') send_email.delay('mail/customers/time_limit_exceeded.html', {'language': language}, _('Time limit exceeded'), email=[user.email]) status.update_status = 'success' status.save()
def checked_update_presta_data_periodic(shop, lines, language): user = shop.user # tracks if exception happened message = None try: result = shop.prepare_data_for_update(lines) if result['result'] == 'success': result_dict = shop.api.update_presta_data(result['response']) start_char = u'\u2713 ' result_dict['language'] = language if result_dict['errors']: start_char = u'\u2717 ' send_html_email.delay('mail/customers/update_report.html', result_dict, 'Periodic update failure for {0}'.format(shop.domain)) send_html_email.delay('mail/customers/update_report.html', result_dict, start_char + _('Periodic update report for %s') % shop.domain, email=[user.email]) else: message = str(result['response']) except Exception, e: message = unicode(e)