nanterre: ajout d'une action supprimer sur les jobs de synchronisation (fixes #29624)
This commit is contained in:
parent
882a2735cd
commit
b319e939e2
|
@ -79,6 +79,11 @@ class ZooNanterreConfig(AppConfig):
|
|||
'view': '_apply_report',
|
||||
'name': '-show-apply-report',
|
||||
},
|
||||
{
|
||||
're': r'(?P<job_id>\d+)/delete/',
|
||||
'view': '_delete',
|
||||
'name': '-delete',
|
||||
},
|
||||
{
|
||||
're': r'(?P<job_id>\d+)/apply/',
|
||||
'view': '_apply',
|
||||
|
|
|
@ -240,7 +240,10 @@ class SynchronizeFederationsAction(object):
|
|||
def report(self):
|
||||
if not self.report_csv_filepath:
|
||||
return None
|
||||
return default_storage.open(self.report_csv_filepath)
|
||||
try:
|
||||
return default_storage.open(self.report_csv_filepath)
|
||||
except IOError:
|
||||
return None
|
||||
|
||||
def make_url(self, action, prefix):
|
||||
stream = getattr(self, prefix)
|
||||
|
@ -253,6 +256,21 @@ class SynchronizeFederationsAction(object):
|
|||
'filename': filename,
|
||||
})
|
||||
|
||||
@classmethod
|
||||
def __delete(self, path):
|
||||
if not path:
|
||||
return
|
||||
if default_storage.exists(path):
|
||||
try:
|
||||
default_storage.delete(path)
|
||||
except IOError:
|
||||
pass
|
||||
|
||||
def delete(self):
|
||||
self.__delete(self.csv_filepath)
|
||||
self.__delete(self.report_csv_filepath)
|
||||
self.__delete(self.apply_report_csv_filepath)
|
||||
|
||||
@property
|
||||
def download_report_url(self):
|
||||
return self.make_url('download', 'report')
|
||||
|
@ -273,7 +291,10 @@ class SynchronizeFederationsAction(object):
|
|||
def apply_report(self):
|
||||
if not self.apply_report_csv_filepath:
|
||||
return None
|
||||
return default_storage.open(self.apply_report_csv_filepath)
|
||||
try:
|
||||
return default_storage.open(self.apply_report_csv_filepath)
|
||||
except IOError:
|
||||
return None
|
||||
|
||||
def set_apply(self, job):
|
||||
job.content['apply'] = True
|
||||
|
|
|
@ -31,6 +31,7 @@
|
|||
<th>Nom du fichier</th>
|
||||
<th>Rapport d'import</th>
|
||||
<th>Synchroniser ?</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
@ -55,7 +56,12 @@
|
|||
</form>
|
||||
{% endif %}
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<form action="{% url "admin:synchronize-federations-delete" job_id=job.id %}" method="post">
|
||||
{% csrf_token %}
|
||||
<input type="submit" value="{% trans "Delete" %}">
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
|
|
|
@ -197,6 +197,16 @@ def synchronize_federations_apply(request, job_id, model_admin, **kwargs):
|
|||
return redirect('admin:synchronize-federations')
|
||||
|
||||
|
||||
@permission_required('zoo_data.action1_entity')
|
||||
def synchronize_federations_delete(request, job_id, model_admin, *args, **kwargs):
|
||||
if request.method == 'POST':
|
||||
jobs = SynchronizeFederationsAction.get_jobs()
|
||||
job = get_object_or_404(jobs, id=job_id)
|
||||
job.action.delete()
|
||||
job.delete()
|
||||
return redirect('admin:synchronize-federations')
|
||||
|
||||
|
||||
def fiches_inactives():
|
||||
inactivity = Inactivity(
|
||||
child_delay=getattr(settings, 'ZOO_NANTERRE_INACTIVITY_CHILD_DELAY', 365),
|
||||
|
|
Loading…
Reference in New Issue