diff --git a/apps/jars/forms.py b/apps/jars/forms.py index 56e274a..2e643d1 100644 --- a/apps/jars/forms.py +++ b/apps/jars/forms.py @@ -1,6 +1,6 @@ from django import forms from apps.main.models import Device, Experiment -from .models import JARSConfiguration +from .models import JARSConfiguration, JARSfilter from .widgets import SpectralWidget class JARSConfigurationForm(forms.ModelForm): @@ -28,4 +28,14 @@ class JARSConfigurationForm(forms.ModelForm): class Meta: model = JARSConfiguration + exclude = ('type', 'parameters', 'status') + + +class JARSfilterForm(forms.ModelForm): + def __init__(self, *args, **kwargs): + super(JARSfilterForm, self).__init__(*args, **kwargs) + instance = getattr(self, 'instance', None) + + class Meta: + model = JARSfilter exclude = ('type', 'parameters', 'status') \ No newline at end of file diff --git a/apps/jars/models.py b/apps/jars/models.py index e46b97b..6a6bfea 100644 --- a/apps/jars/models.py +++ b/apps/jars/models.py @@ -51,7 +51,7 @@ class JARSConfiguration(Configuration): profiles_block = models.PositiveIntegerField(verbose_name='Profiles Per Block', validators=[MaxValueValidator(5000)], default=400) fftpoints = models.PositiveIntegerField(verbose_name='FFT Points',default=16) incohe_integr = models.PositiveIntegerField(verbose_name='Incoherent Integrations',validators=[MinValueValidator(1)], default=30) - filter = models.ForeignKey(JARSfilter, on_delete=models.CASCADE, null=True, blank=True) + filter = models.ForeignKey(JARSfilter, on_delete=models.CASCADE, null=True) spectral_number = models.PositiveIntegerField(verbose_name='# Spectral Combinations',validators=[MinValueValidator(1)], default=1) spectral = models.CharField(verbose_name='Combinations', max_length=5000, default = '[0, 0],') create_directory = models.BooleanField(verbose_name='Create Directory Per Day', default=True) diff --git a/apps/jars/templates/jars_conf_edit.html b/apps/jars/templates/jars_conf_edit.html index 8c2f907..e66be45 100644 --- a/apps/jars/templates/jars_conf_edit.html +++ b/apps/jars/templates/jars_conf_edit.html @@ -10,7 +10,7 @@

