diff --git a/apps/abs/models.py b/apps/abs/models.py
index 21ab42b..cb9ed37 100644
--- a/apps/abs/models.py
+++ b/apps/abs/models.py
@@ -251,6 +251,7 @@ class ABSConfiguration(Configuration):
return parameters
+
def dict_to_parms(self, parameters):
self.name = parameters['name']
@@ -594,6 +595,8 @@ class ABSConfiguration(Configuration):
self.module_messages = json.dumps(module_messages)
self.save()
+ print 'Termino (='
+
return
@@ -615,12 +618,17 @@ class ABSConfiguration(Configuration):
This function returns the status of all abs-modules as one.
If at least one module is connected, its answer is "1"
"""
- self.absmodule_status()
+ #self.absmodule_status()
+ send_task('status_absdevice', [self.id],)
connected_modules = self.connected_modules()
if connected_modules>0:
self.message = 'ABS modules Status have been updated.'
return 1
+ else:
+ self.device.status=0
+
self.message = 'No ABS module is connected.'
+ self.save()
return 0
@@ -1039,6 +1047,9 @@ class ABSConfiguration(Configuration):
return reverse('url_import_abs_conf', args=[str(self.id)])
+ def get_absolute_url_status(self):
+ return reverse('url_status_abs_conf', args=[str(self.id)])
+
class ABSBeam(models.Model):
diff --git a/apps/abs/tasks.py b/apps/abs/tasks.py
index f81ec72..a906b5f 100644
--- a/apps/abs/tasks.py
+++ b/apps/abs/tasks.py
@@ -52,3 +52,12 @@ def task_change_beam(id_conf):
return 2
+
+
+@task(name='status_absdevice')
+def status_absdevice(id_conf):
+
+ abs_conf = Configuration.objects.get(pk=id_conf)
+ abs_conf.absmodule_status()
+
+ return
diff --git a/apps/abs/templates/abs_conf.html b/apps/abs/templates/abs_conf.html
index 30022f3..06849ab 100644
--- a/apps/abs/templates/abs_conf.html
+++ b/apps/abs/templates/abs_conf.html
@@ -165,6 +165,10 @@
+{% if status_request %}
+
+{% endif %}
+
{% if beams %}
@@ -537,6 +541,10 @@ $(document).ready(function() {
{% endfor %}
+{% if status_request %}
+ setTimeout("location.href = '{% url 'url_abs_conf' dev_conf.id %}'",53000);
+{% endif %}
+
});
{% endblock %}
diff --git a/apps/abs/urls.py b/apps/abs/urls.py
index e00f885..85e4433 100644
--- a/apps/abs/urls.py
+++ b/apps/abs/urls.py
@@ -6,6 +6,7 @@ urlpatterns = (
url(r'^(?P-?\d+)/$', views.abs_conf, name='url_abs_conf'),
url(r'^(?P-?\d+)/edit/$', views.abs_conf_edit, name='url_edit_abs_conf'),
url(r'^(?P-?\d+)/import/$', views.import_file, name='url_import_abs_conf'),
+ url(r'^(?P-?\d+)/status/', views.abs_conf, {'status_request':True},name='url_status_abs_conf'),
url(r'^(?P-?\d+)/change_beam/(?P-?\d+)/$', views.send_beam, name='url_send_beam'),
url(r'^(?P-?\d+)/plot/$', views.plot_patterns, name='url_plot_abs_patterns'),
url(r'^(?P-?\d+)/plot/(?P-?\d+)/$', views.plot_patterns, name='url_plot_abs_patterns'),
diff --git a/apps/abs/views.py b/apps/abs/views.py
index d8b27f9..f230ab9 100644
--- a/apps/abs/views.py
+++ b/apps/abs/views.py
@@ -120,7 +120,7 @@ def get_values_from_form(form_data):
-def abs_conf(request, id_conf):
+def abs_conf(request, id_conf, status_request=None):
conf = get_object_or_404(ABSConfiguration, pk=id_conf)
beams = ABSBeam.objects.filter(abs_conf=conf)
@@ -172,13 +172,23 @@ def abs_conf(request, id_conf):
kwargs['color_status'] = color_status
kwargs['module_messages'] = module_messages
- #kwargs['only_stop'] = True
+ #if conf.device.status in [0,1]:
+ if conf.connected_modules() == 0:
+ messages.error(request, 'No ABS module is connected.')#conf.message)
+ else:
+ messages.success(request, 'ABS modules are connected.')#conf.message)
###### SIDEBAR ######
kwargs.update(sidebar(conf=conf))
+ if status_request:
+ conf.status_device()
+ kwargs['status_request'] = True
+ return render(request, 'abs_conf.html', kwargs)
+
return render(request, 'abs_conf.html', kwargs)
+
def abs_conf_edit(request, id_conf):
conf = get_object_or_404(ABSConfiguration, pk=id_conf)