113
+                ('p2', models.FloatField(blank=True, null=True)),
114
+                ('p3', models.FloatField(blank=True, null=True)),
115
+                ('p4', models.FloatField(blank=True, null=True)),
116
+                ('p5', models.FloatField(blank=True, null=True)),
117
+                ('p6', models.FloatField(blank=True, null=True)),
118
+                ('p7', models.FloatField(blank=True, null=True)),
119
+                ('p8', models.FloatField(blank=True, null=True)),
120
+                ('p9', models.FloatField(blank=True, null=True)),
121
+                ('p10', models.FloatField(blank=True, null=True)),
122
+                ('created_at', models.DateTimeField(blank=True, null=True)),
123
+                ('updated_at', models.DateTimeField(blank=True, null=True)),
124
+                ('lot_no', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=50, null=True)),
125
+                ('ndata', models.IntegerField(blank=True, null=True)),
126
+                ('sub_order', models.IntegerField(blank=True, null=True)),
127
+                ('machine_id', models.IntegerField(blank=True, null=True)),
128
+                ('code', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=50, null=True)),
129
+                ('header', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=10, null=True)),
130
+            ],
131
+            options={
132
+                'db_table': 'Data_131_78079',
133
+                'managed': False,
134
+            },
135
+        ),
136
+        migrations.CreateModel(
137
+            name='Data20082018',
138
+            fields=[
139
+                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
140
+                ('row_no', models.IntegerField(blank=True, null=True)),
141
+                ('avg', models.FloatField(blank=True, null=True)),
142
+                ('grade', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=50, null=True)),
143
+                ('rgrade', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=50, null=True)),
144
+                ('r_type', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=50, null=True)),
145
+                ('p1', models.FloatField(blank=True, null=True)),
146
+                ('p2', models.FloatField(blank=True, null=True)),
147
+                ('p3', models.FloatField(blank=True, null=True)),
148
+                ('p4', models.FloatField(blank=True, null=True)),
149
+                ('p5', models.FloatField(blank=True, null=True)),
150
+                ('p6', models.FloatField(blank=True, null=True)),
151
+                ('p7', models.FloatField(blank=True, null=True)),
152
+                ('p8', models.FloatField(blank=True, null=True)),
153
+                ('p9', models.FloatField(blank=True, null=True)),
154
+                ('p10', models.FloatField(blank=True, null=True)),
155
+                ('created_at', models.DateTimeField(blank=True, null=True)),
156
+                ('updated_at', models.DateTimeField(blank=True, null=True)),
157
+                ('lot_no', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=50, null=True)),
158
+                ('ndata', models.IntegerField(blank=True, null=True)),
159
+                ('sub_order', models.IntegerField(blank=True, null=True)),
160
+                ('machine_id', models.IntegerField(blank=True, null=True)),
161
+                ('code', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=50, null=True)),
162
+                ('header', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=10, null=True)),
163
+            ],
164
+            options={
165
+                'db_table': 'data (2008-2018)',
166
+                'managed': False,
167
+            },
168
+        ),
169
+        migrations.CreateModel(
170
+            name='Data25113027G',
171
+            fields=[
172
+                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
173
+                ('row_no', models.IntegerField(blank=True, null=True)),
174
+                ('avg', models.FloatField(blank=True, null=True)),
175
+                ('grade', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=50, null=True)),
176
+                ('rgrade', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=50, null=True)),
177
+                ('r_type', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=50, null=True)),
178
+                ('p1', models.FloatField(blank=True, null=True)),
179
+                ('p2', models.FloatField(blank=True, null=True)),
180
+                ('p3', models.FloatField(blank=True, null=True)),
181
+                ('p4', models.FloatField(blank=True, null=True)),
182
+                ('p5', models.FloatField(blank=True, null=True)),
183
+                ('p6', models.FloatField(blank=True, null=True)),
184
+                ('p7', models.FloatField(blank=True, null=True)),
185
+                ('p8', models.FloatField(blank=True, null=True)),
186
+                ('p9', models.FloatField(blank=True, null=True)),
187
+                ('p10', models.FloatField(blank=True, null=True)),
188
+                ('created_at', models.DateTimeField(blank=True, null=True)),
189
+                ('updated_at', models.DateTimeField(blank=True, null=True)),
190
+                ('lot_no', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=50, null=True)),
191
+                ('ndata', models.IntegerField(blank=True, null=True)),
192
+                ('sub_order', models.IntegerField(blank=True, null=True)),
193
+                ('machine_id', models.IntegerField(blank=True, null=True)),
194
+                ('code', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=50, null=True)),
195
+                ('header', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=10, null=True)),
196
+            ],
197
+            options={
198
+                'db_table': 'data_251-13027G',
199
+                'managed': False,
200
+            },
201
+        ),
202
+        migrations.CreateModel(
203
+            name='DataMs',
204
+            fields=[
205
+                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
206
+                ('row_no', models.IntegerField()),
207
+                ('dsize', models.FloatField(blank=True, null=True)),
208
+                ('tsize', models.FloatField(blank=True, null=True)),
209
+                ('hsize', models.FloatField(blank=True, null=True)),
210
+                ('csize', models.FloatField(blank=True, null=True)),
211
+                ('esize', models.FloatField(blank=True, null=True)),
212
+                ('fsize', models.FloatField(blank=True, null=True)),
213
+                ('gsize', models.FloatField(blank=True, null=True)),
214
+                ('psize', models.FloatField(blank=True, null=True)),
215
+                ('wsize', models.FloatField(blank=True, null=True)),
216
+                ('jksize', models.FloatField(blank=True, null=True)),
217
+                ('usize', models.FloatField(blank=True, null=True)),
218
+                ('msize', models.FloatField(blank=True, null=True)),
219
+                ('asize', models.FloatField(blank=True, null=True)),
220
+                ('nsize', models.FloatField(blank=True, null=True)),
221
+                ('jsize', models.FloatField(blank=True, null=True)),
222
+                ('xsize', models.FloatField(blank=True, null=True)),
223
+                ('flatnesssize', models.FloatField(blank=True, null=True)),
224
+                ('ksize', models.FloatField(blank=True, null=True)),
225
+                ('thicknesssize', models.FloatField(blank=True, null=True)),
226
+                ('qsize', models.FloatField(blank=True, null=True)),
227
+                ('ssize', models.FloatField(blank=True, null=True)),
228
+                ('dsizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='dsizeOk', max_length=4, null=True)),
229
+                ('tsizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='tsizeOk', max_length=4, null=True)),
230
+                ('hsizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='hsizeOk', max_length=4, null=True)),
231
+                ('csizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='csizeOk', max_length=4, null=True)),
232
+                ('esizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='esizeOk', max_length=4, null=True)),
233
+                ('fsizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='fsizeOk', max_length=4, null=True)),
234
+                ('gsizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='gsizeOk', max_length=4, null=True)),
235
+                ('psizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='psizeOk', max_length=4, null=True)),
236
+                ('wsizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='wsizeOk', max_length=4, null=True)),
237
+                ('jksizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='jksizeOk', max_length=4, null=True)),
238
+                ('usizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='usizeOk', max_length=4, null=True)),
239
+                ('msizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='msizeOk', max_length=4, null=True)),
240
+                ('asizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='asizeOk', max_length=4, null=True)),
241
+                ('nsizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='nsizeOk', max_length=4, null=True)),
242
+                ('jsizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='jsizeOk', max_length=4, null=True)),
243
+                ('xsizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='xsizeOk', max_length=4, null=True)),
244
+                ('flatnesssizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='flatnesssizeOk', max_length=4, null=True)),
245
+                ('ksizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='ksizeOk', max_length=4, null=True)),
246
+                ('thicknesssizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='thicknesssizeOk', max_length=4, null=True)),
247
+                ('qsizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='qsizeOk', max_length=4, null=True)),
248
+                ('ssizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='ssizeOk', max_length=4, null=True)),
249
+                ('created_at', models.DateTimeField(blank=True, null=True)),
250
+                ('updated_at', models.DateTimeField(blank=True, null=True)),
251
+                ('lot_no', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=50, null=True)),
252
+                ('machine_id', models.IntegerField()),
253
+                ('code', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=50, null=True)),
254
+                ('emp_id', models.IntegerField()),
255
+                ('weight', models.FloatField(blank=True, null=True)),
256
+                ('devid', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=40, null=True)),
257
+                ('tpoint1', models.FloatField(blank=True, null=True)),
258
+                ('tpoint2', models.FloatField(blank=True, null=True)),
259
+                ('tpoint3', models.FloatField(blank=True, null=True)),
260
+                ('tpoint4', models.FloatField(blank=True, null=True)),
261
+                ('tpoint1ok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=4, null=True)),
262
+                ('tpoint2ok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=4, null=True)),
263
+                ('tpoint3ok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=4, null=True)),
264
+                ('tpoint4ok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=4, null=True)),
265
+                ('tdiff', models.FloatField(blank=True, null=True)),
266
+                ('tmin', models.FloatField(blank=True, null=True)),
267
+                ('tmax', models.FloatField(blank=True, null=True)),
268
+                ('hdev', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=20, null=True)),
269
+                ('hsizeproxy', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=20, null=True)),
270
+                ('restricts', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=40, null=True)),
271
+                ('shift', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=10, null=True)),
272
+                ('mode', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=10, null=True)),
273
+                ('cal_mode', models.IntegerField(blank=True, null=True)),
274
+                ('diasize', models.FloatField(blank=True, null=True)),
275
+                ('diasizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='diasizeOk', max_length=4, null=True)),
276
+                ('censize', models.FloatField(blank=True, null=True)),
277
+                ('censizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='censizeOk', max_length=4, null=True)),
278
+                ('osize', models.FloatField(blank=True, null=True)),
279
+                ('osizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='osizeOk', max_length=4, null=True)),
280
+                ('size1', models.FloatField(blank=True, null=True)),
281
+                ('size2', models.FloatField(blank=True, null=True)),
282
+                ('size1ok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='size1Ok', max_length=50, null=True)),
283
+                ('size2ok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='size2Ok', max_length=50, null=True)),
284
+                ('size1name', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='size1Name', max_length=50, null=True)),
285
+                ('size2name', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='size2Name', max_length=50, null=True)),
286
+                ('bsize', models.FloatField(blank=True, null=True)),
287
+                ('bsizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='bsizeOk', max_length=50, null=True)),
288
+                ('lsize', models.FloatField(blank=True, null=True)),
289
+                ('lsizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='lsizeOk', max_length=50, null=True)),
290
+                ('zsize', models.FloatField(blank=True, null=True)),
291
+                ('zsizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='zsizeOk', max_length=50, null=True)),
292
+                ('x1size', models.FloatField(blank=True, null=True)),
293
+                ('x1sizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='x1sizeOk', max_length=50, null=True)),
294
+                ('x2size', models.FloatField(blank=True, null=True)),
295
+                ('x2sizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='x2sizeOk', max_length=50, null=True)),
296
+                ('tpresssize', models.FloatField(blank=True, null=True)),
297
+                ('tpresssizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='tpresssizeOk', max_length=50, null=True)),
298
+                ('t1', models.FloatField()),
299
+                ('t2', models.FloatField()),
300
+                ('t3', models.FloatField()),
301
+                ('t4', models.FloatField()),
302
+                ('t1ok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='t1Ok', max_length=50, null=True)),
303
+                ('t2ok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='t2Ok', max_length=50, null=True)),
304
+                ('t3ok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='t3Ok', max_length=50, null=True)),
305
+                ('t4ok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='t4Ok', max_length=50, null=True)),
306
+                ('t4avg', models.FloatField()),
307
+                ('tpok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='tpOk', max_length=50, null=True)),
308
+                ('t4min', models.FloatField(blank=True, null=True)),
309
+                ('t4max', models.FloatField(blank=True, null=True)),
310
+                ('t4diff', models.FloatField(blank=True, null=True)),
311
+            ],
312
+            options={
313
+                'db_table': 'data_ms',
314
+                'managed': False,
315
+            },
316
+        ),
317
+        migrations.CreateModel(
318
+            name='DataMsLot2210062522',
319
+            fields=[
320
+                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
321
+                ('row_no', models.IntegerField()),
322
+                ('dsize', models.FloatField(blank=True, null=True)),
323
+                ('tsize', models.FloatField(blank=True, null=True)),
324
+                ('hsize', models.FloatField(blank=True, null=True)),
325
+                ('csize', models.FloatField(blank=True, null=True)),
326
+                ('esize', models.FloatField(blank=True, null=True)),
327
+                ('fsize', models.FloatField(blank=True, null=True)),
328
+                ('gsize', models.FloatField(blank=True, null=True)),
329
+                ('psize', models.FloatField(blank=True, null=True)),
330
+                ('wsize', models.FloatField(blank=True, null=True)),
331
+                ('jksize', models.FloatField(blank=True, null=True)),
332
+                ('usize', models.FloatField(blank=True, null=True)),
333
+                ('msize', models.FloatField(blank=True, null=True)),
334
+                ('asize', models.FloatField(blank=True, null=True)),
335
+                ('nsize', models.FloatField(blank=True, null=True)),
336
+                ('jsize', models.FloatField(blank=True, null=True)),
337
+                ('xsize', models.FloatField(blank=True, null=True)),
338
+                ('flatnesssize', models.FloatField(blank=True, null=True)),
339
+                ('ksize', models.FloatField(blank=True, null=True)),
340
+                ('thicknesssize', models.FloatField(blank=True, null=True)),
341
+                ('qsize', models.FloatField(blank=True, null=True)),
342
+                ('ssize', models.FloatField(blank=True, null=True)),
343
+                ('dsizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='dsizeOk', max_length=4, null=True)),
344
+                ('tsizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='tsizeOk', max_length=4, null=True)),
345
+                ('hsizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='hsizeOk', max_length=4, null=True)),
346
+                ('csizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='csizeOk', max_length=4, null=True)),
347
+                ('esizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='esizeOk', max_length=4, null=True)),
348
+                ('fsizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='fsizeOk', max_length=4, null=True)),
349
+                ('gsizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='gsizeOk', max_length=4, null=True)),
350
+                ('psizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='psizeOk', max_length=4, null=True)),
351
+                ('wsizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='wsizeOk', max_length=4, null=True)),
352
+                ('jksizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='jksizeOk', max_length=4, null=True)),
353
+                ('usizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='usizeOk', max_length=4, null=True)),
354
+                ('msizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='msizeOk', max_length=4, null=True)),
355
+                ('asizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='asizeOk', max_length=4, null=True)),
356
+                ('nsizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='nsizeOk', max_length=4, null=True)),
357
+                ('jsizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='jsizeOk', max_length=4, null=True)),
358
+                ('xsizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='xsizeOk', max_length=4, null=True)),
359
+                ('flatnesssizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='flatnesssizeOk', max_length=4, null=True)),
360
+                ('ksizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='ksizeOk', max_length=4, null=True)),
361
+                ('thicknesssizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='thicknesssizeOk', max_length=4, null=True)),
362
+                ('qsizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='qsizeOk', max_length=4, null=True)),
363
+                ('ssizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='ssizeOk', max_length=4, null=True)),
364
+                ('created_at', models.DateTimeField(blank=True, null=True)),
365
+                ('updated_at', models.DateTimeField(blank=True, null=True)),
366
+                ('lot_no', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=50, null=True)),
367
+                ('machine_id', models.IntegerField()),
368
+                ('code', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=50, null=True)),
369
+                ('emp_id', models.IntegerField()),
370
+                ('weight', models.FloatField(blank=True, null=True)),
371
+                ('devid', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=40, null=True)),
372
+                ('tpoint1', models.FloatField(blank=True, null=True)),
373
+                ('tpoint2', models.FloatField(blank=True, null=True)),
374
+                ('tpoint3', models.FloatField(blank=True, null=True)),
375
+                ('tpoint4', models.FloatField(blank=True, null=True)),
376
+                ('tpoint1ok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=4, null=True)),
377
+                ('tpoint2ok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=4, null=True)),
378
+                ('tpoint3ok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=4, null=True)),
379
+                ('tpoint4ok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=4, null=True)),
380
+                ('tdiff', models.FloatField(blank=True, null=True)),
381
+                ('tmin', models.FloatField(blank=True, null=True)),
382
+                ('tmax', models.FloatField(blank=True, null=True)),
383
+                ('hdev', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=20, null=True)),
384
+                ('hsizeproxy', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=20, null=True)),
385
+                ('restricts', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=40, null=True)),
386
+                ('shift', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=10, null=True)),
387
+                ('mode', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=10, null=True)),
388
+                ('cal_mode', models.IntegerField(blank=True, null=True)),
389
+                ('diasize', models.FloatField(blank=True, null=True)),
390
+                ('diasizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='diasizeOk', max_length=4, null=True)),
391
+                ('censize', models.FloatField(blank=True, null=True)),
392
+                ('censizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='censizeOk', max_length=4, null=True)),
393
+                ('osize', models.FloatField(blank=True, null=True)),
394
+                ('osizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='osizeOk', max_length=4, null=True)),
395
+                ('size1', models.FloatField(blank=True, null=True)),
396
+                ('size2', models.FloatField(blank=True, null=True)),
397
+                ('size1ok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='size1Ok', max_length=50, null=True)),
398
+                ('size2ok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='size2Ok', max_length=50, null=True)),
399
+                ('size1name', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='size1Name', max_length=50, null=True)),
400
+                ('size2name', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='size2Name', max_length=50, null=True)),
401
+                ('bsize', models.FloatField(blank=True, null=True)),
402
+                ('bsizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='bsizeOk', max_length=50, null=True)),
403
+                ('lsize', models.FloatField(blank=True, null=True)),
404
+                ('lsizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='lsizeOk', max_length=50, null=True)),
405
+                ('zsize', models.FloatField(blank=True, null=True)),
406
+                ('zsizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='zsizeOk', max_length=50, null=True)),
407
+                ('x1size', models.FloatField(blank=True, null=True)),
408
+                ('x1sizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='x1sizeOk', max_length=50, null=True)),
409
+                ('x2size', models.FloatField(blank=True, null=True)),
410
+                ('x2sizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='x2sizeOk', max_length=50, null=True)),
411
+                ('tpresssize', models.FloatField(blank=True, null=True)),
412
+                ('tpresssizeok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='tpresssizeOk', max_length=50, null=True)),
413
+                ('t1', models.FloatField()),
414
+                ('t2', models.FloatField()),
415
+                ('t3', models.FloatField()),
416
+                ('t4', models.FloatField()),
417
+                ('t1ok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='t1Ok', max_length=50, null=True)),
418
+                ('t2ok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='t2Ok', max_length=50, null=True)),
419
+                ('t3ok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='t3Ok', max_length=50, null=True)),
420
+                ('t4ok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='t4Ok', max_length=50, null=True)),
421
+                ('t4avg', models.FloatField()),
422
+                ('tpok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='tpOk', max_length=50, null=True)),
423
+                ('t4min', models.FloatField(blank=True, null=True)),
424
+                ('t4max', models.FloatField(blank=True, null=True)),
425
+                ('t4diff', models.FloatField(blank=True, null=True)),
426
+            ],
427
+            options={
428
+                'db_table': 'data_ms_LOT2210062522',
429
+                'managed': False,
430
+            },
431
+        ),
432
+        migrations.CreateModel(
433
+            name='DataRl',
434
+            fields=[
435
+                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
436
+                ('row_no', models.IntegerField(blank=True, null=True)),
437
+                ('avg', models.FloatField(blank=True, null=True)),
438
+                ('grade', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=50, null=True)),
439
+                ('rgrade', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=50, null=True)),
440
+                ('r_type', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=50, null=True)),
441
+                ('p1', models.FloatField(blank=True, null=True)),
442
+                ('p2', models.FloatField(blank=True, null=True)),
443
+                ('p3', models.FloatField(blank=True, null=True)),
444
+                ('p4', models.FloatField(blank=True, null=True)),
445
+                ('p5', models.FloatField(blank=True, null=True)),
446
+                ('p6', models.FloatField(blank=True, null=True)),
447
+                ('p7', models.FloatField(blank=True, null=True)),
448
+                ('p8', models.FloatField(blank=True, null=True)),
449
+                ('p9', models.FloatField(blank=True, null=True)),
450
+                ('p10', models.FloatField(blank=True, null=True)),
451
+                ('created_at', models.DateTimeField(blank=True, null=True)),
452
+                ('updated_at', models.DateTimeField(blank=True, null=True)),
453
+                ('lot_no', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=50, null=True)),
454
+                ('ndata', models.IntegerField(blank=True, null=True)),
455
+                ('sub_order', models.IntegerField(blank=True, null=True)),
456
+                ('machine_id', models.IntegerField(blank=True, null=True)),
457
+                ('code', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=50, null=True)),
458
+                ('header', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=10, null=True)),
459
+            ],
460
+            options={
461
+                'db_table': 'data_rl',
462
+                'managed': False,
463
+            },
464
+        ),
465
+        migrations.CreateModel(
466
+            name='DataWb',
467
+            fields=[
468
+                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
469
+                ('row_no', models.IntegerField(blank=True, null=True)),
470
+                ('result', models.FloatField(blank=True, null=True)),
471
+                ('weight', models.FloatField(blank=True, null=True)),
472
+                ('judgement', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=10, null=True)),
473
+                ('created_at', models.DateTimeField(blank=True, null=True)),
474
+                ('updated_at', models.DateTimeField(blank=True, null=True)),
475
+                ('lot_no', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=50, null=True)),
476
+                ('machine_id', models.IntegerField(blank=True, null=True)),
477
+                ('code', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=50, null=True)),
478
+                ('emp_id', models.IntegerField(blank=True, null=True)),
479
+                ('repair_by', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=30, null=True)),
480
+            ],
481
+            options={
482
+                'db_table': 'data_wb',
483
+                'managed': False,
484
+            },
485
+        ),
486
+        migrations.CreateModel(
487
+            name='DataWbTest',
488
+            fields=[
489
+                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
490
+                ('row_no', models.IntegerField(blank=True, null=True)),
491
+                ('result', models.FloatField(blank=True, null=True)),
492
+                ('weight', models.FloatField(blank=True, null=True)),
493
+                ('judgement', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=10, null=True)),
494
+                ('created_at', models.DateTimeField(blank=True, null=True)),
495
+                ('updated_at', models.DateTimeField(blank=True, null=True)),
496
+                ('lot_no', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=50, null=True)),
497
+                ('machine_id', models.IntegerField(blank=True, null=True)),
498
+                ('code', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=50, null=True)),
499
+                ('emp_id', models.IntegerField(blank=True, null=True)),
500
+                ('repair_by', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=30, null=True)),
501
+            ],
502
+            options={
503
+                'db_table': 'data_wb_test',
504
+                'managed': False,
505
+            },
506
+        ),
507
+        migrations.CreateModel(
508
+            name='LegacyUsers',
509
+            fields=[
510
+                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
511
+                ('email', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=255, null=True)),
512
+                ('password_digest', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=255, null=True)),
513
+                ('created_at', models.DateTimeField(blank=True, null=True)),
514
+                ('updated_at', models.DateTimeField(blank=True, null=True)),
515
+                ('roles_mask', models.IntegerField(blank=True, null=True)),
516
+                ('empid', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=255, null=True)),
517
+                ('fname', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=255, null=True)),
518
+                ('lname', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=255, null=True)),
519
+            ],
520
+            options={
521
+                'db_table': 'users',
522
+                'managed': False,
523
+            },
524
+        ),
525
+        migrations.CreateModel(
526
+            name='LoginTemps',
527
+            fields=[
528
+                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
529
+                ('empid', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=255, null=True)),
530
+                ('password', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=255, null=True)),
531
+                ('created_at', models.DateTimeField(blank=True, null=True)),
532
+                ('updated_at', models.DateTimeField(blank=True, null=True)),
533
+            ],
534
+            options={
535
+                'db_table': 'login_temps',
536
+                'managed': False,
537
+            },
538
+        ),
539
+        migrations.CreateModel(
540
+            name='Lot',
541
+            fields=[
542
+                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
543
+                ('lot_no', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=50, null=True)),
544
+            ],
545
+            options={
546
+                'db_table': 'lot',
547
+                'managed': False,
548
+            },
549
+        ),
550
+        migrations.CreateModel(
551
+            name='LotRl',
552
+            fields=[
553
+                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
554
+                ('lot_no', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=50, null=True)),
555
+            ],
556
+            options={
557
+                'db_table': 'lot_rl',
558
+                'managed': False,
559
+            },
560
+        ),
561
+        migrations.CreateModel(
562
+            name='Lotsizeorder',
563
+            fields=[
564
+                ('oid', models.AutoField(primary_key=True, serialize=False)),
565
+                ('lotno', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=100, null=True)),
566
+                ('sizes', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=400, null=True)),
567
+            ],
568
+            options={
569
+                'db_table': 'LotSizeOrder',
570
+                'managed': False,
571
+            },
572
+        ),
573
+        migrations.CreateModel(
574
+            name='LotSummary',
575
+            fields=[
576
+                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
577
+                ('lot_no', models.CharField(db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=50)),
578
+                ('created_at', models.DateTimeField()),
579
+                ('avg', models.FloatField()),
580
+                ('code', models.CharField(db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=50)),
581
+                ('start_time', models.DateTimeField(blank=True, null=True)),
582
+                ('end_time', models.DateTimeField(blank=True, null=True)),
583
+                ('grade', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=50, null=True)),
584
+                ('machine_id', models.IntegerField(blank=True, null=True)),
585
+                ('avg0', models.FloatField(blank=True, null=True)),
586
+                ('avg1', models.FloatField(blank=True, null=True)),
587
+                ('avg2', models.FloatField(blank=True, null=True)),
588
+                ('avg3', models.FloatField(blank=True, null=True)),
589
+                ('avg0_name', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=50, null=True)),
590
+                ('avg1_name', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=50, null=True)),
591
+                ('avg2_name', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=50, null=True)),
592
+                ('avg3_name', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=50, null=True)),
593
+            ],
594
+            options={
595
+                'db_table': 'lot_summary',
596
+                'managed': False,
597
+            },
598
+        ),
599
+        migrations.CreateModel(
600
+            name='LotSummary20082018',
601
+            fields=[
602
+                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
603
+                ('lot_no', models.CharField(db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=50)),
604
+                ('created_at', models.DateTimeField()),
605
+                ('avg', models.FloatField()),
606
+                ('code', models.CharField(db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=50)),
607
+                ('start_time', models.DateTimeField(blank=True, null=True)),
608
+                ('end_time', models.DateTimeField(blank=True, null=True)),
609
+                ('grade', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=50, null=True)),
610
+                ('machine_id', models.IntegerField(blank=True, null=True)),
611
+                ('avg0', models.FloatField(blank=True, null=True)),
612
+                ('avg1', models.FloatField(blank=True, null=True)),
613
+                ('avg2', models.FloatField(blank=True, null=True)),
614
+                ('avg3', models.FloatField(blank=True, null=True)),
615
+                ('avg0_name', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=50, null=True)),
616
+                ('avg1_name', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=50, null=True)),
617
+                ('avg2_name', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=50, null=True)),
618
+                ('avg3_name', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=50, null=True)),
619
+            ],
620
+            options={
621
+                'db_table': 'lot_summary (2008-2018)',
622
+                'managed': False,
623
+            },
624
+        ),
625
+        migrations.CreateModel(
626
+            name='LotSummaryRl',
627
+            fields=[
628
+                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
629
+                ('lot_no', models.CharField(db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=50)),
630
+                ('created_at', models.DateTimeField()),
631
+                ('avg', models.FloatField()),
632
+                ('code', models.CharField(db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=50)),
633
+                ('start_time', models.DateTimeField(blank=True, null=True)),
634
+                ('end_time', models.DateTimeField(blank=True, null=True)),
635
+                ('grade', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=50, null=True)),
636
+                ('machine_id', models.IntegerField(blank=True, null=True)),
637
+                ('avg0', models.FloatField(blank=True, null=True)),
638
+                ('avg1', models.FloatField(blank=True, null=True)),
639
+                ('avg2', models.FloatField(blank=True, null=True)),
640
+                ('avg3', models.FloatField(blank=True, null=True)),
641
+                ('avg0_name', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=50, null=True)),
642
+                ('avg1_name', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=50, null=True)),
643
+                ('avg2_name', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=50, null=True)),
644
+                ('avg3_name', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=50, null=True)),
645
+            ],
646
+            options={
647
+                'db_table': 'lot_summary_rl',
648
+                'managed': False,
649
+            },
650
+        ),
651
+        migrations.CreateModel(
652
+            name='LotSummaryWb',
653
+            fields=[
654
+                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
655
+                ('lot_no', models.CharField(db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=50)),
656
+                ('created_at', models.DateTimeField()),
657
+                ('w_avg', models.FloatField()),
658
+                ('wb_avg', models.FloatField()),
659
+                ('cp', models.FloatField()),
660
+                ('code', models.CharField(db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=50)),
661
+                ('start_time', models.DateTimeField(blank=True, null=True)),
662
+                ('end_time', models.DateTimeField(blank=True, null=True)),
663
+                ('machine_id', models.IntegerField(blank=True, null=True)),
664
+            ],
665
+            options={
666
+                'db_table': 'lot_summary_wb',
667
+                'managed': False,
668
+            },
669
+        ),
670
+        migrations.CreateModel(
671
+            name='Lottracking',
672
+            fields=[
673
+                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
674
+                ('lotno', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=255, null=True)),
675
+                ('machinegroup', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='machineGroup', max_length=255, null=True)),
676
+                ('datams_id', models.IntegerField(blank=True, null=True)),
677
+                ('created_at', models.DateTimeField(blank=True, null=True)),
678
+                ('updated_at', models.DateTimeField(blank=True, null=True)),
679
+            ],
680
+            options={
681
+                'db_table': 'LotTracking',
682
+                'managed': False,
683
+            },
684
+        ),
685
+        migrations.CreateModel(
686
+            name='Machinegroup',
687
+            fields=[
688
+                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
689
+                ('groupname', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='groupName', max_length=255, null=True)),
690
+            ],
691
+            options={
692
+                'db_table': 'machineGroup',
693
+                'managed': False,
694
+            },
695
+        ),
696
+        migrations.CreateModel(
697
+            name='Machines',
698
+            fields=[
699
+                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
700
+                ('name', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=255, null=True)),
701
+                ('description', models.TextField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', null=True)),
702
+                ('created_at', models.DateTimeField(blank=True, null=True)),
703
+                ('updated_at', models.DateTimeField(blank=True, null=True)),
704
+                ('tag_name', models.TextField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', null=True)),
705
+            ],
706
+            options={
707
+                'db_table': 'machines',
708
+                'managed': False,
709
+            },
710
+        ),
711
+        migrations.CreateModel(
712
+            name='MachinesWb',
713
+            fields=[
714
+                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
715
+                ('name', models.TextField(db_collation='SQL_Latin1_General_CP1_CI_AS')),
716
+                ('description', models.TextField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', null=True)),
717
+                ('created_at', models.DateTimeField()),
718
+                ('updated_at', models.DateTimeField(blank=True, null=True)),
719
+                ('tag_name', models.TextField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', null=True)),
720
+                ('ip', models.TextField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', null=True)),
721
+                ('isactive', models.BooleanField(db_column='isActive')),
722
+                ('machinestd', models.FloatField(blank=True, db_column='machineStd', null=True)),
723
+            ],
724
+            options={
725
+                'db_table': 'machines_wb',
726
+                'managed': False,
727
+            },
728
+        ),
729
+        migrations.CreateModel(
730
+            name='Manualsize',
731
+            fields=[
732
+                ('lotno', models.CharField(db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='lotNo', max_length=20, primary_key=True, serialize=False)),
733
+                ('size_name', models.CharField(db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='Size_Name', max_length=50)),
734
+                ('std', models.FloatField(blank=True, db_column='Std', null=True)),
735
+                ('tolun', models.FloatField(blank=True, db_column='TolUn', null=True)),
736
+                ('tolup', models.FloatField(blank=True, db_column='TolUp', null=True)),
737
+                ('created_at', models.DateTimeField()),
738
+                ('productcode', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='ProductCode', max_length=30, null=True)),
739
+            ],
740
+            options={
741
+                'db_table': 'manualSize',
742
+                'managed': False,
743
+            },
744
+        ),
745
+        migrations.CreateModel(
746
+            name='PressCal',
747
+            fields=[
748
+                ('v0', models.FloatField(blank=True, null=True)),
749
+                ('lot_no', models.CharField(db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=50, primary_key=True, serialize=False)),
750
+                ('v1', models.FloatField(blank=True, null=True)),
751
+                ('v2', models.FloatField(blank=True, null=True)),
752
+                ('v3', models.FloatField(blank=True, null=True)),
753
+                ('v4', models.FloatField(blank=True, null=True)),
754
+                ('v5', models.FloatField(blank=True, null=True)),
755
+                ('v6', models.FloatField(blank=True, null=True)),
756
+                ('y0', models.FloatField(blank=True, null=True)),
757
+                ('y1', models.FloatField(blank=True, null=True)),
758
+                ('y2', models.FloatField(blank=True, null=True)),
759
+                ('ac1', models.FloatField(blank=True, null=True)),
760
+                ('ac2', models.FloatField(blank=True, null=True)),
761
+                ('ac3', models.FloatField(blank=True, null=True)),
762
+                ('ac4', models.FloatField(blank=True, null=True)),
763
+                ('ac5', models.FloatField(blank=True, null=True)),
764
+                ('ac6', models.FloatField(blank=True, null=True)),
765
+                ('ac7', models.FloatField(blank=True, null=True)),
766
+                ('r_result', models.FloatField(blank=True, null=True)),
767
+                ('created_at', models.DateTimeField(blank=True, null=True)),
768
+                ('updated_at', models.DateTimeField(blank=True, null=True)),
769
+                ('c0', models.FloatField()),
770
+            ],
771
+            options={
772
+                'db_table': 'press_cal',
773
+                'managed': False,
774
+            },
775
+        ),
776
+        migrations.CreateModel(
777
+            name='RotateData',
778
+            fields=[
779
+                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
780
+                ('row_no', models.IntegerField(blank=True, null=True)),
781
+                ('speed_spec', models.FloatField(blank=True, null=True)),
782
+                ('speed_test', models.FloatField(blank=True, null=True)),
783
+                ('speedok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='speedOk', max_length=4, null=True)),
784
+                ('qty', models.IntegerField()),
785
+                ('station_no', models.IntegerField()),
786
+                ('created_at', models.DateTimeField(blank=True, null=True)),
787
+                ('updated_at', models.DateTimeField(blank=True, null=True)),
788
+                ('lot_no', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=50, null=True)),
789
+                ('machine_id', models.IntegerField(blank=True, null=True)),
790
+                ('code', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=50, null=True)),
791
+                ('emp_id', models.IntegerField()),
792
+                ('devid', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=40, null=True)),
793
+                ('mode', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=10, null=True)),
794
+                ('cal_mode', models.IntegerField(blank=True, null=True)),
795
+            ],
796
+            options={
797
+                'db_table': 'rotate_data',
798
+                'managed': False,
799
+            },
800
+        ),
801
+        migrations.CreateModel(
802
+            name='SchemaMigrations',
803
+            fields=[
804
+                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
805
+                ('version', models.CharField(db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=255)),
806
+            ],
807
+            options={
808
+                'db_table': 'schema_migrations',
809
+                'managed': False,
810
+            },
811
+        ),
812
+        migrations.CreateModel(
813
+            name='SplitData',
814
+            fields=[
815
+                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
816
+                ('v1', models.FloatField(blank=True, null=True)),
817
+                ('v2', models.FloatField(blank=True, null=True)),
818
+                ('v3', models.FloatField(blank=True, null=True)),
819
+                ('v4', models.FloatField(blank=True, null=True)),
820
+                ('v5', models.FloatField(blank=True, null=True)),
821
+                ('unit', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=50, null=True)),
822
+                ('vr', models.FloatField(blank=True, null=True)),
823
+                ('vname', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=50, null=True)),
824
+                ('no', models.IntegerField()),
825
+                ('v1ok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=20, null=True)),
826
+                ('v2ok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=20, null=True)),
827
+                ('v3ok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=20, null=True)),
828
+                ('v4ok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=20, null=True)),
829
+                ('v5ok', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=20, null=True)),
830
+                ('vmax', models.FloatField(blank=True, null=True)),
831
+                ('vmin', models.FloatField(blank=True, null=True)),
832
+                ('vdiff', models.FloatField(blank=True, null=True)),
833
+                ('row_no', models.IntegerField(blank=True, null=True)),
834
+            ],
835
+            options={
836
+                'db_table': 'split_data',
837
+                'managed': False,
838
+            },
839
+        ),
840
+        migrations.CreateModel(
841
+            name='SysConfigs',
842
+            fields=[
843
+                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
844
+                ('title', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=255, null=True)),
845
+                ('value', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', max_length=255, null=True)),
846
+                ('created_at', models.DateTimeField(blank=True, null=True)),
847
+                ('updated_at', models.DateTimeField(blank=True, null=True)),
848
+            ],
849
+            options={
850
+                'db_table': 'sys_configs',
851
+                'managed': False,
852
+            },
853
+        ),
854
+        migrations.CreateModel(
855
+            name='TbFgPressinfoLotlist',
856
+            fields=[
857
+                ('product_year', models.CharField(db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='Product_Year', max_length=10, primary_key=True, serialize=False)),
858
+                ('productcode', models.CharField(db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='ProductCode', max_length=20)),
859
+                ('lotno', models.CharField(db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='LotNo', max_length=20)),
860
+                ('lot_qty', models.FloatField(blank=True, db_column='Lot_Qty', null=True)),
861
+                ('def_qty', models.FloatField(blank=True, db_column='Def_Qty', null=True)),
862
+                ('fg_qty', models.FloatField(blank=True, db_column='FG_Qty', null=True)),
863
+                ('insp_date', models.DateTimeField(blank=True, db_column='Insp_Date', null=True)),
864
+                ('current_prono', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='Current_ProNo', max_length=5, null=True)),
865
+                ('press_mcname', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='Press_McName', max_length=50, null=True)),
866
+                ('press_username', models.CharField(blank=True, db_collation='SQL_Latin1_General_CP1_CI_AS', db_column='Press_UserName', max_length=50, null=True)),
867
+            ],
868
+            options={
869
+                'db_table': 'tb_fg_pressinfo_lotlist',
870
+                'managed': False,
871
+            },
872
+        ),
873
+        migrations.CreateModel(
874
+            name='TbWbStdCode12',
875
+            fields=[
876
+                ('id', models.IntegerField(db_column='ID', primary_key=True, serialize=False)),
877
+                ('u_weight', models.FloatField(blank=True, db_column='U_Weight', null=True)),
878
+                ('speed_from', models.FloatField(blank=True, db_column='Speed_From', null=True)),
879
+                ('speed_to', models.FloatField(blank=True, db_column='Speed_To', null=True)),
880
+                ('diameter_from', models.FloatField(blank=True, db_column='Diameter_From', null=True)),
881
+                ('diameter_to', models.FloatField(blank=True, db_column='Diameter_To', null=True)),
882
+                ('std_balance', models.FloatField(blank=True, db_column='STD_Balance', null=True)),
883
+            ],
884
+            options={
885
+                'db_table': 'tb_wb_std_code_1-2',
886
+                'managed': False,
887
+            },
888
+        ),
889
+        migrations.CreateModel(
890
+            name='TbWbStdCode345',
891
+            fields=[
892
+                ('id', models.IntegerField(db_column='ID', primary_key=True, serialize=False)),
893
+                ('u_weight', models.FloatField(blank=True, db_column='U_Weight', null=True)),
894
+                ('speed_from', models.FloatField(blank=True, db_column='Speed_From', null=True)),
895
+                ('speed_to', models.FloatField(blank=True, db_column='Speed_To', null=True)),
896
+                ('diameter_from', models.FloatField(blank=True, db_column='Diameter_From', null=True)),
897
+                ('diameter_to', models.FloatField(blank=True, db_column='Diameter_To', null=True)),
898
+                ('std_balance', models.FloatField(blank=True, db_column='STD_Balance', null=True)),
899
+            ],
900
+            options={
901
+                'db_table': 'tb_wb_std_code_3-4-5',
902
+                'managed': False,
903
+            },
904
+        ),
905
+    ]

+ 0 - 0
app/legacy/migrations/__init__.py


+ 842 - 0
app/legacy/models.py

@@ -0,0 +1,842 @@
1
+# This is an auto-generated Django model module.
2
+# You'll have to do the following manually to clean this up:
3
+#   * Rearrange models' order
4
+#   * Make sure each model has one field with primary_key=True
5
+#   * Make sure each ForeignKey and OneToOneField has `on_delete` set to the desired behavior
6
+#   * Remove `managed = False` lines if you wish to allow Django to create, modify, and delete the table
7
+# Feel free to rename the models, but don't rename db_table values or field names.
8
+from django.db import models
9
+
10
+
11
+class Data13178079(models.Model):
12
+    row_no = models.IntegerField(blank=True, null=True)
13
+    avg = models.FloatField(blank=True, null=True)
14
+    grade = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
15
+    rgrade = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
16
+    r_type = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
17
+    p1 = models.FloatField(blank=True, null=True)
18
+    p2 = models.FloatField(blank=True, null=True)
19
+    p3 = models.FloatField(blank=True, null=True)
20
+    p4 = models.FloatField(blank=True, null=True)
21
+    p5 = models.FloatField(blank=True, null=True)
22
+    p6 = models.FloatField(blank=True, null=True)
23
+    p7 = models.FloatField(blank=True, null=True)
24
+    p8 = models.FloatField(blank=True, null=True)
25
+    p9 = models.FloatField(blank=True, null=True)
26
+    p10 = models.FloatField(blank=True, null=True)
27
+    created_at = models.DateTimeField(blank=True, null=True)
28
+    updated_at = models.DateTimeField(blank=True, null=True)
29
+    lot_no = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
30
+    ndata = models.IntegerField(blank=True, null=True)
31
+    sub_order = models.IntegerField(blank=True, null=True)
32
+    machine_id = models.IntegerField(blank=True, null=True)
33
+    code = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
34
+    header = models.CharField(max_length=10, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
35
+
36
+    class Meta:
37
+        managed = False
38
+        db_table = 'Data_131_78079'
39
+        app_label = "legacy"
40
+
41
+
42
+class Lotsizeorder(models.Model):
43
+    oid = models.AutoField(primary_key=True)
44
+    lotno = models.CharField(max_length=100, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
45
+    sizes = models.CharField(max_length=400, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
46
+
47
+    class Meta:
48
+        managed = False
49
+        db_table = 'LotSizeOrder'
50
+        app_label = "legacy"
51
+
52
+
53
+class Lottracking(models.Model):
54
+    lotno = models.CharField(max_length=255, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
55
+    machineid = models.ForeignKey('MachinesWb', models.DO_NOTHING, db_column='machineId', blank=True, null=True)  # Field name made lowercase.
56
+    machinegroup = models.CharField(db_column='machineGroup', max_length=255, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
57
+    mgid = models.ForeignKey('Machinegroup', models.DO_NOTHING, db_column='mgId', blank=True, null=True)  # Field name made lowercase.
58
+    datams_id = models.IntegerField(blank=True, null=True)
59
+    datawb = models.ForeignKey('DataWb', models.DO_NOTHING, blank=True, null=True)
60
+    created_at = models.DateTimeField(blank=True, null=True)
61
+    updated_at = models.DateTimeField(blank=True, null=True)
62
+
63
+    class Meta:
64
+        managed = False
65
+        db_table = 'LotTracking'
66
+        app_label = "legacy"
67
+
68
+
69
+class Agreements(models.Model):
70
+    title = models.CharField(max_length=255, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
71
+    file = models.CharField(max_length=255, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
72
+    description = models.TextField(db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
73
+    created_at = models.DateTimeField(blank=True, null=True)
74
+    updated_at = models.DateTimeField(blank=True, null=True)
75
+
76
+    class Meta:
77
+        managed = False
78
+        db_table = 'agreements'
79
+        app_label = "legacy"
80
+
81
+
82
+class DailyChecks(models.Model):
83
+    p1 = models.FloatField(blank=True, null=True)
84
+    p2 = models.FloatField(blank=True, null=True)
85
+    p3 = models.FloatField(blank=True, null=True)
86
+    avg = models.FloatField(blank=True, null=True)
87
+    machine_id = models.IntegerField(blank=True, null=True)
88
+    created_at = models.DateTimeField(blank=True, null=True)
89
+    updated_at = models.DateTimeField(blank=True, null=True)
90
+    header = models.CharField(max_length=255, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
91
+    user_id = models.IntegerField(blank=True, null=True)
92
+    empid = models.CharField(max_length=255, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
93
+    shift = models.CharField(max_length=255, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
94
+    result = models.CharField(max_length=255, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
95
+
96
+    class Meta:
97
+        managed = False
98
+        db_table = 'daily_checks'
99
+        app_label = "legacy"
100
+
101
+
102
+class DailyChecksWb(models.Model):
103
+    result = models.FloatField(blank=True, null=True)
104
+    weight = models.FloatField(blank=True, null=True)
105
+    judgement = models.CharField(max_length=10, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
106
+    machine_id = models.IntegerField(blank=True, null=True)
107
+    created_at = models.DateTimeField(blank=True, null=True)
108
+    updated_at = models.DateTimeField(blank=True, null=True)
109
+    user_id = models.IntegerField(blank=True, null=True)
110
+    empid = models.CharField(max_length=255, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
111
+    shift = models.CharField(max_length=255, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
112
+
113
+    class Meta:
114
+        managed = False
115
+        db_table = 'daily_checks_wb'
116
+        app_label = "legacy"
117
+
118
+
119
+class Data(models.Model):
120
+    row_no = models.IntegerField(blank=True, null=True)
121
+    lot_no = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
122
+    code = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
123
+    header = models.CharField(max_length=10, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
124
+    p1 = models.FloatField(blank=True, null=True)
125
+    p2 = models.FloatField(blank=True, null=True)
126
+    p3 = models.FloatField(blank=True, null=True)
127
+    p4 = models.FloatField(blank=True, null=True)
128
+    p5 = models.FloatField(blank=True, null=True)
129
+    p6 = models.FloatField(blank=True, null=True)
130
+    p7 = models.FloatField(blank=True, null=True)
131
+    p8 = models.FloatField(blank=True, null=True)
132
+    p9 = models.FloatField(blank=True, null=True)
133
+    p10 = models.FloatField(blank=True, null=True)
134
+    avg = models.FloatField(blank=True, null=True)
135
+    grade = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
136
+    rgrade = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
137
+    r_type = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
138
+    created_at = models.DateTimeField(blank=True, null=True)
139
+    updated_at = models.DateTimeField(blank=True, null=True)
140
+    ndata = models.IntegerField(blank=True, null=True)
141
+    sub_order = models.IntegerField(blank=True, null=True)
142
+    machine_id = models.IntegerField(blank=True, null=True)
143
+
144
+    class Meta:
145
+        managed = False
146
+        db_table = 'data'
147
+        app_label = "legacy"
148
+
149
+    def __str__(self):
150
+        return f"Lotno:{self.lot_no} Code:{self.code}"
151
+
152
+
153
+class Data20082018(models.Model):
154
+    row_no = models.IntegerField(blank=True, null=True)
155
+    avg = models.FloatField(blank=True, null=True)
156
+    grade = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
157
+    rgrade = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
158
+    r_type = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
159
+    p1 = models.FloatField(blank=True, null=True)
160
+    p2 = models.FloatField(blank=True, null=True)
161
+    p3 = models.FloatField(blank=True, null=True)
162
+    p4 = models.FloatField(blank=True, null=True)
163
+    p5 = models.FloatField(blank=True, null=True)
164
+    p6 = models.FloatField(blank=True, null=True)
165
+    p7 = models.FloatField(blank=True, null=True)
166
+    p8 = models.FloatField(blank=True, null=True)
167
+    p9 = models.FloatField(blank=True, null=True)
168
+    p10 = models.FloatField(blank=True, null=True)
169
+    created_at = models.DateTimeField(blank=True, null=True)
170
+    updated_at = models.DateTimeField(blank=True, null=True)
171
+    lot_no = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
172
+    ndata = models.IntegerField(blank=True, null=True)
173
+    sub_order = models.IntegerField(blank=True, null=True)
174
+    machine_id = models.IntegerField(blank=True, null=True)
175
+    code = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
176
+    header = models.CharField(max_length=10, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
177
+
178
+    class Meta:
179
+        managed = False
180
+        db_table = 'data (2008-2018)'
181
+        app_label = "legacy"
182
+
183
+
184
+class Data25113027G(models.Model):
185
+    row_no = models.IntegerField(blank=True, null=True)
186
+    avg = models.FloatField(blank=True, null=True)
187
+    grade = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
188
+    rgrade = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
189
+    r_type = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
190
+    p1 = models.FloatField(blank=True, null=True)
191
+    p2 = models.FloatField(blank=True, null=True)
192
+    p3 = models.FloatField(blank=True, null=True)
193
+    p4 = models.FloatField(blank=True, null=True)
194
+    p5 = models.FloatField(blank=True, null=True)
195
+    p6 = models.FloatField(blank=True, null=True)
196
+    p7 = models.FloatField(blank=True, null=True)
197
+    p8 = models.FloatField(blank=True, null=True)
198
+    p9 = models.FloatField(blank=True, null=True)
199
+    p10 = models.FloatField(blank=True, null=True)
200
+    created_at = models.DateTimeField(blank=True, null=True)
201
+    updated_at = models.DateTimeField(blank=True, null=True)
202
+    lot_no = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
203
+    ndata = models.IntegerField(blank=True, null=True)
204
+    sub_order = models.IntegerField(blank=True, null=True)
205
+    machine_id = models.IntegerField(blank=True, null=True)
206
+    code = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
207
+    header = models.CharField(max_length=10, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
208
+
209
+    class Meta:
210
+        managed = False
211
+        db_table = 'data_251-13027G'
212
+        app_label = "legacy"
213
+
214
+
215
+class DataMs(models.Model):
216
+    row_no = models.IntegerField()
217
+    dsize = models.FloatField(blank=True, null=True)
218
+    tsize = models.FloatField(blank=True, null=True)
219
+    hsize = models.FloatField(blank=True, null=True)
220
+    csize = models.FloatField(blank=True, null=True)
221
+    esize = models.FloatField(blank=True, null=True)
222
+    fsize = models.FloatField(blank=True, null=True)
223
+    gsize = models.FloatField(blank=True, null=True)
224
+    psize = models.FloatField(blank=True, null=True)
225
+    wsize = models.FloatField(blank=True, null=True)
226
+    jksize = models.FloatField(blank=True, null=True)
227
+    usize = models.FloatField(blank=True, null=True)
228
+    msize = models.FloatField(blank=True, null=True)
229
+    asize = models.FloatField(blank=True, null=True)
230
+    nsize = models.FloatField(blank=True, null=True)
231
+    jsize = models.FloatField(blank=True, null=True)
232
+    xsize = models.FloatField(blank=True, null=True)
233
+    flatnesssize = models.FloatField(blank=True, null=True)
234
+    ksize = models.FloatField(blank=True, null=True)
235
+    thicknesssize = models.FloatField(blank=True, null=True)
236
+    qsize = models.FloatField(blank=True, null=True)
237
+    ssize = models.FloatField(blank=True, null=True)
238
+    dsizeok = models.CharField(db_column='dsizeOk', max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
239
+    tsizeok = models.CharField(db_column='tsizeOk', max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
240
+    hsizeok = models.CharField(db_column='hsizeOk', max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
241
+    csizeok = models.CharField(db_column='csizeOk', max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
242
+    esizeok = models.CharField(db_column='esizeOk', max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
243
+    fsizeok = models.CharField(db_column='fsizeOk', max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
244
+    gsizeok = models.CharField(db_column='gsizeOk', max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
245
+    psizeok = models.CharField(db_column='psizeOk', max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
246
+    wsizeok = models.CharField(db_column='wsizeOk', max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
247
+    jksizeok = models.CharField(db_column='jksizeOk', max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
248
+    usizeok = models.CharField(db_column='usizeOk', max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
249
+    msizeok = models.CharField(db_column='msizeOk', max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
250
+    asizeok = models.CharField(db_column='asizeOk', max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
251
+    nsizeok = models.CharField(db_column='nsizeOk', max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
252
+    jsizeok = models.CharField(db_column='jsizeOk', max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
253
+    xsizeok = models.CharField(db_column='xsizeOk', max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
254
+    flatnesssizeok = models.CharField(db_column='flatnesssizeOk', max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
255
+    ksizeok = models.CharField(db_column='ksizeOk', max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
256
+    thicknesssizeok = models.CharField(db_column='thicknesssizeOk', max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
257
+    qsizeok = models.CharField(db_column='qsizeOk', max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
258
+    ssizeok = models.CharField(db_column='ssizeOk', max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
259
+    created_at = models.DateTimeField(blank=True, null=True)
260
+    updated_at = models.DateTimeField(blank=True, null=True)
261
+    lot_no = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
262
+    machine_id = models.IntegerField()
263
+    code = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
264
+    emp_id = models.IntegerField()
265
+    weight = models.FloatField(blank=True, null=True)
266
+    devid = models.CharField(max_length=40, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
267
+    tpoint1 = models.FloatField(blank=True, null=True)
268
+    tpoint2 = models.FloatField(blank=True, null=True)
269
+    tpoint3 = models.FloatField(blank=True, null=True)
270
+    tpoint4 = models.FloatField(blank=True, null=True)
271
+    tpoint1ok = models.CharField(max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
272
+    tpoint2ok = models.CharField(max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
273
+    tpoint3ok = models.CharField(max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
274
+    tpoint4ok = models.CharField(max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
275
+    tdiff = models.FloatField(blank=True, null=True)
276
+    tmin = models.FloatField(blank=True, null=True)
277
+    tmax = models.FloatField(blank=True, null=True)
278
+    hdev = models.CharField(max_length=20, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
279
+    hsizeproxy = models.CharField(max_length=20, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
280
+    restricts = models.CharField(max_length=40, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
281
+    shift = models.CharField(max_length=10, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
282
+    mode = models.CharField(max_length=10, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
283
+    cal_mode = models.IntegerField(blank=True, null=True)
284
+    diasize = models.FloatField(blank=True, null=True)
285
+    diasizeok = models.CharField(db_column='diasizeOk', max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
286
+    censize = models.FloatField(blank=True, null=True)
287
+    censizeok = models.CharField(db_column='censizeOk', max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
288
+    osize = models.FloatField(blank=True, null=True)
289
+    osizeok = models.CharField(db_column='osizeOk', max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
290
+    size1 = models.FloatField(blank=True, null=True)
291
+    size2 = models.FloatField(blank=True, null=True)
292
+    size1ok = models.CharField(db_column='size1Ok', max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
293
+    size2ok = models.CharField(db_column='size2Ok', max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
294
+    size1name = models.CharField(db_column='size1Name', max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
295
+    size2name = models.CharField(db_column='size2Name', max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
296
+    bsize = models.FloatField(blank=True, null=True)
297
+    bsizeok = models.CharField(db_column='bsizeOk', max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
298
+    lsize = models.FloatField(blank=True, null=True)
299
+    lsizeok = models.CharField(db_column='lsizeOk', max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
300
+    zsize = models.FloatField(blank=True, null=True)
301
+    zsizeok = models.CharField(db_column='zsizeOk', max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
302
+    x1size = models.FloatField(blank=True, null=True)
303
+    x1sizeok = models.CharField(db_column='x1sizeOk', max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
304
+    x2size = models.FloatField(blank=True, null=True)
305
+    x2sizeok = models.CharField(db_column='x2sizeOk', max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
306
+    tpresssize = models.FloatField(blank=True, null=True)
307
+    tpresssizeok = models.CharField(db_column='tpresssizeOk', max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
308
+    t1 = models.FloatField()
309
+    t2 = models.FloatField()
310
+    t3 = models.FloatField()
311
+    t4 = models.FloatField()
312
+    t1ok = models.CharField(db_column='t1Ok', max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
313
+    t2ok = models.CharField(db_column='t2Ok', max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
314
+    t3ok = models.CharField(db_column='t3Ok', max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
315
+    t4ok = models.CharField(db_column='t4Ok', max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
316
+    t4avg = models.FloatField()
317
+    tpok = models.CharField(db_column='tpOk', max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
318
+    t4min = models.FloatField(blank=True, null=True)
319
+    t4max = models.FloatField(blank=True, null=True)
320
+    t4diff = models.FloatField(blank=True, null=True)
321
+
322
+    class Meta:
323
+        managed = False
324
+        db_table = 'data_ms'
325
+        app_label = "legacy"
326
+
327
+class DataMsLot2210062522(models.Model):
328
+    row_no = models.IntegerField()
329
+    dsize = models.FloatField(blank=True, null=True)
330
+    tsize = models.FloatField(blank=True, null=True)
331
+    hsize = models.FloatField(blank=True, null=True)
332
+    csize = models.FloatField(blank=True, null=True)
333
+    esize = models.FloatField(blank=True, null=True)
334
+    fsize = models.FloatField(blank=True, null=True)
335
+    gsize = models.FloatField(blank=True, null=True)
336
+    psize = models.FloatField(blank=True, null=True)
337
+    wsize = models.FloatField(blank=True, null=True)
338
+    jksize = models.FloatField(blank=True, null=True)
339
+    usize = models.FloatField(blank=True, null=True)
340
+    msize = models.FloatField(blank=True, null=True)
341
+    asize = models.FloatField(blank=True, null=True)
342
+    nsize = models.FloatField(blank=True, null=True)
343
+    jsize = models.FloatField(blank=True, null=True)
344
+    xsize = models.FloatField(blank=True, null=True)
345
+    flatnesssize = models.FloatField(blank=True, null=True)
346
+    ksize = models.FloatField(blank=True, null=True)
347
+    thicknesssize = models.FloatField(blank=True, null=True)
348
+    qsize = models.FloatField(blank=True, null=True)
349
+    ssize = models.FloatField(blank=True, null=True)
350
+    dsizeok = models.CharField(db_column='dsizeOk', max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
351
+    tsizeok = models.CharField(db_column='tsizeOk', max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
352
+    hsizeok = models.CharField(db_column='hsizeOk', max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
353
+    csizeok = models.CharField(db_column='csizeOk', max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
354
+    esizeok = models.CharField(db_column='esizeOk', max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
355
+    fsizeok = models.CharField(db_column='fsizeOk', max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
356
+    gsizeok = models.CharField(db_column='gsizeOk', max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
357
+    psizeok = models.CharField(db_column='psizeOk', max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
358
+    wsizeok = models.CharField(db_column='wsizeOk', max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
359
+    jksizeok = models.CharField(db_column='jksizeOk', max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
360
+    usizeok = models.CharField(db_column='usizeOk', max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
361
+    msizeok = models.CharField(db_column='msizeOk', max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
362
+    asizeok = models.CharField(db_column='asizeOk', max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
363
+    nsizeok = models.CharField(db_column='nsizeOk', max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
364
+    jsizeok = models.CharField(db_column='jsizeOk', max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
365
+    xsizeok = models.CharField(db_column='xsizeOk', max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
366
+    flatnesssizeok = models.CharField(db_column='flatnesssizeOk', max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
367
+    ksizeok = models.CharField(db_column='ksizeOk', max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
368
+    thicknesssizeok = models.CharField(db_column='thicknesssizeOk', max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
369
+    qsizeok = models.CharField(db_column='qsizeOk', max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
370
+    ssizeok = models.CharField(db_column='ssizeOk', max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
371
+    created_at = models.DateTimeField(blank=True, null=True)
372
+    updated_at = models.DateTimeField(blank=True, null=True)
373
+    lot_no = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
374
+    machine_id = models.IntegerField()
375
+    code = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
376
+    emp_id = models.IntegerField()
377
+    weight = models.FloatField(blank=True, null=True)
378
+    devid = models.CharField(max_length=40, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
379
+    tpoint1 = models.FloatField(blank=True, null=True)
380
+    tpoint2 = models.FloatField(blank=True, null=True)
381
+    tpoint3 = models.FloatField(blank=True, null=True)
382
+    tpoint4 = models.FloatField(blank=True, null=True)
383
+    tpoint1ok = models.CharField(max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
384
+    tpoint2ok = models.CharField(max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
385
+    tpoint3ok = models.CharField(max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
386
+    tpoint4ok = models.CharField(max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
387
+    tdiff = models.FloatField(blank=True, null=True)
388
+    tmin = models.FloatField(blank=True, null=True)
389
+    tmax = models.FloatField(blank=True, null=True)
390
+    hdev = models.CharField(max_length=20, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
391
+    hsizeproxy = models.CharField(max_length=20, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
392
+    restricts = models.CharField(max_length=40, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
393
+    shift = models.CharField(max_length=10, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
394
+    mode = models.CharField(max_length=10, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
395
+    cal_mode = models.IntegerField(blank=True, null=True)
396
+    diasize = models.FloatField(blank=True, null=True)
397
+    diasizeok = models.CharField(db_column='diasizeOk', max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
398
+    censize = models.FloatField(blank=True, null=True)
399
+    censizeok = models.CharField(db_column='censizeOk', max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
400
+    osize = models.FloatField(blank=True, null=True)
401
+    osizeok = models.CharField(db_column='osizeOk', max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
402
+    size1 = models.FloatField(blank=True, null=True)
403
+    size2 = models.FloatField(blank=True, null=True)
404
+    size1ok = models.CharField(db_column='size1Ok', max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
405
+    size2ok = models.CharField(db_column='size2Ok', max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
406
+    size1name = models.CharField(db_column='size1Name', max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
407
+    size2name = models.CharField(db_column='size2Name', max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
408
+    bsize = models.FloatField(blank=True, null=True)
409
+    bsizeok = models.CharField(db_column='bsizeOk', max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
410
+    lsize = models.FloatField(blank=True, null=True)
411
+    lsizeok = models.CharField(db_column='lsizeOk', max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
412
+    zsize = models.FloatField(blank=True, null=True)
413
+    zsizeok = models.CharField(db_column='zsizeOk', max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
414
+    x1size = models.FloatField(blank=True, null=True)
415
+    x1sizeok = models.CharField(db_column='x1sizeOk', max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
416
+    x2size = models.FloatField(blank=True, null=True)
417
+    x2sizeok = models.CharField(db_column='x2sizeOk', max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
418
+    tpresssize = models.FloatField(blank=True, null=True)
419
+    tpresssizeok = models.CharField(db_column='tpresssizeOk', max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
420
+    t1 = models.FloatField()
421
+    t2 = models.FloatField()
422
+    t3 = models.FloatField()
423
+    t4 = models.FloatField()
424
+    t1ok = models.CharField(db_column='t1Ok', max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
425
+    t2ok = models.CharField(db_column='t2Ok', max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
426
+    t3ok = models.CharField(db_column='t3Ok', max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
427
+    t4ok = models.CharField(db_column='t4Ok', max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
428
+    t4avg = models.FloatField()
429
+    tpok = models.CharField(db_column='tpOk', max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
430
+    t4min = models.FloatField(blank=True, null=True)
431
+    t4max = models.FloatField(blank=True, null=True)
432
+    t4diff = models.FloatField(blank=True, null=True)
433
+
434
+    class Meta:
435
+        managed = False
436
+        db_table = 'data_ms_LOT2210062522'
437
+        app_label = "legacy"
438
+
439
+class DataRl(models.Model):
440
+    row_no = models.IntegerField(blank=True, null=True)
441
+    avg = models.FloatField(blank=True, null=True)
442
+    grade = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
443
+    rgrade = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
444
+    r_type = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
445
+    p1 = models.FloatField(blank=True, null=True)
446
+    p2 = models.FloatField(blank=True, null=True)
447
+    p3 = models.FloatField(blank=True, null=True)
448
+    p4 = models.FloatField(blank=True, null=True)
449
+    p5 = models.FloatField(blank=True, null=True)
450
+    p6 = models.FloatField(blank=True, null=True)
451
+    p7 = models.FloatField(blank=True, null=True)
452
+    p8 = models.FloatField(blank=True, null=True)
453
+    p9 = models.FloatField(blank=True, null=True)
454
+    p10 = models.FloatField(blank=True, null=True)
455
+    created_at = models.DateTimeField(blank=True, null=True)
456
+    updated_at = models.DateTimeField(blank=True, null=True)
457
+    lot_no = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
458
+    ndata = models.IntegerField(blank=True, null=True)
459
+    sub_order = models.IntegerField(blank=True, null=True)
460
+    machine_id = models.IntegerField(blank=True, null=True)
461
+    code = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
462
+    header = models.CharField(max_length=10, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
463
+
464
+    class Meta:
465
+        managed = False
466
+        db_table = 'data_rl'
467
+        app_label = "legacy"
468
+
469
+
470
+class DataWb(models.Model):
471
+    row_no = models.IntegerField(blank=True, null=True)
472
+    result = models.FloatField(blank=True, null=True)
473
+    weight = models.FloatField(blank=True, null=True)
474
+    judgement = models.CharField(max_length=10, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
475
+    created_at = models.DateTimeField(blank=True, null=True)
476
+    updated_at = models.DateTimeField(blank=True, null=True)
477
+    lot_no = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
478
+    machine_id = models.IntegerField(blank=True, null=True)
479
+    code = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
480
+    emp_id = models.IntegerField(blank=True, null=True)
481
+    repair_by = models.CharField(max_length=30, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
482
+
483
+    class Meta:
484
+        managed = False
485
+        db_table = 'data_wb'
486
+        app_label = "legacy"
487
+
488
+
489
+class DataWbTest(models.Model):
490
+    row_no = models.IntegerField(blank=True, null=True)
491
+    result = models.FloatField(blank=True, null=True)
492
+    weight = models.FloatField(blank=True, null=True)
493
+    judgement = models.CharField(max_length=10, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
494
+    created_at = models.DateTimeField(blank=True, null=True)
495
+    updated_at = models.DateTimeField(blank=True, null=True)
496
+    lot_no = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
497
+    machine_id = models.IntegerField(blank=True, null=True)
498
+    code = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
499
+    emp_id = models.IntegerField(blank=True, null=True)
500
+    repair_by = models.CharField(max_length=30, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
501
+
502
+    class Meta:
503
+        managed = False
504
+        db_table = 'data_wb_test'
505
+        app_label = "legacy"
506
+
507
+
508
+class LoginTemps(models.Model):
509
+    empid = models.CharField(max_length=255, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
510
+    password = models.CharField(max_length=255, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
511
+    created_at = models.DateTimeField(blank=True, null=True)
512
+    updated_at = models.DateTimeField(blank=True, null=True)
513
+
514
+    class Meta:
515
+        managed = False
516
+        db_table = 'login_temps'
517
+        app_label = "legacy"
518
+
519
+
520
+class Lot(models.Model):
521
+    lot_no = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
522
+
523
+    class Meta:
524
+        managed = False
525
+        db_table = 'lot'
526
+
527
+
528
+class LotRl(models.Model):
529
+    lot_no = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
530
+
531
+    class Meta:
532
+        managed = False
533
+        db_table = 'lot_rl'
534
+        app_label = "legacy"
535
+
536
+
537
+class LotSummary(models.Model):
538
+    lot_no = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS')
539
+    created_at = models.DateTimeField()
540
+    avg = models.FloatField()
541
+    code = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS')
542
+    start_time = models.DateTimeField(blank=True, null=True)
543
+    end_time = models.DateTimeField(blank=True, null=True)
544
+    grade = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
545
+    machine_id = models.IntegerField(blank=True, null=True)
546
+    avg0 = models.FloatField(blank=True, null=True)
547
+    avg1 = models.FloatField(blank=True, null=True)
548
+    avg2 = models.FloatField(blank=True, null=True)
549
+    avg3 = models.FloatField(blank=True, null=True)
550
+    avg0_name = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
551
+    avg1_name = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
552
+    avg2_name = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
553
+    avg3_name = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
554
+
555
+    class Meta:
556
+        managed = False
557
+        db_table = 'lot_summary'
558
+        app_label = "legacy"
559
+
560
+
561
+class LotSummary20082018(models.Model):
562
+    lot_no = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS')
563
+    created_at = models.DateTimeField()
564
+    avg = models.FloatField()
565
+    code = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS')
566
+    start_time = models.DateTimeField(blank=True, null=True)
567
+    end_time = models.DateTimeField(blank=True, null=True)
568
+    grade = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
569
+    machine_id = models.IntegerField(blank=True, null=True)
570
+    avg0 = models.FloatField(blank=True, null=True)
571
+    avg1 = models.FloatField(blank=True, null=True)
572
+    avg2 = models.FloatField(blank=True, null=True)
573
+    avg3 = models.FloatField(blank=True, null=True)
574
+    avg0_name = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
575
+    avg1_name = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
576
+    avg2_name = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
577
+    avg3_name = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
578
+
579
+    class Meta:
580
+        managed = False
581
+        db_table = 'lot_summary (2008-2018)'
582
+        app_label = "legacy"
583
+
584
+
585
+class LotSummaryRl(models.Model):
586
+    lot_no = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS')
587
+    created_at = models.DateTimeField()
588
+    avg = models.FloatField()
589
+    code = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS')
590
+    start_time = models.DateTimeField(blank=True, null=True)
591
+    end_time = models.DateTimeField(blank=True, null=True)
592
+    grade = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
593
+    machine_id = models.IntegerField(blank=True, null=True)
594
+    avg0 = models.FloatField(blank=True, null=True)
595
+    avg1 = models.FloatField(blank=True, null=True)
596
+    avg2 = models.FloatField(blank=True, null=True)
597
+    avg3 = models.FloatField(blank=True, null=True)
598
+    avg0_name = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
599
+    avg1_name = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
600
+    avg2_name = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
601
+    avg3_name = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
602
+
603
+    class Meta:
604
+        managed = False
605
+        db_table = 'lot_summary_rl'
606
+        app_label = "legacy"
607
+
608
+
609
+class LotSummaryWb(models.Model):
610
+    lot_no = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS')
611
+    created_at = models.DateTimeField()
612
+    w_avg = models.FloatField()
613
+    wb_avg = models.FloatField()
614
+    cp = models.FloatField()
615
+    code = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS')
616
+    start_time = models.DateTimeField(blank=True, null=True)
617
+    end_time = models.DateTimeField(blank=True, null=True)
618
+    machine_id = models.IntegerField(blank=True, null=True)
619
+
620
+    class Meta:
621
+        managed = False
622
+        db_table = 'lot_summary_wb'
623
+        app_label = "legacy"
624
+
625
+
626
+class Machinegroup(models.Model):
627
+    groupname = models.CharField(db_column='groupName', max_length=255, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
628
+
629
+    class Meta:
630
+        managed = False
631
+        db_table = 'machineGroup'
632
+        app_label = "legacy"
633
+
634
+
635
+class Machines(models.Model):
636
+    name = models.CharField(max_length=255, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
637
+    description = models.TextField(db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
638
+    created_at = models.DateTimeField(blank=True, null=True)
639
+    updated_at = models.DateTimeField(blank=True, null=True)
640
+    tag_name = models.TextField(db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
641
+
642
+    class Meta:
643
+        managed = False
644
+        db_table = 'machines'
645
+        app_label = "legacy"
646
+
647
+
648
+class MachinesWb(models.Model):
649
+    name = models.TextField(db_collation='SQL_Latin1_General_CP1_CI_AS')
650
+    description = models.TextField(db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
651
+    created_at = models.DateTimeField()
652
+    updated_at = models.DateTimeField(blank=True, null=True)
653
+    tag_name = models.TextField(db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
654
+    ip = models.TextField(db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
655
+    isactive = models.BooleanField(db_column='isActive')  # Field name made lowercase.
656
+    machinestd = models.FloatField(db_column='machineStd', blank=True, null=True)  # Field name made lowercase.
657
+    groupid = models.ForeignKey(Machinegroup, models.DO_NOTHING, db_column='groupId', blank=True, null=True)  # Field name made lowercase.
658
+
659
+    class Meta:
660
+        managed = False
661
+        db_table = 'machines_wb'
662
+        app_label = "legacy"
663
+
664
+class Manualsize(models.Model):
665
+    lotno = models.CharField(db_column='lotNo', primary_key=True, max_length=20, db_collation='SQL_Latin1_General_CP1_CI_AS')  # Field name made lowercase. The composite primary key (lotNo, Size_Name) found, that is not supported. The first column is selected.
666
+    size_name = models.CharField(db_column='Size_Name', max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS')  # Field name made lowercase.
667
+    std = models.FloatField(db_column='Std', blank=True, null=True)  # Field name made lowercase.
668
+    tolun = models.FloatField(db_column='TolUn', blank=True, null=True)  # Field name made lowercase.
669
+    tolup = models.FloatField(db_column='TolUp', blank=True, null=True)  # Field name made lowercase.
670
+    created_at = models.DateTimeField()
671
+    productcode = models.CharField(db_column='ProductCode', max_length=30, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
672
+
673
+    class Meta:
674
+        managed = False
675
+        db_table = 'manualSize'
676
+        unique_together = (('lotno', 'size_name'),)
677
+        app_label = "legacy"
678
+
679
+
680
+class PressCal(models.Model):
681
+    v0 = models.FloatField(blank=True, null=True)
682
+    lot_no = models.CharField(primary_key=True, max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS')
683
+    v1 = models.FloatField(blank=True, null=True)
684
+    v2 = models.FloatField(blank=True, null=True)
685
+    v3 = models.FloatField(blank=True, null=True)
686
+    v4 = models.FloatField(blank=True, null=True)
687
+    v5 = models.FloatField(blank=True, null=True)
688
+    v6 = models.FloatField(blank=True, null=True)
689
+    y0 = models.FloatField(blank=True, null=True)
690
+    y1 = models.FloatField(blank=True, null=True)
691
+    y2 = models.FloatField(blank=True, null=True)
692
+    ac1 = models.FloatField(blank=True, null=True)
693
+    ac2 = models.FloatField(blank=True, null=True)
694
+    ac3 = models.FloatField(blank=True, null=True)
695
+    ac4 = models.FloatField(blank=True, null=True)
696
+    ac5 = models.FloatField(blank=True, null=True)
697
+    ac6 = models.FloatField(blank=True, null=True)
698
+    ac7 = models.FloatField(blank=True, null=True)
699
+    r_result = models.FloatField(blank=True, null=True)
700
+    created_at = models.DateTimeField(blank=True, null=True)
701
+    updated_at = models.DateTimeField(blank=True, null=True)
702
+    c0 = models.FloatField()
703
+
704
+    class Meta:
705
+        managed = False
706
+        db_table = 'press_cal'
707
+        app_label = "legacy"
708
+
709
+
710
+class RotateData(models.Model):
711
+    row_no = models.IntegerField(blank=True, null=True)
712
+    speed_spec = models.FloatField(blank=True, null=True)
713
+    speed_test = models.FloatField(blank=True, null=True)
714
+    speedok = models.CharField(db_column='speedOk', max_length=4, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
715
+    qty = models.IntegerField()
716
+    station_no = models.IntegerField()
717
+    created_at = models.DateTimeField(blank=True, null=True)
718
+    updated_at = models.DateTimeField(blank=True, null=True)
719
+    lot_no = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
720
+    machine_id = models.IntegerField(blank=True, null=True)
721
+    code = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
722
+    emp_id = models.IntegerField()
723
+    devid = models.CharField(max_length=40, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
724
+    mode = models.CharField(max_length=10, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
725
+    cal_mode = models.IntegerField(blank=True, null=True)
726
+
727
+    class Meta:
728
+        managed = False
729
+        db_table = 'rotate_data'
730
+        app_label = "legacy"
731
+
732
+
733
+class SchemaMigrations(models.Model):
734
+    version = models.CharField(max_length=255, db_collation='SQL_Latin1_General_CP1_CI_AS')
735
+
736
+    class Meta:
737
+        managed = False
738
+        db_table = 'schema_migrations'
739
+
740
+
741
+class SplitData(models.Model):
742
+    data_ms = models.ForeignKey(DataMs, models.DO_NOTHING)
743
+    v1 = models.FloatField(blank=True, null=True)
744
+    v2 = models.FloatField(blank=True, null=True)
745
+    v3 = models.FloatField(blank=True, null=True)
746
+    v4 = models.FloatField(blank=True, null=True)
747
+    v5 = models.FloatField(blank=True, null=True)
748
+    unit = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
749
+    vr = models.FloatField(blank=True, null=True)
750
+    vname = models.CharField(max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
751
+    no = models.IntegerField()
752
+    v1ok = models.CharField(max_length=20, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
753
+    v2ok = models.CharField(max_length=20, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
754
+    v3ok = models.CharField(max_length=20, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
755
+    v4ok = models.CharField(max_length=20, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
756
+    v5ok = models.CharField(max_length=20, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
757
+    vmax = models.FloatField(blank=True, null=True)
758
+    vmin = models.FloatField(blank=True, null=True)
759
+    vdiff = models.FloatField(blank=True, null=True)
760
+    row_no = models.IntegerField(blank=True, null=True)
761
+
762
+    class Meta:
763
+        managed = False
764
+        db_table = 'split_data'
765
+        app_label = "legacy"
766
+
767
+
768
+class SysConfigs(models.Model):
769
+    title = models.CharField(max_length=255, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
770
+    value = models.CharField(max_length=255, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
771
+    created_at = models.DateTimeField(blank=True, null=True)
772
+    updated_at = models.DateTimeField(blank=True, null=True)
773
+
774
+    class Meta:
775
+        managed = False
776
+        db_table = 'sys_configs'
777
+        app_label = "legacy"
778
+
779
+
780
+class TbFgPressinfoLotlist(models.Model):
781
+    product_year = models.CharField(db_column='Product_Year', primary_key=True, max_length=10, db_collation='SQL_Latin1_General_CP1_CI_AS')  # Field name made lowercase. The composite primary key (Product_Year, ProductCode, LotNo) found, that is not supported. The first column is selected.
782
+    productcode = models.CharField(db_column='ProductCode', max_length=20, db_collation='SQL_Latin1_General_CP1_CI_AS')  # Field name made lowercase.
783
+    lotno = models.CharField(db_column='LotNo', max_length=20, db_collation='SQL_Latin1_General_CP1_CI_AS')  # Field name made lowercase.
784
+    lot_qty = models.FloatField(db_column='Lot_Qty', blank=True, null=True)  # Field name made lowercase.
785
+    def_qty = models.FloatField(db_column='Def_Qty', blank=True, null=True)  # Field name made lowercase.
786
+    fg_qty = models.FloatField(db_column='FG_Qty', blank=True, null=True)  # Field name made lowercase.
787
+    insp_date = models.DateTimeField(db_column='Insp_Date', blank=True, null=True)  # Field name made lowercase.
788
+    current_prono = models.CharField(db_column='Current_ProNo', max_length=5, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
789
+    press_mcname = models.CharField(db_column='Press_McName', max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
790
+    press_username = models.CharField(db_column='Press_UserName', max_length=50, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)  # Field name made lowercase.
791
+
792
+    class Meta:
793
+        managed = False
794
+        db_table = 'tb_fg_pressinfo_lotlist'
795
+        unique_together = (('product_year', 'productcode', 'lotno'),)
796
+        app_label = "legacy"
797
+
798
+
799
+class TbWbStdCode12(models.Model):
800
+    id = models.IntegerField(db_column='ID', primary_key=True)  # Field name made lowercase.
801
+    u_weight = models.FloatField(db_column='U_Weight', blank=True, null=True)  # Field name made lowercase.
802
+    speed_from = models.FloatField(db_column='Speed_From', blank=True, null=True)  # Field name made lowercase.
803
+    speed_to = models.FloatField(db_column='Speed_To', blank=True, null=True)  # Field name made lowercase.
804
+    diameter_from = models.FloatField(db_column='Diameter_From', blank=True, null=True)  # Field name made lowercase.
805
+    diameter_to = models.FloatField(db_column='Diameter_To', blank=True, null=True)  # Field name made lowercase.
806
+    std_balance = models.FloatField(db_column='STD_Balance', blank=True, null=True)  # Field name made lowercase.
807
+
808
+    class Meta:
809
+        managed = False
810
+        db_table = 'tb_wb_std_code_1-2'
811
+        app_label = "legacy"
812
+
813
+
814
+class TbWbStdCode345(models.Model):
815
+    id = models.IntegerField(db_column='ID', primary_key=True)  # Field name made lowercase.
816
+    u_weight = models.FloatField(db_column='U_Weight', blank=True, null=True)  # Field name made lowercase.
817
+    speed_from = models.FloatField(db_column='Speed_From', blank=True, null=True)  # Field name made lowercase.
818
+    speed_to = models.FloatField(db_column='Speed_To', blank=True, null=True)  # Field name made lowercase.
819
+    diameter_from = models.FloatField(db_column='Diameter_From', blank=True, null=True)  # Field name made lowercase.
820
+    diameter_to = models.FloatField(db_column='Diameter_To', blank=True, null=True)  # Field name made lowercase.
821
+    std_balance = models.FloatField(db_column='STD_Balance', blank=True, null=True)  # Field name made lowercase.
822
+
823
+    class Meta:
824
+        managed = False
825
+        db_table = 'tb_wb_std_code_3-4-5'
826
+        app_label = "legacy"
827
+
828
+
829
+class LegacyUsers(models.Model):
830
+    email = models.CharField(max_length=255, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
831
+    password_digest = models.CharField(max_length=255, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
832
+    created_at = models.DateTimeField(blank=True, null=True)
833
+    updated_at = models.DateTimeField(blank=True, null=True)
834
+    roles_mask = models.IntegerField(blank=True, null=True)
835
+    empid = models.CharField(max_length=255, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
836
+    fname = models.CharField(max_length=255, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
837
+    lname = models.CharField(max_length=255, db_collation='SQL_Latin1_General_CP1_CI_AS', blank=True, null=True)
838
+
839
+    class Meta:
840
+        managed = False
841
+        db_table = 'users'
842
+        app_label = "legacy"

+ 29 - 0
app/legacy/templates/legacy/data_confirm_delete.html

@@ -0,0 +1,29 @@
1
+{% extends "base.html" %}
2
+
3
+{% block title %}Confirm Delete{% endblock %}
4
+
5
+{% block content %}
6
+<div class="container mx-auto px-4 py-6">
7
+    <h1 class="text-2xl font-bold text-gray-800 mb-4">Confirm Deletion</h1>
8
+    <p class="text-gray-600 mb-4">
9
+        Are you sure you want to delete this item?
10
+    </p>
11
+
12
+    <!-- Display object details if needed -->
13
+    <div class="mb-4 p-4 bg-gray-100 rounded border border-gray-200">
14
+        <p><strong>ID:</strong> {{ object.id }}</p>
15
+        <p><strong>Details:</strong> {{ object }}</p>
16
+    </div>
17
+
18
+    <!-- Confirmation Buttons -->
19
+    <form method="post" class="inline-block" onsubmit="return confirm('Are you sure you want to delete this item?');">
20
+        {% csrf_token %}
21
+        <button type="submit" class="bg-red-500 text-white px-4 py-2 rounded hover:bg-red-600">
22
+            Delete
23
+        </button>
24
+    </form>
25
+    <a href="{% url 'legacy:data-list' %}" class="bg-gray-500 text-white px-4 py-2 rounded hover:bg-gray-600">
26
+        Cancel
27
+    </a>
28
+</div>
29
+{% endblock %}

+ 43 - 0
app/legacy/templates/legacy/data_form.html

@@ -0,0 +1,43 @@
1
+{% extends "base.html" %}
2
+
3
+{% load legacy_filters %}
4
+{% load tailwind_filters %}
5
+
6
+{% block title %}
7
+    {% if view.title %}
8
+        {{ view.title }}
9
+    {% else %}
10
+        {{ view|class_name }}
11
+    {% endif %}
12
+{% endblock %}
13
+
14
+{% block content %}
15
+<div class="container mx-auto px-4 py-6">
16
+    <h1 class="text-2xl font-bold mb-6">
17
+        {% if view.title %}
18
+            {{ view.title }}
19
+        {% elif view|class_name == "DataCreateView" %}
20
+            Create Data
21
+        {% else %}
22
+            Update Data
23
+        {% endif %}
24
+    </h1>
25
+
26
+    <!-- Render the Form -->
27
+    <form method="post" >
28
+        {% csrf_token %}
29
+        <div  class="flex flex-wrap items-center space-y-4 space-x-4">
30
+          
31
+        {{ form|crispy }}
32
+        </div>
33
+        <div class='mt-4'>
34
+            <button type="submit" class="bg-blue-500 text-white px-4 py-2 rounded hover:bg-blue-600">
35
+                Save
36
+            </button>
37
+            <a href="{% url 'legacy:data-list' %}" class="bg-gray-300 text-gray-800 px-4 py-2 rounded hover:bg-gray-400">
38
+                Cancel
39
+            </a>
40
+        </div>
41
+    </form>
42
+</div>
43
+{% endblock %}

+ 91 - 0
app/legacy/templates/legacy/data_list.html

@@ -0,0 +1,91 @@
1
+{% extends "base.html" %}
2
+{% load legacy_filters %}
3
+{% load tailwind_filters %}
4
+{% block title %}Data List{% endblock %}
5
+
6
+{% block content %}
7
+<div class="container mx-auto px-4 py-6">
8
+    <h1 class="text-3xl font-bold text-gray-800 mb-4">Data List</h1>
9
+  
10
+
11
+     <!-- Filter Form -->
12
+    <form method="get" class="flex items-center space-x-4 mb-4">
13
+        {{ filter.form | crispy }}
14
+        <button type="submit" class="bg-blue-500 text-white px-4 py-2 rounded hover:bg-blue-600">Filter</button>
15
+    </form>
16
+
17
+    <!-- Create Button -->
18
+    <div class="my-4 flex">
19
+       <p class="text-gray-600 mb-4 mr-auto">
20
+        Total Records: {{ page_obj.paginator.count }}
21
+    </p>
22
+        <a href="{% url 'legacy:data-create' %}" class="ml-auto bg-green-500 text-white px-4 py-2 rounded hover:bg-green-600">
23
+            Create New Data
24
+        </a>
25
+    </div>
26
+
27
+
28
+    
29
+    <!-- Data Table -->
30
+    <div class="clear-both bg-white shadow rounded-lg overflow-x-auto">
31
+
32
+        <table class="min-w-[2500px] table-auto w-full border-collapse border border-gray-200">
33
+            <thead>
34
+                <tr class="bg-gray-100 text-left text-sm uppercase">
35
+                    {% for field in fields %}
36
+                      <th class="border border-gray-200 px-4 py-2 text-left">{{ field.verbose_name }}</th>
37
+                    {% endfor %}
38
+                    <th class="py-2 px-4 border-b">Actions</th>
39
+                </tr>
40
+            </thead>
41
+            <tbody>
42
+                {% for obj in page_obj %}
43
+                    <tr class="hover:bg-gray-50">
44
+                        {% for field in fields %}
45
+                        <td class="border border-gray-200 px-4 py-2">
46
+                           {% if field.name == 'id' %}
47
+                              <a href="{% url 'legacy:data-update' obj.id %}" class="text-blue-500 hover:underline">
48
+                                  {{ obj|attr:field.name }}
49
+                              </a>
50
+                          {% else %}
51
+                             {{ obj|attr:field.name }}
52
+                          {% endif %}
53
+                        </td>
54
+                        {% endfor %}
55
+                        <td class="py-2 px-4 border-b">
56
+                            <a href="{% url 'legacy:data-update' obj.pk %}" 
57
+                              class="bg-blue-500 text-white px-3 py-2 rounded hover:bg-blue-600">Edit</a>
58
+                            <a href="{% url 'legacy:data-delete' obj.pk %}" 
59
+                              class="bg-red-500 text-white px-3 py-2 rounded hover:bg-red-600"
60
+                              >Delete</a>
61
+                        </td>
62
+                    </tr>
63
+                {% empty %}
64
+                    <tr>
65
+                        <td colspan="5" class="py-4 px-4 text-center text-gray-600">No data available.</td>
66
+                    </tr>
67
+                {% endfor %}
68
+            </tbody>
69
+        </table>
70
+    </div>
71
+
72
+    <!-- Pagination -->
73
+    <div class="mt-6 flex justify-between items-center">
74
+        <div>
75
+            <span class="text-sm text-gray-600">
76
+                Page {{ page_obj.number }} of {{ page_obj.paginator.num_pages }}
77
+            </span>
78
+        </div>
79
+        <div class="space-x-2">
80
+            {% if page_obj.has_previous %}
81
+                <a href="?page=1" class="text-blue-500 hover:underline">First</a>
82
+                <a href="?page={{ page_obj.previous_page_number }}" class="text-blue-500 hover:underline">Previous</a>
83
+            {% endif %}
84
+            {% if page_obj.has_next %}
85
+                <a href="?page={{ page_obj.next_page_number }}" class="text-blue-500 hover:underline">Next</a>
86
+                <a href="?page={{ page_obj.paginator.num_pages }}" class="text-blue-500 hover:underline">Last</a>
87
+            {% endif %}
88
+        </div>
89
+    </div>
90
+</div>
91
+{% endblock %}

+ 0 - 0
app/legacy/templatetags/__init__.py


+ 29 - 0
app/legacy/templatetags/legacy_filters.py

@@ -0,0 +1,29 @@
1
+from django import template
2
+from django.template import Context
3
+
4
+
5
+register = template.Library()
6
+
7
+@register.filter
8
+def attr(obj, attr_name):
9
+    """
10
+    Retrieves an attribute of an object dynamically in the template.
11
+    """
12
+    return getattr(obj, attr_name, None)
13
+
14
+@register.filter
15
+def class_name(value):
16
+    """
17
+    Returns the class name of the given object.
18
+    """
19
+    return value.__class__.__name__
20
+
21
+@register.simple_tag(takes_context=True)
22
+def render_breadcrumbs(context, breadcrumbs):
23
+    """
24
+    Render breadcrumbs using a separate template file.
25
+    """
26
+    return context.template.engine.get_template('partials/breadcrumbs.html').render(
27
+    Context({
28
+        'breadcrumbs': breadcrumbs
29
+    }))

+ 3 - 0
app/legacy/tests.py

@@ -0,0 +1,3 @@
1
+from django.test import TestCase
2
+
3
+# Create your tests here.

+ 12 - 0
app/legacy/urls.py

@@ -0,0 +1,12 @@
1
+from django.urls import path
2
+from .views import DataListView, DataDetailView, DataCreateView, DataUpdateView, DataDeleteView
3
+
4
+app_name = 'legacy'  # Namespace for this app
5
+
6
+urlpatterns = [
7
+    path('data/', DataListView.as_view(), name='data-list'),            # data/
8
+    path('data/<int:pk>/', DataDetailView.as_view(), name='data-detail'),  # data/<pk>/
9
+    path('data/create/', DataCreateView.as_view(), name='data-create'), # data/create/
10
+    path('data/<int:pk>/update/', DataUpdateView.as_view(), name='data-update'),  # data/<pk>/update/
11
+    path('data/<int:pk>/delete/', DataDeleteView.as_view(), name='data-delete'),  # data/<pk>/delete/
12
+]

+ 113 - 0
app/legacy/views.py

@@ -0,0 +1,113 @@
1
+from django.shortcuts import render
2
+
3
+# Create your views here.
4
+from django_filters.views import FilterView
5
+from django.urls import reverse_lazy, reverse
6
+from django.views.generic import (
7
+    ListView,
8
+    DetailView,
9
+    CreateView,
10
+    UpdateView,
11
+    DeleteView,
12
+)
13
+from django.core.paginator import Paginator
14
+from .models import Data
15
+from .filters import DataFilter
16
+from django.urls import reverse
17
+from django.contrib import messages
18
+
19
+
20
+class DataListView(FilterView, ListView):
21
+    model = Data
22
+    template_name = 'legacy/data_list.html'
23
+    # context_object_name = 'data_list'
24
+    paginate_by = 10  # Enable pagination
25
+
26
+    # Specify the filter class
27
+    filterset_class = DataFilter
28
+
29
+
30
+    def get_context_data(self, **kwargs):
31
+        context = super().get_context_data(**kwargs)
32
+        # Pass model fields to the template
33
+        context['fields'] = [field for field in self.model._meta.get_fields()]
34
+        context['bs'] = [
35
+            {'label': 'Dashboard', 'url': reverse('dashboard:index')},
36
+            {'label': 'Data', 'url': reverse('legacy:data-list')},
37
+        ]
38
+        return context
39
+
40
+# Read (detail view)
41
+class DataDetailView(DetailView):
42
+    model = Data
43
+    template_name = 'data_detail.html'
44
+    context_object_name = 'data'  # Use this name in templates
45
+
46
+
47
+# Create
48
+class DataCreateView(CreateView):
49
+    model = Data
50
+    template_name = 'legacy/data_form.html'
51
+    fields = '__all__'  # Use all fields or specify a list of fields
52
+
53
+    def form_valid(self, form):
54
+        response = super().form_valid(form)
55
+        messages.success(self.request, "Data has been successfully created!")
56
+        return response
57
+    
58
+    def get_success_url(self):
59
+        # Redirect to the edit page of the newly created object
60
+        return reverse('legacy:data-update', kwargs={'pk': self.object.pk})
61
+
62
+
63
+    def get_context_data(self, **kwargs):
64
+        context = super().get_context_data(**kwargs)
65
+        # Pass model fields to the template
66
+        context['bs'] = [
67
+            {'label': 'Dashboard', 'url': reverse('dashboard:index')},
68
+            {'label': 'Data', 'url': reverse('legacy:data-list')},
69
+            {'label': 'Data Create', 'url': reverse('legacy:data-create')},
70
+        ]
71
+        return context
72
+
73
+# Update
74
+class DataUpdateView(UpdateView):
75
+    model = Data
76
+    template_name = 'legacy/data_form.html'
77
+    fields = '__all__'  # Use all fields or specify a list of fields
78
+    
79
+    def get_success_url(self):
80
+        # Redirect to the edit page of the newly created object
81
+        return reverse('legacy:data-update', kwargs={'pk': self.object.pk})
82
+
83
+    def form_valid(self, form):
84
+        response = super().form_valid(form)
85
+        messages.success(self.request, "Data has been successfully updated!")
86
+        return response
87
+
88
+
89
+    def get_context_data(self, **kwargs):
90
+        context = super().get_context_data(**kwargs)
91
+        # Pass model fields to the template
92
+        context['bs'] = [
93
+            {'label': 'Dashboard', 'url': reverse('dashboard:index')},
94
+            {'label': 'Data', 'url': reverse('legacy:data-list')},
95
+            {'label': self.object, 'url': reverse('legacy:data-update', kwargs={'pk':self.object.pk})},
96
+        ]
97
+        return context
98
+
99
+# Delete
100
+class DataDeleteView(DeleteView):
101
+    model = Data
102
+    template_name = 'legacy/data_confirm_delete.html'
103
+    success_url = reverse_lazy('legacy:data-list')  # Redirect after deletion
104
+
105
+    def get_context_data(self, **kwargs):
106
+        context = super().get_context_data(**kwargs)
107
+        # Pass model fields to the template
108
+        context['bs'] = [
109
+            {'label': 'Dashboard', 'url': reverse('dashboard:index')},
110
+            {'label': 'Data', 'url': reverse('legacy:data-list')},
111
+            {'label': self.object, 'url': reverse('legacy:data-update', kwargs={'pk':self.object.pk})},
112
+        ]
113
+        return context

+ 28 - 2
app/templates/base.html

@@ -1,6 +1,6 @@
1 1
 {% load static tailwind_tags %}
2 2
 {% load django_browser_reload %}
3
-
3
+{% load legacy_filters %}
4 4
 
5 5
 <!DOCTYPE html>
6 6
 <html lang="en">
@@ -71,7 +71,23 @@
71 71
 
72 72
     <!-- Main Content -->
73 73
     <div class="p-4 sm:ml-64">
74
-        <div class="mt-14">{% block content %}{% endblock %}</div>
74
+        <div class="mt-14">
75
+        {% if messages %}
76
+
77
+            <div class="container mx-auto px-4 py-4">
78
+                {% for message in messages %}
79
+                <div id="message-alert" 
80
+                     class="p-4 mb-4 text-white rounded-lg bg-green-500 transition-opacity duration-500"
81
+                     style="opacity: 1;">
82
+                  {{ message }}
83
+                </div>
84
+                {% endfor %}
85
+            </div>
86
+        {% endif %}
87
+
88
+          {% render_breadcrumbs bs %}
89
+          {% block content %}{% endblock %}
90
+        </div>
75 91
     </div>
76 92
 
77 93
     <!-- Footer -->
@@ -82,5 +98,15 @@
82 98
     <script src="https://cdn.jsdelivr.net/npm/flowbite@2.5.2/dist/flowbite.min.js"></script>
83 99
 
84 100
     {% django_browser_reload_script %}
101
+    <script>
102
+    // Auto-hide the message after 5 seconds
103
+    setTimeout(() => {
104
+        const alert = document.getElementById('message-alert');
105
+        if (alert) {
106
+            alert.style.opacity = '0'; // Fade out
107
+            setTimeout(() => alert.remove(), 500); // Remove after fade-out
108
+        }
109
+    }, 5000); // 5 seconds
110
+</script>
85 111
 </body>
86 112
 </html>

+ 37 - 0
app/templates/partials/breadcrumbs.html

@@ -0,0 +1,37 @@
1
+<nav class="flex" aria-label="Breadcrumb">
2
+    <ol class="inline-flex items-center space-x-1 md:space-x-2 rtl:space-x-reverse">
3
+        {% for crumb in breadcrumbs %}
4
+            {% if forloop.first %}
5
+                <!-- First breadcrumb (Home) -->
6
+                <li class="inline-flex items-center">
7
+                    <a href="{{ crumb.url }}" class="inline-flex items-center text-sm font-medium text-gray-700 hover:text-blue-600 dark:text-gray-400 dark:hover:text-white">
8
+                        <svg class="w-3 h-3 me-2.5" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 20 20">
9
+                            <path d="m19.707 9.293-2-2-7-7a1 1 0 0 0-1.414 0l-7 7-2 2a1 1 0 0 0 1.414 1.414L2 10.414V18a2 2 0 0 0 2 2h3a1 1 0 0 0 1-1v-4a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v4a1 1 0 0 0 1 1h3a2 2 0 0 0 2-2v-7.586l.293.293a1 1 0 0 0 1.414-1.414Z"/>
10
+                        </svg>
11
+                        {{ crumb.label }}
12
+                    </a>
13
+                </li>
14
+            {% elif forloop.last %}
15
+                <!-- Last breadcrumb (Current Page) -->
16
+                <li aria-current="page">
17
+                    <div class="flex items-center">
18
+                        <svg class="rtl:rotate-180 w-3 h-3 text-gray-400 mx-1" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 6 10">
19
+                            <path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m1 9 4-4-4-4"/>
20
+                        </svg>
21
+                        <span class="ms-1 text-sm font-medium text-gray-500 md:ms-2 dark:text-gray-400">{{ crumb.label }}</span>
22
+                    </div>
23
+                </li>
24
+            {% else %}
25
+                <!-- Intermediate breadcrumbs -->
26
+                <li>
27
+                    <div class="flex items-center">
28
+                        <svg class="rtl:rotate-180 w-3 h-3 text-gray-400 mx-1" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 6 10">
29
+                            <path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m1 9 4-4-4-4"/>
30
+                        </svg>
31
+                        <a href="{{ crumb.url }}" class="ms-1 text-sm font-medium text-gray-700 hover:text-blue-600 md:ms-2 dark:text-gray-400 dark:hover:text-white">{{ crumb.label }}</a>
32
+                    </div>
33
+                </li>
34
+            {% endif %}
35
+        {% endfor %}
36
+    </ol>
37
+</nav>

+ 1 - 0
requirements.txt

@@ -46,3 +46,4 @@ xlrd
46 46
 seaborn
47 47
 django-browser-reload
48 48
 django-tailwind[reload]
49
+django-extensions

tum/recycle_server - Gogs: Simplico Git Service

Aucune description

tum e5d90dc5de user profile il y a 1 an
..
recycle f47643bdfd models il y a 1 an
recycle_core f47643bdfd models il y a 1 an
tracking 058f31828c first commit il y a 1 an
userprofile e5d90dc5de user profile il y a 1 an
manage.py 058f31828c first commit il y a 1 an
tracking_mockup.py 058f31828c first commit il y a 1 an
tracking_mockup2.py 058f31828c first commit il y a 1 an