##// END OF EJS Templates
- Ejecutando el script de cambio de apunte....
jsalyrosas -
r204:205
parent child
Show More
@@ -0,0 +1,131
1 # -*- coding: utf-8 -*-
2 import datetime
3 from south.db import db
4 from south.v2 import SchemaMigration
5 from django.db import models
6
7
8 class Migration(SchemaMigration):
9
10 def forwards(self, orm):
11 # Adding model 'Profile'
12 db.create_table('abs_profile_antenna', (
13 ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
14 ('name', self.gf('django.db.models.fields.CharField')(max_length=250)),
15 ('date_create', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
16 ('date_modified', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)),
17 ('hits', self.gf('django.db.models.fields.PositiveIntegerField')(default=0)),
18 ('state', self.gf('django.db.models.fields.PositiveSmallIntegerField')(default=0)),
19 ))
20 db.send_create_signal('abscontrol', ['Profile'])
21
22 # Adding model 'Pattern'
23 db.create_table('abs_pattern_antenna', (
24 ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
25 ('profile', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['abscontrol.Profile'])),
26 ('value', self.gf('django.db.models.fields.PositiveIntegerField')()),
27 ('date_create', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
28 ('date_modified', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)),
29 ('hits', self.gf('django.db.models.fields.PositiveIntegerField')(default=0)),
30 ('state', self.gf('django.db.models.fields.PositiveSmallIntegerField')(default=1)),
31 ))
32 db.send_create_signal('abscontrol', ['Pattern'])
33
34 # Adding model 'AntennaUp'
35 db.create_table('abs_antenna_up', (
36 ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
37 ('pattern', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['abscontrol.Pattern'])),
38 ('value', self.gf('django.db.models.fields.TextField')()),
39 ('tx', self.gf('django.db.models.fields.TextField')(null=True)),
40 ('rx', self.gf('django.db.models.fields.TextField')(null=True)),
41 ('ues', self.gf('django.db.models.fields.CharField')(max_length=120, null=True)),
42 ('only_rx', self.gf('django.db.models.fields.PositiveSmallIntegerField')(default=0)),
43 ('date_create', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
44 ('date_modified', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)),
45 ('hits', self.gf('django.db.models.fields.PositiveIntegerField')(default=0)),
46 ('state', self.gf('django.db.models.fields.PositiveSmallIntegerField')(default=1)),
47 ))
48 db.send_create_signal('abscontrol', ['AntennaUp'])
49
50 # Adding model 'AntennaDown'
51 db.create_table('abs_antenna_down', (
52 ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
53 ('pattern', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['abscontrol.Pattern'])),
54 ('value', self.gf('django.db.models.fields.TextField')()),
55 ('tx', self.gf('django.db.models.fields.TextField')(null=True)),
56 ('rx', self.gf('django.db.models.fields.TextField')(null=True)),
57 ('ues', self.gf('django.db.models.fields.CharField')(max_length=120, null=True)),
58 ('only_rx', self.gf('django.db.models.fields.PositiveSmallIntegerField')(default=0)),
59 ('date_create', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
60 ('date_modified', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)),
61 ('hits', self.gf('django.db.models.fields.PositiveIntegerField')(default=0)),
62 ('state', self.gf('django.db.models.fields.PositiveSmallIntegerField')(default=1)),
63 ))
64 db.send_create_signal('abscontrol', ['AntennaDown'])
65
66
67 def backwards(self, orm):
68 # Deleting model 'Profile'
69 db.delete_table('abs_profile_antenna')
70
71 # Deleting model 'Pattern'
72 db.delete_table('abs_pattern_antenna')
73
74 # Deleting model 'AntennaUp'
75 db.delete_table('abs_antenna_up')
76
77 # Deleting model 'AntennaDown'
78 db.delete_table('abs_antenna_down')
79
80
81 models = {
82 'abscontrol.antennadown': {
83 'Meta': {'object_name': 'AntennaDown', 'db_table': "'abs_antenna_down'"},
84 'date_create': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
85 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
86 'hits': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
87 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
88 'only_rx': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}),
89 'pattern': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['abscontrol.Pattern']"}),
90 'rx': ('django.db.models.fields.TextField', [], {'null': 'True'}),
91 'state': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '1'}),
92 'tx': ('django.db.models.fields.TextField', [], {'null': 'True'}),
93 'ues': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': 'True'}),
94 'value': ('django.db.models.fields.TextField', [], {})
95 },
96 'abscontrol.antennaup': {
97 'Meta': {'object_name': 'AntennaUp', 'db_table': "'abs_antenna_up'"},
98 'date_create': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
99 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
100 'hits': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
101 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
102 'only_rx': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}),
103 'pattern': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['abscontrol.Pattern']"}),
104 'rx': ('django.db.models.fields.TextField', [], {'null': 'True'}),
105 'state': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '1'}),
106 'tx': ('django.db.models.fields.TextField', [], {'null': 'True'}),
107 'ues': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': 'True'}),
108 'value': ('django.db.models.fields.TextField', [], {})
109 },
110 'abscontrol.pattern': {
111 'Meta': {'object_name': 'Pattern', 'db_table': "'abs_pattern_antenna'"},
112 'date_create': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
113 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
114 'hits': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
115 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
116 'profile': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['abscontrol.Profile']"}),
117 'state': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '1'}),
118 'value': ('django.db.models.fields.PositiveIntegerField', [], {})
119 },
120 'abscontrol.profile': {
121 'Meta': {'object_name': 'Profile', 'db_table': "'abs_profile_antenna'"},
122 'date_create': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
123 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
124 'hits': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
125 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
126 'name': ('django.db.models.fields.CharField', [], {'max_length': '250'}),
127 'state': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'})
128 }
129 }
130
131 complete_apps = ['abscontrol'] No newline at end of file
@@ -0,0 +1,73
1 # -*- coding: utf-8 -*-
2 import datetime
3 from south.db import db
4 from south.v2 import SchemaMigration
5 from django.db import models
6
7
8 class Migration(SchemaMigration):
9
10 def forwards(self, orm):
11 # Adding field 'Profile.is_active'
12 db.add_column('abs_profile_antenna', 'is_active',
13 self.gf('django.db.models.fields.PositiveSmallIntegerField')(default=0),
14 keep_default=False)
15
16
17 def backwards(self, orm):
18 # Deleting field 'Profile.is_active'
19 db.delete_column('abs_profile_antenna', 'is_active')
20
21
22 models = {
23 'abscontrol.antennadown': {
24 'Meta': {'object_name': 'AntennaDown', 'db_table': "'abs_antenna_down'"},
25 'date_create': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
26 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
27 'hits': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
28 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
29 'only_rx': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}),
30 'pattern': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['abscontrol.Pattern']"}),
31 'rx': ('django.db.models.fields.TextField', [], {'null': 'True'}),
32 'state': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '1'}),
33 'tx': ('django.db.models.fields.TextField', [], {'null': 'True'}),
34 'ues': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': 'True'}),
35 'value': ('django.db.models.fields.TextField', [], {})
36 },
37 'abscontrol.antennaup': {
38 'Meta': {'object_name': 'AntennaUp', 'db_table': "'abs_antenna_up'"},
39 'date_create': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
40 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
41 'hits': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
42 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
43 'only_rx': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}),
44 'pattern': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['abscontrol.Pattern']"}),
45 'rx': ('django.db.models.fields.TextField', [], {'null': 'True'}),
46 'state': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '1'}),
47 'tx': ('django.db.models.fields.TextField', [], {'null': 'True'}),
48 'ues': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': 'True'}),
49 'value': ('django.db.models.fields.TextField', [], {})
50 },
51 'abscontrol.pattern': {
52 'Meta': {'object_name': 'Pattern', 'db_table': "'abs_pattern_antenna'"},
53 'date_create': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
54 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
55 'hits': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
56 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
57 'profile': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['abscontrol.Profile']"}),
58 'state': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '1'}),
59 'value': ('django.db.models.fields.PositiveIntegerField', [], {})
60 },
61 'abscontrol.profile': {
62 'Meta': {'object_name': 'Profile', 'db_table': "'abs_profile_antenna'"},
63 'date_create': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
64 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
65 'hits': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
66 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
67 'is_active': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}),
68 'name': ('django.db.models.fields.CharField', [], {'max_length': '250'}),
69 'state': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'})
70 }
71 }
72
73 complete_apps = ['abscontrol'] No newline at end of file
@@ -0,0 +1,74
1 # -*- coding: utf-8 -*-
2 import datetime
3 from south.db import db
4 from south.v2 import SchemaMigration
5 from django.db import models
6
7
8 class Migration(SchemaMigration):
9
10 def forwards(self, orm):
11 # Adding field 'Pattern.is_active'
12 db.add_column('abs_pattern_antenna', 'is_active',
13 self.gf('django.db.models.fields.PositiveSmallIntegerField')(default=0),
14 keep_default=False)
15
16
17 def backwards(self, orm):
18 # Deleting field 'Pattern.is_active'
19 db.delete_column('abs_pattern_antenna', 'is_active')
20
21
22 models = {
23 'abscontrol.antennadown': {
24 'Meta': {'object_name': 'AntennaDown', 'db_table': "'abs_antenna_down'"},
25 'date_create': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
26 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
27 'hits': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
28 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
29 'only_rx': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}),
30 'pattern': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['abscontrol.Pattern']"}),
31 'rx': ('django.db.models.fields.TextField', [], {'null': 'True'}),
32 'state': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '1'}),
33 'tx': ('django.db.models.fields.TextField', [], {'null': 'True'}),
34 'ues': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': 'True'}),
35 'value': ('django.db.models.fields.TextField', [], {})
36 },
37 'abscontrol.antennaup': {
38 'Meta': {'object_name': 'AntennaUp', 'db_table': "'abs_antenna_up'"},
39 'date_create': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
40 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
41 'hits': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
42 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
43 'only_rx': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}),
44 'pattern': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['abscontrol.Pattern']"}),
45 'rx': ('django.db.models.fields.TextField', [], {'null': 'True'}),
46 'state': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '1'}),
47 'tx': ('django.db.models.fields.TextField', [], {'null': 'True'}),
48 'ues': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': 'True'}),
49 'value': ('django.db.models.fields.TextField', [], {})
50 },
51 'abscontrol.pattern': {
52 'Meta': {'object_name': 'Pattern', 'db_table': "'abs_pattern_antenna'"},
53 'date_create': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
54 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
55 'hits': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
56 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
57 'is_active': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}),
58 'profile': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['abscontrol.Profile']"}),
59 'state': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '1'}),
60 'value': ('django.db.models.fields.PositiveIntegerField', [], {})
61 },
62 'abscontrol.profile': {
63 'Meta': {'object_name': 'Profile', 'db_table': "'abs_profile_antenna'"},
64 'date_create': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
65 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
66 'hits': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
67 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
68 'is_active': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}),
69 'name': ('django.db.models.fields.CharField', [], {'max_length': '250'}),
70 'state': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'})
71 }
72 }
73
74 complete_apps = ['abscontrol'] No newline at end of file
1 NO CONTENT: new file 10644
NO CONTENT: new file 10644
1 NO CONTENT: new file 10644
NO CONTENT: new file 10644
@@ -1,164 +1,165
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-serve').replace('\\', '/'),
66 #STATIC_ROOT = os.path.join(PROJECT_DIR, 'static-serve').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 )
120 )
121
121
122 INSTALLED_APPS = (
122 INSTALLED_APPS = (
123 'django.contrib.auth',
123 'django.contrib.auth',
124 'django.contrib.contenttypes',
124 'django.contrib.contenttypes',
125 'django.contrib.sessions',
125 'django.contrib.sessions',
126 'django.contrib.sites',
126 'django.contrib.sites',
127 'django.contrib.messages',
127 'django.contrib.messages',
128 'django.contrib.staticfiles',
128 'django.contrib.staticfiles',
129 # Uncomment the next line to enable the admin:
129 # Uncomment the next line to enable the admin:
130 'django.contrib.admin',
130 'django.contrib.admin',
131 # Uncomment the next line to enable admin documentation:
131 # Uncomment the next line to enable admin documentation:
132 # 'django.contrib.admindocs',
132 # 'django.contrib.admindocs',
133 'abscontrol',
133 'abscontrol',
134 'audit',
134 'audit',
135 'south',
135 )
136 )
136
137
137 # A sample logging configuration. The only tangible logging
138 # A sample logging configuration. The only tangible logging
138 # performed by this configuration is to send an email to
139 # performed by this configuration is to send an email to
139 # the site admins on every HTTP 500 error when DEBUG=False.
140 # the site admins on every HTTP 500 error when DEBUG=False.
140 # See http://docs.djangoproject.com/en/dev/topics/logging for
141 # See http://docs.djangoproject.com/en/dev/topics/logging for
141 # more details on how to customize your logging configuration.
142 # more details on how to customize your logging configuration.
142 LOGGING = {
143 LOGGING = {
143 'version': 1,
144 'version': 1,
144 'disable_existing_loggers': False,
145 'disable_existing_loggers': False,
145 'filters': {
146 'filters': {
146 'require_debug_false': {
147 'require_debug_false': {
147 '()': 'django.utils.log.RequireDebugFalse'
148 '()': 'django.utils.log.RequireDebugFalse'
148 }
149 }
149 },
150 },
150 'handlers': {
151 'handlers': {
151 'mail_admins': {
152 'mail_admins': {
152 'level': 'ERROR',
153 'level': 'ERROR',
153 'filters': ['require_debug_false'],
154 'filters': ['require_debug_false'],
154 'class': 'django.utils.log.AdminEmailHandler'
155 'class': 'django.utils.log.AdminEmailHandler'
155 }
156 }
156 },
157 },
157 'loggers': {
158 'loggers': {
158 'django.request': {
159 'django.request': {
159 'handlers': ['mail_admins'],
160 'handlers': ['mail_admins'],
160 'level': 'ERROR',
161 'level': 'ERROR',
161 'propagate': True,
162 'propagate': True,
162 },
163 },
163 }
164 }
164 }
165 }
@@ -1,79 +1,81
1 from django.db import models
1 from django.db import models
2
2
3 class Profile(models.Model):
3 class Profile(models.Model):
4
4
5 name = models.CharField(max_length=250)
5 name = models.CharField(max_length=250)
6 date_create = models.DateTimeField(auto_now_add=True)
6 date_create = models.DateTimeField(auto_now_add=True)
7 date_modified = models.DateTimeField(auto_now=True)
7 date_modified = models.DateTimeField(auto_now=True)
8 hits = models.PositiveIntegerField(default=0)
8 hits = models.PositiveIntegerField(default=0)
9 state = models.PositiveSmallIntegerField(default=0)
9 state = models.PositiveSmallIntegerField(default=0)
10 is_active = models.PositiveSmallIntegerField(default=0)
10
11
11 class Meta:
12 class Meta:
12 db_table = "abs_profile_antenna"
13 db_table = "abs_profile_antenna"
13
14
14 def __unicode__(self):
15 def __unicode__(self):
15 return u'%s' % self.name
16 return u'%s' % self.name
16
17
17 class Pattern(models.Model):
18 class Pattern(models.Model):
18
19
19 profile = models.ForeignKey(Profile)
20 profile = models.ForeignKey(Profile)
20 value = models.PositiveIntegerField()
21 value = models.PositiveIntegerField()
21 date_create = models.DateTimeField(auto_now_add=True)
22 date_create = models.DateTimeField(auto_now_add=True)
22 date_modified = models.DateTimeField(auto_now=True)
23 date_modified = models.DateTimeField(auto_now=True)
23 hits = models.PositiveIntegerField(default=0)
24 hits = models.PositiveIntegerField(default=0)
24 state = models.PositiveSmallIntegerField(default=1)
25 state = models.PositiveSmallIntegerField(default=1)
26 is_active = models.PositiveSmallIntegerField(default=0)
25
27
26 class Meta:
28 class Meta:
27 db_table = "abs_pattern_antenna"
29 db_table = "abs_pattern_antenna"
28
30
29 def __unicode__(self):
31 def __unicode__(self):
30 return u'%s' % self.value
32 return u'%s' % self.value
31
33
32
34
33 class AntennaUp(models.Model):
35 class AntennaUp(models.Model):
34
36
35 pattern = models.ForeignKey(Pattern)
37 pattern = models.ForeignKey(Pattern)
36 value = models.TextField()
38 value = models.TextField()
37 tx = models.TextField(null=True)
39 tx = models.TextField(null=True)
38 rx = models.TextField(null=True)
40 rx = models.TextField(null=True)
39 ues = models.CharField(max_length=120, null=True)
41 ues = models.CharField(max_length=120, null=True)
40 only_rx = models.PositiveSmallIntegerField(default=0)
42 only_rx = models.PositiveSmallIntegerField(default=0)
41 date_create = models.DateTimeField(auto_now_add=True)
43 date_create = models.DateTimeField(auto_now_add=True)
42 date_modified = models.DateTimeField(auto_now=True)
44 date_modified = models.DateTimeField(auto_now=True)
43 hits = models.PositiveIntegerField(default=0)
45 hits = models.PositiveIntegerField(default=0)
44 state = models.PositiveSmallIntegerField(default=1)
46 state = models.PositiveSmallIntegerField(default=1)
45
47
46 class Meta:
48 class Meta:
47 db_table = "abs_antenna_up"
49 db_table = "abs_antenna_up"
48
50
49 def __unicode__(self):
51 def __unicode__(self):
50 return u'%s' % self.value
52 return u'%s' % self.value
51
53
52
54
53 class AntennaDown(models.Model):
55 class AntennaDown(models.Model):
54
56
55 pattern = models.ForeignKey(Pattern)
57 pattern = models.ForeignKey(Pattern)
56 value = models.TextField()
58 value = models.TextField()
57 tx = models.TextField(null=True)
59 tx = models.TextField(null=True)
58 rx = models.TextField(null=True)
60 rx = models.TextField(null=True)
59 ues = models.CharField(max_length=120, null=True)
61 ues = models.CharField(max_length=120, null=True)
60 only_rx = models.PositiveSmallIntegerField(default=0)
62 only_rx = models.PositiveSmallIntegerField(default=0)
61 date_create = models.DateTimeField(auto_now_add=True)
63 date_create = models.DateTimeField(auto_now_add=True)
62 date_modified = models.DateTimeField(auto_now=True)
64 date_modified = models.DateTimeField(auto_now=True)
63 hits = models.PositiveIntegerField(default=0)
65 hits = models.PositiveIntegerField(default=0)
64 state = models.PositiveSmallIntegerField(default=1)
66 state = models.PositiveSmallIntegerField(default=1)
65
67
66 class Meta:
68 class Meta:
67 db_table = "abs_antenna_down"
69 db_table = "abs_antenna_down"
68
70
69 def save(self, *args, **kwargs):
71 def save(self, *args, **kwargs):
70 '''
72 '''
71 if self.pk is None:
73 if self.pk is None:
72 pass
74 pass
73 else:
75 else:
74 pass
76 pass
75 '''
77 '''
76 super(AntennaDown, self).save(*args, **kwargs)
78 super(AntennaDown, self).save(*args, **kwargs)
77
79
78 def __unicode__(self):
80 def __unicode__(self):
79 return u'%s' % self.value
81 return u'%s' % self.value
@@ -1,27 +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'),
6 url(r'^save/$', 'save'),
6 url(r'^save/$', 'save'),
7 url(r'^view/(?P<profile_id>\d+)/$', 'view'),
7 url(r'^view/(?P<profile_id>\d+)/$', 'view'),
8 url(r'^edit/(?P<profile_id>\d+)/$', 'edit'),
8 url(r'^edit/(?P<profile_id>\d+)/$', 'edit'),
9 url(r'^update/(?P<profile_id>\d+)/$', 'update'),
9 url(r'^update/(?P<profile_id>\d+)/$', 'update'),
10 url(r'^upgrade/(?P<profile_id>\d+)/$', 'upgrade'),
10 url(r'^upgrade/(?P<profile_id>\d+)/$', '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 ) No newline at end of file
28 )
@@ -1,475 +1,519
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 overJroShow import overJroShow
20 from overJroShow import overJroShow
20
21
21 arrayTx = [["0","0","0","0","0","0","0","0"],\
22 arrayTx = [["0","0","0","0","0","0","0","0"],\
22 ["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
30
30 arrayUes = ["0.533333","0.00000","1.06667","0.00000"]
31 arrayUes = ["0.533333","0.00000","1.06667","0.00000"]
31
32
32 @login_required(login_url='/accounts/login/')
33 @login_required(login_url='/accounts/login/')
33 def index(request):
34 def index(request):
34 #latest_poll_list = profileAntenna.objects.all().order_by('-pub_date')[:5]
35 #latest_poll_list = profileAntenna.objects.all().order_by('-pub_date')[:5]
35 profile_list = Profile.objects.filter(state=1)
36 profile_list = Profile.objects.filter(state=1)
36 return render_to_response('abscontrol/index.html', {'profile_list': profile_list}, context_instance=RequestContext(request))
37 return render_to_response('abscontrol/index.html', {'profile_list': profile_list}, context_instance=RequestContext(request))
37
38
38 def new(request):
39 def new(request):
39 profile_list = Profile.objects.filter(state=1)
40 profile_list = Profile.objects.filter(state=1)
40 txtProfile = datetime.now().strftime("%Y%m%d%H%M%S%f")
41 txtProfile = datetime.now().strftime("%Y%m%d%H%M%S%f")
41 newprofile = Profile(name=txtProfile)
42 newprofile = Profile(name=txtProfile)
42 newprofile.save()
43 newprofile.save()
43
44
44 lsPatterns = None
45 lsPatterns = None
45
46
46 return render_to_response('abscontrol/new.html', {'profile_list': profile_list,
47 return render_to_response('abscontrol/new.html', {'profile_list': profile_list,
47 'profile_name' : newprofile.name,
48 'profile_name' : newprofile.name,
48 'profile_id' : newprofile.id,
49 'profile_id' : newprofile.id,
49 'lsPatterns' : lsPatterns,
50 'lsPatterns' : lsPatterns,
50 'range' : range(8), 'arrayUes' : arrayUes,
51 'range' : range(8), 'arrayUes' : arrayUes,
51 }, context_instance=RequestContext(request))
52 }, context_instance=RequestContext(request))
52
53
53 def save(request):
54 def save(request):
54
55
55 txtProfile = request.POST["txtProfile"]
56 txtProfile = request.POST["txtProfile"]
56
57
57 txtAntennaUp = request.POST["txtAntennaUp"]
58 txtAntennaUp = request.POST["txtAntennaUp"]
58 txtTxUp = request.POST["txtTxUp"]
59 txtTxUp = request.POST["txtTxUp"]
59 txtRxUp = request.POST["txtRxUp"]
60 txtRxUp = request.POST["txtRxUp"]
60 txtUesUp = request.POST["txtUesUp"]
61 txtUesUp = request.POST["txtUesUp"]
61
62
62 txtAntennaDown = request.POST["txtAntennaDown"]
63 txtAntennaDown = request.POST["txtAntennaDown"]
63 txtTxDown = request.POST["txtTxDown"]
64 txtTxDown = request.POST["txtTxDown"]
64 txtRxDown = request.POST["txtRxDown"]
65 txtRxDown = request.POST["txtRxDown"]
65 txtUesDown = request.POST["txtUesDown"]
66 txtUesDown = request.POST["txtUesDown"]
66
67
67 newprofile = Profile(name=txtProfile)
68 newprofile = Profile(name=txtProfile)
68 newprofile.save()
69 newprofile.save()
69
70
70 newpattern = newprofile.pattern_set.create(value=1)
71 newpattern = newprofile.pattern_set.create(value=1)
71 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)
72 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)
73
74
74 newurl = '/abscontrol/view/%d' % newprofile.id
75 newurl = '/abscontrol/view/%d' % newprofile.id
75
76
76 return redirect(newurl)
77 return redirect(newurl)
77
78
78 # Update temporal experiment
79 # Update temporal experiment
79 def upgrade(request, profile_id):
80 def upgrade(request, profile_id):
80 txtAntennaUp = request.POST["txtAntennaUp"]
81 txtAntennaUp = request.POST["txtAntennaUp"]
81 txtTxUp = request.POST["txtTxUp"]
82 txtTxUp = request.POST["txtTxUp"]
82 txtRxUp = request.POST["txtRxUp"]
83 txtRxUp = request.POST["txtRxUp"]
83 txtUesUp = request.POST["txtUesUp"]
84 txtUesUp = request.POST["txtUesUp"]
84
85
85 txtAntennaDown = request.POST["txtAntennaDown"]
86 txtAntennaDown = request.POST["txtAntennaDown"]
86 txtTxDown = request.POST["txtTxDown"]
87 txtTxDown = request.POST["txtTxDown"]
87 txtRxDown = request.POST["txtRxDown"]
88 txtRxDown = request.POST["txtRxDown"]
88 txtUesDown = request.POST["txtUesDown"]
89 txtUesDown = request.POST["txtUesDown"]
89
90
90 objProfile = Profile.objects.get(pk=profile_id)
91 objProfile = Profile.objects.get(pk=profile_id)
91 newpattern = objProfile.pattern_set.create(value=1)
92 newpattern = objProfile.pattern_set.create(value=1)
92 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)
93 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)
94
95
95 newurl = '/abscontrol/%d/edit/%d' % (int(profile_id), newpattern.id)
96 newurl = '/abscontrol/%d/edit/%d' % (int(profile_id), newpattern.id)
96 return redirect(newurl)
97 return redirect(newurl)
97
98
98 def update(request, profile_id):
99 def update(request, profile_id):
99 txtProfile = request.POST["txtProfile"]
100 txtProfile = request.POST["txtProfile"]
100
101
101 objProfile = Profile.objects.get(pk=profile_id)
102 objProfile = Profile.objects.get(pk=profile_id)
102 objProfile.name = txtProfile
103 objProfile.name = txtProfile
103 objProfile.state = 1
104 objProfile.state = 1
104 objProfile.save()
105 objProfile.save()
105
106
106 newurl = '/abscontrol/view/%d' % objProfile.id
107 newurl = '/abscontrol/view/%d' % objProfile.id
107 return redirect(newurl)
108 return redirect(newurl)
108
109
109 def changeName(request, profile_id):
110 def changeName(request, profile_id):
110 profile_list = Profile.objects.filter(state=1)
111 profile_list = Profile.objects.filter(state=1)
111 objProfile = Profile.objects.get(pk=profile_id)
112 objProfile = Profile.objects.get(pk=profile_id)
112 lsPatterns = objProfile.pattern_set.all()
113 lsPatterns = objProfile.pattern_set.all()
113
114
114 return render_to_response('abscontrol/changeName.html', {'profile_list': profile_list,
115 return render_to_response('abscontrol/changeName.html', {'profile_list': profile_list,
115 'objProfile': objProfile,
116 'objProfile': objProfile,
116 'lsPatterns' : lsPatterns,
117 'lsPatterns' : lsPatterns,
117 }, context_instance=RequestContext(request))
118 }, context_instance=RequestContext(request))
118
119
119 def view(request, profile_id):
120 def view(request, profile_id):
120 if request.method == 'GET' and 'pattern' in request.GET:
121 if request.method == 'GET' and 'pattern' in request.GET:
121 pattern_value = request.GET["pattern"]
122 pattern_value = request.GET["pattern"]
122 else:
123 else:
123 pattern_value = 1
124 pattern_value = 1
124
125
125 profile_list = Profile.objects.filter(state=1)
126 profile_list = Profile.objects.filter(state=1)
126 objProfile = Profile.objects.get(pk=profile_id)
127 objProfile = Profile.objects.get(pk=profile_id)
127
128
128 lsPatterns = objProfile.pattern_set.all()
129 lsPatterns = objProfile.pattern_set.all()
129 patternChoosen = objProfile.pattern_set.get(value=pattern_value)
130 patternChoosen = objProfile.pattern_set.get(value=pattern_value)
130 objAntennaUp = patternChoosen.antennaup_set.get()
131 objAntennaUp = patternChoosen.antennaup_set.get()
131 objAntennaDown = patternChoosen.antennadown_set.get()
132 objAntennaDown = patternChoosen.antennadown_set.get()
132
133
133 return render_to_response('abscontrol/view.html', {'objProfile': objProfile, 'profile_list': profile_list,
134 return render_to_response('abscontrol/view.html', {'objProfile': objProfile, 'profile_list': profile_list,
134 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
135 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
135 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
136 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
136 }, context_instance=RequestContext(request))
137 }, context_instance=RequestContext(request))
137
138
138 def edit(request, profile_id):
139 def edit(request, profile_id):
139 if request.method == 'GET' and 'pattern' in request.GET:
140 if request.method == 'GET' and 'pattern' in request.GET:
140 pattern_value = request.GET["pattern"]
141 pattern_value = request.GET["pattern"]
141 else:
142 else:
142 pattern_value = 1
143 pattern_value = 1
143
144
144 absData = ABSData()
145 absData = ABSData()
145 profile_list = Profile.objects.filter(state=1)
146 profile_list = Profile.objects.filter(state=1)
146 objProfile = Profile.objects.get(pk=profile_id)
147 objProfile = Profile.objects.get(pk=profile_id)
147
148
148 lsPatterns = objProfile.pattern_set.all()
149 lsPatterns = objProfile.pattern_set.all()
149 patternChoosen = objProfile.pattern_set.get(value=pattern_value)
150 patternChoosen = objProfile.pattern_set.get(value=pattern_value)
150 objAntennaUp = patternChoosen.antennaup_set.get()
151 objAntennaUp = patternChoosen.antennaup_set.get()
151 objAntennaDown = patternChoosen.antennadown_set.get()
152 objAntennaDown = patternChoosen.antennadown_set.get()
152
153
153 arrayAntennaUp = absData.convertStringtoList2(objAntennaUp.value)
154 arrayAntennaUp = absData.convertStringtoList2(objAntennaUp.value)
154 if objAntennaUp.tx != None:
155 if objAntennaUp.tx != None:
155 arrayTxUp = absData.convertStringtoList2(objAntennaUp.tx)
156 arrayTxUp = absData.convertStringtoList2(objAntennaUp.tx)
156 else:
157 else:
157 arrayTxUp = arrayTx
158 arrayTxUp = arrayTx
158 if objAntennaUp.rx != None:
159 if objAntennaUp.rx != None:
159 arrayRxUp = absData.convertStringtoList2(objAntennaUp.rx)
160 arrayRxUp = absData.convertStringtoList2(objAntennaUp.rx)
160 else:
161 else:
161 arrayRxUp = arrayTx
162 arrayRxUp = arrayTx
162 if objAntennaUp.ues != None:
163 if objAntennaUp.ues != None:
163 arrayUesUp = absData.convertStringtoList1(objAntennaUp.ues)
164 arrayUesUp = absData.convertStringtoList1(objAntennaUp.ues)
164 else:
165 else:
165 arrayUesUp = arrayUes
166 arrayUesUp = arrayUes
166
167
167 arrayAntennaDown = absData.convertStringtoList2(objAntennaDown.value)
168 arrayAntennaDown = absData.convertStringtoList2(objAntennaDown.value)
168 if objAntennaDown.tx != None:
169 if objAntennaDown.tx != None:
169 arrayTxDown = absData.convertStringtoList2(objAntennaDown.tx)
170 arrayTxDown = absData.convertStringtoList2(objAntennaDown.tx)
170 else:
171 else:
171 arrayTxDown = arrayTx
172 arrayTxDown = arrayTx
172 if objAntennaDown.rx != None:
173 if objAntennaDown.rx != None:
173 arrayRxDown = absData.convertStringtoList2(objAntennaDown.rx)
174 arrayRxDown = absData.convertStringtoList2(objAntennaDown.rx)
174 else:
175 else:
175 arrayRxDown = arrayTx
176 arrayRxDown = arrayTx
176 if objAntennaDown.ues != None:
177 if objAntennaDown.ues != None:
177 arrayUesDown = absData.convertStringtoList1(objAntennaDown.ues)
178 arrayUesDown = absData.convertStringtoList1(objAntennaDown.ues)
178 else:
179 else:
179 arrayUesDown = arrayUes
180 arrayUesDown = arrayUes
180
181
181 return render_to_response('abscontrol/edit.html', {'objProfile': objProfile, 'profile_list': profile_list,
182 return render_to_response('abscontrol/edit.html', {'objProfile': objProfile, 'profile_list': profile_list,
182 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
183 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
183 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
184 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
184 'arrayAntennaUp' : arrayAntennaUp, 'arrayTxUp' : arrayTxUp,
185 'arrayAntennaUp' : arrayAntennaUp, 'arrayTxUp' : arrayTxUp,
185 'arrayRxUp' : arrayRxUp, 'arrayRxDown' : arrayRxDown,
186 'arrayRxUp' : arrayRxUp, 'arrayRxDown' : arrayRxDown,
186 'arrayAntennaDown' : arrayAntennaDown, 'arrayTxDown' : arrayTxDown,
187 'arrayAntennaDown' : arrayAntennaDown, 'arrayTxDown' : arrayTxDown,
187 'arrayUesUp' : arrayUesUp, 'arrayUesDown' : arrayUesDown,
188 'arrayUesUp' : arrayUesUp, 'arrayUesDown' : arrayUesDown,
188 }, context_instance=RequestContext(request))
189 }, context_instance=RequestContext(request))
189
190
190 def addPattern(request, profile_id):
191 def addPattern(request, profile_id):
191 profile_list = Profile.objects.filter(state=1)
192 profile_list = Profile.objects.filter(state=1)
192 objProfile = Profile.objects.get(pk=profile_id)
193 objProfile = Profile.objects.get(pk=profile_id)
193
194
194 return render_to_response('abscontrol/addPattern.html', {'objProfile': objProfile, 'profile_list': profile_list,
195 return render_to_response('abscontrol/addPattern.html', {'objProfile': objProfile, 'profile_list': profile_list,
195 'range' : range(8), 'arrayUes' : arrayUes,
196 'range' : range(8), 'arrayUes' : arrayUes,
196 }, context_instance=RequestContext(request))
197 }, context_instance=RequestContext(request))
197
198
198 def editPattern(request, profile_id, pattern_id):
199 def editPattern(request, profile_id, pattern_id):
199 absData = ABSData()
200 absData = ABSData()
200 profile_list = Profile.objects.filter(state=1)
201 profile_list = Profile.objects.filter(state=1)
201 objProfile = Profile.objects.get(pk=profile_id)
202 objProfile = Profile.objects.get(pk=profile_id)
202 lsPatterns = objProfile.pattern_set.all()
203 lsPatterns = objProfile.pattern_set.all()
203 patternChoosen = Pattern.objects.get(pk=pattern_id)
204 patternChoosen = Pattern.objects.get(pk=pattern_id)
204 objAntennaUp = patternChoosen.antennaup_set.get()
205 objAntennaUp = patternChoosen.antennaup_set.get()
205 objAntennaDown = patternChoosen.antennadown_set.get()
206 objAntennaDown = patternChoosen.antennadown_set.get()
206
207
207 arrayAntennaUp = absData.convertStringtoList2(objAntennaUp.value)
208 arrayAntennaUp = absData.convertStringtoList2(objAntennaUp.value)
208 if objAntennaUp.tx != None:
209 if objAntennaUp.tx != None:
209 arrayTxUp = absData.convertStringtoList2(objAntennaUp.tx)
210 arrayTxUp = absData.convertStringtoList2(objAntennaUp.tx)
210 else:
211 else:
211 arrayTxUp = arrayTx
212 arrayTxUp = arrayTx
212 if objAntennaUp.rx != None:
213 if objAntennaUp.rx != None:
213 arrayRxUp = absData.convertStringtoList2(objAntennaUp.rx)
214 arrayRxUp = absData.convertStringtoList2(objAntennaUp.rx)
214 else:
215 else:
215 arrayRxUp = arrayTx
216 arrayRxUp = arrayTx
216 if objAntennaUp.ues != None:
217 if objAntennaUp.ues != None:
217 arrayUesUp = absData.convertStringtoList1(objAntennaUp.ues)
218 arrayUesUp = absData.convertStringtoList1(objAntennaUp.ues)
218 else:
219 else:
219 arrayUesUp = arrayUes
220 arrayUesUp = arrayUes
220
221
221 arrayAntennaDown = absData.convertStringtoList2(objAntennaDown.value)
222 arrayAntennaDown = absData.convertStringtoList2(objAntennaDown.value)
222 if objAntennaDown.tx != None:
223 if objAntennaDown.tx != None:
223 arrayTxDown = absData.convertStringtoList2(objAntennaDown.tx)
224 arrayTxDown = absData.convertStringtoList2(objAntennaDown.tx)
224 else:
225 else:
225 arrayTxDown = arrayTx
226 arrayTxDown = arrayTx
226 if objAntennaDown.rx != None:
227 if objAntennaDown.rx != None:
227 arrayRxDown = absData.convertStringtoList2(objAntennaDown.rx)
228 arrayRxDown = absData.convertStringtoList2(objAntennaDown.rx)
228 else:
229 else:
229 arrayRxDown = arrayTx
230 arrayRxDown = arrayTx
230 if objAntennaDown.ues != None:
231 if objAntennaDown.ues != None:
231 arrayUesDown = absData.convertStringtoList1(objAntennaDown.ues)
232 arrayUesDown = absData.convertStringtoList1(objAntennaDown.ues)
232 else:
233 else:
233 arrayUesDown = arrayUes
234 arrayUesDown = arrayUes
234
235
235 return render_to_response('abscontrol/editPattern.html', {'objProfile': objProfile, 'profile_list': profile_list,
236 return render_to_response('abscontrol/editPattern.html', {'objProfile': objProfile, 'profile_list': profile_list,
236 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
237 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
237 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
238 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
238 'arrayAntennaUp' : arrayAntennaUp, 'arrayTxUp' : arrayTxUp,
239 'arrayAntennaUp' : arrayAntennaUp, 'arrayTxUp' : arrayTxUp,
239 'arrayRxUp' : arrayRxUp, 'arrayRxDown' : arrayRxDown,
240 'arrayRxUp' : arrayRxUp, 'arrayRxDown' : arrayRxDown,
240 'arrayAntennaDown' : arrayAntennaDown, 'arrayTxDown' : arrayTxDown,
241 'arrayAntennaDown' : arrayAntennaDown, 'arrayTxDown' : arrayTxDown,
241 'arrayUesUp' : arrayUesUp, 'arrayUesDown' : arrayUesDown,
242 'arrayUesUp' : arrayUesUp, 'arrayUesDown' : arrayUesDown,
242 }, context_instance=RequestContext(request))
243 }, context_instance=RequestContext(request))
243
244
244 def savePattern(request, profile_id):
245 def savePattern(request, profile_id):
245 pattern_id = 0
246 pattern_id = 0
246 method = "save"
247 method = "save"
247
248
248 if 'pattern_id' in request.POST:
249 if 'pattern_id' in request.POST:
249 pattern_id = request.POST["pattern_id"]
250 pattern_id = request.POST["pattern_id"]
250 method = "update"
251 method = "update"
251
252
252 maxValuePattern = 0
253 maxValuePattern = 0
253 txtAntennaUp = request.POST["txtAntennaUp"]
254 txtAntennaUp = request.POST["txtAntennaUp"]
254 txtTxUp = request.POST["txtTxUp"]
255 txtTxUp = request.POST["txtTxUp"]
255 txtRxUp = request.POST["txtRxUp"]
256 txtRxUp = request.POST["txtRxUp"]
256 txtUesUp = request.POST["txtUesUp"]
257 txtUesUp = request.POST["txtUesUp"]
257
258
258 txtAntennaDown = request.POST["txtAntennaDown"]
259 txtAntennaDown = request.POST["txtAntennaDown"]
259 txtTxDown = request.POST["txtTxDown"]
260 txtTxDown = request.POST["txtTxDown"]
260 txtRxDown = request.POST["txtRxDown"]
261 txtRxDown = request.POST["txtRxDown"]
261 txtUesDown = request.POST["txtUesDown"]
262 txtUesDown = request.POST["txtUesDown"]
262
263
263 mode = request.POST["mode"]
264 mode = request.POST["mode"]
264
265
265 if method == "save":
266 if method == "save":
266 objProfile = Profile.objects.get(pk=profile_id)
267 objProfile = Profile.objects.get(pk=profile_id)
267 lsPatterns = objProfile.pattern_set.all()
268 lsPatterns = objProfile.pattern_set.all()
268 if len(lsPatterns) > 0:
269 if len(lsPatterns) > 0:
269 for element in lsPatterns:
270 for element in lsPatterns:
270 if element.value > maxValuePattern:
271 if element.value > maxValuePattern:
271 maxPattern = element.value
272 maxPattern = element.value
272 else:
273 else:
273 maxPattern = 0
274 maxPattern = 0
274
275
275 if maxPattern < 10 :
276 if maxPattern < 10 :
276 newValuePattern = maxPattern + 1
277 newValuePattern = maxPattern + 1
277 newpattern = objProfile.pattern_set.create(value=newValuePattern)
278 newpattern = objProfile.pattern_set.create(value=newValuePattern)
278 newpattern.antennaup_set.create(value=txtAntennaUp,tx=txtTxUp,rx=txtRxUp,ues=txtUesUp)
279 newpattern.antennaup_set.create(value=txtAntennaUp,tx=txtTxUp,rx=txtRxUp,ues=txtUesUp)
279 newpattern.antennadown_set.create(value=txtAntennaDown,tx=txtTxDown,rx=txtRxDown,ues=txtUesDown)
280 newpattern.antennadown_set.create(value=txtAntennaDown,tx=txtTxDown,rx=txtRxDown,ues=txtUesDown)
280 error = 0
281 error = 0
281 else:
282 else:
282 error = 1 # Can not add more patterns
283 error = 1 # Can not add more patterns
283
284
284 if mode == "e":
285 if mode == "e":
285 newurl = '/abscontrol/%d/edit/%d' % (int(profile_id), newpattern.id)
286 newurl = '/abscontrol/%d/edit/%d' % (int(profile_id), newpattern.id)
286 else:
287 else:
287 newurl = '/abscontrol/%d/view/%d' % (int(profile_id), newpattern.id)
288 newurl = '/abscontrol/%d/view/%d' % (int(profile_id), newpattern.id)
288 else:
289 else:
289 txtAntennaUpId = request.POST["txtAntennaUpId"]
290 txtAntennaUpId = request.POST["txtAntennaUpId"]
290 objAntennaUp = AntennaUp.objects.get(pk=txtAntennaUpId)
291 objAntennaUp = AntennaUp.objects.get(pk=txtAntennaUpId)
291 objAntennaUp.value = txtAntennaUp
292 objAntennaUp.value = txtAntennaUp
292 objAntennaUp.tx = txtTxUp
293 objAntennaUp.tx = txtTxUp
293 objAntennaUp.rx = txtRxUp
294 objAntennaUp.rx = txtRxUp
294 objAntennaUp.ues = txtUesUp
295 objAntennaUp.ues = txtUesUp
295 objAntennaUp.save()
296 objAntennaUp.save()
296
297
297 txtAntennaDownId = request.POST["txtAntennaDownId"]
298 txtAntennaDownId = request.POST["txtAntennaDownId"]
298 objAntennaDown = AntennaDown.objects.get(pk=txtAntennaDownId)
299 objAntennaDown = AntennaDown.objects.get(pk=txtAntennaDownId)
299 objAntennaDown.value = txtAntennaDown
300 objAntennaDown.value = txtAntennaDown
300 objAntennaDown.tx = txtTxDown
301 objAntennaDown.tx = txtTxDown
301 objAntennaDown.rx = txtRxDown
302 objAntennaDown.rx = txtRxDown
302 objAntennaDown.ues = txtUesDown
303 objAntennaDown.ues = txtUesDown
303 objAntennaDown.save()
304 objAntennaDown.save()
304
305
305 if mode == "e":
306 if mode == "e":
306 newurl = '/abscontrol/%d/edit/%d' % (int(profile_id), int(pattern_id))
307 newurl = '/abscontrol/%d/edit/%d' % (int(profile_id), int(pattern_id))
307 else:
308 else:
308 newurl = '/abscontrol/%d/view/%d' % (int(profile_id), int(pattern_id))
309 newurl = '/abscontrol/%d/view/%d' % (int(profile_id), int(pattern_id))
309
310
310 return redirect(newurl)
311 return redirect(newurl)
311
312
312 def viewPattern(request, profile_id, pattern_id):
313 def viewPattern(request, profile_id, pattern_id):
313
314
314 profile_list = Profile.objects.filter(state=1)
315 profile_list = Profile.objects.filter(state=1)
315 objProfile = Profile.objects.get(pk=profile_id)
316 objProfile = Profile.objects.get(pk=profile_id)
316
317
317 patternChoosen = Pattern.objects.get(pk=pattern_id)
318 patternChoosen = Pattern.objects.get(pk=pattern_id)
318
319
319 objAntennaUp = patternChoosen.antennaup_set.get()
320 objAntennaUp = patternChoosen.antennaup_set.get()
320 objAntennaDown = patternChoosen.antennadown_set.get()
321 objAntennaDown = patternChoosen.antennadown_set.get()
321
322
322 lsPatterns = objProfile.pattern_set.all()
323 lsPatterns = objProfile.pattern_set.all()
323
324
324 return render_to_response('abscontrol/viewPattern.html', {'objProfile': objProfile, 'profile_list': profile_list,
325 return render_to_response('abscontrol/viewPattern.html', {'objProfile': objProfile, 'profile_list': profile_list,
325 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
326 'patternChoosen' : patternChoosen, 'lsPatterns' : lsPatterns,
326 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
327 'antennaUp' : objAntennaUp, 'antennaDown' : objAntennaDown,
327 }, context_instance=RequestContext(request))
328 }, context_instance=RequestContext(request))
328
329
329 def deletePattern(request, profile_id, pattern_id):
330 def deletePattern(request, profile_id, pattern_id):
330 newurl = '/abscontrol/edit/%d' % int(profile_id)
331 newurl = '/abscontrol/edit/%d' % int(profile_id)
331
332
332 return redirect(newurl)
333 return redirect(newurl)
333
334
334 def importProfile(request):
335 def importProfile(request):
335 profile_list = Profile.objects.filter(state=1)
336 profile_list = Profile.objects.filter(state=1)
336 return render_to_response('abscontrol/import.html', {'profile_list': profile_list,}, context_instance=RequestContext(request))
337 return render_to_response('abscontrol/import.html', {'profile_list': profile_list,}, context_instance=RequestContext(request))
337
338
338 def upload(request):
339 def upload(request):
339 profile_list = Profile.objects.filter(state=1)
340 profile_list = Profile.objects.filter(state=1)
340 if request.method == 'POST':
341 if request.method == 'POST':
341 txtFilename = request.FILES['txtFile']
342 txtFilename = request.FILES['txtFile']
342 if txtFilename:
343 if txtFilename:
343 destination = open('/tmp/'+txtFilename.name, 'wb+')
344 destination = open('/tmp/'+txtFilename.name, 'wb+')
344 for chunk in txtFilename.chunks():
345 for chunk in txtFilename.chunks():
345 destination.write(chunk)
346 destination.write(chunk)
346 destination.close()
347 destination.close()
347 filename = '/tmp/'+txtFilename.name
348 filename = '/tmp/'+txtFilename.name
348 readFile = readABSFile(filename)
349 readFile = readABSFile(filename)
349 expName, num_patterns, patterns = readFile.getMetadata()
350 expName, num_patterns, patterns = readFile.getMetadata()
350
351
351 if expName != "" and num_patterns > 0:
352 if expName != "" and num_patterns > 0:
352 newprofile = Profile(name=expName)
353 newprofile = Profile(name=expName)
353 newprofile.save()
354 newprofile.save()
354 newprofile.state = 1
355 newprofile.state = 1
355
356
356 for element in patterns:
357 for element in patterns:
357 newpattern = newprofile.pattern_set.create(value=element["number"])
358 newpattern = newprofile.pattern_set.create(value=element["number"])
358 newpattern.antennaup_set.create(value=element["up"])
359 newpattern.antennaup_set.create(value=element["up"])
359 newpattern.antennadown_set.create(value=element["down"])
360 newpattern.antennadown_set.create(value=element["down"])
360
361
361 newprofile.save()
362 newprofile.save()
362
363
363 newurl = '/abscontrol/edit/%d' % int(newprofile.id)
364 newurl = '/abscontrol/edit/%d' % int(newprofile.id)
364 return redirect(newurl)
365 return redirect(newurl)
365 else:
366 else:
366 txtError = "Experiment's name not found or the number of patterns is 0."
367 txtError = "Experiment's name not found or the number of patterns is 0."
367 return render_to_response('abscontrol/error.html', {'profile_list': profile_list,
368 return render_to_response('abscontrol/error.html', {'profile_list': profile_list,
368 'txtError' : txtError, },
369 'txtError' : txtError, },
369 context_instance=RequestContext(request))
370 context_instance=RequestContext(request))
370 else:
371 else:
371 txtError = "No file."
372 txtError = "No file."
372
373
373 return render_to_response('abscontrol/error.html', {'profile_list': profile_list, 'txtError' : txtError, },
374 return render_to_response('abscontrol/error.html', {'profile_list': profile_list, 'txtError' : txtError, },
374 context_instance=RequestContext(request))
375 context_instance=RequestContext(request))
375
376
376 def getImgfromOverJRO(profile_id, objAntenna):
377 def getImgfromOverJRO(profile_id, objAntenna):
377 objProfile = Profile.objects.get(pk=profile_id)
378 objProfile = Profile.objects.get(pk=profile_id)
378 exp_name = objProfile.name
379 exp_name = objProfile.name
379 phase_tx = objAntenna.value
380 phase_tx = objAntenna.value
380 gain_tx = objAntenna.tx
381 gain_tx = objAntenna.tx
381 gain_rx = objAntenna.rx
382 gain_rx = objAntenna.rx
382 ues_tx = objAntenna.ues
383 ues_tx = objAntenna.ues
383 just_rx = objAntenna.only_rx
384 just_rx = objAntenna.only_rx
384
385
385 overjro = OverJRO()
386 overjro = OverJRO()
386 overjro.setParameters(settings.MEDIA_ROOT, exp_name, phase_tx, gain_tx, gain_rx, ues_tx, just_rx)
387 overjro.setParameters(settings.MEDIA_ROOT, exp_name, phase_tx, gain_tx, gain_rx, ues_tx, just_rx)
387 contentFile = overjro.setTextContent()
388 contentFile = overjro.setTextContent()
388 finalpath = overjro.saveFile(contentFile)
389 finalpath = overjro.saveFile(contentFile)
389
390
390 currentdate = datetime.today()
391 currentdate = datetime.today()
391 newOverJro = overJroShow()
392 newOverJro = overJroShow()
392 newOverJro.setInputParameters(settings.MEDIA_ROOT, currentdate, finalpath)
393 newOverJro.setInputParameters(settings.MEDIA_ROOT, currentdate, finalpath)
393 newOverJro.setupParameters()
394 newOverJro.setupParameters()
394 newOverJro.execute()
395 newOverJro.execute()
395 path = newOverJro.getPlot()
396 path = newOverJro.getPlot()
396
397
397 return path
398 return path
398
399
399 def overJROUp(request, profile_id, pattern_id, antenna_id):
400 def overJROUp(request, profile_id, pattern_id, antenna_id):
400 objAntenna = AntennaUp.objects.get(pk=antenna_id)
401 objAntenna = AntennaUp.objects.get(pk=antenna_id)
401 img_path = getImgfromOverJRO(profile_id, objAntenna)
402 img_path = getImgfromOverJRO(profile_id, objAntenna)
402 filename = os.path.split(img_path)[1]
403 filename = os.path.split(img_path)[1]
403 return render_to_response('abscontrol/overjro_up.html', {'img_up': filename,'antennaUp': objAntenna,},
404 return render_to_response('abscontrol/overjro_up.html', {'img_up': filename,'antennaUp': objAntenna,},
404 context_instance=RequestContext(request))
405 context_instance=RequestContext(request))
405
406
406
407 def overJRODown(request, profile_id, pattern_id, antenna_id):
407 def overJRODown(request, profile_id, pattern_id, antenna_id):
408 objAntenna = AntennaDown.objects.get(pk=antenna_id)
408 objAntenna = AntennaDown.objects.get(pk=antenna_id)
409 img_path = getImgfromOverJRO(profile_id, objAntenna)
409 img_path = getImgfromOverJRO(profile_id, objAntenna)
410 filename = os.path.split(img_path)[1]
410 filename = os.path.split(img_path)[1]
411 return render_to_response('abscontrol/overjro_down.html', {'img_down': filename, 'antennaDown': objAntenna,},
411 return render_to_response('abscontrol/overjro_down.html', {'img_down': filename, 'antennaDown': objAntenna,},
412 context_instance=RequestContext(request))
412 context_instance=RequestContext(request))
413
413
414 def export(request, profile_id):
414 def export(request, profile_id):
415 listPatterns = []
415 listPatterns = []
416 objProfile = Profile.objects.get(pk=profile_id)
416 objProfile = Profile.objects.get(pk=profile_id)
417 exp_name = objProfile.name
417 exp_name = objProfile.name
418 lsPatterns = objProfile.pattern_set.all()
418 lsPatterns = objProfile.pattern_set.all()
419 for element in lsPatterns:
419 for element in lsPatterns:
420 objAntennaUp = element.antennaup_set.get()
420 objAntennaUp = element.antennaup_set.get()
421 objAntennaDown = element.antennadown_set.get()
421 objAntennaDown = element.antennadown_set.get()
422 dicPatterns = {"number" : element.value, "up" : objAntennaUp.value, "down" : objAntennaDown.value}
422 dicPatterns = {"number" : element.value, "up" : objAntennaUp.value, "down" : objAntennaDown.value}
423 listPatterns.append(dicPatterns)
423 listPatterns.append(dicPatterns)
424
424
425 absFile = saveABSFile()
425 absFile = saveABSFile()
426 absFile.setParameters(settings.MEDIA_ROOT, exp_name, listPatterns)
426 absFile.setParameters(settings.MEDIA_ROOT, exp_name, listPatterns)
427 filename, filesize = absFile.save()
427 filename, filesize = absFile.save()
428
428
429 wrapper = FileWrapper( open( filename, "r" ) )
429 wrapper = FileWrapper( open( filename, "r" ) )
430 content_type = mimetypes.guess_type( filename )[0]
430 content_type = mimetypes.guess_type( filename )[0]
431
431
432 response = HttpResponse(wrapper, content_type = content_type)
432 response = HttpResponse(wrapper, content_type = content_type)
433 response['Content-Description'] = 'File Transfer'
433 response['Content-Description'] = 'File Transfer'
434 response['Content-Disposition'] = 'attachment; filename=%s' % smart_str(filename)
434 response['Content-Disposition'] = 'attachment; filename=%s' % smart_str(filename)
435 response['Content-Transfer-Encoding'] = 'binary'
435 response['Content-Transfer-Encoding'] = 'binary'
436 response['Expires'] = '0'
436 response['Expires'] = '0'
437 response['Cache-Control'] = 'must-revalidate'
437 response['Cache-Control'] = 'must-revalidate'
438 response['Pragma'] = 'public'
438 response['Pragma'] = 'public'
439 response['Content-Length'] = '%s' % str(filesize)
439 response['Content-Length'] = '%s' % str(filesize)
440 response['X-Sendfile'] = '%s' % smart_str(filename)
440 response['X-Sendfile'] = '%s' % smart_str(filename)
441
441
442 return response
442 return response
443
443
444 def send(request, profile_id):
444 def send(request, profile_id):
445 listPatterns = []
445 listPatterns = []
446 objProfile = Profile.objects.get(pk=profile_id)
446 objProfile = Profile.objects.get(pk=profile_id)
447 exp_name = objProfile.name
447 exp_name = objProfile.name
448
448
449 lsPatterns = objProfile.pattern_set.all()
449 lsPatterns = objProfile.pattern_set.all()
450 for element in lsPatterns:
450 for element in lsPatterns:
451 objAntennaUp = element.antennaup_set.get()
451 objAntennaUp = element.antennaup_set.get()
452 objAntennaDown = element.antennadown_set.get()
452 objAntennaDown = element.antennadown_set.get()
453 dicPatterns = {"number" : element.value, "up" : objAntennaUp.value, "down" : objAntennaDown.value}
453 dicPatterns = {"number" : element.value, "up" : objAntennaUp.value, "down" : objAntennaDown.value}
454 listPatterns.append(dicPatterns)
454 listPatterns.append(dicPatterns)
455
455
456 absFile = saveABSFile()
456 absFile = saveABSFile()
457 absFile.setParameters(settings.MEDIA_ROOT, exp_name, listPatterns)
457 absFile.setParameters(settings.MEDIA_ROOT, exp_name, listPatterns)
458 filename, filesize = absFile.save()
458 filename, filesize = absFile.save()
459
459
460 apiclient = sendFile()
460 apiclient = sendFile()
461 apiclient.execute(filename)
461 apiclient.execute(filename)
462 output = apiclient.getOutput()
462 output = apiclient.getOutput()
463
463
464 if output == "OK":
464 if output == "OK":
465 message = "File sent successfully."
465 message = "File sent successfully."
466 lsProfilesActive = Profile.objects.filter(is_active=1)
467 if len(lsProfilesActive) > 0:
468 objProfileActive = Profile.objects.get(is_active=1)
469 objProfileActive.is_active = 0
470 objProfileActive.save()
471
466 objProfile.hits += 1
472 objProfile.hits += 1
473 objProfile.is_active = 1
467 objProfile.save()
474 objProfile.save()
475
476 pattern_value = 1
477 patternChoosen = objProfile.pattern_set.get(value=pattern_value)
478 patternChoosen.is_active = 1
479 patternChoosen.save()
480
481 newurl = '/abscontrol/view/%d' % int(profile_id)
482
483 return redirect(newurl)
468 else:
484 else:
469 message = "Error sending file."
485 message = "Error sending file."
470
486
471 profile_list = Profile.objects.all()
487 profile_list = Profile.objects.all()
472
488
473 return render_to_response('abscontrol/sendFile.html', {'message': message, "profile_list" : profile_list,
489 return render_to_response('abscontrol/sendFile.html', {'message': message, "profile_list" : profile_list,
474 'objProfile': objProfile,
490 'objProfile': objProfile,
475 }, context_instance=RequestContext(request))
491 }, context_instance=RequestContext(request))
492
493 def changePattern(request, profile_id, pattern_id):
494 patternChoosen = Pattern.objects.get(id=pattern_id)
495 beam = int(patternChoosen.value)-1
496
497 apiclient = changeBeam()
498 apiclient.execute(str(beam))
499 output = apiclient.getOutput()
500
501 if output == "OK":
502 lsPatternsActive = Pattern.objects.filter(is_active=1)
503 if len(lsPatternsActive) > 0:
504 objPatternActive = Pattern.objects.get(is_active=1)
505 objPatternActive.is_active = 0
506 objPatternActive.save()
507
508 patternChoosen.hits += 1
509 patternChoosen.is_active = 1
510 patternChoosen.save()
511
512 newurl = '/abscontrol/%d/view/%d/' % (int(profile_id), int(pattern_id))
513 return redirect(newurl)
514 else:
515 message = "Error sending file."
516 profile_list = Profile.objects.all()
517 return render_to_response('abscontrol/sendFile.html', {'message': message, "profile_list" : profile_list,
518 }, context_instance=RequestContext(request))
519 No newline at end of file
@@ -1,6 +1,9
1 Django==1.4.3
1 Django==1.4.3
2 MySQL-python==1.2.3
2 MySQL-python==1.2.4
3 South==0.8.1
3 argparse==1.2.1
4 argparse==1.2.1
5 matplotlib==1.2.1
4 numpy==1.7.1
6 numpy==1.7.1
7 scipy==0.12.0
5 wsgiref==0.1.2
8 wsgiref==0.1.2
6 yolk==0.4.3
9 yolk==0.4.3
@@ -1,664 +1,668
1 /*
1 /*
2 * font-family: 'Droid Sans', sans-serif;
2 * font-family: 'Droid Sans', sans-serif;
3 * font-family: 'Ubuntu', sans-serif;
3 * font-family: 'Ubuntu', sans-serif;
4 * font-family: 'Open Sans', sans-serif;
4 * font-family: 'Open Sans', sans-serif;
5 * font-family: 'Open Sans Condensed', sans-serif;
5 * font-family: 'Open Sans Condensed', sans-serif;
6 * font-family: 'Roboto Condensed', sans-serif;
6 * font-family: 'Roboto Condensed', sans-serif;
7 */
7 */
8
8
9 body {
9 body {
10 padding: 0;
10 padding: 0;
11 margin: 0;
11 margin: 0;
12 font-size: 12px; }
12 font-size: 12px; }
13
13
14 header {
14 header {
15 width: 980px;
15 width: 980px;
16 height: 50px;
16 height: 50px;
17 text-align: center;
17 text-align: center;
18 line-height: 50px;
18 line-height: 50px;
19 border: 0px solid #fcc !important; }
19 border: 0px solid #fcc !important; }
20
20
21 #schema {
21 #schema {
22 margin: 0 auto;
22 margin: 0 auto;
23 width: 980px;
23 width: 980px;
24 padding: 10px 10px;
24 padding: 10px 10px;
25 border: 0px solid #f00 !important; }
25 border: 0px solid #f00 !important; }
26
26
27 #content {
27 #content {
28 margin: 5px 0px;
28 margin: 5px 0px;
29 border: 0px solid #1cc; }
29 border: 0px solid #1cc; }
30
30
31 #topcolumn {
31 #topcolumn {
32 float: left;
32 float: left;
33 width: 980px;
33 width: 980px;
34 height: 40px;
34 height: 40px;
35 line-height: 35px;
35 line-height: 35px;
36 margin: 2px 0px;
36 margin: 2px 0px;
37 border: 1px solid #ddd !important;
37 border: 1px solid #ddd !important;
38 box-shadow: 2px 2px 5px #888; }
38 box-shadow: 2px 2px 5px #888; }
39
39
40 #maincolumn {
40 #maincolumn {
41 float: left;
41 float: left;
42 width: 980px;
42 width: 980px;
43 margin: 2px 0px;
43 margin: 2px 0px;
44 padding: 0px 0px;
44 padding: 0px 0px;
45 border: 1px solid #ddd !important;
45 border: 1px solid #ddd !important;
46 box-shadow: 2px 2px 5px #666; }
46 box-shadow: 2px 2px 5px #666; }
47
47
48 footer {
48 footer {
49 height: 30px;
49 height: 30px;
50 line-height: 30px;
50 line-height: 30px;
51 text-align: center;
51 text-align: center;
52 margin: 0px 0px;
52 margin: 0px 0px;
53 border: 0px solid #200 !important;
53 border: 0px solid #200 !important;
54 box-shadow: 2px 2px 5px #888; }
54 box-shadow: 2px 2px 5px #888; }
55
55
56 .cleardivs {
56 .cleardivs {
57 clear: both;
57 clear: both;
58 border: 0px solid #400;
58 border: 0px solid #400;
59 height: 0px; }
59 height: 0px; }
60
60
61 textarea {
61 textarea {
62 resize: none;
62 resize: none;
63 overflow: hidden; }
63 overflow: hidden; }
64
64
65 /****************************************************************************************/
65 /****************************************************************************************/
66 /****** ESTILOS GENERALES *****************/
66 /****** ESTILOS GENERALES *****************/
67 /****************************************************************************************/
67 /****************************************************************************************/
68 a {
68 a {
69 font-family: 'Droid Sans', sans-serif;
69 font-family: 'Droid Sans', sans-serif;
70 text-decoration: none;
70 text-decoration: none;
71 color: #1494F6; }
71 color: #1494F6; }
72
72
73 .mnu {
73 .mnu {
74 height: 22px;
74 height: 22px;
75 border: 0px solid #c55 !important; }
75 border: 0px solid #c55 !important; }
76
76
77 .mnu li {
77 .mnu li {
78 display:inline; }
78 display:inline; }
79
79
80 .MnuVertical, .MnuHorizontal {
80 .MnuVertical, .MnuHorizontal {
81 font-family: 'Droid Sans', sans-serif;
81 font-family: 'Droid Sans', sans-serif;
82 font-size: inherit;
82 font-size: inherit;
83 font-style: normal;
83 font-style: normal;
84 text-shadow: 2px 2px #eee; }
84 text-shadow: 2px 2px #eee; }
85
85
86 .MnuHorizontal ul {
86 .MnuHorizontal ul {
87 list-style: none;
87 list-style: none;
88 list-style-type: none;
88 list-style-type: none;
89 margin: 0; }
89 margin: 0; }
90
90
91 /*.MnuHorizontal{
91 /*.MnuHorizontal{
92 display: -webkit-box;
92 display: -webkit-box;
93 -webkit-box-orient:horizontal; }
93 -webkit-box-orient:horizontal; }
94
94
95 .MnuHorizontal a{
95 .MnuHorizontal a{
96 display:block;
96 display:block;
97 padding:10px;
97 padding:10px;
98 -webkit-box-flex:1;
98 -webkit-box-flex:1;
99 text-align:center; }*/
99 text-align:center; }*/
100
100
101 .link-disabled {
101 .link-disabled {
102 color: #666;
102 color: #666;
103 text-decoration: None;
103 text-decoration: None;
104 cursor: default; }
104 cursor: default; }
105
105
106 /****************************************************************************************/
106 /****************************************************************************************/
107 /****** MENU DE NAVEGACION DE PERFILES *************/
107 /****** MENU DE NAVEGACION DE PERFILES *************/
108 /****************************************************************************************/
108 /****************************************************************************************/
109 #infoProfiles {
109 #infoProfiles {
110 float: left;
110 float: left;
111 width: 300px;
111 width: 300px;
112 margin: 0px;
112 margin: 0px;
113 padding: 2px 0px;
113 padding: 2px 0px;
114 border: 0px solid #1cc !important; }
114 border: 0px solid #1cc !important; }
115
115
116 #infoProfiles label {
116 #infoProfiles label {
117 padding: 10px 10px 10px 12px;
117 padding: 10px 10px 10px 12px;
118 margin: 10px 0;
118 margin: 10px 0;
119 font-family: 'Droid Sans', sans-serif;
119 font-family: 'Droid Sans', sans-serif;
120 /*font-family: 'Roboto Condensed', sans-serif;*/
120 /*font-family: 'Roboto Condensed', sans-serif;*/
121 /*letter-spacing: 0.046em;*/ }
121 /*letter-spacing: 0.046em;*/ }
122
122
123 #infoProfiles select {
123 #infoProfiles select {
124 padding: 4px 0px; margin: 0;
124 padding: 4px 0px; margin: 0;
125 font-family: 'Droid Sans', sans-serif;
125 font-family: 'Droid Sans', sans-serif;
126 font-size: 12px;
126 font-size: 12px;
127 letter-spacing: 0.006;
127 letter-spacing: 0.006;
128 width: 200px; }
128 width: 200px; }
129
129
130 #mnuProfiles {
130 #mnuProfiles {
131 margin: 0;
131 margin: 0;
132 float: right;
132 float: right;
133 padding: 2px 10px;
133 padding: 2px 10px;
134 border: 0px solid #1494F6 !important; }
134 border: 0px solid #1494F6 !important; }
135
135
136 #mnuProfiles ul {
136 #mnuProfiles ul {
137 list-style: none;
137 list-style: none;
138 list-style-type: none;
138 list-style-type: none;
139 margin: 0;
139 margin: 0;
140 padding-left: 20px;
140 padding-left: 20px;
141 border: 0px solid #f00 !important; }
141 border: 0px solid #f00 !important; }
142
142
143 #mnuProfiles li {
143 #mnuProfiles li {
144 width: 80px;
144 width: 80px;
145 float: left;
145 float: left;
146 padding: 2px;
146 padding: 2px;
147 border: 0px solid #c55 !important; }
147 border: 0px solid #c55 !important; }
148
148
149 #mnuProfiles a {
149 #mnuProfiles a {
150 font-weight: normal;
150 font-weight: normal;
151 color: #1494F6;
151 color: #1494F6;
152 display: block;
152 display: block;
153 text-align: center;
153 text-align: center;
154 border-bottom: 1px solid #1494F6 !important;
154 border-bottom: 1px solid #1494F6 !important;
155 text-decoration: none;
155 text-decoration: none;
156 padding: 0px 4px;
156 padding: 0px 4px;
157 line-height: 18px;
157 line-height: 18px;
158 margin: 6px; }
158 margin: 6px; }
159
159
160 /****************************************************************************************/
160 /****************************************************************************************/
161 /******** FORMULARIO DE PERFILES *************************************/
161 /******** FORMULARIO DE PERFILES *************************************/
162 /****************************************************************************************/
162 /****************************************************************************************/
163 #divProfile {
163 #divProfile {
164 margin: 10px 0px;
164 margin: 10px 0px;
165 padding: 10px 10px;
165 padding: 10px 10px;
166 width: 500px;
166 width: 500px;
167 border: 0px solid #dff !important; }
167 border: 0px solid #dff !important; }
168
168
169 #divProfile label,input[type=text],input[type=file] {
169 #divProfile label,input[type=text],input[type=file] {
170 font-family: 'Open Sans', sans-serif;
170 font-family: 'Open Sans', sans-serif;
171 /*font-family: 'Roboto Condensed', sans-serif;*/
171 /*font-family: 'Roboto Condensed', sans-serif;*/
172 font-size: inherit; }
172 font-size: inherit; }
173
173
174 #divPattern textarea,input[type=text],label,input[type=file],input[type=button],input[type=submit] {
174 #divPattern textarea,input[type=text],label,input[type=file],input[type=button],input[type=submit] {
175 font-family: 'Roboto Condensed', sans-serif;
175 font-family: 'Roboto Condensed', sans-serif;
176 font-size: inherit; }
176 font-size: inherit; }
177
177
178 .antenna, .NewAntenna {
178 .antenna, .NewAntenna {
179 box-shadow: 1px 1px 2px #666;
179 box-shadow: 1px 1px 2px #666;
180 padding: 5px;
180 padding: 5px;
181 margin: 10px auto;
181 margin: 10px auto;
182 display: block;
182 display: block;
183 border: 0px solid #fee !important; }
183 border: 0px solid #fee !important; }
184
184
185 .antenna {
185 .antenna {
186 width: 520px; }
186 width: 520px; }
187
187
188 .NewAntenna {
188 .NewAntenna {
189 width: 750px;
189 width: 750px;
190 border: 0px solid #f00 !important; }
190 border: 0px solid #f00 !important; }
191
191
192 .flsAntenna, .NewFlsAntenna {
192 .flsAntenna, .NewFlsAntenna {
193 margin: 0;
193 margin: 0;
194 padding: 0px;
194 padding: 0px;
195 border: 1px solid #fee !important; }
195 border: 1px solid #fee !important; }
196
196
197 .flsAntenna {
197 .flsAntenna {
198 width: 510px; }
198 width: 510px; }
199
199
200 .NewFlsAntenna {
200 .NewFlsAntenna {
201 width: 100%; }
201 width: 100%; }
202
202
203 .legendAntenna {
203 .legendAntenna {
204 font-family: 'Roboto Condensed', sans-serif;
204 font-family: 'Roboto Condensed', sans-serif;
205 font-size: inherit;
205 font-size: inherit;
206 text-align: left;
206 text-align: left;
207 margin-left: 10px; }
207 margin-left: 10px; }
208
208
209 .infoAntenna {
209 .infoAntenna {
210 width: 500px;
210 width: 500px;
211 float: left;
211 float: left;
212 border: 0px solid #f00 !important; }
212 border: 0px solid #f00 !important; }
213
213
214 .overJRO {
214 .overJRO {
215 width: 250px;
215 width: 250px;
216 float: left;
216 float: left;
217 margin: 0px 5px;
217 margin: 0px 5px;
218 border: 0px solid #1cc !important; }
218 border: 0px solid #1cc !important; }
219
219
220 .divAntenna, .NewDivAntenna, .NewDivTx {
220 .divAntenna, .NewDivAntenna, .NewDivTx {
221 float: left;
221 float: left;
222 margin: 10px;
222 margin: 10px;
223 border: 0px solid #fcc !important; }
223 border: 0px solid #fcc !important; }
224
224
225 .divAntenna {
225 .divAntenna {
226 width: 220px;
226 width: 220px;
227 border: 0px solid #fcc !important; }
227 border: 0px solid #fcc !important; }
228
228
229 .NewDivAntenna {
229 .NewDivAntenna {
230 border: 0px solid #fcc !important; }
230 border: 0px solid #fcc !important; }
231
231
232 .NewDivTx {
232 .NewDivTx {
233 border: 0px solid #fcc !important; }
233 border: 0px solid #fcc !important; }
234
234
235 .titleField {
235 .titleField {
236 display: block;
236 display: block;
237 text-align: center;
237 text-align: center;
238 font-family: 'Roboto Condensed', sans-serif;
238 font-family: 'Roboto Condensed', sans-serif;
239 letter-spacing: 0.086em; }
239 letter-spacing: 0.086em; }
240
240
241 .txtAntenna, .view-textAntenna {
241 .txtAntenna, .view-textAntenna {
242 width: 175px;
242 width: 175px;
243 max-width: 180px;
243 max-width: 180px;
244 height: 160px;
244 height: 160px;
245 max-height: 165px;
245 max-height: 165px;
246 background: #fdfdfb;
246 background: #fdfdfb;
247 border: 2px solid #eee !important;
247 border: 2px solid #eee !important;
248 text-align: justify;
248 text-align: justify;
249 margin: 0 auto;
249 margin: 0 auto;
250 line-height: 20px; }
250 line-height: 20px; }
251
251
252 .txtAntenna {
252 .txtAntenna {
253 padding: 4px;
253 padding: 4px;
254 }
254 }
255
255
256 .view-textAntenna {
256 .view-textAntenna {
257 padding: 2px;
257 padding: 2px;
258 font-family: "Ubuntu";
258 font-family: "Ubuntu";
259 font-size: inherit; }
259 font-size: inherit; }
260
260
261 .boxAntenna, .boxTR {
261 .boxAntenna, .boxTR {
262 border: 2px solid #eee !important;
262 border: 2px solid #eee !important;
263 text-align: center;
263 text-align: center;
264 display: block;
264 display: block;
265 float: left;
265 float: left;
266 margin: 0;
266 margin: 0;
267 padding: 0; }
267 padding: 0; }
268
268
269 .boxAntenna {
269 .boxAntenna {
270 padding: 3px; }
270 padding: 3px; }
271
271
272 .boxTR {
272 .boxTR {
273 padding: 3px; }
273 padding: 3px; }
274
274
275 .fullLine{
275 .fullLine{
276 font-size: 0.95em; }
276 font-size: 0.95em; }
277
277
278 .lineInputs, .lineInputsTx {
278 .lineInputs, .lineInputsTx {
279 text-align: left;
279 text-align: left;
280 line-height: 1.4em;
280 line-height: 1.4em;
281 padding: 0;
281 padding: 0;
282 margin: 0px;
282 margin: 0px;
283 display: block;
283 display: block;
284 float: left;
284 float: left;
285 border: 0px solid #1cc !important; }
285 border: 0px solid #1cc !important; }
286
286
287 .lineInputs {
287 .lineInputs {
288 /*width: 240px;*/
288 /*width: 240px;*/
289 border: 0px solid #1cc !important; }
289 border: 0px solid #1cc !important; }
290
290
291 .lineInputsTx {
291 .lineInputsTx {
292 /*width: 185px;*/
292 /*width: 185px;*/
293 border: 0px solid #1cc !important; }
293 border: 0px solid #1cc !important; }
294
294
295 .divValuesAntenna, .divValuesTx {
295 .divValuesAntenna, .divValuesTx {
296 float: left;
296 float: left;
297 display: block;
297 display: block;
298 margin: 0 auto;
298 margin: 0 auto;
299 border: 0px solid #bbb !important; }
299 border: 0px solid #bbb !important; }
300
300
301 .divValuesAntenna {
301 .divValuesAntenna {
302 /*width: 230px;*/
302 /*width: 230px;*/
303 border: 0px solid #2eb !important; }
303 border: 0px solid #2eb !important; }
304
304
305 .divValuesTx {
305 .divValuesTx {
306 /*width: 175px;*/
306 /*width: 175px;*/
307 border: 0px solid #bbb !important; }
307 border: 0px solid #bbb !important; }
308
308
309 .divValuesAntenna input[type=text], .divValuesTx input[type=text] {
309 .divValuesAntenna input[type=text], .divValuesTx input[type=text] {
310 border: 0px;
310 border: 0px;
311 border-bottom: 1px solid #666 !important;
311 border-bottom: 1px solid #666 !important;
312 line-height: 1.1em;
312 line-height: 1.1em;
313 font-family: 'Roboto Condensed', sans-serif; }
313 font-family: 'Roboto Condensed', sans-serif; }
314
314
315 .divValuesAntenna input[type=text] {
315 .divValuesAntenna input[type=text] {
316 width: 18px; }
316 width: 18px; }
317
317
318 .divValuesTx input[type=text]{
318 .divValuesTx input[type=text]{
319 width: 11px; }
319 width: 11px; }
320
320
321 .lblSign, .lblSignTx {
321 .lblSign, .lblSignTx {
322 font-family: 'Roboto Condensed', sans-serif;
322 font-family: 'Roboto Condensed', sans-serif;
323 color: #666;
323 color: #666;
324 float: left;
324 float: left;
325 margin: 0px;
325 margin: 0px;
326 border: 0px solid #bbb !important; }
326 border: 0px solid #bbb !important; }
327
327
328 .lblSignLeft {
328 .lblSignLeft {
329 font-family: 'Roboto Condensed', sans-serif;
329 font-family: 'Roboto Condensed', sans-serif;
330 color: #666;
330 color: #666;
331 float: left;
331 float: left;
332 margin: 0px 2px 0px 0px;
332 margin: 0px 2px 0px 0px;
333 padding: 0;
333 padding: 0;
334 border: 0px solid #f00 !important; }
334 border: 0px solid #f00 !important; }
335
335
336 .lblSignRight {
336 .lblSignRight {
337 font-family: 'Roboto Condensed', sans-serif;
337 font-family: 'Roboto Condensed', sans-serif;
338 color: #666;
338 color: #666;
339 float: left;
339 float: left;
340 margin: 0;
340 margin: 0;
341 padding: 0;
341 padding: 0;
342 border: 0px solid #f00 !important; }
342 border: 0px solid #f00 !important; }
343
343
344 .lblNewSignLeft, .lblNewSignRight {
344 .lblNewSignLeft, .lblNewSignRight {
345 font-family: 'Roboto Condensed', sans-serif;
345 font-family: 'Roboto Condensed', sans-serif;
346 color: #666;
346 color: #666;
347 float: left;
347 float: left;
348 padding: 0; }
348 padding: 0; }
349
349
350 .lblNewSignLeft {
350 .lblNewSignLeft {
351 margin: 0px 2px 0px 0px;
351 margin: 0px 2px 0px 0px;
352 border: 0px solid #f00 !important; }
352 border: 0px solid #f00 !important; }
353
353
354 .lblNewSignRight {
354 .lblNewSignRight {
355 margin: 0;
355 margin: 0;
356 border: 0px solid #f00 !important; }
356 border: 0px solid #f00 !important; }
357
357
358 .divTx {
358 .divTx {
359 display: block;
359 display: block;
360 float: left;
360 float: left;
361 margin: 10px;
361 margin: 10px;
362 border: 0px solid #f00 !important; }
362 border: 0px solid #f00 !important; }
363
363
364 .divTx label {
364 .divTx label {
365 display: block; }
365 display: block; }
366
366
367 .divTx textarea {
367 .divTx textarea {
368 width: 100px;
368 width: 100px;
369 max-width: 100px;
369 max-width: 100px;
370 height: 160px;
370 height: 160px;
371 max-height: 165px;
371 max-height: 165px;
372 text-align: justify;
372 text-align: justify;
373 border: 2px solid #eee !important;
373 border: 2px solid #eee !important;
374 font-family: "Ubuntu";
374 font-family: "Ubuntu";
375 font-size: inherit;
375 font-size: inherit;
376 line-height: 20px; }
376 line-height: 20px; }
377
377
378 .divTx p {
378 .divTx p {
379 width: 100px;
379 width: 100px;
380 max-width: 105px;
380 max-width: 105px;
381 height: 160px;
381 height: 160px;
382 max-height: 165px;
382 max-height: 165px;
383 background: #fdfdfb;
383 background: #fdfdfb;
384 padding: 2px;
384 padding: 2px;
385 border: 1px solid #eee !important;
385 border: 1px solid #eee !important;
386 font-family: 'Ubuntu', sans-serif;
386 font-family: 'Ubuntu', sans-serif;
387 font-size: inherit;
387 font-size: inherit;
388 text-align: justify;
388 text-align: justify;
389 margin: 0 auto;
389 margin: 0 auto;
390 line-height: 20px; }
390 line-height: 20px; }
391
391
392 .divUes {
392 .divUes {
393 display: block;
393 display: block;
394 margin: 10px; }
394 margin: 10px; }
395
395
396 .divUes input[type=text] {
396 .divUes input[type=text] {
397 width: 240px;
397 width: 240px;
398 max-width: 240px;
398 max-width: 240px;
399 font-family: 'Ubuntu', sans-serif;
399 font-family: 'Ubuntu', sans-serif;
400 font-size: inherit; }
400 font-size: inherit; }
401
401
402 .divNewUes {
402 .divNewUes {
403 width: 350px;
403 width: 350px;
404 display: block;
404 display: block;
405 margin: 0px 10px;
405 margin: 0px 10px;
406 padding: 0;
406 padding: 0;
407 font-family: 'Roboto Condensed', sans-serif;
407 font-family: 'Roboto Condensed', sans-serif;
408 /*overflow: hidden;*/
408 /*overflow: hidden;*/
409 border: 0px solid #f00 !important; }
409 border: 0px solid #f00 !important; }
410
410
411 .titleUes {
411 .titleUes {
412 width: 35px;
412 width: 35px;
413 text-align: right;
413 text-align: right;
414 padding-right: 5px;
414 padding-right: 5px;
415 float: left;
415 float: left;
416 line-height: 22px;
416 line-height: 22px;
417 font-family: 'Roboto Condensed', sans-serif;
417 font-family: 'Roboto Condensed', sans-serif;
418 letter-spacing: 0.086em;
418 letter-spacing: 0.086em;
419 border: 0px solid #266 !important; }
419 border: 0px solid #266 !important; }
420
420
421 .valueUes {
421 .valueUes {
422 width: 300px;
422 width: 300px;
423 float: left;
423 float: left;
424 border: 0px solid #2f4 !important;
424 border: 0px solid #2f4 !important;
425 line-height: 22px; }
425 line-height: 22px; }
426
426
427 .lblUes {
427 .lblUes {
428 font-family: 'Roboto Condensed', sans-serif;
428 font-family: 'Roboto Condensed', sans-serif;
429 color: #666;
429 color: #666;
430 font-size: 1.1em; }
430 font-size: 1.1em; }
431
431
432 .txtUnitUes {
432 .txtUnitUes {
433 width: 60px;
433 width: 60px;
434 border: 0;
434 border: 0;
435 padding: 0px 2px;
435 padding: 0px 2px;
436 text-align: center;
436 text-align: center;
437 font-family: 'Roboto Condensed', sans-serif;
437 font-family: 'Roboto Condensed', sans-serif;
438 font-size: 0.95em;
438 font-size: 0.95em;
439 border-bottom: 1px solid #666 !important; }
439 border-bottom: 1px solid #666 !important; }
440 /*
440 /*
441 .divNewUes input[type=text] {
441 .divNewUes input[type=text] {
442 width: 240px;
442 width: 240px;
443 max-width: 240px;
443 max-width: 240px;
444 line-height: 22px; }
444 line-height: 22px; }
445 */
445 */
446 .checkOnly {
446 .checkOnly {
447 width: 120px;
447 width: 120px;
448 float: left;
448 float: left;
449 display: block;
449 display: block;
450 line-height: 25px;
450 line-height: 25px;
451 border: 0px solid #1cc !important; }
451 border: 0px solid #1cc !important; }
452
452
453 .overJRO img {
453 .overJRO img {
454 width: 400px;
454 width: 400px;
455 height: 250px;
455 height: 270px;
456 text-align: center;
456 text-align: center;
457 vertical-align: middle;
457 vertical-align: middle;
458 margin: 10px 5px 5px 5px;
458 margin: 10px 5px 5px 5px;
459 display: block;
459 display: block;
460 background: #fdfdfb;
460 background: #fdfdfb;
461 border: 1px solid #eee !important; }
461 border: 1px solid #eee !important; }
462
462
463 .overJRO a {
463 .overJRO a {
464 text-align: center;
464 text-align: center;
465 margin-left: 160px;
465 margin-left: 160px;
466 display: block; }
466 display: block; }
467
467
468 .activeOverJRO {
468 .activeOverJRO {
469 width: 60px;
469 width: 60px;
470 padding: 0px 2px;
470 padding: 0px 2px;
471 border-bottom: 1px solid #1494F6 !important; }
471 border-bottom: 1px solid #1494F6 !important; }
472
472
473 /****************************************************************************************/
473 /****************************************************************************************/
474 /****** MENU DE NAVEGACION DE PATRONES **********************************/
474 /****** MENU DE NAVEGACION DE PATRONES **********************************/
475 /****************************************************************************************/
475 /****************************************************************************************/
476 #divMnuPattern {
476 #divMnuPattern {
477 width: 280px;
477 width: 280px;
478 height: 25px;
478 height: 25px;
479 display: block;
479 display: block;
480 float: right;
480 float: right;
481 margin: 5px 40px 5px 0px;
481 margin: 5px 40px 5px 0px;
482 border: 0px solid #1cc !important; }
482 border: 0px solid #1cc !important; }
483
483
484 #divMnuPattern li {
484 #divMnuPattern li {
485 float: right;
485 float: right;
486 display: block;
486 display: block;
487 width: 60px;
487 width: 60px;
488 border: 0px solid #2cc !important; }
488 border: 0px solid #2cc !important; }
489
489
490 #divMnuPattern a {
490 #divMnuPattern a {
491 display: block;
491 display: block;
492 line-height: 22px;
492 line-height: 22px;
493 text-decoration: none;
493 text-decoration: none;
494 padding: 0px 5px;
494 padding: 0px 5px;
495 margin: 0px 2px;
495 margin: 0px 2px;
496 text-align: center;
496 text-align: center;
497 color: #1494F6;
497 color: #1494F6;
498 border-bottom: 1px solid #1494F6 !important; }
498 border-bottom: 1px solid #1494F6 !important; }
499
499
500 #infoPattern {
500 #infoPattern {
501 display: block;
501 display: block;
502 margin: 0px 25px;
502 margin: 0px 25px;
503 border: 0px solid #1494f6 !important; }
503 border: 0px solid #1494f6 !important; }
504
504
505 #navPatterns {
505 #navPatterns {
506 margin: 0 auto;
506 margin: 0 auto;
507 width: 700px;
507 width: 700px;
508 height: 30px;
508 height: 30px;
509 border: 0px solid #d00 !important;
509 border: 0px solid #d00 !important;
510 font-family: 'Ubuntu', sans-serif;
510 font-family: 'Ubuntu', sans-serif;
511 font-size: 14px;
511 font-size: 14px;
512 padding: 5px 0px; }
512 padding: 5px 0px; }
513
513
514 #navPatternList {
514 #navPatternList {
515 margin: 0 auto;
515 margin: 0 auto;
516 border: 0px solid #ecc !important; }
516 border: 0px solid #ecc !important; }
517
517
518 #navPatternList ul {
518 #navPatternList ul {
519 list-style: none;
519 list-style: none;
520 list-style-type: none;
520 list-style-type: none;
521 margin: 0; }
521 margin: 0; }
522
522
523 #navPatternList ul li {
523 #navPatternList ul li {
524 float: left;
524 float: left;
525 width: 50px;
525 width: 50px;
526 border: 1px solid #eee !important; }
526 border: 1px solid #eee !important; }
527
527
528 #navPatternList a {
528 #navPatternList a {
529 width: 50px;
529 width: 50px;
530 display: block;
530 display: block;
531 text-align: center;
531 text-align: center;
532 line-height: 30px;
532 line-height: 30px;
533 padding: 1px 0px;
533 padding: 1px 0px;
534 border: 0px solid #1cc !important; }
534 border: 0px solid #1cc !important; }
535
535
536 .lnkPattern {
536 .lnkPattern {
537 background-color: #ccc !important;
537 background-color: #ccc !important;
538 color: #eee; }
538 color: #eee; }
539
539
540 .lnkPatternSelected {
540 .lnkPatternSelected {
541 background-color: #2cc !important;
541 background-color: #2cc !important;
542 color: #fff; }
542 color: #fff; }
543
543
544 .lnkPatternActive {
545 color: #f66;
546 }
547
544 .divListofPatterns {
548 .divListofPatterns {
545 width: 650px;
549 width: 650px;
546 display: block;
550 display: block;
547 border: 1px solid #1cc !important;
551 border: 1px solid #1cc !important;
548 margin: 0 auto; }
552 margin: 0 auto; }
549
553
550 .divPattern {
554 .divPattern {
551 width: 600px;
555 width: 600px;
552 display: block;
556 display: block;
553 border: 1px solid #f00 !important;
557 border: 1px solid #f00 !important;
554 margin: 2px auto; }
558 margin: 2px auto; }
555
559
556 /****************************************************************************************/
560 /****************************************************************************************/
557 /****** HEADER *************/
561 /****** HEADER *************/
558 /****************************************************************************************/
562 /****************************************************************************************/
559 header nav {
563 header nav {
560 width: 960px;
564 width: 960px;
561 margin: 0 auto;
565 margin: 0 auto;
562 height: 100%;
566 height: 100%;
563 border: 0px solid #1cc !important; }
567 border: 0px solid #1cc !important; }
564
568
565 header nav a {
569 header nav a {
566 font-family: 'Roboto Condensed', sans-serif;
570 font-family: 'Roboto Condensed', sans-serif;
567 font-size: 1.98em;
571 font-size: 1.98em;
568 text-transform: uppercase;
572 text-transform: uppercase;
569 width: 232px;
573 width: 232px;
570 padding: 2px;
574 padding: 2px;
571 text-align: center;
575 text-align: center;
572 border: 1px solid #ddd !important;
576 border: 1px solid #ddd !important;
573 box-shadow: 1px 1px 2px #ddd;
577 box-shadow: 1px 1px 2px #ddd;
574 display: block;
578 display: block;
575 float: left;
579 float: left;
576 height: 45px;
580 height: 45px;
577 text-decoration: none;
581 text-decoration: none;
578 background: #eee;
582 background: #eee;
579 line-height: 45px;
583 line-height: 45px;
580 color: #15425d;
584 color: #15425d;
581 margin: 0px 1px; }
585 margin: 0px 1px; }
582
586
583 header nav a.selected {
587 header nav a.selected {
584 background: #666;
588 background: #666;
585 color: #fff; }
589 color: #fff; }
586
590
587 #Main_Head {
591 #Main_Head {
588 margin: 0 auto;
592 margin: 0 auto;
589 height: 100%;
593 height: 100%;
590 border: 1px solid #ddd !important;
594 border: 1px solid #ddd !important;
591 box-shadow: 1px 1px 2px #ddd;
595 box-shadow: 1px 1px 2px #ddd;
592 border-radius: 5px;
596 border-radius: 5px;
593 display: block; }
597 display: block; }
594
598
595 .Main_Title {
599 .Main_Title {
596 font-size: 2em;
600 font-size: 2em;
597 letter-spacing: 0.06em;
601 letter-spacing: 0.06em;
598 color: #444;
602 color: #444;
599 text-shadow: 2px 2px #ccc; }
603 text-shadow: 2px 2px #ccc; }
600
604
601 /****************************************************************************************/
605 /****************************************************************************************/
602 /****** FOOTER *************/
606 /****** FOOTER *************/
603 /****************************************************************************************/
607 /****************************************************************************************/
604 footer p {
608 footer p {
605 font-family: 'Roboto Condensed', sans-serif;
609 font-family: 'Roboto Condensed', sans-serif;
606 font-size: 0.98em; }
610 font-size: 0.98em; }
607
611
608 /****************************************************************************************/
612 /****************************************************************************************/
609 /****** LOGIN *************/
613 /****** LOGIN *************/
610 /****************************************************************************************/
614 /****************************************************************************************/
611 #contentLogin {
615 #contentLogin {
612 margin: 0;
616 margin: 0;
613 padding: 0;
617 padding: 0;
614 border: 0px solid #1cc; }
618 border: 0px solid #1cc; }
615
619
616 #MainColumnLogin {
620 #MainColumnLogin {
617 margin: 2px auto;
621 margin: 2px auto;
618 border: 0px solid #f00 !important;
622 border: 0px solid #f00 !important;
619 box-shadow: 1px 1px 2px #ddd;
623 box-shadow: 1px 1px 2px #ddd;
620 border-radius: 2px;
624 border-radius: 2px;
621 background-color: #eee;
625 background-color: #eee;
622 width: 100%;
626 width: 100%;
623 padding: 5px 0px;
627 padding: 5px 0px;
624 }
628 }
625
629
626 .row_reg {
630 .row_reg {
627 margin: 5px auto;
631 margin: 5px auto;
628 display: block;
632 display: block;
629 width: 90%;
633 width: 90%;
630 border: 0px solid #1cc !important;
634 border: 0px solid #1cc !important;
631 line-height: 22px;
635 line-height: 22px;
632 }
636 }
633
637
634 .row_reg label, .row_reg input[type=text] {
638 .row_reg label, .row_reg input[type=text] {
635 float: left;
639 float: left;
636 line-height: 22px;
640 line-height: 22px;
637 }
641 }
638
642
639 #id_username, #id_password {
643 #id_username, #id_password {
640 width: 160px;
644 width: 160px;
641 line-height: 22px;
645 line-height: 22px;
642 }
646 }
643
647
644 .row_reg label {
648 .row_reg label {
645 width: 400px;
649 width: 400px;
646 text-align: right;
650 text-align: right;
647 padding-right: 10px;
651 padding-right: 10px;
648 border: 0px solid #d22 !important;
652 border: 0px solid #d22 !important;
649 }
653 }
650
654
651 .row_reg input[type=submit], .row_reg input[type=button] {
655 .row_reg input[type=submit], .row_reg input[type=button] {
652 margin-left: 410px;
656 margin-left: 410px;
653 width: 80px;
657 width: 80px;
654 }
658 }
655
659
656 #lblTitleLogin {
660 #lblTitleLogin {
657 width: 100%;
661 width: 100%;
658 text-align: center;
662 text-align: center;
659 font-size: 1.2em;
663 font-size: 1.2em;
660 font-weight: normal;
664 font-weight: normal;
661 color: #222;
665 color: #222;
662 border: 0px solid #f00 !important;
666 border: 0px solid #f00 !important;
663 background-color: #ccc;
667 background-color: #ccc;
664 } No newline at end of file
668 }
@@ -1,46 +1,54
1 /**
1 /**
2 * @author Jose Antonio Sal y Rosas Celi
2 * @author Jose Antonio Sal y Rosas Celi
3 * @contact: jose.salyrosas@jro.igp.gob.pe, arturo.jasyrc@gmail.com
3 * @contact: jose.salyrosas@jro.igp.gob.pe, arturo.jasyrc@gmail.com
4 */
4 */
5
5
6 $(document).on('ready',function(){
6 $(document).on('ready',function(){
7 $('#listProfiles').change(function() {
7 $('#listProfiles').change(function() {
8 if($(this).val() != -1){
8 if($(this).val() != -1){
9 location.href="/abscontrol/view/" + $(this).val();
9 location.href="/abscontrol/view/" + $(this).val();
10 }
10 }
11 });
11 });
12 $('.activeOverJRO').click(function() {
12 $('.activeOverJRO').click(function() {
13 profile_id = $('input[name=txtProfileId]').val();
13 profile_id = $('input[name=txtProfileId]').val();
14 pattern_id = $('input[name=txtPatternId]').val();
14 pattern_id = $('input[name=txtPatternId]').val();
15 field_Id = $(this).attr("id");
15 field_Id = $(this).attr("id");
16 antenna_id = $('input[name=txtAntenna'+field_Id+'Id]').val();
16 antenna_id = $('input[name=txtAntenna'+field_Id+'Id]').val();
17 result_url = "/abscontrol/"+profile_id+"/"+pattern_id+"/overjro"+field_Id+"/"+antenna_id+"/";
17 result_url = "/abscontrol/"+profile_id+"/"+pattern_id+"/overjro"+field_Id+"/"+antenna_id+"/";
18 //location.href=url
18 //location.href=url
19 ///*
19 ///*
20 $.ajax({
20 $.ajax({
21 url: result_url,
21 url: result_url,
22 cache: false,
23 beforeSend: function(){
24 },
22 success: function(){
25 success: function(){
23 //alert('overjro!');
24 $('#PictureOverJRO'+field_Id).load(result_url);
26 $('#PictureOverJRO'+field_Id).load(result_url);
25 },
27 },
26 });
28 });
27 ///*
29 ///*
28 });
30 });
29 $('#lnkSaveImport').click(function(){
31 $('#lnkSaveImport').click(function(){
30 $('#frmImportProfile').submit();
32 $('#frmImportProfile').submit();
31 });
33 });
32 $('#lnkUpload').click(function(){
34 $('#lnkUpload').click(function(){
33 $('#frmImport').submit();
35 $('#frmImport').submit();
34 });
36 });
35 $('#lnkExport').click(function(){
37 $('#lnkExport').click(function(){
36 profile_id = $(this).attr("alt");
38 profile_id = $(this).attr("alt");
37 location.href="/abscontrol/export/" + profile_id + "/";
39 location.href="/abscontrol/export/" + profile_id + "/";
38 });
40 });
39 $('#lnkSendFile').click(function(){
41 $('#lnkSendFile').click(function(){
40 profile_id = $(this).attr("alt");
42 profile_id = $(this).attr("alt");
41 location.href="/abscontrol/send/" + profile_id + "/";
43 location.href="/abscontrol/send/" + profile_id + "/";
42 });
44 });
43 $('#lnkChangeProfile').click(function(){
45 $('#lnkChangeProfile').click(function(){
44 $('#frmProfile').submit();
46 $('#frmProfile').submit();
45 });
47 });
48 $('.lnkChangePattern').click(function(){
49 profile_id = $("input[name=txtProfileId]").val();
50 pattern_id = $("input[name=txtPatternId]").val();
51
52 location.href="/abscontrol/change/"+profile_id+"/"+pattern_id+"/";
53 });
46 }); No newline at end of file
54 });
@@ -1,12 +1,8
1 <div class="overJRO" id="PictureOverJROUp">
1 <div class="overJRO" id="PictureOverJROUp">
2 {% if img_up %}
2 {% if img_up %}<img src="/media/{{ img_up }}" />{% else %}<img />{% endif %}
3 <img src="/media/{{ img_up }}" />
4 {% else %}
5 <img />
6 {% endif %}
7 {% if antennaUp.value != None and antennaUp.tx != None and antennaUp.rx != None and antennaUp.ues != None %}
3 {% if antennaUp.value != None and antennaUp.tx != None and antennaUp.rx != None and antennaUp.ues != None %}
8 <a href="#" class="activeOverJRO" id="Up">Preview</a>
4 <a href="#" class="activeOverJRO" id="Up">Preview</a>
9 {% else %}
5 {% else %}
10 <a href="#" class="link-disabled">Preview</a>
6 <a href="#" class="link-disabled">Preview</a>
11 {% endif %}
7 {% endif %}
12 </div> No newline at end of file
8 </div>
@@ -1,129 +1,141
1 {% extends "abscontrol/index.html" %}
1 {% extends "abscontrol/index.html" %}
2 {% block title %}ABS CONTROL:::PROFILE:::{{ objProfile.name }}{% endblock %}
2 {% block title %}ABS CONTROL:::PROFILE:::{{ objProfile.name }}{% endblock %}
3
3
4 {% block mnu_profile %}
4 {% block mnu_profile %}
5 <nav class="MnuHorizontal" id="mnuProfiles">
5 <nav class="MnuHorizontal" id="mnuProfiles">
6 <ul>
6 <ul>
7 <li><a href="/abscontrol/new">New</a></li>
7 <li><a href="/abscontrol/new">New</a></li>
8 {% if patternChoosen %}
8 {% if patternChoosen %}
9 <li><a href="/abscontrol/{{ objProfile.id }}/edit/{{ patternChoosen.id }}">Edit</a></li>
9 <li><a href="/abscontrol/{{ objProfile.id }}/edit/{{ patternChoosen.id }}">Edit</a></li>
10 {% else %}
10 {% else %}
11 <li><a href="/abscontrol/edit/{{ objProfile.id }}">Edit</a></li>
11 <li><a href="/abscontrol/edit/{{ objProfile.id }}">Edit</a></li>
12 {% endif %}
12 {% endif %}
13 <li><a href="#">Save as</a></li>
13 <li><a href="#">Save as</a></li>
14 <li><a href="/abscontrol/import">Import</a></li>
14 <li><a href="/abscontrol/import">Import</a></li>
15 <li><a href="#" id="lnkExport" alt="{{ objProfile.id }}">Export</a></li>
15 <li><a href="#" id="lnkExport" alt="{{ objProfile.id }}">Export</a></li>
16 <li><a href="#" id="lnkSendFile" alt="{{ objProfile.id }}">Send</a></li>
16 <li><a href="#" id="lnkSendFile" alt="{{ objProfile.id }}">Send</a></li>
17 </ul>
17 </ul>
18 </nav>
18 </nav>
19 {% endblock %}
19 {% endblock %}
20 {% block maincolumn%}
20 {% block maincolumn%}
21 <div id="maincolumn">
21 <div id="maincolumn">
22 {% if objProfile.state == 0 %}
22 {% if objProfile.state == 0 %}
23 <div id="divProfile">
23 <div id="divProfile">
24 <label for="lblName">Profile:</label>
24 <label for="lblName">Profile:</label>
25 <label for="lblProfile">{{ objProfile.name }}</label>
25 <label for="lblProfile">{{ objProfile.name }}</label>
26 </div>
26 </div>
27 {% endif %}
27 {% endif %}
28 {% if patternChoosen %}
28 {% if patternChoosen %}
29 <div id="navPatterns">
29 <div id="navPatterns">
30 <nav class="" id="navPatternList">
30 <nav class="" id="navPatternList">
31 <ul>
31 <ul>
32 {% for element in lsPatterns %}
32 {% for element in lsPatterns %}
33 <li>
33 {% if patternChoosen.id == element.id %}
34 {% if patternChoosen.id == element.id %}
34 <li><a href="/abscontrol/{{ objProfile.id }}/view/{{ element.id }}/" class="lnkPatternSelected">{{ element.value }}</a></li>
35 {% if element.is_active == 1 %}
36 <a href="/abscontrol/{{ objProfile.id }}/view/{{ element.id }}/" class="lnkPatternSelected lnkPatternActive">{{ element.value }}</a>
37 {% else %}
38 <a href="/abscontrol/{{ objProfile.id }}/view/{{ element.id }}/" class="lnkPatternSelected">{{ element.value }}</a>
39 {% endif %}
35 {% else %}
40 {% else %}
36 <li><a href="/abscontrol/{{ objProfile.id }}/view/{{ element.id }}/" class="lnkPattern">{{ element.value }}</a></li>
41 {% if element.is_active == 1 %}
42 <a href="/abscontrol/{{ objProfile.id }}/view/{{ element.id }}/" class="lnkPattern lnkPatternActive">{{ element.value }}</a>
43 {% else %}
44 <a href="/abscontrol/{{ objProfile.id }}/view/{{ element.id }}/" class="lnkPattern">{{ element.value }}</a>
45 {% endif %}
37 {% endif %}
46 {% endif %}
47 </li>
38 {% endfor %}
48 {% endfor %}
39 </ul>
49 </ul>
40 <div class="cleardivs"></div>
50 <div class="cleardivs"></div>
41 </nav>
51 </nav>
42 </div>
52 </div>
43 {% endif %}
53 {% endif %}
44 {% block mnuPattern %}
54 {% block mnuPattern %}
55 {% if objProfile.is_active == 1 %}
45 <div class="divMenu" id="divMnuPattern">
56 <div class="divMenu" id="divMnuPattern">
46 <nav class="MnuHorizontal">
57 <nav class="MnuHorizontal">
47 <ul class="mnu" id="mnuPattern">
58 <ul class="mnu" id="mnuPattern">
48 <li><a href="#">Apply</a></li>
59 <li><a href="#" class="lnkChangePattern">Apply</a></li>
49 </ul>
60 </ul>
50 </nav>
61 </nav>
51 </div>
62 </div>
52 <div class="cleardivs"></div>
63 <div class="cleardivs"></div>
64 {% endif %}
53 {% endblock %}
65 {% endblock %}
54 <div id="divPattern">
66 <div id="divPattern">
55 <div id="infoPattern">
67 <div id="infoPattern">
56 <div id="antennaUp" class="antenna" style="float: left">
68 <div id="antennaUp" class="antenna" style="float: left">
57 <fieldset class="flsAntenna">
69 <fieldset class="flsAntenna">
58 <legend class="legendAntenna">UP</legend>
70 <legend class="legendAntenna">UP</legend>
59 <div class="infoAntenna">
71 <div class="infoAntenna">
60 <div class="divAntenna">
72 <div class="divAntenna">
61 <label for="lblAntenna">Antenna</label>
73 <label for="lblAntenna">Antenna</label>
62 <p class="view-textAntenna">{{ antennaUp.value }}</p>
74 <p class="view-textAntenna">{{ antennaUp.value }}</p>
63 </div>
75 </div>
64 <div class="divTx">
76 <div class="divTx">
65 <label for="lblTx">Tx</label>
77 <label for="lblTx">Tx</label>
66 <p>{{ antennaUp.tx }}</p>
78 <p>{{ antennaUp.tx }}</p>
67 </div>
79 </div>
68 <div class="divTx">
80 <div class="divTx">
69 <label for="lblRx">Rx</label>
81 <label for="lblRx">Rx</label>
70 <p>{{ antennaUp.rx }}</p>
82 <p>{{ antennaUp.rx }}</p>
71 </div>
83 </div>
72 <div class="cleardivs"></div>
84 <div class="cleardivs"></div>
73 <div class="divUes">
85 <div class="divUes">
74 <label for="lblUes">Ues:</label>
86 <label for="lblUes">Ues:</label>
75 <label for="lblAntennaUpUes">{{ antennaUp.ues }}</label>
87 <label for="lblAntennaUpUes">{{ antennaUp.ues }}</label>
76 {% if antennaUp.only_rx == 0 %}
88 {% if antennaUp.only_rx == 0 %}
77 <input type="checkbox" name="chkOnlyRxUp" value="" />
89 <input type="checkbox" name="chkOnlyRxUp" value="" />
78 {% else %}
90 {% else %}
79 <input type="checkbox" name="chkOnlyRxUp" value="" checked="checked"/>
91 <input type="checkbox" name="chkOnlyRxUp" value="" checked="checked"/>
80 {% endif %}
92 {% endif %}
81 <label for="lblOnlyRx">Only RX</label>
93 <label for="lblOnlyRx">Only RX</label>
82 </div>
94 </div>
83 </div>
95 </div>
84 </fieldset>
96 </fieldset>
85 </div>
97 </div>
86 {% include 'abscontrol/overjro_up.html' %}
98 {% include 'abscontrol/overjro_up.html' %}
87 <div class="cleardivs"></div>
99 <div class="cleardivs"></div>
88
100
89 <div id="antennaDown" class="antenna" style="float: left">
101 <div id="antennaDown" class="antenna" style="float: left">
90 <fieldset class="flsAntenna">
102 <fieldset class="flsAntenna">
91 <legend class="legendAntenna">DOWN</legend>
103 <legend class="legendAntenna">DOWN</legend>
92 <div class="infoAntenna">
104 <div class="infoAntenna">
93 <div class="divAntenna">
105 <div class="divAntenna">
94 <label for="lblAntenna">Antenna</label>
106 <label for="lblAntenna">Antenna</label>
95 <p class="view-textAntenna">{{ antennaDown.value }}</p>
107 <p class="view-textAntenna">{{ antennaDown.value }}</p>
96 </div>
108 </div>
97 <div class="divTx">
109 <div class="divTx">
98 <label for="lblTx">Tx</label>
110 <label for="lblTx">Tx</label>
99 <p>{{ antennaDown.tx }}</p>
111 <p>{{ antennaDown.tx }}</p>
100 </div>
112 </div>
101 <div class="divTx">
113 <div class="divTx">
102 <label for="lblRx">Rx</label>
114 <label for="lblRx">Rx</label>
103 <p>{{ antennaDown.rx }}</p>
115 <p>{{ antennaDown.rx }}</p>
104 </div>
116 </div>
105 <div class="cleardivs"></div>
117 <div class="cleardivs"></div>
106 <div class="divUes">
118 <div class="divUes">
107 <label for="lblUes">Ues:</label>
119 <label for="lblUes">Ues:</label>
108 <label for="lblAntennaDownUes">{{ antennaDown.ues }}</label>
120 <label for="lblAntennaDownUes">{{ antennaDown.ues }}</label>
109 {% if antennaDown.only_rx == 0 %}
121 {% if antennaDown.only_rx == 0 %}
110 <input type="checkbox" name="chkOnlyRxDown" value="" />
122 <input type="checkbox" name="chkOnlyRxDown" value="" />
111 {% else %}
123 {% else %}
112 <input type="checkbox" name="chkOnlyRxDown" value="" checked="checked"/>
124 <input type="checkbox" name="chkOnlyRxDown" value="" checked="checked"/>
113 {% endif %}
125 {% endif %}
114 <label for="lblOnlyRx">Only RX</label>
126 <label for="lblOnlyRx">Only RX</label>
115 </div>
127 </div>
116 </div>
128 </div>
117
129
118 </fieldset>
130 </fieldset>
119 </div>
131 </div>
120 {% include 'abscontrol/overjro_down.html' %}
132 {% include 'abscontrol/overjro_down.html' %}
121 <div class="cleardivs"></div>
133 <div class="cleardivs"></div>
122 </div>
134 </div>
123 <input type="hidden" name="txtAntennaUpId" value="{{ antennaUp.id }}"/>
135 <input type="hidden" name="txtAntennaUpId" value="{{ antennaUp.id }}"/>
124 <input type="hidden" name="txtAntennaDownId" value="{{ antennaDown.id }}"/>
136 <input type="hidden" name="txtAntennaDownId" value="{{ antennaDown.id }}"/>
125 <input type="hidden" name="txtPatternId" value="{{ patternChoosen.id }}"/>
137 <input type="hidden" name="txtPatternId" value="{{ patternChoosen.id }}"/>
126 <input type="hidden" name="txtProfileId" value="{{ objProfile.id }}"/>
138 <input type="hidden" name="txtProfileId" value="{{ objProfile.id }}"/>
127 </div>
139 </div>
128 </div>
140 </div>
129 {% endblock %}
141 {% endblock %}
General Comments 0
You need to be logged in to leave comments. Login now