Example #1
0
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()
Example #2
0
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)