export-all-verif
This commit is contained in:
@@ -258,7 +258,6 @@ class Experiment(models.Model):
|
||||
def by_identifier(cls, identifier):
|
||||
return Experiment.objects.filter(identifier__exact=identifier).first()
|
||||
|
||||
|
||||
class Meta:
|
||||
ordering = ['-created', ]
|
||||
verbose_name = _("Expérience")
|
||||
@@ -376,15 +375,21 @@ def delete_periodic_task(sender, instance, **kwargs):
|
||||
instance.scanning_task.delete()
|
||||
|
||||
|
||||
def get_uuid_from_session(session_id, multiwel_position, well_name):
|
||||
return f'{session_id}-{multiwel_position}-{well_name}'
|
||||
|
||||
|
||||
class SessionExperiment(models.Model):
|
||||
author = models.ForeignKey(User, on_delete=models.SET_NULL, verbose_name="Auteur", null=True, blank=True)
|
||||
session = models.ForeignKey(Session, verbose_name=_("Session"), on_delete=models.CASCADE, null=True, blank=True)
|
||||
experiment = models.ForeignKey(Experiment, verbose_name=_("Expérience"), on_delete=models.CASCADE, null=True, blank=True, related_name="session_experiments")
|
||||
|
||||
|
||||
@classmethod
|
||||
def experiment_by_session(cls, session_id, active=True):
|
||||
return [ ss.experiment for ss in SessionExperiment.objects.filter(session__id=session_id, session__active=active).order_by('experiment__multiwell__order') ]
|
||||
|
||||
|
||||
@classmethod
|
||||
def uuid_from_session(cls, sid):
|
||||
experiments = [ss.experiment for ss in SessionExperiment.objects.filter(session__id=sid, session__active=False)]
|
||||
@@ -397,6 +402,15 @@ class SessionExperiment(models.Model):
|
||||
uuid_list.append(uuid)
|
||||
return uuid_list
|
||||
|
||||
|
||||
@classmethod
|
||||
def get_uuid(cls, session_id, experiment_id, well_name):
|
||||
ss = SessionExperiment.objects.filter(session__id=session_id, experiment_id=experiment_id).first()
|
||||
if ss:
|
||||
return get_uuid_from_session(session_id, ss.experiment.multiwel.position, well_name)
|
||||
return None
|
||||
|
||||
|
||||
class Meta:
|
||||
ordering = ['session',]
|
||||
unique_together = ["session", "experiment"]
|
||||
|
||||
@@ -39,6 +39,7 @@ def stats_view(request):
|
||||
except Exception as e:
|
||||
return JsonResponse({"error": str(e)}, status=500)
|
||||
|
||||
|
||||
def global_context(request, **ctx):
|
||||
default_multiwell = models.MultiWell.objects.filter(default=True).first()
|
||||
conf = ScannerConstants().get()
|
||||
@@ -60,11 +61,12 @@ def global_context(request, **ctx):
|
||||
def admin_view(request):
|
||||
return render(request, "scanner/iframe.html", context=global_context(request, link='/admin/'))
|
||||
|
||||
@login_required
|
||||
|
||||
@login_required
|
||||
def admin_session_view(request):
|
||||
return render(request, "scanner/iframe.html", context=global_context(request, link='/admin/scanner/session/'))
|
||||
|
||||
|
||||
@login_required
|
||||
def admin_experiment_view(request):
|
||||
return render(request, "scanner/iframe.html", context=global_context(request, link='/admin/scanner/experiment/'))
|
||||
@@ -73,15 +75,18 @@ def admin_experiment_view(request):
|
||||
def admin_experimentconfig_view(request):
|
||||
return render(request, "scanner/iframe.html", context=global_context(request, link='/admin/planarian/experimentconfig/'))
|
||||
|
||||
|
||||
@login_required
|
||||
def admin_periodictask_view(request):
|
||||
return render(request, "scanner/iframe.html", context=global_context(request, link='/admin/django_celery_beat/periodictask/'))
|
||||
|
||||
|
||||
@login_required
|
||||
@user_passes_test(is_staff_or_admin)
|
||||
def reductstore_view(request):
|
||||
return render(request, "scanner/redirection.html", context=global_context(request, link=f'http://{settings.LOCAL_IP_SERVER}:8383/'))
|
||||
|
||||
|
||||
@login_required
|
||||
@user_passes_test(is_staff_or_admin)
|
||||
def adminer_view(request):
|
||||
@@ -92,21 +97,25 @@ def adminer_view(request):
|
||||
def portainer_view(request):
|
||||
return render(request, "scanner/redirection.html", context=global_context(request, link=f'http://{settings.LOCAL_IP_SERVER}:9000/'))
|
||||
|
||||
|
||||
@login_required
|
||||
@user_passes_test(is_staff_or_admin)
|
||||
def supervisor_view(request):
|
||||
return render(request, "scanner/redirection.html", context=global_context(request, link=f'http://{settings.LOCAL_IP_SERVER}:9001/'))
|
||||
|
||||
|
||||
@login_required
|
||||
@user_passes_test(is_staff_or_admin)
|
||||
def supervisor_worker(request):
|
||||
return render(request, "scanner/redirection.html", context=global_context(request, link=f'http://{settings.LOCAL_IP_SERVER}:9001/logtail/test_tube:services'))
|
||||
|
||||
|
||||
@login_required
|
||||
@user_passes_test(is_staff_or_admin)
|
||||
def supervisor_scheduler(request):
|
||||
return render(request, "scanner/redirection.html", context=global_context(request, link=f'http://{settings.LOCAL_IP_SERVER}:9001/logtail/test_tube:planification'))
|
||||
|
||||
|
||||
def documentation(request, template=None):
|
||||
ctx = dict(
|
||||
choice_title=_("Documentation")
|
||||
@@ -225,6 +234,7 @@ def export_medias(request):
|
||||
)
|
||||
return render(request, "scanner/export_medias.html", context=global_context(request, **ctx))
|
||||
|
||||
|
||||
@require_POST
|
||||
@csrf_exempt
|
||||
def download_api(request):
|
||||
@@ -286,6 +296,7 @@ def replay_view(request):
|
||||
)
|
||||
return render(request, "scanner/replay.html", context=global_context(request, **ctx))
|
||||
|
||||
|
||||
@require_POST
|
||||
@csrf_exempt
|
||||
def export_api(request):
|
||||
@@ -295,10 +306,10 @@ def export_api(request):
|
||||
try:
|
||||
if action == 'export_images':
|
||||
export_all_images(session_id)
|
||||
return JsonResponse({"success": True, "msg": str(_("Images téléchargées"))})
|
||||
return JsonResponse({"success": True, "msg": str(_("Images en cours de téléchargement"))})
|
||||
elif action == 'export_videos':
|
||||
export_all_videos(session_id)
|
||||
return JsonResponse({"success": True, "msg": str(_("Vidéos téléchargées"))})
|
||||
return JsonResponse({"success": True, "msg": str(_("Vidéos en cours de téléchargement"))})
|
||||
except:
|
||||
return JsonResponse({"state": False, "success": False, "msg": str(_("Erreur d'exportation")), })
|
||||
|
||||
|
||||
Reference in New Issue
Block a user