##// END OF EJS Templates
- Correcion de bugs.
jsalyrosas -
r211:212
parent child
Show More
@@ -1,173 +1,173
1 # Django settings for abs_webapp_dev project.
1 # Django settings for abs_webapp_dev project.
2
2
3 import os, sys
3 import os, sys
4 PROJECT_DIR = os.path.split(os.path.dirname(__file__))[0]
4 PROJECT_DIR = os.path.split(os.path.dirname(__file__))[0]
5 API_DIR = "/home/dev/workspace/absclient"
5 API_DIR = "/home/dev/workspace/absclient"
6 OVERJRO_DIR = "/home/dev/workspace/weboverjro"
6 OVERJRO_DIR = "/home/dev/workspace/weboverjro"
7 sys.path.append(API_DIR)
7 sys.path.append(API_DIR)
8 sys.path.append(OVERJRO_DIR)
8 sys.path.append(OVERJRO_DIR)
9
9
10 DEBUG = True
10 DEBUG = True
11 TEMPLATE_DEBUG = DEBUG
11 TEMPLATE_DEBUG = DEBUG
12
12
13 ADMINS = (
13 ADMINS = (
14 # ('Your Name', 'your_email@example.com'),
14 # ('Your Name', 'your_email@example.com'),
15 )
15 )
16
16
17 MANAGERS = ADMINS
17 MANAGERS = ADMINS
18
18
19 DATABASES = {
19 DATABASES = {
20 'default': {
20 'default': {
21 'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
21 'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
22 'NAME': 'db_jrowebapp_dev', # Or path to database file if using sqlite3.
22 'NAME': 'db_jrowebapp_dev', # Or path to database file if using sqlite3.
23 'USER': 'abscontrol', # Not used with sqlite3.
23 'USER': 'abscontrol', # Not used with sqlite3.
24 'PASSWORD': 'abscontrol', # Not used with sqlite3.
24 'PASSWORD': 'abscontrol', # Not used with sqlite3.
25 'HOST': 'localhost', # Set to empty string for localhost. Not used with sqlite3.
25 'HOST': 'localhost', # Set to empty string for localhost. Not used with sqlite3.
26 'PORT': '3306', # Set to empty string for default. Not used with sqlite3.
26 'PORT': '3306', # Set to empty string for default. Not used with sqlite3.
27 }
27 }
28 }
28 }
29
29
30 # Local time zone for this installation. Choices can be found here:
30 # Local time zone for this installation. Choices can be found here:
31 # http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
31 # http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
32 # although not all choices may be available on all operating systems.
32 # although not all choices may be available on all operating systems.
33 # In a Windows environment this must be set to your system time zone.
33 # In a Windows environment this must be set to your system time zone.
34 TIME_ZONE = 'America/Lima'
34 TIME_ZONE = 'America/Lima'
35
35
36 # Language code for this installation. All choices can be found here:
36 # Language code for this installation. All choices can be found here:
37 # http://www.i18nguy.com/unicode/language-identifiers.html
37 # http://www.i18nguy.com/unicode/language-identifiers.html
38 LANGUAGE_CODE = 'en-us'
38 LANGUAGE_CODE = 'en-us'
39
39
40 SITE_ID = 1
40 SITE_ID = 1
41
41
42 # If you set this to False, Django will make some optimizations so as not
42 # If you set this to False, Django will make some optimizations so as not
43 # to load the internationalization machinery.
43 # to load the internationalization machinery.
44 USE_I18N = True
44 USE_I18N = True
45
45
46 # If you set this to False, Django will not format dates, numbers and
46 # If you set this to False, Django will not format dates, numbers and
47 # calendars according to the current locale.
47 # calendars according to the current locale.
48 USE_L10N = True
48 USE_L10N = True
49
49
50 # If you set this to False, Django will not use timezone-aware datetimes.
50 # If you set this to False, Django will not use timezone-aware datetimes.
51 USE_TZ = True
51 USE_TZ = True
52
52
53 # Absolute filesystem path to the directory that will hold user-uploaded files.
53 # Absolute filesystem path to the directory that will hold user-uploaded files.
54 # Example: "/home/media/media.lawrence.com/media/"
54 # Example: "/home/media/media.lawrence.com/media/"
55 MEDIA_ROOT = os.path.join(PROJECT_DIR, 'media').replace('\\', '/')
55 MEDIA_ROOT = os.path.join(PROJECT_DIR, 'media').replace('\\', '/')
56
56
57 # URL that handles the media served from MEDIA_ROOT. Make sure to use a
57 # URL that handles the media served from MEDIA_ROOT. Make sure to use a
58 # trailing slash.
58 # trailing slash.
59 # Examples: "http://media.lawrence.com/media/", "http://example.com/media/"
59 # Examples: "http://media.lawrence.com/media/", "http://example.com/media/"
60 MEDIA_URL = '/media/'
60 MEDIA_URL = '/media/'
61
61
62 # Absolute path to the directory static files should be collected to.
62 # Absolute path to the directory static files should be collected to.
63 # Don't put anything in this directory yourself; store your static files
63 # Don't put anything in this directory yourself; store your static files
64 # in apps' "static/" subdirectories and in STATICFILES_DIRS.
64 # in apps' "static/" subdirectories and in STATICFILES_DIRS.
65 # Example: "/home/media/media.lawrence.com/static/"
65 # Example: "/home/media/media.lawrence.com/static/"
66 STATIC_ROOT = os.path.join(PROJECT_DIR, 'static').replace('\\', '/')
66 STATIC_ROOT = os.path.join(PROJECT_DIR, 'static').replace('\\', '/')
67 #STATIC_ROOT = ''
67 #STATIC_ROOT = ''
68
68
69 # URL prefix for static files.
69 # URL prefix for static files.
70 # Example: "http://media.lawrence.com/static/"
70 # Example: "http://media.lawrence.com/static/"
71 STATIC_URL = '/static/'
71 STATIC_URL = '/static/'
72
72
73 # Additional locations of static files
73 # Additional locations of static files
74 STATICFILES_DIRS = (
74 STATICFILES_DIRS = (
75 # Put strings here, like "/home/html/static" or "C:/www/django/static".
75 # Put strings here, like "/home/html/static" or "C:/www/django/static".
76 # Always use forward slashes, even on Windows.
76 # Always use forward slashes, even on Windows.
77 # Don't forget to use absolute paths, not relative paths.
77 # Don't forget to use absolute paths, not relative paths.
78 #os.path.join(PROJECT_DIR, "static").replace('\\', '/'),
78 #os.path.join(PROJECT_DIR, "static").replace('\\', '/'),
79 #("static", os.path.join(PROJECT_DIR, "static").replace('\\', '/')),
79 #("static", os.path.join(PROJECT_DIR, "static").replace('\\', '/')),
80 )
80 )
81
81
82 # List of finder classes that know how to find static files in
82 # List of finder classes that know how to find static files in
83 # various locations.
83 # various locations.
84 STATICFILES_FINDERS = (
84 STATICFILES_FINDERS = (
85 'django.contrib.staticfiles.finders.FileSystemFinder',
85 'django.contrib.staticfiles.finders.FileSystemFinder',
86 'django.contrib.staticfiles.finders.AppDirectoriesFinder',
86 'django.contrib.staticfiles.finders.AppDirectoriesFinder',
87 'django.contrib.staticfiles.finders.DefaultStorageFinder',
87 'django.contrib.staticfiles.finders.DefaultStorageFinder',
88 )
88 )
89
89
90 # Make this unique, and don't share it with anybody.
90 # Make this unique, and don't share it with anybody.
91 SECRET_KEY = '=^abu)gd=)7hf#rme_vw=tv!bdh7+tts*^&)h(n=7@7(9#__@e'
91 SECRET_KEY = '=^abu)gd=)7hf#rme_vw=tv!bdh7+tts*^&)h(n=7@7(9#__@e'
92
92
93 # List of callables that know how to import templates from various sources.
93 # List of callables that know how to import templates from various sources.
94 TEMPLATE_LOADERS = (
94 TEMPLATE_LOADERS = (
95 'django.template.loaders.filesystem.Loader',
95 'django.template.loaders.filesystem.Loader',
96 'django.template.loaders.app_directories.Loader',
96 'django.template.loaders.app_directories.Loader',
97 # 'django.template.loaders.eggs.Loader',
97 # 'django.template.loaders.eggs.Loader',
98 )
98 )
99
99
100 MIDDLEWARE_CLASSES = (
100 MIDDLEWARE_CLASSES = (
101 'django.middleware.common.CommonMiddleware',
101 'django.middleware.common.CommonMiddleware',
102 'django.contrib.sessions.middleware.SessionMiddleware',
102 'django.contrib.sessions.middleware.SessionMiddleware',
103 'django.middleware.csrf.CsrfViewMiddleware',
103 'django.middleware.csrf.CsrfViewMiddleware',
104 'django.contrib.auth.middleware.AuthenticationMiddleware',
104 'django.contrib.auth.middleware.AuthenticationMiddleware',
105 'django.contrib.messages.middleware.MessageMiddleware',
105 'django.contrib.messages.middleware.MessageMiddleware',
106 # Uncomment the next line for simple clickjacking protection:
106 # Uncomment the next line for simple clickjacking protection:
107 # 'django.middleware.clickjacking.XFrameOptionsMiddleware',
107 # 'django.middleware.clickjacking.XFrameOptionsMiddleware',
108 )
108 )
109
109
110 ROOT_URLCONF = 'abs_webapp_dev.urls'
110 ROOT_URLCONF = 'abs_webapp_dev.urls'
111
111
112 # Python dotted path to the WSGI application used by Django's runserver.
112 # Python dotted path to the WSGI application used by Django's runserver.
113 WSGI_APPLICATION = 'abs_webapp_dev.wsgi.application'
113 WSGI_APPLICATION = 'abs_webapp_dev.wsgi.application'
114
114
115 TEMPLATE_DIRS = (
115 TEMPLATE_DIRS = (
116 # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
116 # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
117 # Always use forward slashes, even on Windows.
117 # Always use forward slashes, even on Windows.
118 # Don't forget to use absolute paths, not relative paths.
118 # Don't forget to use absolute paths, not relative paths.
119 os.path.join(PROJECT_DIR, "templates").replace('\\', '/'),
119 os.path.join(PROJECT_DIR, "templates").replace('\\', '/'),
120 os.path.join(PROJECT_DIR, "abscontrol", "templates").replace('\\', '/'),
120 os.path.join(PROJECT_DIR, "abscontrol", "templates").replace('\\', '/'),
121 )
121 )
122
122
123 TEMPLATE_CONTEXT_PROCESSORS = (
123 TEMPLATE_CONTEXT_PROCESSORS = (
124 'django.core.context_processors.debug',
124 #'django.core.context_processors.debug',
125 'django.core.context_processors.media',
125 'django.core.context_processors.media',
126 'django.core.context_processors.static',
126 'django.core.context_processors.static',
127 'django.contrib.auth.context_processors.auth',
127 'django.contrib.auth.context_processors.auth',
128 )
128 )
129
129
130 INSTALLED_APPS = (
130 INSTALLED_APPS = (
131 'django.contrib.auth',
131 'django.contrib.auth',
132 'django.contrib.contenttypes',
132 'django.contrib.contenttypes',
133 'django.contrib.sessions',
133 'django.contrib.sessions',
134 'django.contrib.sites',
134 'django.contrib.sites',
135 'django.contrib.messages',
135 'django.contrib.messages',
136 'django.contrib.staticfiles',
136 'django.contrib.staticfiles',
137 # Uncomment the next line to enable the admin:
137 # Uncomment the next line to enable the admin:
138 'django.contrib.admin',
138 'django.contrib.admin',
139 # Uncomment the next line to enable admin documentation:
139 # Uncomment the next line to enable admin documentation:
140 # 'django.contrib.admindocs',
140 # 'django.contrib.admindocs',
141 'abscontrol',
141 'abscontrol',
142 'audit',
142 'audit',
143 'south',
143 'south',
144 )
144 )
145
145
146 # A sample logging configuration. The only tangible logging
146 # A sample logging configuration. The only tangible logging
147 # performed by this configuration is to send an email to
147 # performed by this configuration is to send an email to
148 # the site admins on every HTTP 500 error when DEBUG=False.
148 # the site admins on every HTTP 500 error when DEBUG=False.
149 # See http://docs.djangoproject.com/en/dev/topics/logging for
149 # See http://docs.djangoproject.com/en/dev/topics/logging for
150 # more details on how to customize your logging configuration.
150 # more details on how to customize your logging configuration.
151 LOGGING = {
151 LOGGING = {
152 'version': 1,
152 'version': 1,
153 'disable_existing_loggers': False,
153 'disable_existing_loggers': False,
154 'filters': {
154 'filters': {
155 'require_debug_false': {
155 'require_debug_false': {
156 '()': 'django.utils.log.RequireDebugFalse'
156 '()': 'django.utils.log.RequireDebugFalse'
157 }
157 }
158 },
158 },
159 'handlers': {
159 'handlers': {
160 'mail_admins': {
160 'mail_admins': {
161 'level': 'ERROR',
161 'level': 'ERROR',
162 'filters': ['require_debug_false'],
162 'filters': ['require_debug_false'],
163 'class': 'django.utils.log.AdminEmailHandler'
163 'class': 'django.utils.log.AdminEmailHandler'
164 }
164 }
165 },
165 },
166 'loggers': {
166 'loggers': {
167 'django.request': {
167 'django.request': {
168 'handlers': ['mail_admins'],
168 'handlers': ['mail_admins'],
169 'level': 'ERROR',
169 'level': 'ERROR',
170 'propagate': True,
170 'propagate': True,
171 },
171 },
172 }
172 }
173 }
173 }
@@ -1,264 +1,264
1 {% extends "config/index.html" %}
1 {% extends "config/index.html" %}
2 {% load url from future %}
2 {% load url from future %}
3 {% block title %}ABS CONTROL:::::NEW PROFILE{% endblock %}
3 {% block title %}ABS CONTROL:::::NEW PROFILE{% endblock %}
4 {% block scripting %}
4 {% block scripting %}
5 <script src="{{ STATIC_URL }}js/patterns.js"></script>
5 <script src="{{ STATIC_URL }}js/patterns.js"></script>
6 {% endblock %}
6 {% endblock %}
7 {% block maincolumn%}
7 {% block maincolumn%}
8 <div id="maincolumn">
8 <div id="maincolumn">
9 <form action="{% url abscontrol.views.upgrade profile_id %}" method="post" id="frmPattern">
9 <form action="{% url 'abscontrol.views.upgrade' profile_id %}" method="post" id="frmPattern">
10 {% csrf_token %}
10 {% csrf_token %}
11 <div id="divProfile">
11 <div id="divProfile">
12 <label for="lblName">Profile:</label>
12 <label for="lblName">Profile:</label>
13 <label for="lblName" class="lblProfile">{{ profile_name }}</label>
13 <label for="lblName" class="lblProfile">{{ profile_name }}</label>
14 </div>
14 </div>
15 {% block mnuPattern %}
15 {% block mnuPattern %}
16 <div class="divMenu" id="divMnuPattern">
16 <div class="divMenu" id="divMnuPattern">
17 <nav class="MnuHorizontal">
17 <nav class="MnuHorizontal">
18 <ul class="mnu" id="mnuPattern">
18 <ul class="mnu" id="mnuPattern">
19 <li><a href="#" id="lnkSavePattern">Save</a></li>
19 <li><a href="#" id="lnkSavePattern">Save</a></li>
20 </ul>
20 </ul>
21 </nav>
21 </nav>
22 </div>
22 </div>
23 <div class="cleardivs"></div>
23 <div class="cleardivs"></div>
24 {% endblock %}
24 {% endblock %}
25 <div id="divPattern">
25 <div id="divPattern">
26 <div id="antennaUp" class="NewAntenna">
26 <div id="antennaUp" class="NewAntenna">
27 <fieldset class="NewFlsAntenna">
27 <fieldset class="NewFlsAntenna">
28 <legend class="legendAntenna">UP</legend>
28 <legend class="legendAntenna">UP</legend>
29 <div class="NewDivAntenna">
29 <div class="NewDivAntenna">
30 <label for="lblAntenna" class="titleField">Antenna</label>
30 <label for="lblAntenna" class="titleField">Antenna</label>
31 <div class="boxAntenna" id="divtxtAntenna">
31 <div class="boxAntenna" id="divtxtAntenna">
32 {% for i in range %}
32 {% for i in range %}
33 <div class="fullLine">
33 <div class="fullLine">
34 {% if i == 0 %}
34 {% if i == 0 %}
35 <label for="lblSignLeft" class="lblSignLeft">[</label>
35 <label for="lblSignLeft" class="lblSignLeft">[</label>
36 {% else %}
36 {% else %}
37 <label for="lblSignLeft" class="lblSignLeft">&nbsp;</label>
37 <label for="lblSignLeft" class="lblSignLeft">&nbsp;</label>
38 {% endif %}
38 {% endif %}
39 <div class="lineInputs">
39 <div class="lineInputs">
40 <label for="lblSign" class="lblSign">[</label>
40 <label for="lblSign" class="lblSign">[</label>
41 <div class="divValuesAntenna">
41 <div class="divValuesAntenna">
42 {% for j in range %}
42 {% for j in range %}
43 <input type="text" name="txtUnitAntennaUp" class="txtUnitAntenna" id="txtUnitAntennaUp_{{ i }}_{{ j }}" value="0.5" maxlength="3" />
43 <input type="text" name="txtUnitAntennaUp" class="txtUnitAntenna" id="txtUnitAntennaUp_{{ i }}_{{ j }}" value="0.5" maxlength="3" />
44 {% if j != 7 %},{% endif %}
44 {% if j != 7 %},{% endif %}
45 {% endfor %}
45 {% endfor %}
46 </div>
46 </div>
47 <label for="lblSign" class="lblSign">]</label>
47 <label for="lblSign" class="lblSign">]</label>
48 </div>
48 </div>
49 {% if i == 7 %}
49 {% if i == 7 %}
50 <label for="lblSignRight" class="lblSignRight">]</label>
50 <label for="lblSignRight" class="lblSignRight">]</label>
51 {% else %}
51 {% else %}
52 <label for="lblSignRight" class="lblSignRight">,</label>
52 <label for="lblSignRight" class="lblSignRight">,</label>
53 {% endif %}
53 {% endif %}
54 </div>
54 </div>
55 <div class="cleardivs"></div>
55 <div class="cleardivs"></div>
56 {% endfor %}
56 {% endfor %}
57 </div>
57 </div>
58 </div>
58 </div>
59 <div class="NewDivTx">
59 <div class="NewDivTx">
60 <label for="lblTx" class="titleField">Tx</label>
60 <label for="lblTx" class="titleField">Tx</label>
61 <div class="boxTR" id="divtxtTR">
61 <div class="boxTR" id="divtxtTR">
62 {% for i in range %}
62 {% for i in range %}
63 <div class="fullLine">
63 <div class="fullLine">
64 {% if i == 0 %}
64 {% if i == 0 %}
65 <label for="lblNewSignLeft" class="lblNewSignLeft">[</label>
65 <label for="lblNewSignLeft" class="lblNewSignLeft">[</label>
66 {% else %}
66 {% else %}
67 <label for="lblNewSignLeft" class="lblNewSignLeft">&nbsp;</label>
67 <label for="lblNewSignLeft" class="lblNewSignLeft">&nbsp;</label>
68 {% endif %}
68 {% endif %}
69 <div class="lineInputsTx">
69 <div class="lineInputsTx">
70 <label for="lblSign" class="lblSignTx">[</label>
70 <label for="lblSign" class="lblSignTx">[</label>
71 <div class="divValuesTx">
71 <div class="divValuesTx">
72 {% for j in range %}
72 {% for j in range %}
73 <input type="text" name="txtUnitTxUp" class="txtUnitTx" id="txtUnitTxUp_{{ i }}_{{ j }}" value="1" maxlength="1" />
73 <input type="text" name="txtUnitTxUp" class="txtUnitTx" id="txtUnitTxUp_{{ i }}_{{ j }}" value="1" maxlength="1" />
74 {% if j != 7 %},{% endif %}
74 {% if j != 7 %},{% endif %}
75 {% endfor %}
75 {% endfor %}
76 </div>
76 </div>
77 <label for="lblSign" class="lblSignTx">]</label>
77 <label for="lblSign" class="lblSignTx">]</label>
78 </div>
78 </div>
79 {% if i == 7 %}
79 {% if i == 7 %}
80 <label for="lblNewSignRight" class="lblNewSignRight">]</label>
80 <label for="lblNewSignRight" class="lblNewSignRight">]</label>
81 {% else %}
81 {% else %}
82 <label for="lblNewSignRight" class="lblNewSignRight">,</label>
82 <label for="lblNewSignRight" class="lblNewSignRight">,</label>
83 {% endif %}
83 {% endif %}
84 </div>
84 </div>
85 <div class="cleardivs"></div>
85 <div class="cleardivs"></div>
86 {% endfor %}
86 {% endfor %}
87 </div>
87 </div>
88 <div class="cleardivs"></div>
88 <div class="cleardivs"></div>
89 </div>
89 </div>
90 <div class="NewDivTx">
90 <div class="NewDivTx">
91 <label for="lblRx" class="titleField">Rx</label>
91 <label for="lblRx" class="titleField">Rx</label>
92 <div class="boxTR" id="divtxtTR">
92 <div class="boxTR" id="divtxtTR">
93 {% for i in range %}
93 {% for i in range %}
94 <div class="fullLine">
94 <div class="fullLine">
95 {% if i == 0 %}
95 {% if i == 0 %}
96 <label for="lblNewSignLeft" class="lblNewSignLeft">[</label>
96 <label for="lblNewSignLeft" class="lblNewSignLeft">[</label>
97 {% else %}
97 {% else %}
98 <label for="lblNewSignLeft" class="lblNewSignLeft">&nbsp;</label>
98 <label for="lblNewSignLeft" class="lblNewSignLeft">&nbsp;</label>
99 {% endif %}
99 {% endif %}
100 <div class="lineInputsTx">
100 <div class="lineInputsTx">
101 <label for="lblSign" class="lblSignTx">[</label>
101 <label for="lblSign" class="lblSignTx">[</label>
102 <div class="divValuesTx">
102 <div class="divValuesTx">
103 {% for j in range %}
103 {% for j in range %}
104 <input type="text" name="txtUnitRxUp" class="txtUnitRx" id="txtUnitRxUp_{{ i }}_{{ j }}" value="0" maxlength="1" />
104 <input type="text" name="txtUnitRxUp" class="txtUnitRx" id="txtUnitRxUp_{{ i }}_{{ j }}" value="0" maxlength="1" />
105 {% if j != 7 %},{% endif %}
105 {% if j != 7 %},{% endif %}
106 {% endfor %}
106 {% endfor %}
107 </div>
107 </div>
108 <label for="lblSign" class="lblSignTx">]</label>
108 <label for="lblSign" class="lblSignTx">]</label>
109 </div>
109 </div>
110 {% if i == 7 %}
110 {% if i == 7 %}
111 <label for="lblNewSignRight" class="lblNewSignRight">]</label>
111 <label for="lblNewSignRight" class="lblNewSignRight">]</label>
112 {% else %}
112 {% else %}
113 <label for="lblNewSignRight" class="lblNewSignRight">,</label>
113 <label for="lblNewSignRight" class="lblNewSignRight">,</label>
114 {% endif %}
114 {% endif %}
115 </div>
115 </div>
116 <div class="cleardivs"></div>
116 <div class="cleardivs"></div>
117 {% endfor %}
117 {% endfor %}
118 </div>
118 </div>
119 <div class="cleardivs"></div>
119 <div class="cleardivs"></div>
120 </div>
120 </div>
121 <div class="cleardivs"></div>
121 <div class="cleardivs"></div>
122 <div class="divNewUes">
122 <div class="divNewUes">
123 <label for="lblUes" class="titleUes">Ues:</label>
123 <label for="lblUes" class="titleUes">Ues:</label>
124 <div class="valueUes">
124 <div class="valueUes">
125 <label for="lblUes">[</label>
125 <label for="lblUes">[</label>
126 {% for element in arrayUes %}
126 {% for element in arrayUes %}
127 <input type="text" name="unitUesUp_{{ forloop.counter }}" value="{{ element }}" maxlength="8" class="txtUnitUes" />
127 <input type="text" name="unitUesUp_{{ forloop.counter }}" value="{{ element }}" maxlength="8" class="txtUnitUes" />
128 {% if not forloop.last %},{% endif %}
128 {% if not forloop.last %},{% endif %}
129 {% endfor %}
129 {% endfor %}
130 <label for="lblUes">]</label>
130 <label for="lblUes">]</label>
131 </div>
131 </div>
132 </div>
132 </div>
133 <div class="checkOnly">
133 <div class="checkOnly">
134 <input type="checkbox" name="chkOnlyRxUp" value="" />
134 <input type="checkbox" name="chkOnlyRxUp" value="" />
135 <label for="lblOnlyRx">Only Rx</label>
135 <label for="lblOnlyRx">Only Rx</label>
136 </div>
136 </div>
137 </fieldset>
137 </fieldset>
138 <input type="hidden" name="txtAntennaUp" value="" />
138 <input type="hidden" name="txtAntennaUp" value="" />
139 <input type="hidden" name="txtTxUp" value="" />
139 <input type="hidden" name="txtTxUp" value="" />
140 <input type="hidden" name="txtRxUp" value="" />
140 <input type="hidden" name="txtRxUp" value="" />
141 <input type="hidden" name="txtUesUp" value="" />
141 <input type="hidden" name="txtUesUp" value="" />
142 </div>
142 </div>
143 <div id="antennaDown" class="NewAntenna">
143 <div id="antennaDown" class="NewAntenna">
144 <fieldset class="NewFlsAntenna">
144 <fieldset class="NewFlsAntenna">
145 <legend class="legendAntenna">DOWN</legend>
145 <legend class="legendAntenna">DOWN</legend>
146 <div class="NewDivAntenna">
146 <div class="NewDivAntenna">
147 <label for="lblAntenna" class="titleField">Antenna</label>
147 <label for="lblAntenna" class="titleField">Antenna</label>
148 <div class="boxAntenna" id="divtxtAntenna">
148 <div class="boxAntenna" id="divtxtAntenna">
149 {% for i in range %}
149 {% for i in range %}
150 <div class="fullLine">
150 <div class="fullLine">
151 {% if i == 0 %}
151 {% if i == 0 %}
152 <label for="lblSignLeft" class="lblSignLeft">[</label>
152 <label for="lblSignLeft" class="lblSignLeft">[</label>
153 {% else %}
153 {% else %}
154 <label for="lblSignLeft" class="lblSignLeft">&nbsp;</label>
154 <label for="lblSignLeft" class="lblSignLeft">&nbsp;</label>
155 {% endif %}
155 {% endif %}
156 <div class="lineInputs">
156 <div class="lineInputs">
157 <label for="lblSign" class="lblSign">[</label>
157 <label for="lblSign" class="lblSign">[</label>
158 <div class="divValuesAntenna">
158 <div class="divValuesAntenna">
159 {% for j in range %}
159 {% for j in range %}
160 <input type="text" name="txtUnitAntennaDown" class="txtUnitAntenna" id="txtUnitAntennaDown_{{ i }}_{{ j }}" value="0.5" maxlength="3" />
160 <input type="text" name="txtUnitAntennaDown" class="txtUnitAntenna" id="txtUnitAntennaDown_{{ i }}_{{ j }}" value="0.5" maxlength="3" />
161 {% if j != 7 %},{% endif %}
161 {% if j != 7 %},{% endif %}
162 {% endfor %}
162 {% endfor %}
163 </div>
163 </div>
164 <label for="lblSign" class="lblSign">]</label>
164 <label for="lblSign" class="lblSign">]</label>
165 </div>
165 </div>
166 {% if i == 7 %}
166 {% if i == 7 %}
167 <label for="lblSignRight" class="lblSignRight">]</label>
167 <label for="lblSignRight" class="lblSignRight">]</label>
168 {% else %}
168 {% else %}
169 <label for="lblSignRight" class="lblSignRight">,</label>
169 <label for="lblSignRight" class="lblSignRight">,</label>
170 {% endif %}
170 {% endif %}
171 </div>
171 </div>
172 <div class="cleardivs"></div>
172 <div class="cleardivs"></div>
173 {% endfor %}
173 {% endfor %}
174 </div>
174 </div>
175 </div>
175 </div>
176 <div class="NewDivTx">
176 <div class="NewDivTx">
177 <label for="lblTx" class="titleField">Tx</label>
177 <label for="lblTx" class="titleField">Tx</label>
178 <div class="boxTR" id="divtxtTR">
178 <div class="boxTR" id="divtxtTR">
179 {% for i in range %}
179 {% for i in range %}
180 <div class="fullLine">
180 <div class="fullLine">
181 {% if i == 0 %}
181 {% if i == 0 %}
182 <label for="lblNewSignLeft" class="lblNewSignLeft">[</label>
182 <label for="lblNewSignLeft" class="lblNewSignLeft">[</label>
183 {% else %}
183 {% else %}
184 <label for="lblNewSignLeft" class="lblNewSignLeft">&nbsp;</label>
184 <label for="lblNewSignLeft" class="lblNewSignLeft">&nbsp;</label>
185 {% endif %}
185 {% endif %}
186 <div class="lineInputsTx">
186 <div class="lineInputsTx">
187 <label for="lblSign" class="lblSignTx">[</label>
187 <label for="lblSign" class="lblSignTx">[</label>
188 <div class="divValuesTx">
188 <div class="divValuesTx">
189 {% for j in range %}
189 {% for j in range %}
190 <input type="text" name="txtUnitTxDown" class="txtUnitTx" id="txtUnitTxDown_{{ i }}_{{ j }}" value="1" maxlength="1" />
190 <input type="text" name="txtUnitTxDown" class="txtUnitTx" id="txtUnitTxDown_{{ i }}_{{ j }}" value="1" maxlength="1" />
191 {% if j != 7 %},{% endif %}
191 {% if j != 7 %},{% endif %}
192 {% endfor %}
192 {% endfor %}
193 </div>
193 </div>
194 <label for="lblSign" class="lblSignTx">]</label>
194 <label for="lblSign" class="lblSignTx">]</label>
195 </div>
195 </div>
196 {% if i == 7 %}
196 {% if i == 7 %}
197 <label for="lblNewSignRight" class="lblNewSignRight">]</label>
197 <label for="lblNewSignRight" class="lblNewSignRight">]</label>
198 {% else %}
198 {% else %}
199 <label for="lblNewSignRight" class="lblNewSignRight">,</label>
199 <label for="lblNewSignRight" class="lblNewSignRight">,</label>
200 {% endif %}
200 {% endif %}
201 </div>
201 </div>
202 <div class="cleardivs"></div>
202 <div class="cleardivs"></div>
203 {% endfor %}
203 {% endfor %}
204 </div>
204 </div>
205 <div class="cleardivs"></div>
205 <div class="cleardivs"></div>
206 </div>
206 </div>
207 <div class="NewDivTx">
207 <div class="NewDivTx">
208 <label for="lblRx" class="titleField">Rx</label>
208 <label for="lblRx" class="titleField">Rx</label>
209 <div class="boxTR" id="divtxtTR">
209 <div class="boxTR" id="divtxtTR">
210 {% for i in range %}
210 {% for i in range %}
211 <div class="fullLine">
211 <div class="fullLine">
212 {% if i == 0 %}
212 {% if i == 0 %}
213 <label for="lblNewSignLeft" class="lblNewSignLeft">[</label>
213 <label for="lblNewSignLeft" class="lblNewSignLeft">[</label>
214 {% else %}
214 {% else %}
215 <label for="lblNewSignLeft" class="lblNewSignLeft">&nbsp;</label>
215 <label for="lblNewSignLeft" class="lblNewSignLeft">&nbsp;</label>
216 {% endif %}
216 {% endif %}
217 <div class="lineInputsTx">
217 <div class="lineInputsTx">
218 <label for="lblSign" class="lblSignTx">[</label>
218 <label for="lblSign" class="lblSignTx">[</label>
219 <div class="divValuesTx">
219 <div class="divValuesTx">
220 {% for j in range %}
220 {% for j in range %}
221 <input type="text" name="txtUnitRxDown" class="txtUnitRx" id="txtUnitRxDown_{{ i }}_{{ j }}" value="0" />
221 <input type="text" name="txtUnitRxDown" class="txtUnitRx" id="txtUnitRxDown_{{ i }}_{{ j }}" value="0" />
222 {% if j != 7 %},{% endif %}
222 {% if j != 7 %},{% endif %}
223 {% endfor %}
223 {% endfor %}
224 </div>
224 </div>
225 <label for="lblSign" class="lblSignTx">]</label>
225 <label for="lblSign" class="lblSignTx">]</label>
226 </div>
226 </div>
227 {% if i == 7 %}
227 {% if i == 7 %}
228 <label for="lblNewSignRight" class="lblNewSignRight">]</label>
228 <label for="lblNewSignRight" class="lblNewSignRight">]</label>
229 {% else %}
229 {% else %}
230 <label for="lblNewSignRight" class="lblNewSignRight">,</label>
230 <label for="lblNewSignRight" class="lblNewSignRight">,</label>
231 {% endif %}
231 {% endif %}
232 </div>
232 </div>
233 <div class="cleardivs"></div>
233 <div class="cleardivs"></div>
234 {% endfor %}
234 {% endfor %}
235 </div>
235 </div>
236 <div class="cleardivs"></div>
236 <div class="cleardivs"></div>
237 </div>
237 </div>
238 <div class="cleardivs"></div>
238 <div class="cleardivs"></div>
239 <div class="divNewUes">
239 <div class="divNewUes">
240 <label for="lblUes" class="titleUes">Ues:</label>
240 <label for="lblUes" class="titleUes">Ues:</label>
241 <div class="valueUes">
241 <div class="valueUes">
242 <label for="lblUes">[</label>
242 <label for="lblUes">[</label>
243 {% for element in arrayUes %}
243 {% for element in arrayUes %}
244 <input type="text" name="unitUesDown_{{ forloop.counter }}" value="{{ element }}" maxlength="8" class="txtUnitUes" />
244 <input type="text" name="unitUesDown_{{ forloop.counter }}" value="{{ element }}" maxlength="8" class="txtUnitUes" />
245 {% if not forloop.last %},{% endif %}
245 {% if not forloop.last %},{% endif %}
246 {% endfor %}
246 {% endfor %}
247 <label for="lblUes">]</label>
247 <label for="lblUes">]</label>
248 </div>
248 </div>
249 </div>
249 </div>
250 <div class="checkOnly">
250 <div class="checkOnly">
251 <input type="checkbox" name="chkOnlyRxDown" value="" />
251 <input type="checkbox" name="chkOnlyRxDown" value="" />
252 <label for="lblOnlyRx">Only Rx</label>
252 <label for="lblOnlyRx">Only Rx</label>
253 </div>
253 </div>
254 </fieldset>
254 </fieldset>
255 <input type="hidden" name="txtAntennaDown" value="" />
255 <input type="hidden" name="txtAntennaDown" value="" />
256 <input type="hidden" name="txtTxDown" value="" />
256 <input type="hidden" name="txtTxDown" value="" />
257 <input type="hidden" name="txtRxDown" value="" />
257 <input type="hidden" name="txtRxDown" value="" />
258 <input type="hidden" name="txtUesDown" value="" />
258 <input type="hidden" name="txtUesDown" value="" />
259 </div>
259 </div>
260 </div>
260 </div>
261 <input type="hidden" name="mode" value="e">
261 <input type="hidden" name="mode" value="e">
262 </form>
262 </form>
263 </div>
263 </div>
264 {% endblock %}
264 {% endblock %}
@@ -1,28 +1,28
1 from django.conf.urls import patterns, url
1 from django.conf.urls import patterns, url
2
2
3 urlpatterns = patterns('abscontrol.views',
3 urlpatterns = patterns('abscontrol.views',
4 url(r'^$', 'index'),
4 url(r'^$', 'index'),
5 url(r'^new/$', 'new'),
5 url(r'^new/$', 'new', name="new"),
6 url(r'^save/$', 'save'),
6 url(r'^save/$', 'save', name="save"),
7 url(r'^view/(?P<profile_id>\d+)/$', 'view'),
7 url(r'^view/(?P<profile_id>\d+)/$', 'view', name="view"),
8 url(r'^edit/(?P<profile_id>\d+)/$', 'edit'),
8 url(r'^edit/(?P<profile_id>\d+)/$', 'edit', name="edit"),
9 url(r'^update/(?P<profile_id>\d+)/$', 'update'),
9 url(r'^update/(?P<profile_id>\d+)/$', 'update', name="update"),
10 url(r'^upgrade/(?P<profile_id>\d+)/$', 'upgrade'),
10 url(r'^upgrade/(?P<profile_id>\d+)/$', 'upgrade', name="upgrade"),
11 url(r'^changeName/(?P<profile_id>\d+)/$', 'changeName'),
11 url(r'^changeName/(?P<profile_id>\d+)/$', 'changeName'),
12 #url(r'^(?P<profile_id>\d+)/$', 'detail'),
12 #url(r'^(?P<profile_id>\d+)/$', 'detail'),
13 url(r'^(?P<profile_id>\d+)/add/$', 'addPattern'),
13 url(r'^(?P<profile_id>\d+)/add/$', 'addPattern'),
14 url(r'^(?P<profile_id>\d+)/save/$', 'savePattern'),
14 url(r'^(?P<profile_id>\d+)/save/$', 'savePattern'),
15 url(r'^(?P<profile_id>\d+)/edit/(?P<pattern_id>\d+)/$', 'editPattern'),
15 url(r'^(?P<profile_id>\d+)/edit/(?P<pattern_id>\d+)/$', 'editPattern'),
16 url(r'^(?P<profile_id>\d+)/view/(?P<pattern_id>\d+)/$', 'viewPattern'),
16 url(r'^(?P<profile_id>\d+)/view/(?P<pattern_id>\d+)/$', 'viewPattern'),
17 url(r'^(?P<profile_id>\d+)/delete/(?P<pattern_id>\d+)/$', 'deletePattern'),
17 url(r'^(?P<profile_id>\d+)/delete/(?P<pattern_id>\d+)/$', 'deletePattern'),
18 #url(r'^(?P<poll_id>\d+)/results/$', 'results'),
18 #url(r'^(?P<poll_id>\d+)/results/$', 'results'),
19 #url(r'^(?P<poll_id>\d+)/vote/$', 'vote'),
19 #url(r'^(?P<poll_id>\d+)/vote/$', 'vote'),
20 url(r'^import/$', 'importProfile'),
20 url(r'^import/$', 'importProfile'),
21 url(r'^upload/$', 'upload'),
21 url(r'^upload/$', 'upload'),
22 #url(r'^saveImport/$', 'saveImport'),
22 #url(r'^saveImport/$', 'saveImport'),
23 url(r'^(?P<profile_id>\d+)/(?P<pattern_id>\d+)/overjroUp/(?P<antenna_id>\d+)/$', 'overJROUp'),
23 url(r'^(?P<profile_id>\d+)/(?P<pattern_id>\d+)/overjroUp/(?P<antenna_id>\d+)/$', 'overJROUp'),
24 url(r'^(?P<profile_id>\d+)/(?P<pattern_id>\d+)/overjroDown/(?P<antenna_id>\d+)/$', 'overJRODown'),
24 url(r'^(?P<profile_id>\d+)/(?P<pattern_id>\d+)/overjroDown/(?P<antenna_id>\d+)/$', 'overJRODown'),
25 url(r'^export/(?P<profile_id>\d+)/$', 'export'),
25 url(r'^export/(?P<profile_id>\d+)/$', 'export'),
26 url(r'^send/(?P<profile_id>\d+)/$', 'send'),
26 url(r'^send/(?P<profile_id>\d+)/$', 'send'),
27 url(r'^change/(?P<profile_id>\d+)/(?P<pattern_id>\d+)/$', 'changePattern'),
27 url(r'^change/(?P<profile_id>\d+)/(?P<pattern_id>\d+)/$', 'changePattern'),
28 ) No newline at end of file
28 )
@@ -1,564 +1,564
1 from django.shortcuts import render_to_response, redirect
1 from django.shortcuts import render_to_response, redirect
2 from django.http import HttpResponse
2 from django.http import HttpResponse
3 from django.conf import settings
3 from django.conf import settings
4 from django.utils.encoding import smart_str
4 from django.utils.encoding import smart_str
5 from django.core.servers.basehttp import FileWrapper
5 from django.core.servers.basehttp import FileWrapper
6 import mimetypes
6 import mimetypes
7 from django.contrib.auth.decorators import login_required
7 from django.contrib.auth.decorators import login_required
8 from django.template import RequestContext
8 from django.template import RequestContext
9
9
10 from datetime import datetime
10 from datetime import datetime
11 import os
11 import os
12 from abscontrol.models import Profile, Pattern, AntennaDown, AntennaUp
12 from abscontrol.models import Profile, Pattern, AntennaDown, AntennaUp
13
13
14 from util.readABSFile import readABSFile
14 from util.readABSFile import readABSFile
15 from util.saveABSFile import saveABSFile
15 from util.saveABSFile import saveABSFile
16 from util.ABSData import ABSData
16 from util.ABSData import ABSData
17 from util.OverJRO import OverJRO
17 from util.OverJRO import OverJRO
18 from scripts.sendFile import sendFile
18 from scripts.sendFile import sendFile
19 from scripts.changeBeam import changeBeam
19 from scripts.changeBeam import changeBeam
20 from overJroShow import overJroShow
20 from overJroShow import overJroShow
21
21
22 arrayTx = [["0","0","0","0","0","0","0","0"],\
22 arrayTx = [["0","0","0","0","0","0","0","0"],\
23 ["0","0","0","0","0","0","0","0"],\
23 ["0","0","0","0","0","0","0","0"],\
24 ["0","0","0","0","0","0","0","0"],\
24 ["0","0","0","0","0","0","0","0"],\
25 ["0","0","0","0","0","0","0","0"],\
25 ["0","0","0","0","0","0","0","0"],\
26 ["0","0","0","0","0","0","0","0"],\
26 ["0","0","0","0","0","0","0","0"],\
27 ["0","0","0","0","0","0","0","0"],\
27 ["0","0","0","0","0","0","0","0"],\
28 ["0","0","0","0","0","0","0","0"],\
28 ["0","0","0","0","0","0","0","0"],\
29 ["0","0","0","0","0","0","0","0"]]
29 ["0","0","0","0","0","0","0","0"]]
30
30
31 arrayUes = ["0.533333","0.00000","1.06667","0.00000"]
31 arrayUes = ["0.533333","0.00000","1.06667","0.00000"]
32
32
33 @login_required(login_url='/accounts/login/')
33 @login_required(login_url='/accounts/login/')
34 def index(request):
34 def index(request):
35 #latest_poll_list = profileAntenna.objects.all().order_by('-pub_date')[:5]
35 #latest_poll_list = profileAntenna.objects.all().order_by('-pub_date')[:5]
36 profile_list = Profile.objects.filter(state=1)
36 profile_list = Profile.objects.filter(state=1)
37 return render_to_response('config/index.html', {'profile_list': profile_list}, context_instance=RequestContext(request))
37 return render_to_response('config/index.html', {'profile_list': profile_list}, context_instance=RequestContext(request))
38
38
39 def new(request):
39 def new(request):
40 profile_list = Profile.objects.filter(state=1)
40 profile_list = Profile.objects.filter(state=1)
41 txtProfile = datetime.now().strftime("%Y%m%d%H%M%S%f")
41 txtProfile = datetime.now().strftime("%Y%m%d%H%M%S%f")
42 newprofile = Profile(name=txtProfile)
42 newProfile = Profile(name=txtProfile)
43 newprofile.save()
43 newProfile.save()
44
44
45 lsPatterns = None
45 lsPatterns = None
46
46
47 return render_to_response('config/new.html', {'profile_list': profile_list,
47 return render_to_response('config/new.html', {'profile_list': profile_list,
48 'profile_name' : newprofile.name,
48 'profile_name' : newProfile.name,
49 'profile_id' : newprofile.id,
49 'profile_id' : newProfile.id,
50 'lsPatterns' : lsPatterns,
50 'lsPatterns' : lsPatterns,
51 'range' : range(8), 'arrayUes' : arrayUes,
51 'range' : range(8), 'arrayUes' : arrayUes,
52 }, context_instance=RequestContext(request))
52 }, context_instance=RequestContext(request))
53
53
54 def save(request):
54 def save(request):
55
55
56 txtProfile = request.POST["txtProfile"]
56 txtProfile = request.POST["txtProfile"]
57
57
58 txtAntennaUp = request.POST["txtAntennaUp"]
58 txtAntennaUp = request.POST["txtAntennaUp"]
59 txtTxUp = request.POST["txtTxUp"]
59 txtTxUp = request.POST["txtTxUp"]
60 txtRxUp = request.POST["txtRxUp"]
60 txtRxUp = request.POST["txtRxUp"]
61 txtUesUp = request.POST["txtUesUp"]
61 txtUesUp = request.POST["txtUesUp"]
62
62
63 txtAntennaDown = request.POST["txtAntennaDown"]
63 txtAntennaDown = request.POST["txtAntennaDown"]
64 txtTxDown = request.POST["txtTxDown"]
64 txtTxDown = request.POST["txtTxDown"]
65 txtRxDown = request.POST["txtRxDown"]
65 txtRxDown = request.POST["txtRxDown"]
66 txtUesDown = request.POST["txtUesDown"]
66 txtUesDown = request.POST["txtUesDown"]
67
67
68 newprofile = Profile(name=txtProfile)
68 newprofile = Profile(name=txtProfile)
69 newprofile.save()
69 newprofile.save()
70
70
71 newpattern = newprofile.pattern_set.create(value=1)
71 newpattern = newprofile.pattern_set.create(value=1)
72 newpattern.antennaup_set.create(value=txtAntennaUp,tx=txtTxUp,rx=txtRxUp,ues=txtUesUp)
72 newpattern.antennaup_set.create(value=txtAntennaUp,tx=txtTxUp,rx=txtRxUp,ues=txtUesUp)
73 newpattern.antennadown_set.create(value=txtAntennaDown,tx=txtTxDown,rx=txtRxDown,ues=txtUesDown)
73 newpattern.antennadown_set.create(value=txtAntennaDown,tx=txtTxDown,rx=txtRxDown,ues=txtUesDown)
74
74
75 newurl = '/abscontrol/view/%d' % newprofile.id
75 newurl = '/abscontrol/view/%d' % newprofile.id
76
76
77 return redirect(newurl)
77 return redirect(newurl)
78
78
79 # Update temporal experiment
79 # Update temporal experiment
80 def upgrade(request, profile_id):
80 def upgrade(request, profile_id):
81 txtAntennaUp = request.POST["txtAntennaUp"]
81 txtAntennaUp = request.POST["txtAntennaUp"]
82 txtTxUp = request.POST["txtTxUp"]
82 txtTxUp = request.POST["txtTxUp"]
83 txtRxUp = request.POST["txtRxUp"]
83 txtRxUp = request.POST["txtRxUp"]
84 txtUesUp = request.POST["txtUesUp"]
84 txtUesUp = request.POST["txtUesUp"]
85
85
86 txtAntennaDown = request.POST["txtAntennaDown"]
86 txtAntennaDown = request.POST["txtAntennaDown"]
87 txtTxDown = request.POST["txtTxDown"]
87 txtTxDown = request.POST["txtTxDown"]
88 txtRxDown = request.POST["txtRxDown"]
88 txtRxDown = request.POST["txtRxDown"]
89 txtUesDown = request.POST["txtUesDown"]
89 txtUesDown = request.POST["txtUesDown"]
90
90
91 objProfile = Profile.objects.get(pk=profile_id)
91 objProfile = Profile.objects.get(pk=profile_id)
92 newpattern = objProfile.pattern_set.create(value=1)
92 newpattern = objProfile.pattern_set.create(value=1)
93 newpattern.antennaup_set.create(value=txtAntennaUp,tx=txtTxUp,rx=txtRxUp,ues=txtUesUp)
93 newpattern.antennaup_set.create(value=txtAntennaUp,tx=txtTxUp,rx=txtRxUp,ues=txtUesUp)
94 newpattern.antennadown_set.create(value=txtAntennaDown,tx=txtTxDown,rx=txtRxDown,ues=txtUesDown)
94 newpattern.antennadown_set.create(value=txtAntennaDown,tx=txtTxDown,rx=txtRxDown,ues=txtUesDown)
95
95
96 newurl = '/abscontrol/%d/edit/%d' % (int(profile_id), newpattern.id)
96 newurl = '/abscontrol/%d/edit/%d' % (int(profile_id), newpattern.id)
97 return redirect(newurl)
97 return redirect(newurl)
98
98
99 def update(request, profile_id):
99 def update(request, profile_id):
100 txtProfile = request.POST["txtProfile"]
100 txtProfile = request.POST["txtProfile"]
101
101
102 objProfile = Profile.objects.get(pk=profile_id)
102 objProfile = Profile.objects.get(pk=profile_id)
103 objProfile.name = txtProfile
103 objProfile.name = txtProfile
104 objProfile.state = 1
104 objProfile.state = 1
105 objProfile.save()
105 objProfile.save()
106
106
107 newurl = '/abscontrol/view/%d' % objProfile.id
107 newurl = '/abscontrol/view/%d' % objProfile.id
108 return redirect(newurl)
108 return redirect(newurl)
109
109
110 def changeName(request, profile_id):
110 def changeName(request, profile_id):
111 profile_list = Profile.objects.filter(state=1)
111 profile_list = Profile.objects.filter(state=1)
112 objProfile = Profile.objects.get(pk=profile_id)
112 objProfile = Profile.objects.get(pk=profile_id)
113 lsPatterns = objProfile.pattern_set.all()
113 lsPatterns = objProfile.pattern_set.all()
114
114
115 return render_to_response('config/changeName.html', {'profile_list': profile_list,
115 return render_to_response('config/changeName.html', {'profile_list': profile_list,
116 'objProfile': objProfile,
116 'objProfile': objProfile,
117 'lsPatterns' : lsPatterns,
117 'lsPatterns' : lsPatterns,
118 }, context_instance=RequestContext(request))
118 }, context_instance=RequestContext(request))
119
119
120 def view(request, profile_id):
120 def view(request, profile_id):
121 objProfileActive = None
121 objProfileActive = None
122 objPatternActive = None
122 objPatternActive = None
123
123
124 if request.method == 'GET' and 'pattern' in request.GET:
124 if request.method == 'GET' and 'pattern' in request.GET:
125 pattern_value = request.GET["pattern"]
125 pattern_value = request.GET["pattern"]
126 else:
126 else:
127 pattern_value = 1
127 pattern_value = 1
128
128
129 profile_list = Profile.objects.filter(state=1)
129 profile_list = Profile.objects.filter(state=1)
130 objProfile = Profile.objects.get(pk=profile_id)
130 objProfile = Profile.objects.get(pk=profile_id)
131
131
132 lsPatterns = objProfile.pattern_set.all()
132 lsPatterns = objProfile.pattern_set.all()
133 patternChoosen = objProfile.pattern_set.get(value=pattern_value)
133 patternChoosen = objProfile.pattern_set.get(value=pattern_value)
134 objAntennaUp = patternChoosen.antennaup_set.get()
134 objAntennaUp = patternChoosen.antennaup_set.get()
135 objAntennaDown = patternChoosen.antennadown_set.get()
135 objAntennaDown = patternChoosen.antennadown_set.get()
136
136
137 lsProfilesActive = Profile.objects.filter(is_active=1)
137 lsProfilesActive = Profile.objects.filter(is_active=1)
138 if len(lsProfilesActive) > 0:
138 if len(lsProfilesActive) > 0:
139 objProfileActive = Profile.objects.get(is_active=1)
139 objProfileActive = Profile.objects.get(is_active=1)
140
140
141 lsPatternsActive = Pattern.objects.filter(is_active=1)
141 lsPatternsActive = Pattern.objects.filter(is_active=1)
142 if len(lsPatternsActive) > 0:
142 if len(lsPatternsActive) > 0:
143 objPatternActive = Pattern.objects.get(is_active=1)
143 objPatternActive = Pattern.objects.get(is_active=1)
144
144
145 return render_to_response('config/view.html', {'objProfile': objProfile, 'profile_list': profile_list,
145 return render_to_response('config/view.html', {'objProfile': objProfile, 'profile_list': profile_list,
146 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
146 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
147 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
147 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
148 'profileActive' : objProfileActive, 'patternActive' : objPatternActive,
148 'profileActive' : objProfileActive, 'patternActive' : objPatternActive,
149 }, context_instance=RequestContext(request))
149 }, context_instance=RequestContext(request))
150
150
151 def edit(request, profile_id):
151 def edit(request, profile_id):
152 if request.method == 'GET' and 'pattern' in request.GET:
152 if request.method == 'GET' and 'pattern' in request.GET:
153 pattern_value = request.GET["pattern"]
153 pattern_value = request.GET["pattern"]
154 else:
154 else:
155 pattern_value = 1
155 pattern_value = 1
156
156
157 absData = ABSData()
157 absData = ABSData()
158 profile_list = Profile.objects.filter(state=1)
158 profile_list = Profile.objects.filter(state=1)
159 objProfile = Profile.objects.get(pk=profile_id)
159 objProfile = Profile.objects.get(pk=profile_id)
160
160
161 lsPatterns = objProfile.pattern_set.all()
161 lsPatterns = objProfile.pattern_set.all()
162 patternChoosen = objProfile.pattern_set.get(value=pattern_value)
162 patternChoosen = objProfile.pattern_set.get(value=pattern_value)
163 objAntennaUp = patternChoosen.antennaup_set.get()
163 objAntennaUp = patternChoosen.antennaup_set.get()
164 objAntennaDown = patternChoosen.antennadown_set.get()
164 objAntennaDown = patternChoosen.antennadown_set.get()
165
165
166 arrayAntennaUp = absData.convertStringtoList2(objAntennaUp.value)
166 arrayAntennaUp = absData.convertStringtoList2(objAntennaUp.value)
167 if objAntennaUp.tx != None:
167 if objAntennaUp.tx != None:
168 arrayTxUp = absData.convertStringtoList2(objAntennaUp.tx)
168 arrayTxUp = absData.convertStringtoList2(objAntennaUp.tx)
169 else:
169 else:
170 arrayTxUp = arrayTx
170 arrayTxUp = arrayTx
171 if objAntennaUp.rx != None:
171 if objAntennaUp.rx != None:
172 arrayRxUp = absData.convertStringtoList2(objAntennaUp.rx)
172 arrayRxUp = absData.convertStringtoList2(objAntennaUp.rx)
173 else:
173 else:
174 arrayRxUp = arrayTx
174 arrayRxUp = arrayTx
175 if objAntennaUp.ues != None:
175 if objAntennaUp.ues != None:
176 arrayUesUp = absData.convertStringtoList1(objAntennaUp.ues)
176 arrayUesUp = absData.convertStringtoList1(objAntennaUp.ues)
177 else:
177 else:
178 arrayUesUp = arrayUes
178 arrayUesUp = arrayUes
179
179
180 arrayAntennaDown = absData.convertStringtoList2(objAntennaDown.value)
180 arrayAntennaDown = absData.convertStringtoList2(objAntennaDown.value)
181 if objAntennaDown.tx != None:
181 if objAntennaDown.tx != None:
182 arrayTxDown = absData.convertStringtoList2(objAntennaDown.tx)
182 arrayTxDown = absData.convertStringtoList2(objAntennaDown.tx)
183 else:
183 else:
184 arrayTxDown = arrayTx
184 arrayTxDown = arrayTx
185 if objAntennaDown.rx != None:
185 if objAntennaDown.rx != None:
186 arrayRxDown = absData.convertStringtoList2(objAntennaDown.rx)
186 arrayRxDown = absData.convertStringtoList2(objAntennaDown.rx)
187 else:
187 else:
188 arrayRxDown = arrayTx
188 arrayRxDown = arrayTx
189 if objAntennaDown.ues != None:
189 if objAntennaDown.ues != None:
190 arrayUesDown = absData.convertStringtoList1(objAntennaDown.ues)
190 arrayUesDown = absData.convertStringtoList1(objAntennaDown.ues)
191 else:
191 else:
192 arrayUesDown = arrayUes
192 arrayUesDown = arrayUes
193
193
194 return render_to_response('config/edit.html', {'objProfile': objProfile, 'profile_list': profile_list,
194 return render_to_response('config/edit.html', {'objProfile': objProfile, 'profile_list': profile_list,
195 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
195 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
196 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
196 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
197 'arrayAntennaUp' : arrayAntennaUp, 'arrayTxUp' : arrayTxUp,
197 'arrayAntennaUp' : arrayAntennaUp, 'arrayTxUp' : arrayTxUp,
198 'arrayRxUp' : arrayRxUp, 'arrayRxDown' : arrayRxDown,
198 'arrayRxUp' : arrayRxUp, 'arrayRxDown' : arrayRxDown,
199 'arrayAntennaDown' : arrayAntennaDown, 'arrayTxDown' : arrayTxDown,
199 'arrayAntennaDown' : arrayAntennaDown, 'arrayTxDown' : arrayTxDown,
200 'arrayUesUp' : arrayUesUp, 'arrayUesDown' : arrayUesDown,
200 'arrayUesUp' : arrayUesUp, 'arrayUesDown' : arrayUesDown,
201 }, context_instance=RequestContext(request))
201 }, context_instance=RequestContext(request))
202
202
203 def addPattern(request, profile_id):
203 def addPattern(request, profile_id):
204 profile_list = Profile.objects.filter(state=1)
204 profile_list = Profile.objects.filter(state=1)
205 objProfile = Profile.objects.get(pk=profile_id)
205 objProfile = Profile.objects.get(pk=profile_id)
206
206
207 return render_to_response('config/addPattern.html', {'objProfile': objProfile, 'profile_list': profile_list,
207 return render_to_response('config/addPattern.html', {'objProfile': objProfile, 'profile_list': profile_list,
208 'range' : range(8), 'arrayUes' : arrayUes,
208 'range' : range(8), 'arrayUes' : arrayUes,
209 }, context_instance=RequestContext(request))
209 }, context_instance=RequestContext(request))
210
210
211 def editPattern(request, profile_id, pattern_id):
211 def editPattern(request, profile_id, pattern_id):
212 absData = ABSData()
212 absData = ABSData()
213 profile_list = Profile.objects.filter(state=1)
213 profile_list = Profile.objects.filter(state=1)
214 objProfile = Profile.objects.get(pk=profile_id)
214 objProfile = Profile.objects.get(pk=profile_id)
215 lsPatterns = objProfile.pattern_set.all()
215 lsPatterns = objProfile.pattern_set.all()
216 patternChoosen = Pattern.objects.get(pk=pattern_id)
216 patternChoosen = Pattern.objects.get(pk=pattern_id)
217 objAntennaUp = patternChoosen.antennaup_set.get()
217 objAntennaUp = patternChoosen.antennaup_set.get()
218 objAntennaDown = patternChoosen.antennadown_set.get()
218 objAntennaDown = patternChoosen.antennadown_set.get()
219
219
220 arrayAntennaUp = absData.convertStringtoList2(objAntennaUp.value)
220 arrayAntennaUp = absData.convertStringtoList2(objAntennaUp.value)
221 if objAntennaUp.tx != None:
221 if objAntennaUp.tx != None:
222 arrayTxUp = absData.convertStringtoList2(objAntennaUp.tx)
222 arrayTxUp = absData.convertStringtoList2(objAntennaUp.tx)
223 else:
223 else:
224 arrayTxUp = arrayTx
224 arrayTxUp = arrayTx
225 if objAntennaUp.rx != None:
225 if objAntennaUp.rx != None:
226 arrayRxUp = absData.convertStringtoList2(objAntennaUp.rx)
226 arrayRxUp = absData.convertStringtoList2(objAntennaUp.rx)
227 else:
227 else:
228 arrayRxUp = arrayTx
228 arrayRxUp = arrayTx
229 if objAntennaUp.ues != None:
229 if objAntennaUp.ues != None:
230 arrayUesUp = absData.convertStringtoList1(objAntennaUp.ues)
230 arrayUesUp = absData.convertStringtoList1(objAntennaUp.ues)
231 else:
231 else:
232 arrayUesUp = arrayUes
232 arrayUesUp = arrayUes
233
233
234 arrayAntennaDown = absData.convertStringtoList2(objAntennaDown.value)
234 arrayAntennaDown = absData.convertStringtoList2(objAntennaDown.value)
235 if objAntennaDown.tx != None:
235 if objAntennaDown.tx != None:
236 arrayTxDown = absData.convertStringtoList2(objAntennaDown.tx)
236 arrayTxDown = absData.convertStringtoList2(objAntennaDown.tx)
237 else:
237 else:
238 arrayTxDown = arrayTx
238 arrayTxDown = arrayTx
239 if objAntennaDown.rx != None:
239 if objAntennaDown.rx != None:
240 arrayRxDown = absData.convertStringtoList2(objAntennaDown.rx)
240 arrayRxDown = absData.convertStringtoList2(objAntennaDown.rx)
241 else:
241 else:
242 arrayRxDown = arrayTx
242 arrayRxDown = arrayTx
243 if objAntennaDown.ues != None:
243 if objAntennaDown.ues != None:
244 arrayUesDown = absData.convertStringtoList1(objAntennaDown.ues)
244 arrayUesDown = absData.convertStringtoList1(objAntennaDown.ues)
245 else:
245 else:
246 arrayUesDown = arrayUes
246 arrayUesDown = arrayUes
247
247
248 return render_to_response('config/editPattern.html', {'objProfile': objProfile, 'profile_list': profile_list,
248 return render_to_response('config/editPattern.html', {'objProfile': objProfile, 'profile_list': profile_list,
249 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
249 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
250 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
250 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
251 'arrayAntennaUp' : arrayAntennaUp, 'arrayTxUp' : arrayTxUp,
251 'arrayAntennaUp' : arrayAntennaUp, 'arrayTxUp' : arrayTxUp,
252 'arrayRxUp' : arrayRxUp, 'arrayRxDown' : arrayRxDown,
252 'arrayRxUp' : arrayRxUp, 'arrayRxDown' : arrayRxDown,
253 'arrayAntennaDown' : arrayAntennaDown, 'arrayTxDown' : arrayTxDown,
253 'arrayAntennaDown' : arrayAntennaDown, 'arrayTxDown' : arrayTxDown,
254 'arrayUesUp' : arrayUesUp, 'arrayUesDown' : arrayUesDown,
254 'arrayUesUp' : arrayUesUp, 'arrayUesDown' : arrayUesDown,
255 }, context_instance=RequestContext(request))
255 }, context_instance=RequestContext(request))
256
256
257 def savePattern(request, profile_id):
257 def savePattern(request, profile_id):
258 pattern_id = 0
258 pattern_id = 0
259 method = "save"
259 method = "save"
260
260
261 if 'pattern_id' in request.POST:
261 if 'pattern_id' in request.POST:
262 pattern_id = request.POST["pattern_id"]
262 pattern_id = request.POST["pattern_id"]
263 method = "update"
263 method = "update"
264
264
265 maxValuePattern = 0
265 maxValuePattern = 0
266 txtAntennaUp = request.POST["txtAntennaUp"]
266 txtAntennaUp = request.POST["txtAntennaUp"]
267 txtTxUp = request.POST["txtTxUp"]
267 txtTxUp = request.POST["txtTxUp"]
268 txtRxUp = request.POST["txtRxUp"]
268 txtRxUp = request.POST["txtRxUp"]
269 txtUesUp = request.POST["txtUesUp"]
269 txtUesUp = request.POST["txtUesUp"]
270 if "chkOnlyRxUp" in request.POST:
270 if "chkOnlyRxUp" in request.POST:
271 chkOnlyRxUp = request.POST["chkOnlyRxUp"]
271 chkOnlyRxUp = request.POST["chkOnlyRxUp"]
272 else:
272 else:
273 chkOnlyRxUp = 0
273 chkOnlyRxUp = 0
274
274
275 txtAntennaDown = request.POST["txtAntennaDown"]
275 txtAntennaDown = request.POST["txtAntennaDown"]
276 txtTxDown = request.POST["txtTxDown"]
276 txtTxDown = request.POST["txtTxDown"]
277 txtRxDown = request.POST["txtRxDown"]
277 txtRxDown = request.POST["txtRxDown"]
278 txtUesDown = request.POST["txtUesDown"]
278 txtUesDown = request.POST["txtUesDown"]
279 if "chkOnlyRxDown" in request.POST:
279 if "chkOnlyRxDown" in request.POST:
280 chkOnlyRxDown = request.POST["chkOnlyRxDown"]
280 chkOnlyRxDown = request.POST["chkOnlyRxDown"]
281 else:
281 else:
282 chkOnlyRxDown = 0
282 chkOnlyRxDown = 0
283
283
284 mode = request.POST["mode"]
284 mode = request.POST["mode"]
285
285
286 if method == "save":
286 if method == "save":
287 objProfile = Profile.objects.get(pk=profile_id)
287 objProfile = Profile.objects.get(pk=profile_id)
288 lsPatterns = objProfile.pattern_set.all()
288 lsPatterns = objProfile.pattern_set.all()
289 if len(lsPatterns) > 0:
289 if len(lsPatterns) > 0:
290 for element in lsPatterns:
290 for element in lsPatterns:
291 if element.value > maxValuePattern:
291 if element.value > maxValuePattern:
292 maxPattern = element.value
292 maxPattern = element.value
293 else:
293 else:
294 maxPattern = 0
294 maxPattern = 0
295
295
296 if maxPattern < 10 :
296 if maxPattern < 10 :
297 newValuePattern = maxPattern + 1
297 newValuePattern = maxPattern + 1
298 newpattern = objProfile.pattern_set.create(value=newValuePattern)
298 newpattern = objProfile.pattern_set.create(value=newValuePattern)
299 newpattern.antennaup_set.create(value=txtAntennaUp,tx=txtTxUp,rx=txtRxUp,ues=txtUesUp,only_rx=chkOnlyRxUp)
299 newpattern.antennaup_set.create(value=txtAntennaUp,tx=txtTxUp,rx=txtRxUp,ues=txtUesUp,only_rx=chkOnlyRxUp)
300 newpattern.antennadown_set.create(value=txtAntennaDown,tx=txtTxDown,rx=txtRxDown,ues=txtUesDown,only_rx=chkOnlyRxDown)
300 newpattern.antennadown_set.create(value=txtAntennaDown,tx=txtTxDown,rx=txtRxDown,ues=txtUesDown,only_rx=chkOnlyRxDown)
301 error = 0
301 error = 0
302 else:
302 else:
303 error = 1 # Can not add more patterns
303 error = 1 # Can not add more patterns
304
304
305 if mode == "e":
305 if mode == "e":
306 newurl = '/abscontrol/%d/edit/%d' % (int(profile_id), newpattern.id)
306 newurl = '/abscontrol/%d/edit/%d' % (int(profile_id), newpattern.id)
307 else:
307 else:
308 newurl = '/abscontrol/%d/view/%d' % (int(profile_id), newpattern.id)
308 newurl = '/abscontrol/%d/view/%d' % (int(profile_id), newpattern.id)
309 else:
309 else:
310 txtAntennaUpId = request.POST["txtAntennaUpId"]
310 txtAntennaUpId = request.POST["txtAntennaUpId"]
311 objAntennaUp = AntennaUp.objects.get(pk=txtAntennaUpId)
311 objAntennaUp = AntennaUp.objects.get(pk=txtAntennaUpId)
312 objAntennaUp.value = txtAntennaUp
312 objAntennaUp.value = txtAntennaUp
313 objAntennaUp.tx = txtTxUp
313 objAntennaUp.tx = txtTxUp
314 objAntennaUp.rx = txtRxUp
314 objAntennaUp.rx = txtRxUp
315 objAntennaUp.ues = txtUesUp
315 objAntennaUp.ues = txtUesUp
316 objAntennaUp.only_rx = chkOnlyRxUp
316 objAntennaUp.only_rx = chkOnlyRxUp
317 objAntennaUp.save()
317 objAntennaUp.save()
318
318
319 txtAntennaDownId = request.POST["txtAntennaDownId"]
319 txtAntennaDownId = request.POST["txtAntennaDownId"]
320 objAntennaDown = AntennaDown.objects.get(pk=txtAntennaDownId)
320 objAntennaDown = AntennaDown.objects.get(pk=txtAntennaDownId)
321 objAntennaDown.value = txtAntennaDown
321 objAntennaDown.value = txtAntennaDown
322 objAntennaDown.tx = txtTxDown
322 objAntennaDown.tx = txtTxDown
323 objAntennaDown.rx = txtRxDown
323 objAntennaDown.rx = txtRxDown
324 objAntennaDown.ues = txtUesDown
324 objAntennaDown.ues = txtUesDown
325 objAntennaDown.only_rx = chkOnlyRxDown
325 objAntennaDown.only_rx = chkOnlyRxDown
326 objAntennaDown.save()
326 objAntennaDown.save()
327
327
328 if mode == "e":
328 if mode == "e":
329 newurl = '/abscontrol/%d/edit/%d' % (int(profile_id), int(pattern_id))
329 newurl = '/abscontrol/%d/edit/%d' % (int(profile_id), int(pattern_id))
330 else:
330 else:
331 newurl = '/abscontrol/%d/view/%d' % (int(profile_id), int(pattern_id))
331 newurl = '/abscontrol/%d/view/%d' % (int(profile_id), int(pattern_id))
332
332
333 return redirect(newurl)
333 return redirect(newurl)
334
334
335 def viewPattern(request, profile_id, pattern_id):
335 def viewPattern(request, profile_id, pattern_id):
336 objProfileActive = None
336 objProfileActive = None
337 objPatternActive = None
337 objPatternActive = None
338
338
339 profile_list = Profile.objects.filter(state=1)
339 profile_list = Profile.objects.filter(state=1)
340 objProfile = Profile.objects.get(pk=profile_id)
340 objProfile = Profile.objects.get(pk=profile_id)
341
341
342 patternChoosen = Pattern.objects.get(pk=pattern_id)
342 patternChoosen = Pattern.objects.get(pk=pattern_id)
343
343
344 objAntennaUp = patternChoosen.antennaup_set.get()
344 objAntennaUp = patternChoosen.antennaup_set.get()
345 objAntennaDown = patternChoosen.antennadown_set.get()
345 objAntennaDown = patternChoosen.antennadown_set.get()
346
346
347 lsPatterns = objProfile.pattern_set.all()
347 lsPatterns = objProfile.pattern_set.all()
348
348
349 lsProfilesActive = Profile.objects.filter(is_active=1)
349 lsProfilesActive = Profile.objects.filter(is_active=1)
350 if len(lsProfilesActive) > 0:
350 if len(lsProfilesActive) > 0:
351 objProfileActive = Profile.objects.get(is_active=1)
351 objProfileActive = Profile.objects.get(is_active=1)
352
352
353 lsPatternsActive = Pattern.objects.filter(is_active=1)
353 lsPatternsActive = Pattern.objects.filter(is_active=1)
354 if len(lsPatternsActive) > 0:
354 if len(lsPatternsActive) > 0:
355 objPatternActive = Pattern.objects.get(is_active=1)
355 objPatternActive = Pattern.objects.get(is_active=1)
356
356
357 return render_to_response('config/viewPattern.html', {'objProfile': objProfile, 'profile_list': profile_list,
357 return render_to_response('config/viewPattern.html', {'objProfile': objProfile, 'profile_list': profile_list,
358 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
358 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
359 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
359 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
360 'profileActive' : objProfileActive, 'patternActive' : objPatternActive,
360 'profileActive' : objProfileActive, 'patternActive' : objPatternActive,
361 }, context_instance=RequestContext(request))
361 }, context_instance=RequestContext(request))
362
362
363 def deletePattern(request, profile_id, pattern_id):
363 def deletePattern(request, profile_id, pattern_id):
364 newurl = '/abscontrol/edit/%d' % int(profile_id)
364 newurl = '/abscontrol/edit/%d' % int(profile_id)
365
365
366 return redirect(newurl)
366 return redirect(newurl)
367
367
368 def importProfile(request):
368 def importProfile(request):
369 profile_list = Profile.objects.filter(state=1)
369 profile_list = Profile.objects.filter(state=1)
370 return render_to_response('config/import.html', {'profile_list': profile_list,}, context_instance=RequestContext(request))
370 return render_to_response('config/import.html', {'profile_list': profile_list,}, context_instance=RequestContext(request))
371
371
372 def upload(request):
372 def upload(request):
373 profile_list = Profile.objects.filter(state=1)
373 profile_list = Profile.objects.filter(state=1)
374 if request.method == 'POST':
374 if request.method == 'POST':
375 txtFilename = request.FILES['txtFile']
375 txtFilename = request.FILES['txtFile']
376 if txtFilename:
376 if txtFilename:
377 destination = open('/tmp/'+txtFilename.name, 'wb+')
377 destination = open('/tmp/'+txtFilename.name, 'wb+')
378 for chunk in txtFilename.chunks():
378 for chunk in txtFilename.chunks():
379 destination.write(chunk)
379 destination.write(chunk)
380 destination.close()
380 destination.close()
381 filename = '/tmp/'+txtFilename.name
381 filename = '/tmp/'+txtFilename.name
382 readFile = readABSFile(filename)
382 readFile = readABSFile(filename)
383 expName, num_patterns, patterns = readFile.getMetadata()
383 expName, num_patterns, patterns = readFile.getMetadata()
384
384
385 if expName != "" and num_patterns > 0:
385 if expName != "" and num_patterns > 0:
386 if len(Profile.objects.filter(name__iexact=expName)) > 0:
386 if len(Profile.objects.filter(name__iexact=expName)) > 0:
387 txtError = "Experiment's name found."
387 txtError = "Experiment's name found."
388 return render_to_response('config/error.html', {'profile_list': profile_list,
388 return render_to_response('config/error.html', {'profile_list': profile_list,
389 'txtError' : txtError, },
389 'txtError' : txtError, },
390 context_instance=RequestContext(request))
390 context_instance=RequestContext(request))
391 else:
391 else:
392 newprofile = Profile(name=expName)
392 newprofile = Profile(name=expName)
393 newprofile.save()
393 newprofile.save()
394 newprofile.state = 1
394 newprofile.state = 1
395
395
396 for element in patterns:
396 for element in patterns:
397 newpattern = newprofile.pattern_set.create(value=element["number"])
397 newpattern = newprofile.pattern_set.create(value=element["number"])
398 newpattern.antennaup_set.create(value=element["up"])
398 newpattern.antennaup_set.create(value=element["up"])
399 newpattern.antennadown_set.create(value=element["down"])
399 newpattern.antennadown_set.create(value=element["down"])
400
400
401 newprofile.save()
401 newprofile.save()
402
402
403 newurl = '/abscontrol/edit/%d' % int(newprofile.id)
403 newurl = '/abscontrol/edit/%d' % int(newprofile.id)
404 return redirect(newurl)
404 return redirect(newurl)
405 else:
405 else:
406 txtError = "Experiment's name not found or the number of patterns is 0."
406 txtError = "Experiment's name not found or the number of patterns is 0."
407 return render_to_response('config/error.html', {'profile_list': profile_list,
407 return render_to_response('config/error.html', {'profile_list': profile_list,
408 'txtError' : txtError, },
408 'txtError' : txtError, },
409 context_instance=RequestContext(request))
409 context_instance=RequestContext(request))
410 else:
410 else:
411 txtError = "No file."
411 txtError = "No file."
412
412
413 return render_to_response('config/error.html', {'profile_list': profile_list, 'txtError' : txtError, },
413 return render_to_response('config/error.html', {'profile_list': profile_list, 'txtError' : txtError, },
414 context_instance=RequestContext(request))
414 context_instance=RequestContext(request))
415
415
416 def getImgfromOverJRO(profile_id, objAntenna):
416 def getImgfromOverJRO(profile_id, objAntenna):
417 objProfile = Profile.objects.get(pk=profile_id)
417 objProfile = Profile.objects.get(pk=profile_id)
418 exp_name = objProfile.name
418 exp_name = objProfile.name
419 phase_tx = objAntenna.value
419 phase_tx = objAntenna.value
420 gain_tx = objAntenna.tx
420 gain_tx = objAntenna.tx
421 gain_rx = objAntenna.rx
421 gain_rx = objAntenna.rx
422 ues_tx = objAntenna.ues
422 ues_tx = objAntenna.ues
423 just_rx = objAntenna.only_rx
423 just_rx = objAntenna.only_rx
424
424
425 overjro = OverJRO()
425 overjro = OverJRO()
426 overjro.setParameters(settings.MEDIA_ROOT, exp_name, phase_tx, gain_tx, gain_rx, ues_tx, just_rx)
426 overjro.setParameters(settings.MEDIA_ROOT, exp_name, phase_tx, gain_tx, gain_rx, ues_tx, just_rx)
427 contentFile = overjro.setTextContent()
427 contentFile = overjro.setTextContent()
428 finalpath = overjro.saveFile(contentFile)
428 finalpath = overjro.saveFile(contentFile)
429
429
430 currentdate = datetime.today()
430 currentdate = datetime.today()
431 newOverJro = overJroShow()
431 newOverJro = overJroShow()
432 newOverJro.setInputParameters(settings.MEDIA_ROOT, currentdate, finalpath)
432 newOverJro.setInputParameters(settings.MEDIA_ROOT, currentdate, finalpath)
433 newOverJro.setupParameters()
433 newOverJro.setupParameters()
434 newOverJro.execute()
434 newOverJro.execute()
435 path = newOverJro.getPlot()
435 path = newOverJro.getPlot()
436
436
437 return path
437 return path
438
438
439 def overJROUp(request, profile_id, pattern_id, antenna_id):
439 def overJROUp(request, profile_id, pattern_id, antenna_id):
440 objAntenna = AntennaUp.objects.get(pk=antenna_id)
440 objAntenna = AntennaUp.objects.get(pk=antenna_id)
441 img_path = getImgfromOverJRO(profile_id, objAntenna)
441 img_path = getImgfromOverJRO(profile_id, objAntenna)
442 filename = os.path.split(img_path)[1]
442 filename = os.path.split(img_path)[1]
443 return render_to_response('config/overjro_up.html', {'img_up': filename,'antennaUp': objAntenna,},
443 return render_to_response('config/overjro_up.html', {'img_up': filename,'antennaUp': objAntenna,},
444 context_instance=RequestContext(request))
444 context_instance=RequestContext(request))
445
445
446 def overJRODown(request, profile_id, pattern_id, antenna_id):
446 def overJRODown(request, profile_id, pattern_id, antenna_id):
447 objAntenna = AntennaDown.objects.get(pk=antenna_id)
447 objAntenna = AntennaDown.objects.get(pk=antenna_id)
448 img_path = getImgfromOverJRO(profile_id, objAntenna)
448 img_path = getImgfromOverJRO(profile_id, objAntenna)
449 filename = os.path.split(img_path)[1]
449 filename = os.path.split(img_path)[1]
450 return render_to_response('config/overjro_down.html', {'img_down': filename, 'antennaDown': objAntenna,},
450 return render_to_response('config/overjro_down.html', {'img_down': filename, 'antennaDown': objAntenna,},
451 context_instance=RequestContext(request))
451 context_instance=RequestContext(request))
452
452
453 def export(request, profile_id):
453 def export(request, profile_id):
454 listPatterns = []
454 listPatterns = []
455 objProfile = Profile.objects.get(pk=profile_id)
455 objProfile = Profile.objects.get(pk=profile_id)
456 exp_name = objProfile.name
456 exp_name = objProfile.name
457 lsPatterns = objProfile.pattern_set.all()
457 lsPatterns = objProfile.pattern_set.all()
458 for element in lsPatterns:
458 for element in lsPatterns:
459 objAntennaUp = element.antennaup_set.get()
459 objAntennaUp = element.antennaup_set.get()
460 objAntennaDown = element.antennadown_set.get()
460 objAntennaDown = element.antennadown_set.get()
461 dicPatterns = {"number" : element.value, "up" : objAntennaUp.value, "down" : objAntennaDown.value}
461 dicPatterns = {"number" : element.value, "up" : objAntennaUp.value, "down" : objAntennaDown.value}
462 listPatterns.append(dicPatterns)
462 listPatterns.append(dicPatterns)
463
463
464 absFile = saveABSFile()
464 absFile = saveABSFile()
465 absFile.setParameters(settings.MEDIA_ROOT, exp_name, listPatterns)
465 absFile.setParameters(settings.MEDIA_ROOT, exp_name, listPatterns)
466 filename, filesize = absFile.save()
466 filename, filesize = absFile.save()
467
467
468 wrapper = FileWrapper( open( filename, "r" ) )
468 wrapper = FileWrapper( open( filename, "r" ) )
469 content_type = mimetypes.guess_type( filename )[0]
469 content_type = mimetypes.guess_type( filename )[0]
470
470
471 response = HttpResponse(wrapper, content_type = content_type)
471 response = HttpResponse(wrapper, content_type = content_type)
472 response['Content-Description'] = 'File Transfer'
472 response['Content-Description'] = 'File Transfer'
473 response['Content-Disposition'] = 'attachment; filename=%s' % smart_str(filename)
473 response['Content-Disposition'] = 'attachment; filename=%s' % smart_str(filename)
474 response['Content-Transfer-Encoding'] = 'binary'
474 response['Content-Transfer-Encoding'] = 'binary'
475 response['Expires'] = '0'
475 response['Expires'] = '0'
476 response['Cache-Control'] = 'must-revalidate'
476 response['Cache-Control'] = 'must-revalidate'
477 response['Pragma'] = 'public'
477 response['Pragma'] = 'public'
478 response['Content-Length'] = '%s' % str(filesize)
478 response['Content-Length'] = '%s' % str(filesize)
479 response['X-Sendfile'] = '%s' % smart_str(filename)
479 response['X-Sendfile'] = '%s' % smart_str(filename)
480
480
481 return response
481 return response
482
482
483 def send(request, profile_id):
483 def send(request, profile_id):
484 listPatterns = []
484 listPatterns = []
485 objProfile = Profile.objects.get(pk=profile_id)
485 objProfile = Profile.objects.get(pk=profile_id)
486 exp_name = objProfile.name
486 exp_name = objProfile.name
487
487
488 lsPatterns = objProfile.pattern_set.all()
488 lsPatterns = objProfile.pattern_set.all()
489 for element in lsPatterns:
489 for element in lsPatterns:
490 objAntennaUp = element.antennaup_set.get()
490 objAntennaUp = element.antennaup_set.get()
491 objAntennaDown = element.antennadown_set.get()
491 objAntennaDown = element.antennadown_set.get()
492 dicPatterns = {"number" : element.value, "up" : objAntennaUp.value, "down" : objAntennaDown.value}
492 dicPatterns = {"number" : element.value, "up" : objAntennaUp.value, "down" : objAntennaDown.value}
493 listPatterns.append(dicPatterns)
493 listPatterns.append(dicPatterns)
494
494
495 absFile = saveABSFile()
495 absFile = saveABSFile()
496 absFile.setParameters(settings.MEDIA_ROOT, exp_name, listPatterns)
496 absFile.setParameters(settings.MEDIA_ROOT, exp_name, listPatterns)
497 filename, filesize = absFile.save()
497 filename, filesize = absFile.save()
498
498
499 apiclient = sendFile()
499 apiclient = sendFile()
500 apiclient.execute(filename)
500 apiclient.execute(filename)
501 output = apiclient.getOutput()
501 output = apiclient.getOutput()
502
502
503 if output == "OK":
503 if output == "OK":
504 message = "File sent successfully."
504 message = "File sent successfully."
505 lsProfilesActive = Profile.objects.filter(is_active=1)
505 lsProfilesActive = Profile.objects.filter(is_active=1)
506 if len(lsProfilesActive) > 0:
506 if len(lsProfilesActive) > 0:
507 objProfileActive = Profile.objects.get(is_active=1)
507 objProfileActive = Profile.objects.get(is_active=1)
508 objProfileActive.is_active = 0
508 objProfileActive.is_active = 0
509 objProfileActive.save()
509 objProfileActive.save()
510
510
511 lsPatternsActive = Pattern.objects.filter(is_active=1)
511 lsPatternsActive = Pattern.objects.filter(is_active=1)
512 if len(lsPatternsActive) > 0:
512 if len(lsPatternsActive) > 0:
513 objPatternActive = Pattern.objects.get(is_active=1)
513 objPatternActive = Pattern.objects.get(is_active=1)
514 objPatternActive.is_active = 0
514 objPatternActive.is_active = 0
515 objPatternActive.save()
515 objPatternActive.save()
516
516
517 objProfile.hits += 1
517 objProfile.hits += 1
518 objProfile.is_active = 1
518 objProfile.is_active = 1
519 objProfile.save()
519 objProfile.save()
520
520
521 pattern_value = 1
521 pattern_value = 1
522 patternChoosen = objProfile.pattern_set.get(value=pattern_value)
522 patternChoosen = objProfile.pattern_set.get(value=pattern_value)
523 patternChoosen.is_active = 1
523 patternChoosen.is_active = 1
524 patternChoosen.save()
524 patternChoosen.save()
525
525
526 newurl = '/abscontrol/view/%d' % int(profile_id)
526 newurl = '/abscontrol/view/%d' % int(profile_id)
527
527
528 return redirect(newurl)
528 return redirect(newurl)
529 else:
529 else:
530 message = "Error sending file."
530 message = "Error sending file."
531
531
532 profile_list = Profile.objects.all()
532 profile_list = Profile.objects.all()
533
533
534 return render_to_response('config/sendFile.html', {'message': message, "profile_list" : profile_list,
534 return render_to_response('config/sendFile.html', {'message': message, "profile_list" : profile_list,
535 'objProfile': objProfile,
535 'objProfile': objProfile,
536 }, context_instance=RequestContext(request))
536 }, context_instance=RequestContext(request))
537
537
538 def changePattern(request, profile_id, pattern_id):
538 def changePattern(request, profile_id, pattern_id):
539 patternChoosen = Pattern.objects.get(id=pattern_id)
539 patternChoosen = Pattern.objects.get(id=pattern_id)
540 beam = int(patternChoosen.value)-1
540 beam = int(patternChoosen.value)-1
541
541
542 apiclient = changeBeam()
542 apiclient = changeBeam()
543 apiclient.execute(str(beam))
543 apiclient.execute(str(beam))
544 output = apiclient.getOutput()
544 output = apiclient.getOutput()
545
545
546 if output == "OK":
546 if output == "OK":
547 lsPatternsActive = Pattern.objects.filter(is_active=1)
547 lsPatternsActive = Pattern.objects.filter(is_active=1)
548 if len(lsPatternsActive) > 0:
548 if len(lsPatternsActive) > 0:
549 objPatternActive = Pattern.objects.get(is_active=1)
549 objPatternActive = Pattern.objects.get(is_active=1)
550 objPatternActive.is_active = 0
550 objPatternActive.is_active = 0
551 objPatternActive.save()
551 objPatternActive.save()
552
552
553 patternChoosen.hits += 1
553 patternChoosen.hits += 1
554 patternChoosen.is_active = 1
554 patternChoosen.is_active = 1
555 patternChoosen.save()
555 patternChoosen.save()
556
556
557 newurl = '/abscontrol/%d/view/%d/' % (int(profile_id), int(pattern_id))
557 newurl = '/abscontrol/%d/view/%d/' % (int(profile_id), int(pattern_id))
558 return redirect(newurl)
558 return redirect(newurl)
559 else:
559 else:
560 message = "Error sending file."
560 message = "Error sending file."
561 profile_list = Profile.objects.all()
561 profile_list = Profile.objects.all()
562 return render_to_response('config/sendFile.html', {'message': message, "profile_list" : profile_list,
562 return render_to_response('config/sendFile.html', {'message': message, "profile_list" : profile_list,
563 }, context_instance=RequestContext(request))
563 }, context_instance=RequestContext(request))
564 No newline at end of file
564
@@ -1,44 +1,43
1 <!DOCTYPE html>
1 <!DOCTYPE html>
2 <html lang="en">
2 <html lang="en">
3 <head>
3 <head>
4 <meta charset="utf-8" />
4 <meta charset="utf-8" />
5 {% comment %}
5 {% comment %}
6 <!-- Always force latest IE rendering engine (even in intranet) & Chrome Frame
6 <!-- Always force latest IE rendering engine (even in intranet) & Chrome Frame
7 Remove this if you use the .htaccess -->
7 Remove this if you use the .htaccess -->
8 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
8 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
9 {% endcomment %}
9 {% endcomment %}
10 <link href='http://fonts.googleapis.com/css?family=Droid+Sans|Ubuntu:400,500,300italic|Open+Sans:400,300,600|Open+Sans+Condensed:300,700|Roboto+Condensed:400,300' rel='stylesheet' type='text/css'>
10 <link href='http://fonts.googleapis.com/css?family=Droid+Sans|Ubuntu:400,500,300italic|Open+Sans:400,300,600|Open+Sans+Condensed:300,700|Roboto+Condensed:400,300' rel='stylesheet' type='text/css'>
11 <link rel="stylesheet" href="{{ STATIC_URL }}css/style.css" type="text/css" />
11 <link rel="stylesheet" href="{{ STATIC_URL }}css/style.css" type="text/css" />
12 <script src="{{ STATIC_URL }}js/jquery-1.9.1.min.js"></script>
12 <script src="{{ STATIC_URL }}js/jquery-1.9.1.min.js"></script>
13 {% block scripting %}{% endblock %}
13 {% block scripting %}{% endblock %}
14 <title>{% block title %}JRO WEB APPS::::{% endblock %}</title>
14 <title>{% block title %}JRO WEB APPS::::{% endblock %}</title>
15 <meta name="description" content="JRO WEB APPLICATIONS" />
15 <meta name="description" content="JRO WEB APPLICATIONS" />
16 <meta name="author" content="Jose Antonio Sal y Rosas Celi" />
16 <meta name="author" content="Jose Antonio Sal y Rosas Celi" />
17
17 <meta name="viewport" content="width=device-width; initial-scale=1.0" />
18 {# <meta name="viewport" content="width=device-width; initial-scale=1.0" /> #}
19 {% comment %}
18 {% comment %}
20 <!-- Replace favicon.ico & apple-touch-icon.png in the root of your domain and delete these references -->
19 <!-- Replace favicon.ico & apple-touch-icon.png in the root of your domain and delete these references -->
21 <link rel="shortcut icon" href="/favicon.ico" />
20 <link rel="shortcut icon" href="/favicon.ico" />
22 <link rel="apple-touch-icon" href="/apple-touch-icon.png" />
21 <link rel="apple-touch-icon" href="/apple-touch-icon.png" />
23 {% endcomment %}
22 {% endcomment %}
24 </head>
23 </head>
25 <body>
24 <body>
26 <div id="schema">
25 <div id="schema">
27 <header>
26 <header>
28 {% block header %}
27 {% block header %}
29 <div id="Main_Head">
28 <div id="Main_Head">
30 <label class="Main_Title">Jicamarca Radio Observatory</label>
29 <label class="Main_Title">Jicamarca Radio Observatory</label>
31 </div>
30 </div>
32 {% endblock %}
31 {% endblock %}
33 </header>
32 </header>
34 {% block content %}
33 {% block content %}
35 <div id="content"></div>
34 <div id="content"></div>
36 {% endblock %}
35 {% endblock %}
37 <footer>
36 <footer>
38 {% block footer %}
37 {% block footer %}
39 <p>&copy; Copyright 2013 by Jicamarca Radio Observatory</p>
38 <p>&copy; Copyright 2013 by Jicamarca Radio Observatory</p>
40 {% endblock %}
39 {% endblock %}
41 </footer>
40 </footer>
42 </div>
41 </div>
43 </body>
42 </body>
44 </html>
43 </html>
General Comments 0
You need to be logged in to leave comments. Login now