From 0e34c33380c6cf886a917146670e204f109139d2 2017-04-27 22:49:32 From: Fiorella Quino Date: 2017-04-27 22:49:32 Subject: [PATCH] Task #961: Actualizar status de modulos ABS con subproceso git-svn-id: http://jro-dev.igp.gob.pe/svn/jro_hard/radarsys/trunk/webapp@284 aa17d016-51d5-4e8b-934c-7b2bbb1bbe71 --- 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)