manager: translate state names (#34234)
This commit is contained in:
parent
09b7aefe24
commit
1e492fb87f
|
@ -56,8 +56,8 @@
|
|||
<tbody>
|
||||
{% for report in reports %}
|
||||
<tr data-uuid="{{ report.uuid }}">
|
||||
<td class="created">{% if report.state != 'running' %}<a href="{% url "a2-manager-users-import-report" import_uuid=user_import.uuid report_uuid=report.uuid %}">{{ report.created }}</a>{% else %}{{ report.created }}{% endif %}</td>
|
||||
<td class="state"><span>{{ report.state }}</span> {% if report.state == 'error' %}"{{ report.exception }}"{% endif %} {% if not report.is_running %}!failed before finishing!{% endif %}</td>
|
||||
<td class="created">{% if report.state != report.STATE_RUNNING %}<a href="{% url "a2-manager-users-import-report" import_uuid=user_import.uuid report_uuid=report.uuid %}">{{ report.created }}</a>{% else %}{{ report.created }}{% endif %}</td>
|
||||
<td class="state"><span>{{ report.state_display }}</span> {% if report.state == report.STATE_ERROR %}"{{ report.exception }}"{% endif %} {% if not report.is_running %}!failed before finishing!{% endif %}</td>
|
||||
<td class="applied">{% if not report.simulate %}<span class="icon-check"></span>{% endif %}</td>
|
||||
<td class="delete-action">{% if report.simulate %}<form method="post" id="delete-form-{{ report.uuid }}">{% csrf_token %}<button name="delete" value="{{ report.uuid }}">{% trans "Delete" %}</button></form>{% endif %}</td>
|
||||
</tr>
|
||||
|
|
|
@ -34,6 +34,7 @@ from django.db import connection
|
|||
from django.utils import six
|
||||
from django.utils.functional import cached_property
|
||||
from django.utils.timezone import utc
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from authentic2.utils import gettid
|
||||
|
||||
|
@ -123,6 +124,17 @@ class UserImport(object):
|
|||
|
||||
|
||||
class Report(object):
|
||||
STATE_WAITING = 'waiting'
|
||||
STATE_RUNNING = 'running'
|
||||
STATE_FINISHED = 'finished'
|
||||
STATE_ERROR = 'error'
|
||||
STATES = {
|
||||
STATE_WAITING: _('Waiting'),
|
||||
STATE_RUNNING: _('Running'),
|
||||
STATE_FINISHED: _('Finished'),
|
||||
STATE_ERROR: _('Error'),
|
||||
}
|
||||
|
||||
def __init__(self, user_import, uuid):
|
||||
self.user_import = user_import
|
||||
self.uuid = uuid
|
||||
|
@ -140,6 +152,11 @@ class Report(object):
|
|||
data = pickle.load(fd)
|
||||
return data
|
||||
|
||||
@property
|
||||
def state_display(self):
|
||||
state = self.data['state']
|
||||
return self.STATES.get(state, state)
|
||||
|
||||
@property
|
||||
@contextlib.contextmanager
|
||||
def data_update(self):
|
||||
|
@ -155,11 +172,11 @@ class Report(object):
|
|||
with report.data_update as data:
|
||||
data['encoding'] = user_import.meta['encoding']
|
||||
data['ou'] = user_import.meta.get('ou')
|
||||
data['state'] = 'waiting'
|
||||
data['state'] = cls.STATE_WAITING
|
||||
return report
|
||||
|
||||
def run(self, start=True, simulate=False):
|
||||
assert self.data.get('state') == 'waiting'
|
||||
assert self.data.get('state') == self.STATE_WAITING
|
||||
|
||||
with self.data_update as data:
|
||||
data['simulate'] = simulate
|
||||
|
@ -171,7 +188,7 @@ class Report(object):
|
|||
importer = UserCsvImporter()
|
||||
start = datetime.datetime.now()
|
||||
with self.data_update as data:
|
||||
data['state'] = 'running'
|
||||
data['state'] = self.STATE_RUNNING
|
||||
data['pid'] = os.getpid()
|
||||
data['tid'] = gettid()
|
||||
try:
|
||||
|
@ -181,14 +198,14 @@ class Report(object):
|
|||
simulate=simulate)
|
||||
except Exception as e:
|
||||
logger.exception('error during report %s:%s run', self.user_import.uuid, self.uuid)
|
||||
state = 'error'
|
||||
state = self.STATE_ERROR
|
||||
try:
|
||||
exception = six.text_type(e)
|
||||
except Exception:
|
||||
exception = repr(repr(e))
|
||||
else:
|
||||
exception = None
|
||||
state = 'finished'
|
||||
state = self.STATE_FINISHED
|
||||
finally:
|
||||
duration = datetime.datetime.now() - start
|
||||
try:
|
||||
|
|
|
@ -271,7 +271,7 @@ x,x,x,x'''.encode(encoding),
|
|||
|
||||
def wait_finished():
|
||||
new_resp = response.click('Users Import')
|
||||
if new_resp.pyquery('tr[data-uuid="%s"] td.state span' % uuid).text() == 'finished':
|
||||
if new_resp.pyquery('tr[data-uuid="%s"] td.state span' % uuid).text() == 'Finished':
|
||||
return new_resp
|
||||
|
||||
simulate = reports[0]
|
||||
|
|
Loading…
Reference in New Issue