Skip to content

Commit e97ccfc

Browse files
authored
Merge pull request #134 from MaxwellDPS/working
fixed Docker Image and added RadioRefrence TG import
2 parents 63ee9fd + 9f4c067 commit e97ccfc

File tree

2 files changed

+57
-27
lines changed

2 files changed

+57
-27
lines changed

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM python:3.10
1+
FROM python:3.9
22
RUN apt-get update && \
33
apt-get -y install nginx redis-server ssl-cert tzdata && \
44
rm -rf /var/lib/apt/lists/*

radio/management/commands/import_talkgroups.py

Lines changed: 56 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,13 @@ def add_arguments(self, parser):
2626
help='Truncat any data that would not fit into the DB',
2727
default=True,
2828
)
29+
parser.add_argument(
30+
'--rr',
31+
dest='rr',
32+
action='store_true',
33+
help='Import in Radio Refrence Format',
34+
default=True,
35+
)
2936

3037
def handle(self, *args, **options):
3138
import_tg_file(self, options)
@@ -36,6 +43,7 @@ def import_tg_file(self, options):
3643
file_name = options['file']
3744
system_id = options['system']
3845
truncate = options['truncate']
46+
rrFormat = options['rr']
3947
try:
4048
system = System.objects.get(pk=system_id)
4149
except System.DoesNotExist:
@@ -51,33 +59,55 @@ def import_tg_file(self, options):
5159
with open(file_name) as tg_file:
5260
tg_info = csv.reader(tg_file, delimiter=',', quotechar='"')
5361
line_number = 0
54-
for row in tg_info:
55-
line_number+=1
56-
try:
57-
if truncate:
58-
if len(row[2]) > mode_max_length:
59-
row[2] = row[2][:mode_max_length]
60-
self.stdout.write("Truncating mode from line ({}) TG {}".format(line_number, row[3]))
61-
if len(row[3]) > alpha_tag_max_length:
62-
row[3] = row[3][:alpha_tag_max_length]
63-
self.stdout.write("Truncating alpha_tag from line ({}) TG {}".format(line_number, row[3]))
64-
if len(row[4]) > description_max_length:
65-
row[4] = row[4][:description_max_length]
66-
self.stdout.write("Truncating description from line ({}) TG {}".format(line_number, row[3]))
67-
#print('LEN ' + str(len(row)))
68-
priority = 3
62+
if not rrFormat:
63+
for row in tg_info:
64+
line_number+=1
6965
try:
70-
priority = row[6]
71-
except IndexError:
66+
if truncate:
67+
if len(row[2]) > mode_max_length:
68+
row[2] = row[2][:mode_max_length]
69+
self.stdout.write("Truncating mode from line ({}) TG {}".format(line_number, row[3]))
70+
if len(row[3]) > alpha_tag_max_length:
71+
row[3] = row[3][:alpha_tag_max_length]
72+
self.stdout.write("Truncating alpha_tag from line ({}) TG {}".format(line_number, row[3]))
73+
if len(row[4]) > description_max_length:
74+
row[4] = row[4][:description_max_length]
75+
self.stdout.write("Truncating description from line ({}) TG {}".format(line_number, row[3]))
76+
#print('LEN ' + str(len(row)))
77+
priority = 3
78+
try:
79+
priority = row[7]
80+
except IndexError:
81+
pass
82+
try:
83+
priority = int(priority)
84+
except ValueError:
85+
priority = 3
86+
obj, create = TalkGroup.objects.update_or_create(dec_id=row[0], system=system, defaults={'mode': row[2], 'alpha_tag': row[3], 'description': row[4], 'priority': priority})
87+
obj.service_type = row[5][:20]
88+
obj.save()
89+
except (IntegrityError, IndexError):
7290
pass
91+
#print("Skipping {}".format(row[3]))
92+
else:
93+
for row in tg_info:
94+
line_number+=1
7395
try:
74-
priority = int(priority)
75-
except ValueError:
96+
if truncate:
97+
if len(row[3]) > mode_max_length:
98+
row[3] = row[3][:mode_max_length]
99+
self.stdout.write("Truncating mode from line ({}) TG {}".format(line_number, row[2]))
100+
if len(row[2]) > alpha_tag_max_length:
101+
row[2] = row[2][:alpha_tag_max_length]
102+
self.stdout.write("Truncating alpha_tag from line ({}) TG {}".format(line_number, row[2]))
103+
if len(row[4]) > description_max_length:
104+
row[4] = row[4][:description_max_length]
105+
self.stdout.write("Truncating description from line ({}) TG {}".format(line_number, row[2]))
106+
#print('LEN ' + str(len(row)))
76107
priority = 3
77-
obj, create = TalkGroup.objects.update_or_create(dec_id=row[0], system=system, defaults={'mode': row[2], 'alpha_tag': row[3], 'description': row[4], 'priority': priority})
78-
obj.service_type = row[5][:20]
79-
obj.save()
80-
except (IntegrityError, IndexError):
81-
pass
82-
#print("Skipping {}".format(row[3]))
83-
108+
obj, create = TalkGroup.objects.update_or_create(dec_id=row[0], system=system, defaults={'mode': row[3], 'alpha_tag': row[2], 'description': row[4], 'priority': priority})
109+
obj.service_type = row[5][:20]
110+
obj.save()
111+
except (IntegrityError, IndexError, ValueError):
112+
pass
113+
#print("Skipping {}".format(row[3]))

0 commit comments

Comments
 (0)