- +
@@ -19,4 +19,10 @@ {% block extra-js%} + + {% endblock %} \ No newline at end of file diff --git a/apps/jars/templates/jars_filter.html b/apps/jars/templates/jars_filter.html new file mode 100644 index 0000000..c3a7462 --- /dev/null +++ b/apps/jars/templates/jars_filter.html @@ -0,0 +1,55 @@ +{% extends "base.html" %} +{% load bootstrap3 %} +{% load static %} +{% load main_tags %} + +{% block search-active %}active{% endblock %} + +{% block content-title %}{{title}}{% endblock %} +{% block content-suptitle %}{{suptitle}}{% endblock %} + +{% block content %} + +{% block menu-actions %} + +{% endblock %} + + + + {% for key in dev_conf_keys %} + + + + + {% endfor %} +
{% get_verbose_field_name dev_conf key %}{{dev_conf|attr:key}}
+{% if button %} +
+ + + +
+{% endif %} + +{% block extra-content %} +{% endblock %} + +{% endblock %} + +{% block sidebar%} +{% include "sidebar_devices.html" %} +{% endblock %} + +{% block extra-js%} + +{% endblock %} \ No newline at end of file diff --git a/apps/jars/templates/jars_filter_edit.html b/apps/jars/templates/jars_filter_edit.html new file mode 100644 index 0000000..59c14e8 --- /dev/null +++ b/apps/jars/templates/jars_filter_edit.html @@ -0,0 +1,17 @@ +{% extends "dev_conf_edit.html" %} +{% load bootstrap3 %} +{% load static %} +{% load main_tags %} + +{% block content %} +
+ {% csrf_token %} + {% bootstrap_form form layout='horizontal' size='medium' %} +
+
+
+ + +
+
+{% endblock %} \ No newline at end of file diff --git a/apps/jars/urls.py b/apps/jars/urls.py index 0c717ce..75a70cd 100644 --- a/apps/jars/urls.py +++ b/apps/jars/urls.py @@ -3,4 +3,6 @@ from django.conf.urls import url urlpatterns = ( url(r'^(?P-?\d+)/$', 'apps.jars.views.jars_conf', name='url_jars_conf'), url(r'^(?P-?\d+)/edit/$', 'apps.jars.views.jars_conf_edit', name='url_edit_jars_conf'), + url(r'^(?P-?\d+)/view_filter/(?P-?\d+)/$', 'apps.jars.views.view_filter', name='url_jars_filter'), + url(r'^(?P-?\d+)/view_filter/(?P-?\d+)/edit$', 'apps.jars.views.edit_filter', name='url_edit_jars_filter'), ) diff --git a/apps/jars/views.py b/apps/jars/views.py index 09dad79..9c94c5a 100644 --- a/apps/jars/views.py +++ b/apps/jars/views.py @@ -1,12 +1,13 @@ from django.shortcuts import render_to_response from django.template import RequestContext from django.shortcuts import redirect, render, get_object_or_404 +from django.contrib import messages from apps.main.models import Device from apps.main.views import sidebar -from .models import JARSConfiguration -from .forms import JARSConfigurationForm +from .models import JARSConfiguration, JARSfilter +from .forms import JARSConfigurationForm, JARSfilterForm # Create your views here. def jars_conf(request, id_conf): @@ -17,7 +18,6 @@ def jars_conf(request, id_conf): port=conf.device.port_address kwargs = {} - kwargs['status'] = conf.device.get_status_display() @@ -58,10 +58,62 @@ def jars_conf_edit(request, id_conf): ##ERRORS kwargs = {} + + kwargs['filter_id'] = conf.filter.id kwargs['id_dev'] = conf.id kwargs['form'] = form kwargs['title'] = 'Device Configuration' kwargs['suptitle'] = 'Edit' kwargs['button'] = 'Save' - return render(request, 'jars_conf_edit.html', kwargs) \ No newline at end of file + return render(request, 'jars_conf_edit.html', kwargs) + +def view_filter(request, conf_id, filter_id): + + conf = get_object_or_404(JARSConfiguration, pk=conf_id) + filter = get_object_or_404(JARSfilter, pk=filter_id) + + kwargs = {} + kwargs['conf'] = conf + kwargs['filter'] = filter + kwargs['dev_conf'] = filter + kwargs['dev_conf_keys'] = ['name', 'clock', + 'mult', 'fch', + 'filter_fir', 'filter_2', + 'filter_5', 'speed'] + + kwargs['title'] = 'Filter View' + kwargs['suptitle'] = 'Details' + kwargs['button'] = 'SI' + kwargs['edit_button'] = 'Edit Filter' + kwargs['add_button'] = 'Add Filter' + + return render(request, 'jars_filter.html', kwargs) + +def edit_filter(request, conf_id, filter_id): + + conf = get_object_or_404(JARSConfiguration, pk=conf_id) + + if filter_id: + filter = get_object_or_404(JARSfilter, pk=filter_id) + + if request.method=='GET': + form = JARSfilterForm(instance=filter) + + if request.method=='POST': + #form = JARSfilterForm(request.POST) + form = JARSfilterForm(request.POST, instance=filter) + if form.is_valid(): + form.save() + messages.success(request, 'JARS Filter successfully updated') + return redirect('url_jars_filter', conf.id, filter.id) + + kwargs = {} + kwargs['form'] = form + kwargs['title'] = conf.name + kwargs['suptitle'] = 'Edit Filter' + kwargs['button'] = 'Save' + # kwargs['previous'] = conf.get_absolute_url_edit() + kwargs['dev_conf'] = conf + + return render(request, 'jars_filter_edit.html', kwargs) \ No newline at end of file