Projekt

Obecné

Profil

« Předchozí | Další » 

Revize 0fcb708f

Přidáno uživatelem Matěj Zeman před téměř 3 roky(ů)

re #9846 Changed keyman devices, body devices views. Added Head devices view. Changed filtering of logs, ldlogs, body devices, head devices and keyman devices. Changed HTML tables style and few labels.

Zobrazit rozdíly:

server/doc/sql_app/crud.html
47 47
    return db.query(models.Device).offset(skip).limit(limit).all()
48 48

  
49 49

  
50
def find_device(db: Session, device: schemas.DeviceBase):
50
def find_device(db: Session, device: schemas.DeviceTemp):
51 51
    """
52
    finds one device with product_id, vendor_id and serial_number same as in given DeviceBase object
52
    finds one device with  serial_number same as in given DeviceBase object
53 53
    """
54
    return db.query(models.Device).filter(and_(models.Device.product_id == device.product_id,
55
                                               models.Device.vendor_id == device.vendor_id,
56
                                               models.Device.serial_number == device.serial_number)).first()
54
    return db.query(models.Device).filter(and_(models.Device.serial_number == device.serial_number)).first()
57 55

  
58 56

  
59
def create_device(db: Session, device: schemas.DeviceBase):
57
def find_device_by_serial(db: Session, ser: str):
58
    """
59
    finds one device with serial_number same as in given DeviceBase object
60
    """
61
    return db.query(models.Device).filter(and_(models.Device.serial_number == ser)).first()
62

  
63

  
64
def get_devices_with_ids(db: Session, ids: []):
65
    """
66
    returns all devices with given ids
67
    """
68
    return db.query(models.Device).filter(models.Device.id.in_(ids)).all()
69

  
70

  
71
def get_bodydevices_with_ids(db: Session, ids: []):
72
    """
73
    returns all bodydevices with given ids
74
    """
75
    return db.query(models.BodyDevice).filter(models.BodyDevice.id.in_(ids)).all()
76

  
77

  
78
def get_headdevices_with_ids(db: Session, ids: []):
79
    """
80
    returns all headdevices with given ids
81
    """
82
    return db.query(models.HeadDevice).filter(models.HeadDevice.id.in_(ids)).all()
83

  
84

  
85
def find_headdevices_by_team(db: Session, team_id: int):
86
    """
87
    Returns all head devices in specific team
88
    """
89
    return db.query(models.HeadDevice).filter(models.HeadDevice.team_id == team_id).all()
90

  
91

  
92
def find_bodydevices_by_team(db: Session, team_id: int):
93
    """
94
    Returns all body devices in specific team
95
    """
96
    return db.query(models.BodyDevice).filter(models.BodyDevice.team_id == team_id).all()
97

  
98

  
99
def find_headdevices_by_license(db: Session, lic_id: int):
100
    """
101
    Returns all head devices with specific license
102
    """
103
    return db.query(models.HeadDevice).filter(models.HeadDevice.license_id == lic_id).all()
104

  
105

  
106
def find_bodydevices_by_license(db: Session, lic_id: int):
107
    """
108
    Returns all body devices with specific license
109
    """
110
    return db.query(models.BodyDevice).filter(models.BodyDevice.license_id == lic_id).all()
111

  
112

  
113
def get_devices_by_team(db: Session, team: int):
114
    """
115
    returns all devices with same team
116
    """
117
    return db.query(models.Device).filter(models.Device.team_id == team).all()
118

  
119

  
120
def create_device(db: Session, device: schemas.DeviceTemp):
60 121
    """
61 122
    creates new device with data from given DeviceBase object
62 123
    """
63 124
    db_device = models.Device(vendor_id=device.vendor_id, product_id=device.product_id,
64
                              serial_number=device.serial_number, assigned=False)
125
                              serial_number=device.serial_number, inventory_number="", comment="")
65 126
    db.add(db_device)
66 127
    db.commit()
67 128
    db.refresh(db_device)
......
86 147
    """
87 148
    finds one license by given string name
88 149
    """
89
    return db.query(models.License).filter(models.License.name == name).first()
150
    return db.query(models.License).filter(models.License.license_id == name).first()
90 151

  
91 152

  
92
def create_license(db: Session, name: str, expdate: date):
153
def get_licenses_by_name(db: Session, name: str):
154
    return db.query(models.License).filter(models.License.name == name).all()
155

  
156

  
157
def create_license(db: Session, name: str, lic_id: str, expdate: date):
93 158
    """
94 159
    creates new license with given name and expiration date
95 160
    """
96
    db_license = models.License(name=name, expiration_date=expdate)
161
    db_license = models.License(name=name, license_id=lic_id, expiration_date=expdate)
97 162
    db.add(db_license)
98 163
    db.commit()
99 164
    db.refresh(db_license)
......
102 167

  
103 168
def get_license_devices(db: Session, license_id: int):
104 169
    """
105
    returns all entries in devices_licenses table
170
    returns all entries in devices_licenses table with given license_id
106 171
    """
107 172
    return db.query(models.DeviceLicense).filter(models.DeviceLicense.license_id == license_id).all()
108 173

  
109 174

  
175
def find_devicelicenses_by_licid_array(db: Session, lcs: []):
176
    """
177
    Finds all device_licenses with license_id in given id array
178
    """
179
    return db.query(models.DeviceLicense).filter(models.DeviceLicense.license_id.in_(lcs)).all()
180

  
181

  
182
def get_device_licenses(db: Session, device_id: int):
183
    """
184
    returns all entries in devices_licenses table with given device_id
185
    """
186
    return db.query(models.DeviceLicense).filter(models.DeviceLicense.device_id == device_id).all()
187

  
188

  
189
def get_devicelicense_by_devicelicense(db: Session, device_id: int, license_id: int):
190
    """
191
    returns entry in devices_licenses table with given device id and license id
192
    """
193
    return db.query(models.DeviceLicense).filter(and_(models.DeviceLicense.device_id == device_id,
194
                                                      models.DeviceLicense.license_id == license_id)).first()
195

  
196

  
110 197
def create_device_license(db: Session, device: int, license: int, time: datetime):
111 198
    """
112 199
    creates new entry in devices_licenses table with device id, license id and time.
......
119 206
    return db_device_license
120 207

  
121 208

  
209
def delete_device_license(db: Session, device: int, license: int):
210
    """
211
    deletes entry in devices_licenses table with device id, license id and time.
212
    """
213
    db_device_license = get_devicelicense_by_devicelicense(db, device, license)
214
    db_lic = db.delete(db_device_license)
215
    db.commit()
216
    return db_lic
217

  
218

  
122 219
def find_pc_by_username(db: Session, name: str):
123 220
    """
124 221
    Finds one pc by given username
......
133 230
    return db.query(models.PC).filter(models.PC.id == pc_id).first()
134 231

  
135 232

  
136
def update_pc(db: Session, pc_id: int, team: str):
233
def update_device(db: Session, device_id: int, team: str):
137 234
    """
138
    Function updates team of one specific pc
235
    Updates team of one specific pc
139 236
    """
140
    old_pc = get_pc(db, pc_id)
237
    old_dev = get_device(db, device_id)
141 238
    team = get_team(db, int(team))
142
    new = {'id': old_pc.id, 'username': old_pc.username, 'hostname': old_pc.hostname, 'assigned': True,
143
           'team_id': team.id}
239
    new = {'id': old_dev.id, 'vendor_id': old_dev.vendor_id, 'product_id': old_dev.product_id,
240
           'serial_number': old_dev.serial_number, 'inventory_number': old_dev.inventory_number,
241
           'comment': old_dev.comment, 'team_id': team.id}
242
    for key, value in new.items():
243
        setattr(old_dev, key, value)
244
    db.commit()
245
    db.refresh(old_dev)
246
    return old_dev
247

  
248

  
249
def update_device_inv(db: Session, device_id: int, inv: str):
250
    """
251
    Updates inventory number of one specific pc
252
    """
253
    old_dev = get_device(db, device_id)
254
    if old_dev.team_id != None:
255
        team = get_team(db, int(old_dev.team_id))
256
        teamid = team.id
257
    else:
258
        teamid = None
259
    new = {'id': old_dev.id, 'vendor_id': old_dev.vendor_id, 'product_id': old_dev.product_id,
260
           'serial_number': old_dev.serial_number, 'inventory_number': inv,
261
           'comment': old_dev.comment, 'team_id': teamid}
262
    for key, value in new.items():
263
        setattr(old_dev, key, value)
264
    db.commit()
265
    db.refresh(old_dev)
266
    return old_dev
267

  
268

  
269
def update_device_com(db: Session, device_id: int, comm: str):
270
    """
271
    Updates team of one specific pc
272
    """
273
    old_dev = get_device(db, device_id)
274
    if old_dev.team_id != None:
275
        team = get_team(db, int(old_dev.team_id))
276
        teamid = team.id
277
    else:
278
        teamid = None
279
    new = {'id': old_dev.id, 'vendor_id': old_dev.vendor_id, 'product_id': old_dev.product_id,
280
           'serial_number': old_dev.serial_number, 'inventory_number': old_dev.inventory_number,
281
           'comment': comm, 'team_id': teamid}
282
    for key, value in new.items():
283
        setattr(old_dev, key, value)
284
    db.commit()
285
    db.refresh(old_dev)
286
    return old_dev
287

  
288

  
289
def change_role(db: Session, usr_id: int, role: str):
290
    """
291
    Updates team of one specific pc
292
    """
293
    old_usr = find_user_byid(db, usr_id)
294
    new = {'id': old_usr.id, 'username': old_usr.username, 'password': old_usr.password, 'role': role}
144 295
    for key, value in new.items():
145
        setattr(old_pc, key, value)
296
        setattr(old_usr, key, value)
146 297
    db.commit()
147
    db.refresh(old_pc)
148
    return old_pc
298
    db.refresh(old_usr)
299
    return old_usr
149 300

  
150 301

  
151 302
def get_pcs(db: Session, skip: int = 0, limit: int = 100):
......
184 335
    return db.query(models.PC).filter(models.PC.id.in_(pcs)).all()
185 336

  
186 337

  
187
def get_pcs_by_team(db: Session, team_id: int):
188
    """
189
    returns all pcs in given team by team id
190
    """
191
    return db.query(models.PC).filter(models.PC.team_id == team_id).all()
192

  
193

  
194 338
def create_pc(db: Session, user: str, host: str):
195 339
    """
196 340
    creates new pc with given username and hostname
197 341
    """
198
    db_pc = models.PC(username=user, hostname=host, assigned=False)
342
    db_pc = models.PC(username=user, hostname=host)
199 343
    db.add(db_pc)
200 344
    db.commit()
201 345
    db.refresh(db_pc)
......
234 378
    return db_team
235 379

  
236 380

  
381
def change_team(db: Session, team_id: int, name: str):
382
    """
383
    Updates name of one specific team
384
    """
385
    old_team = get_team(db, team_id)
386
    new = {'id': old_team.id, 'name': name}
387
    for key, value in new.items():
388
        setattr(old_team, key, value)
389
    db.commit()
390
    db.refresh(old_team)
391
    return old_team
392

  
393

  
237 394
def get_head_device(db: Session, head_id: int):
238 395
    """
239 396
    Returns one specific head device by given id
......
248 405
    return db.query(models.HeadDevice).offset(skip).limit(limit).all()
249 406

  
250 407

  
251
def find_head_device(db: Session, serial: schemas.HeadDeviceBase):
408
def find_head_device(db: Session, serial: schemas.HeadDeviceTemp):
252 409
    """
253 410
    Finds one head device by its serial number
254 411
    """
255 412
    return db.query(models.HeadDevice).filter(models.HeadDevice.serial_number == serial.serial_number).first()
256 413

  
257 414

  
258
def create_head_device(db: Session, log: schemas.HeadDeviceBase):
415
def create_head_device(db: Session, log: schemas.HeadDeviceTemp):
259 416
    """
260 417
    Creates new head device
261 418
    """
......
280 437
    return db.query(models.BodyDevice).offset(skip).limit(limit).all()
281 438

  
282 439

  
283
def find_body_device(db: Session, serial: schemas.BodyDeviceBase):
440
def find_body_device(db: Session, serial: schemas.BodyDeviceTemp):
284 441
    """
285 442
    Finds one body device by its serial number
286 443
    """
287 444
    return db.query(models.BodyDevice).filter(models.BodyDevice.serial_number == serial.serial_number).first()
288 445

  
289 446

  
290
def create_body_device(db: Session, log: schemas.BodyDeviceBase):
447
def find_bodydevice_by_serial(db: Session, serial: str):
448
    """
449
    Finds one specific body device by given serial number
450
    """
451
    return db.query(models.BodyDevice).filter(models.BodyDevice.serial_number == serial).first()
452

  
453

  
454
def find_headdevice_by_serial(db: Session, serial: str):
455
    """
456
    Finds one specific head device by given serial number
457
    """
458
    return db.query(models.HeadDevice).filter(models.HeadDevice.serial_number == serial).first()
459

  
460

  
461
def create_body_device(db: Session, log: schemas.BodyDeviceTemp):
291 462
    """
292 463
    Creates new Body device
293 464
    """
294
    db_body = models.BodyDevice(serial_number=log.serial_number)
465
    db_body = models.BodyDevice(serial_number=log.serial_number, inventory_number="", comment="")
295 466
    db.add(db_body)
296 467
    db.commit()
297 468
    db.refresh(db_body)
298 469
    return db_body
299 470

  
300 471

  
472
def update_bodydevice_license(db: Session, device_id: int, lic_id: int):
473
    """
474
    Updates body devices license with one given by user
475
    """
476
    old_dev = get_body_device(db, device_id)
477
    lic = get_license(db, lic_id)
478
    new = {'id': old_dev.id, 'serial_number': old_dev.serial_number, 'inventory_number': old_dev.inventory_number,
479
           'comment': old_dev.comment, 'team_id': old_dev.team_id, 'license_id': lic.id}
480
    for key, value in new.items():
481
        setattr(old_dev, key, value)
482
    db.commit()
483
    db.refresh(old_dev)
484
    return old_dev
485

  
486

  
487
def update_bodydevice_team(db: Session, device_id: int, team_id: int):
488
    """
489
    Updates body devices team with one given by user
490
    """
491
    old_dev = get_body_device(db, device_id)
492
    team = get_team(db, team_id)
493
    new = {'id': old_dev.id, 'serial_number': old_dev.serial_number, 'inventory_number': old_dev.inventory_number,
494
           'comment': old_dev.comment, 'team_id': team.id, 'license_id': old_dev.license_id}
495
    for key, value in new.items():
496
        setattr(old_dev, key, value)
497
    db.commit()
498
    db.refresh(old_dev)
499
    return old_dev
500

  
501

  
502
def update_bodydevice_inv(db: Session, device_id: int, dev_inv: str):
503
    """
504
    Updates body devices inventory number with new one given by user
505
    """
506
    old_dev = get_body_device(db, device_id)
507
    new = {'id': old_dev.id, 'serial_number': old_dev.serial_number, 'inventory_number': dev_inv,
508
           'comment': old_dev.comment, 'team_id': old_dev.team_id, 'license_id': old_dev.license_id}
509
    for key, value in new.items():
510
        setattr(old_dev, key, value)
511
    db.commit()
512
    db.refresh(old_dev)
513
    return old_dev
514

  
515

  
516
def update_bodydevice_comm(db: Session, device_id: int, comm: str):
517
    """
518
    Updates body devices comment with new one given by user
519
    """
520
    old_dev = get_body_device(db, device_id)
521
    new = {'id': old_dev.id, 'serial_number': old_dev.serial_number, 'inventory_number': old_dev.inventory_number,
522
           'comment': comm, 'team_id': old_dev.team_id, 'license_id': old_dev.license_id}
523
    for key, value in new.items():
524
        setattr(old_dev, key, value)
525
    db.commit()
526
    db.refresh(old_dev)
527
    return old_dev
528

  
529

  
530
def update_headdevice_license(db: Session, device_id: int, lic_id: int):
531
    """
532
    Updates head devices license with one given by user
533
    """
534
    old_dev = get_head_device(db, device_id)
535
    lic = get_license(db, lic_id)
536
    new = {'id': old_dev.id, 'serial_number': old_dev.serial_number, 'inventory_number': old_dev.inventory_number,
537
           'comment': old_dev.comment, 'team_id': old_dev.team_id, 'license_id': lic.id}
538
    for key, value in new.items():
539
        setattr(old_dev, key, value)
540
    db.commit()
541
    db.refresh(old_dev)
542
    return old_dev
543

  
544

  
545
def update_headdevice_team(db: Session, device_id: int, team_id: int):
546
    """
547
    Updates head devices team with one given by user
548
    """
549
    old_dev = get_head_device(db, device_id)
550
    team = get_team(db, team_id)
551
    new = {'id': old_dev.id, 'serial_number': old_dev.serial_number, 'inventory_number': old_dev.inventory_number,
552
           'comment': old_dev.comment, 'team_id': team.id, 'license_id': old_dev.license_id}
553
    for key, value in new.items():
554
        setattr(old_dev, key, value)
555
    db.commit()
556
    db.refresh(old_dev)
557
    return old_dev
558

  
559

  
560
def update_headdevice_inv(db: Session, device_id: int, dev_inv: str):
561
    """
562
    Updates head devices inventory number with new one given by user
563
    """
564
    old_dev = get_head_device(db, device_id)
565
    new = {'id': old_dev.id, 'serial_number': old_dev.serial_number, 'inventory_number': dev_inv,
566
           'comment': old_dev.comment, 'team_id': old_dev.team_id, 'license_id': old_dev.license_id}
567
    for key, value in new.items():
568
        setattr(old_dev, key, value)
569
    db.commit()
570
    db.refresh(old_dev)
571
    return old_dev
572

  
573

  
574
def update_headdevice_comm(db: Session, device_id: int, comm: str):
575
    """
576
    Updates head devices comment with new one given by user
577
    """
578
    old_dev = get_head_device(db, device_id)
579
    new = {'id': old_dev.id, 'serial_number': old_dev.serial_number, 'inventory_number': old_dev.inventory_number,
580
           'comment': comm, 'team_id': old_dev.team_id, 'license_id': old_dev.license_id}
581
    for key, value in new.items():
582
        setattr(old_dev, key, value)
583
    db.commit()
584
    db.refresh(old_dev)
585
    return old_dev
586

  
587

  
301 588
def get_ld_logs(db: Session, skip: int = 0, limit: int = 100):
302 589
    """
303 590
    Returns all ld debugger logs in database
304 591
    """
305
    return db.query(models.LDLog).offset(skip).limit(limit).all()
592
    return db.query(models.LDLog).order_by(desc(models.LDLog.timestamp)).offset(skip).limit(limit).all()
306 593

  
307 594

  
308 595
def create_ld_logs(db: Session, item: schemas.LDTempBase, head_id: int, body_id: int, pc_id: int, date: datetime):
......
337 624
    return db.query(models.USBLog).filter(models.USBLog.id.in_(logs)).order_by(desc(models.USBLog.timestamp)).all()
338 625

  
339 626

  
627
def find_filtered_ldlogs(db: Session, logs: []):
628
    """
629
    Returns all ld logs with ids in given id array.
630
    """
631
    return db.query(models.LDLog).filter(models.LDLog.id.in_(logs)).order_by(desc(models.LDLog.timestamp)).all()
632

  
633

  
634
def get_filtered_ldlogs(db: Session, pc: str, tema: str, lic: str):
635
    """
636
    Function creates query string used for filtering by pc username, team name and license name.
637
    Depending on selected filters assembles query string for database
638
    """
639
    execute_string = "SELECT * FROM ld_logs AS logs WHERE"
640
    before_me = False
641
    all_all = True
642
    if pc != "all":
643
        all_all = False
644
        pc = find_pc_by_username(db, pc)
645
        if pc != None:
646
            if before_me:
647
                execute_string += " AND logs.pc_id = " + str(pc.id)
648
            else:
649
                before_me = True
650
                execute_string += " logs.pc_id = " + str(pc.id)
651
    if tema != "all":
652
        all_all = False
653
        team = find_team(db, tema)
654
        if team != None:
655
            head_devices = find_headdevices_by_team(db, team.id)
656
            body_devices = find_bodydevices_by_team(db, team.id)
657
            if len(head_devices) > 0 and len(body_devices) > 0:
658
                h_ids = "("
659
                for h in head_devices:
660
                    h_ids += str(h.id) + ", "
661
                def_h_ids = h_ids[:-2] + ")"
662
                b_ids = "("
663
                for b in body_devices:
664
                    b_ids += str(b.id) + ", "
665
                def_b_ids = b_ids[:-2] + ")"
666
                if before_me:
667
                    execute_string += " AND (logs.head_id IN " + def_h_ids + " OR logs.body_id IN " + def_b_ids + ")"
668
                else:
669
                    before_me = True
670
                    execute_string += " (logs.head_id IN " + def_h_ids + " OR logs.body_id IN " + def_b_ids + ")"
671
            elif len(head_devices) == 0 and len(body_devices) > 0:
672
                b_ids = "("
673
                for b in body_devices:
674
                    b_ids += str(b.id) + ", "
675
                def_b_ids = b_ids[:-2] + ")"
676
                if before_me:
677
                    execute_string += " AND logs.body_id IN " + def_b_ids
678
                else:
679
                    before_me = True
680
                    execute_string += " logs.body_id IN " + def_b_ids
681
            elif len(head_devices) > 0 and len(body_devices) == 0:
682
                h_ids = "("
683
                for h in head_devices:
684
                    h_ids += str(h.id) + ", "
685
                def_h_ids = h_ids[:-2] + ")"
686
                if before_me:
687
                    execute_string += " AND logs.head_id IN " + def_h_ids
688
                else:
689
                    before_me = True
690
                    execute_string += " logs.head_id IN " + def_h_ids
691
            else:
692
                if before_me:
693
                    execute_string += " AND (logs.head_id = -1 OR logs.body_id = -1)"
694
                else:
695
                    before_me = True
696
                    execute_string += " (logs.head_id = -1 OR logs.body_id = -1)"
697
    if lic != "all":
698
        all_all = False
699
        license = find_license(db, lic)
700
        if license != None:
701
            head_devices = find_headdevices_by_license(db, license.id)
702
            body_devices = find_bodydevices_by_license(db, license.id)
703
            if len(head_devices) > 0 and len(body_devices) > 0:
704
                h_ids = "("
705
                for h in head_devices:
706
                    h_ids += str(h.id) + ", "
707
                def_h_ids = h_ids[:-2] + ")"
708
                b_ids = "("
709
                for b in body_devices:
710
                    b_ids += str(b.id) + ", "
711
                def_b_ids = b_ids[:-2] + ")"
712
                if before_me:
713
                    execute_string += " AND (logs.head_id IN " + def_h_ids + " OR logs.body_id IN " + def_b_ids + ")"
714
                else:
715
                    before_me = True
716
                    execute_string += " (logs.head_id IN " + def_h_ids + " OR logs.body_id IN " + def_b_ids + ")"
717
            elif len(head_devices) == 0 and len(body_devices) > 0:
718
                b_ids = "("
719
                for b in body_devices:
720
                    b_ids += str(b.id) + ", "
721
                def_b_ids = b_ids[:-2] + ")"
722
                if before_me:
723
                    execute_string += " AND logs.body_id IN " + def_b_ids
724
                else:
725
                    before_me = True
726
                    execute_string += " logs.body_id IN " + def_b_ids
727
            elif len(head_devices) > 0 and len(body_devices) == 0:
728
                h_ids = "("
729
                for h in head_devices:
730
                    h_ids += str(h.id) + ", "
731
                def_h_ids = h_ids[:-2] + ")"
732
                if before_me:
733
                    execute_string += " AND logs.head_id IN " + def_h_ids
734
                else:
735
                    before_me = True
736
                    execute_string += " logs.head_id IN " + def_h_ids
737
            else:
738
                if before_me:
739
                    execute_string += " AND (logs.head_id = -1 OR logs.body_id = -1)"
740
                else:
741
                    before_me = True
742
                    execute_string += " (logs.head_id = -1 OR logs.body_id = -1)"
743
    if all_all:
744
        before_me = True
745
        execute_string = "SELECT * FROM ld_logs AS logs"
746

  
747
    if not before_me:
748
        execute_string = "SELECT * FROM ld_logs AS logs WHERE logs.id = -1"
749
    result = db.execute(execute_string)
750
    return result
751

  
752

  
340 753
def get_filtered_logs(db: Session, pc: str, tema: str, lic: str):
341 754
    """
342 755
    Function creates query string used for filtering by pc username, team name and license name.
343 756
    Depending on selected filters assembles query string for database
344 757
    """
345 758
    execute_string = "SELECT * FROM usb_logs AS logs"
759
    pcs = find_pc_by_username(db, pc)
346 760
    if pc != "all":
347
        pcs = find_pc_by_username(db, pc)
348
        execute_string += "  WHERE logs.pc_id = " + str(pcs.id)
761
        if pcs is not None:
762
            execute_string += "  WHERE logs.pc_id = " + str(pcs.id)
349 763
    if tema != "all":
350 764
        team = find_team(db, tema)
351
        pcs = get_pcs_by_team(db, team.id)
352
        pc_ids = "("
353
        for p in pcs:
354
            pc_ids += str(p.id) + ", "
355
        def_pc_ids = pc_ids[:-2] + ")"
356
        if pc != "all":
357
            execute_string += " AND logs.pc_id IN " + def_pc_ids
358
        else:
359
            execute_string += " WHERE logs.pc_id IN " + def_pc_ids
765
        if team is not None:
766
            devs = get_devices_by_team(db, team.id)
767
            d_ids = "("
768
            for p in devs:
769
                d_ids += str(p.id) + ", "
770
            def_d_ids = d_ids[:-2] + ")"
771
            if pc != "all" and pcs is not None:
772
                if len(def_d_ids) > 1:
773
                    execute_string += " AND logs.device_id IN " + def_d_ids
774
            else:
775
                if len(def_d_ids) > 1:
776
                    execute_string += " WHERE logs.device_id IN " + def_d_ids
360 777
    if lic != "all":
361
        license = find_license(db, lic)
362
        device_licenses = get_license_devices(db, license.id)
363
        dev_ids = "("
364
        for dev in device_licenses:
365
            dev_ids += str(dev.device_id) + ", "
366
        defin_ids = dev_ids[:-2] + ")"
367
        if pc != "all" or tema != "all":
368
            execute_string += " AND logs.device_id IN " + defin_ids
369
        else:
370
            execute_string += " WHERE logs.device_id IN " + defin_ids
778
        license = get_licenses_by_name(db, lic)
779
        if license is not None:
780
            device_licenses = get_license_devices(db, license.id)
781
            dev_ids = "("
782
            for dev in device_licenses:
783
                dev_ids += str(dev.device_id) + ", "
784
            defin_ids = dev_ids[:-2] + ")"
785
            if pc != "all" or tema != "all":
786
                if len(defin_ids) > 1:
787
                    execute_string += " AND logs.device_id IN " + defin_ids
788
            else:
789
                if len(defin_ids) > 1:
790
                    execute_string += " WHERE logs.device_id IN " + defin_ids
371 791

  
372 792
    # executing assembled query string
373 793
    result = db.execute(execute_string)
374 794
    return result
375 795

  
376 796

  
797
def get_filtered_bodydevices(db: Session, body_id: str, license_id: str, team: str):
798
    """
799
    returns filtered body devices based on given attributes
800
    """
801
    execute_string = "SELECT * FROM body_devices AS device WHERE"
802
    before_me = False
803
    all_all = True
804
    if body_id != "all":
805
        all_all = False
806
        body_dev = find_bodydevice_by_serial(db, body_id)
807
        if body_dev != None:
808
            if before_me:
809
                execute_string += " AND device.id = " + str(body_dev.id)
810
            else:
811
                before_me = True
812
                execute_string += " device.id = " + str(body_dev.id)
813
    if license_id != "all":
814
        all_all = False
815
        license = find_license(db, license_id)
816
        if license != None:
817
            if before_me:
818
                execute_string += " AND device.license_id = " + str(license.id)
819
            else:
820
                before_me = True
821
                execute_string += " device.license_id = " + str(license.id)
822
    if team != "all":
823
        all_all = False
824
        tem = find_team(db, team)
825
        if tem != None:
826
            if before_me:
827
                execute_string += " AND device.team_id = " + str(tem.id)
828
            else:
829
                before_me = True
830
                execute_string += " device.team_id = " + str(tem.id)
831
    if all_all:
832
        before_me = True
833
        execute_string = "SELECT * FROM body_devices AS devices"
834

  
835
    if not before_me:
836
        execute_string = "SELECT * FROM body_devices AS devices WHERE devices.id = -1"
837
    result = db.execute(execute_string)
838
    return result
839

  
840

  
841
def get_filtered_headdevices(db: Session, body_id: str, license_id: str, team: str):
842
    """
843
    returns filtered head devices based on given attributes
844
    """
845
    execute_string = "SELECT * FROM head_devices AS device WHERE"
846
    before_me = False
847
    all_all = True
848
    if body_id != "all":
849
        all_all = False
850
        head_dev = find_headdevice_by_serial(db, body_id)
851
        if head_dev != None:
852
            if before_me:
853
                execute_string += " AND device.id = " + str(head_dev.id)
854
            else:
855
                before_me = True
856
                execute_string += " device.id = " + str(head_dev.id)
857
    if license_id != "all":
858
        all_all = False
859
        license = find_license(db, license_id)
860
        if license != None:
861
            if before_me:
862
                execute_string += " AND device.license_id = " + str(license.id)
863
            else:
864
                before_me = True
865
                execute_string += " device.license_id = " + str(license.id)
866
    if team != "all":
867
        all_all = False
868
        tem = find_team(db, team)
869
        if tem != None:
870
            if before_me:
871
                execute_string += " AND device.team_id = " + str(tem.id)
872
            else:
873
                before_me = True
874
                execute_string += " device.team_id = " + str(tem.id)
875
    if all_all:
876
        before_me = True
877
        execute_string = "SELECT * FROM body_devices AS devices"
878

  
879
    if not before_me:
880
        execute_string = "SELECT * FROM body_devices AS devices WHERE devices.id = -1"
881
    result = db.execute(execute_string)
882
    return result
883

  
884

  
885
def get_filtered_devices(db: Session, keyman_id: str, license_name: str, license_id: str, team: str):
886
    """
887
    returns filtered keyman devices based on given attributes
888
    """
889
    execute_string = "SELECT * FROM devices AS device WHERE"
890
    before_me = False
891
    all_all = True
892
    if keyman_id != "all":
893
        all_all = False
894
        keyman_dev = find_device_by_serial(db, keyman_id)
895
        if keyman_dev != None:
896
            if before_me:
897
                execute_string += " AND device.id = " + str(keyman_dev.id)
898
            else:
899
                before_me = True
900
                execute_string += " device.id = " + str(keyman_dev.id)
901
    if license_name != "all":
902
        all_all = False
903
        license = get_licenses_by_name(db, license_name)
904
        if len(license) > 0:
905
            lic_ids = []
906
            for l in license:
907
                lic_ids.append(l.id)
908
            dev_lics = find_devicelicenses_by_licid_array(db, lic_ids)
909
            lic_ids = "("
910
            for l in dev_lics:
911
                lic_ids += str(l.device_id) + ", "
912
            def_lic_ids = lic_ids[:-2] + ")"
913
            if before_me:
914
                execute_string += " AND device.id IN " + def_lic_ids
915
            else:
916
                before_me = True
917
                execute_string += " device.id IN " + def_lic_ids
918
    if license_id != "all":
919
        all_all = False
920
        license = find_license(db, license_id)
921
        licen_devs = get_license_devices(db, license.id)
922
        ids = "("
923
        for lic in licen_devs:
924
            ids += str(lic.device_id) + ", "
925
        def_ids = ids[:-2] + ")"
926
        if license != None:
927
            if before_me:
928
                execute_string += " AND device.id IN " + def_ids
929
            else:
930
                before_me = True
931
                execute_string += " device.id IN " + def_ids
932
    if team != "all":
933
        all_all = False
934
        tem = find_team(db, team)
935
        if tem != None:
936
            if before_me:
937
                execute_string += " AND device.team_id = " + str(tem.id)
938
            else:
939
                before_me = True
940
                execute_string += " device.team_id = " + str(tem.id)
941
    if all_all:
942
        before_me = True
943
        execute_string = "SELECT * FROM devices AS devices"
944

  
945
    if not before_me:
946
        execute_string = "SELECT * FROM devices AS devices WHERE devices.id = -1"
947
    result = db.execute(execute_string)
948
    return result
949

  
950

  
377 951
def create_device_logs(db: Session, item: schemas.USBTempBase, dev_id: int, pc_id: int, date: datetime):
378 952
    """
379 953
    Creates new USB log for usb_logs database table
......
382 956
    db.add(db_log)
383 957
    db.commit()
384 958
    db.refresh(db_log)
385
    return db_log</code></pre>
959
    return db_log
960

  
961

  
962
def get_users(db: Session, skip: int = 0, limit: int = 100):
963
    &#34;&#34;&#34;
964
    Returns all users saved in database
965
    &#34;&#34;&#34;
966
    return db.query(models.User).offset(skip).limit(limit).all()
967

  
968

  
969
def find_user(db: Session, name: str):
970
    &#34;&#34;&#34;
971
    Finds one user by given username
972
    &#34;&#34;&#34;
973
    return db.query(models.User).filter(models.User.username == name).first()
974

  
975

  
976
def find_user_byid(db: Session, id: int):
977
    &#34;&#34;&#34;
978
    Finds one user by given id
979
    &#34;&#34;&#34;
980
    return db.query(models.User).filter(models.User.id == id).first()
981

  
982

  
983
def create_user(db: Session, name: str, passw: str, rol: str):
984
    &#34;&#34;&#34;
985
    Creates new user
986
    &#34;&#34;&#34;
987
    db_user = models.User(username=name, password=passw, role=rol)
988
    db.add(db_user)
989
    db.commit()
990
    db.refresh(db_user)
991
    return db_user</code></pre>
386 992
</details>
387 993
</section>
388 994
<section>
......
392 998
<section>
393 999
<h2 class="section-title" id="header-functions">Functions</h2>
394 1000
<dl>
1001
<dt id="sql_app.crud.change_role"><code class="name flex">
1002
<span>def <span class="ident">change_role</span></span>(<span>db: sqlalchemy.orm.session.Session, usr_id: int, role: str)</span>
1003
</code></dt>
1004
<dd>
1005
<div class="desc"><p>Updates team of one specific pc</p></div>
1006
<details class="source">
1007
<summary>
1008
<span>Expand source code</span>
1009
</summary>
1010
<pre><code class="python">def change_role(db: Session, usr_id: int, role: str):
1011
    &#34;&#34;&#34;
1012
    Updates team of one specific pc
1013
    &#34;&#34;&#34;
1014
    old_usr = find_user_byid(db, usr_id)
1015
    new = {&#39;id&#39;: old_usr.id, &#39;username&#39;: old_usr.username, &#39;password&#39;: old_usr.password, &#39;role&#39;: role}
1016
    for key, value in new.items():
1017
        setattr(old_usr, key, value)
1018
    db.commit()
1019
    db.refresh(old_usr)
1020
    return old_usr</code></pre>
1021
</details>
1022
</dd>
1023
<dt id="sql_app.crud.change_team"><code class="name flex">
1024
<span>def <span class="ident">change_team</span></span>(<span>db: sqlalchemy.orm.session.Session, team_id: int, name: str)</span>
1025
</code></dt>
1026
<dd>
1027
<div class="desc"><p>Updates name of one specific team</p></div>
1028
<details class="source">
1029
<summary>
1030
<span>Expand source code</span>
1031
</summary>
1032
<pre><code class="python">def change_team(db: Session, team_id: int, name: str):
1033
    &#34;&#34;&#34;
1034
    Updates name of one specific team
1035
    &#34;&#34;&#34;
1036
    old_team = get_team(db, team_id)
1037
    new = {&#39;id&#39;: old_team.id, &#39;name&#39;: name}
1038
    for key, value in new.items():
1039
        setattr(old_team, key, value)
1040
    db.commit()
1041
    db.refresh(old_team)
1042
    return old_team</code></pre>
1043
</details>
1044
</dd>
395 1045
<dt id="sql_app.crud.create_body_device"><code class="name flex">
396
<span>def <span class="ident">create_body_device</span></span>(<span>db: sqlalchemy.orm.session.Session, log: <a title="sql_app.schemas.BodyDeviceBase" href="schemas.html#sql_app.schemas.BodyDeviceBase">BodyDeviceBase</a>)</span>
1046
<span>def <span class="ident">create_body_device</span></span>(<span>db: sqlalchemy.orm.session.Session, log: <a title="sql_app.schemas.BodyDeviceTemp" href="schemas.html#sql_app.schemas.BodyDeviceTemp">BodyDeviceTemp</a>)</span>
397 1047
</code></dt>
398 1048
<dd>
399 1049
<div class="desc"><p>Creates new Body device</p></div>
......
401 1051
<summary>
402 1052
<span>Expand source code</span>
403 1053
</summary>
404
<pre><code class="python">def create_body_device(db: Session, log: schemas.BodyDeviceBase):
1054
<pre><code class="python">def create_body_device(db: Session, log: schemas.BodyDeviceTemp):
405 1055
    &#34;&#34;&#34;
406 1056
    Creates new Body device
407 1057
    &#34;&#34;&#34;
408
    db_body = models.BodyDevice(serial_number=log.serial_number)
1058
    db_body = models.BodyDevice(serial_number=log.serial_number, inventory_number=&#34;&#34;, comment=&#34;&#34;)
409 1059
    db.add(db_body)
410 1060
    db.commit()
411 1061
    db.refresh(db_body)
......
413 1063
</details>
414 1064
</dd>
415 1065
<dt id="sql_app.crud.create_device"><code class="name flex">
416
<span>def <span class="ident">create_device</span></span>(<span>db: sqlalchemy.orm.session.Session, device: <a title="sql_app.schemas.DeviceBase" href="schemas.html#sql_app.schemas.DeviceBase">DeviceBase</a>)</span>
1066
<span>def <span class="ident">create_device</span></span>(<span>db: sqlalchemy.orm.session.Session, device: <a title="sql_app.schemas.DeviceTemp" href="schemas.html#sql_app.schemas.DeviceTemp">DeviceTemp</a>)</span>
417 1067
</code></dt>
418 1068
<dd>
419 1069
<div class="desc"><p>creates new device with data from given DeviceBase object</p></div>
......
421 1071
<summary>
422 1072
<span>Expand source code</span>
423 1073
</summary>
424
<pre><code class="python">def create_device(db: Session, device: schemas.DeviceBase):
1074
<pre><code class="python">def create_device(db: Session, device: schemas.DeviceTemp):
425 1075
    &#34;&#34;&#34;
426 1076
    creates new device with data from given DeviceBase object
427 1077
    &#34;&#34;&#34;
428 1078
    db_device = models.Device(vendor_id=device.vendor_id, product_id=device.product_id,
429
                              serial_number=device.serial_number, assigned=False)
1079
                              serial_number=device.serial_number, inventory_number=&#34;&#34;, comment=&#34;&#34;)
430 1080
    db.add(db_device)
431 1081
    db.commit()
432 1082
    db.refresh(db_device)
......
475 1125
</details>
476 1126
</dd>
477 1127
<dt id="sql_app.crud.create_head_device"><code class="name flex">
478
<span>def <span class="ident">create_head_device</span></span>(<span>db: sqlalchemy.orm.session.Session, log: <a title="sql_app.schemas.HeadDeviceBase" href="schemas.html#sql_app.schemas.HeadDeviceBase">HeadDeviceBase</a>)</span>
1128
<span>def <span class="ident">create_head_device</span></span>(<span>db: sqlalchemy.orm.session.Session, log: <a title="sql_app.schemas.HeadDeviceTemp" href="schemas.html#sql_app.schemas.HeadDeviceTemp">HeadDeviceTemp</a>)</span>
479 1129
</code></dt>
480 1130
<dd>
481 1131
<div class="desc"><p>Creates new head device</p></div>
......
483 1133
<summary>
484 1134
<span>Expand source code</span>
485 1135
</summary>
486
<pre><code class="python">def create_head_device(db: Session, log: schemas.HeadDeviceBase):
1136
<pre><code class="python">def create_head_device(db: Session, log: schemas.HeadDeviceTemp):
487 1137
    &#34;&#34;&#34;
488 1138
    Creates new head device
489 1139
    &#34;&#34;&#34;
......
515 1165
</details>
516 1166
</dd>
517 1167
<dt id="sql_app.crud.create_license"><code class="name flex">
518
<span>def <span class="ident">create_license</span></span>(<span>db: sqlalchemy.orm.session.Session, name: str, expdate: datetime.date)</span>
1168
<span>def <span class="ident">create_license</span></span>(<span>db: sqlalchemy.orm.session.Session, name: str, lic_id: str, expdate: datetime.date)</span>
519 1169
</code></dt>
520 1170
<dd>
521 1171
<div class="desc"><p>creates new license with given name and expiration date</p></div>
......
523 1173
<summary>
524 1174
<span>Expand source code</span>
525 1175
</summary>
526
<pre><code class="python">def create_license(db: Session, name: str, expdate: date):
1176
<pre><code class="python">def create_license(db: Session, name: str, lic_id: str, expdate: date):
527 1177
    &#34;&#34;&#34;
528 1178
    creates new license with given name and expiration date
529 1179
    &#34;&#34;&#34;
530
    db_license = models.License(name=name, expiration_date=expdate)
1180
    db_license = models.License(name=name, license_id=lic_id, expiration_date=expdate)
531 1181
    db.add(db_license)
532 1182
    db.commit()
533 1183
    db.refresh(db_license)
......
547 1197
    &#34;&#34;&#34;
548 1198
    creates new pc with given username and hostname
549 1199
    &#34;&#34;&#34;
550
    db_pc = models.PC(username=user, hostname=host, assigned=False)
1200
    db_pc = models.PC(username=user, hostname=host)
551 1201
    db.add(db_pc)
552 1202
    db.commit()
553 1203
    db.refresh(db_pc)
......
574 1224
    return db_team</code></pre>
575 1225
</details>
576 1226
</dd>
577
<dt id="sql_app.crud.find_body_device"><code class="name flex">
578
<span>def <span class="ident">find_body_device</span></span>(<span>db: sqlalchemy.orm.session.Session, serial: <a title="sql_app.schemas.BodyDeviceBase" href="schemas.html#sql_app.schemas.BodyDeviceBase">BodyDeviceBase</a>)</span>
1227
<dt id="sql_app.crud.create_user"><code class="name flex">
1228
<span>def <span class="ident">create_user</span></span>(<span>db: sqlalchemy.orm.session.Session, name: str, passw: str, rol: str)</span>
579 1229
</code></dt>
580 1230
<dd>
581
<div class="desc"><p>Finds one body device by its serial number</p></div>
1231
<div class="desc"><p>Creates new user</p></div>
582 1232
<details class="source">
583 1233
<summary>
584 1234
<span>Expand source code</span>
585 1235
</summary>
586
<pre><code class="python">def find_body_device(db: Session, serial: schemas.BodyDeviceBase):
1236
<pre><code class="python">def create_user(db: Session, name: str, passw: str, rol: str):
587 1237
    &#34;&#34;&#34;
588
    Finds one body device by its serial number
1238
    Creates new user
589 1239
    &#34;&#34;&#34;
590
    return db.query(models.BodyDevice).filter(models.BodyDevice.serial_number == serial.serial_number).first()</code></pre>
1240
    db_user = models.User(username=name, password=passw, role=rol)
1241
    db.add(db_user)
1242
    db.commit()
1243
    db.refresh(db_user)
1244
    return db_user</code></pre>
591 1245
</details>
592 1246
</dd>
593
<dt id="sql_app.crud.find_device"><code class="name flex">
594
<span>def <span class="ident">find_device</span></span>(<span>db: sqlalchemy.orm.session.Session, device: <a title="sql_app.schemas.DeviceBase" href="schemas.html#sql_app.schemas.DeviceBase">DeviceBase</a>)</span>
1247
<dt id="sql_app.crud.delete_device_license"><code class="name flex">
1248
<span>def <span class="ident">delete_device_license</span></span>(<span>db: sqlalchemy.orm.session.Session, device: int, license: int)</span>
595 1249
</code></dt>
596 1250
<dd>
597
<div class="desc"><p>finds one device with product_id, vendor_id and serial_number same as in given DeviceBase object</p></div>
1251
<div class="desc"><p>deletes entry in devices_licenses table with device id, license id and time.</p></div>
598 1252
<details class="source">
599 1253
<summary>
600 1254
<span>Expand source code</span>
601 1255
</summary>
602
<pre><code class="python">def find_device(db: Session, device: schemas.DeviceBase):
1256
<pre><code class="python">def delete_device_license(db: Session, device: int, license: int):
603 1257
    &#34;&#34;&#34;
604
    finds one device with product_id, vendor_id and serial_number same as in given DeviceBase object
1258
    deletes entry in devices_licenses table with device id, license id and time.
605 1259
    &#34;&#34;&#34;
606
    return db.query(models.Device).filter(and_(models.Device.product_id == device.product_id,
607
                                               models.Device.vendor_id == device.vendor_id,
608
                                               models.Device.serial_number == device.serial_number)).first()</code></pre>
1260
    db_device_license = get_devicelicense_by_devicelicense(db, device, license)
1261
    db_lic = db.delete(db_device_license)
1262
    db.commit()
1263
    return db_lic</code></pre>
609 1264
</details>
610 1265
</dd>
611
<dt id="sql_app.crud.find_filtered_logs"><code class="name flex">
612
<span>def <span class="ident">find_filtered_logs</span></span>(<span>db: sqlalchemy.orm.session.Session, logs: [])</span>
1266
<dt id="sql_app.crud.find_body_device"><code class="name flex">
1267
<span>def <span class="ident">find_body_device</span></span>(<span>db: sqlalchemy.orm.session.Session, serial: <a title="sql_app.schemas.BodyDeviceTemp" href="schemas.html#sql_app.schemas.BodyDeviceTemp">BodyDeviceTemp</a>)</span>
613 1268
</code></dt>
614 1269
<dd>
615
<div class="desc"><p>Returns all usb logs with ids in given id array.</p></div>
1270
<div class="desc"><p>Finds one body device by its serial number</p></div>
616 1271
<details class="source">
617 1272
<summary>
618 1273
<span>Expand source code</span>
619 1274
</summary>
620
<pre><code class="python">def find_filtered_logs(db: Session, logs: []):
1275
<pre><code class="python">def find_body_device(db: Session, serial: schemas.BodyDeviceTemp):
621 1276
    &#34;&#34;&#34;
622
    Returns all usb logs with ids in given id array.
1277
    Finds one body device by its serial number
623 1278
    &#34;&#34;&#34;
624
    return db.query(models.USBLog).filter(models.USBLog.id.in_(logs)).order_by(desc(models.USBLog.timestamp)).all()</code></pre>
1279
    return db.query(models.BodyDevice).filter(models.BodyDevice.serial_number == serial.serial_number).first()</code></pre>
625 1280
</details>
626 1281
</dd>
627
<dt id="sql_app.crud.find_head_device"><code class="name flex">
628
<span>def <span class="ident">find_head_device</span></span>(<span>db: sqlalchemy.orm.session.Session, serial: <a title="sql_app.schemas.HeadDeviceBase" href="schemas.html#sql_app.schemas.HeadDeviceBase">HeadDeviceBase</a>)</span>
1282
<dt id="sql_app.crud.find_bodydevice_by_serial"><code class="name flex">
1283
<span>def <span class="ident">find_bodydevice_by_serial</span></span>(<span>db: sqlalchemy.orm.session.Session, serial: str)</span>
629 1284
</code></dt>
630 1285
<dd>
631
<div class="desc"><p>Finds one head device by its serial number</p></div>
1286
<div class="desc"><p>Finds one specific body device by given serial number</p></div>
632 1287
<details class="source">
633 1288
<summary>
634 1289
<span>Expand source code</span>
635 1290
</summary>
636
<pre><code class="python">def find_head_device(db: Session, serial: schemas.HeadDeviceBase):
1291
<pre><code class="python">def find_bodydevice_by_serial(db: Session, serial: str):
637 1292
    &#34;&#34;&#34;
638
    Finds one head device by its serial number
1293
    Finds one specific body device by given serial number
639 1294
    &#34;&#34;&#34;
640
    return db.query(models.HeadDevice).filter(models.HeadDevice.serial_number == serial.serial_number).first()</code></pre>
1295
    return db.query(models.BodyDevice).filter(models.BodyDevice.serial_number == serial).first()</code></pre>
641 1296
</details>
642 1297
</dd>
643
<dt id="sql_app.crud.find_license"><code class="name flex">
644
<span>def <span class="ident">find_license</span></span>(<span>db: sqlalchemy.orm.session.Session, name: str)</span>
1298
<dt id="sql_app.crud.find_bodydevices_by_license"><code class="name flex">
1299
<span>def <span class="ident">find_bodydevices_by_license</span></span>(<span>db: sqlalchemy.orm.session.Session, lic_id: int)</span>
645 1300
</code></dt>
646 1301
<dd>
647
<div class="desc"><p>finds one license by given string name</p></div>
1302
<div class="desc"><p>Returns all body devices with specific license</p></div>
648 1303
<details class="source">
649 1304
<summary>
650 1305
<span>Expand source code</span>
651 1306
</summary>
652
<pre><code class="python">def find_license(db: Session, name: str):
1307
<pre><code class="python">def find_bodydevices_by_license(db: Session, lic_id: int):
653 1308
    &#34;&#34;&#34;
654
    finds one license by given string name
1309
    Returns all body devices with specific license
655 1310
    &#34;&#34;&#34;
656
    return db.query(models.License).filter(models.License.name == name).first()</code></pre>
1311
    return db.query(models.BodyDevice).filter(models.BodyDevice.license_id == lic_id).all()</code></pre>
657 1312
</details>
658 1313
</dd>
659
<dt id="sql_app.crud.find_pc"><code class="name flex">
660
<span>def <span class="ident">find_pc</span></span>(<span>db: sqlalchemy.orm.session.Session, username: str, hostname: str)</span>
1314
<dt id="sql_app.crud.find_bodydevices_by_team"><code class="name flex">
1315
<span>def <span class="ident">find_bodydevices_by_team</span></span>(<span>db: sqlalchemy.orm.session.Session, team_id: int)</span>
661 1316
</code></dt>
662 1317
<dd>
663
<div class="desc"><p>Finds one pc with given username and hostname</p></div>
1318
<div class="desc"><p>Returns all body devices in specific team</p></div>
664 1319
<details class="source">
665 1320
<summary>
666 1321
<span>Expand source code</span>
667 1322
</summary>
668
<pre><code class="python">def find_pc(db: Session, username: str, hostname: str):
1323
<pre><code class="python">def find_bodydevices_by_team(db: Session, team_id: int):
669 1324
    &#34;&#34;&#34;
670
    Finds one pc with given username and hostname
1325
    Returns all body devices in specific team
671 1326
    &#34;&#34;&#34;
672
    return db.query(models.PC).filter(and_(models.PC.username == username,
673
                                           models.PC.hostname == hostname)).first()</code></pre>
1327
    return db.query(models.BodyDevice).filter(models.BodyDevice.team_id == team_id).all()</code></pre>
674 1328
</details>
675 1329
</dd>
676
<dt id="sql_app.crud.find_pc_by_name"><code class="name flex">
677
<span>def <span class="ident">find_pc_by_name</span></span>(<span>db: sqlalchemy.orm.session.Session, username: str)</span>
1330
<dt id="sql_app.crud.find_device"><code class="name flex">
1331
<span>def <span class="ident">find_device</span></span>(<span>db: sqlalchemy.orm.session.Session, device: <a title="sql_app.schemas.DeviceTemp" href="schemas.html#sql_app.schemas.DeviceTemp">DeviceTemp</a>)</span>
678 1332
</code></dt>
679 1333
<dd>
680
<div class="desc"><p>Finds one pc by its username</p></div>
1334
<div class="desc"><p>finds one device with
1335
serial_number same as in given DeviceBase object</p></div>
681 1336
<details class="source">
682 1337
<summary>
683 1338
<span>Expand source code</span>
684 1339
</summary>
685
<pre><code class="python">def find_pc_by_name(db: Session, username: str):
1340
<pre><code class="python">def find_device(db: Session, device: schemas.DeviceTemp):
686 1341
    &#34;&#34;&#34;
687
    Finds one pc by its username
1342
    finds one device with  serial_number same as in given DeviceBase object
688 1343
    &#34;&#34;&#34;
689
    return db.query(models.PC).filter(models.PC.username == username).first()</code></pre>
1344
    return db.query(models.Device).filter(and_(models.Device.serial_number == device.serial_number)).first()</code></pre>
690 1345
</details>
691 1346
</dd>
692
<dt id="sql_app.crud.find_pc_by_name_all"><code class="name flex">
693
<span>def <span class="ident">find_pc_by_name_all</span></span>(<span>db: sqlalchemy.orm.session.Session, username: str)</span>
1347
<dt id="sql_app.crud.find_device_by_serial"><code class="name flex">
1348
<span>def <span class="ident">find_device_by_serial</span></span>(<span>db: sqlalchemy.orm.session.Session, ser: str)</span>
694 1349
</code></dt>
695 1350
<dd>
696
<div class="desc"><p>Finds all pcs with same username</p></div>
1351
<div class="desc"><p>finds one device with serial_number same as in given DeviceBase object</p></div>
697 1352
<details class="source">
698 1353
<summary>
699 1354
<span>Expand source code</span>
700 1355
</summary>
701
<pre><code class="python">def find_pc_by_name_all(db: Session, username: str):
1356
<pre><code class="python">def find_device_by_serial(db: Session, ser: str):
702 1357
    &#34;&#34;&#34;
703
    Finds all pcs with same username
1358
    finds one device with serial_number same as in given DeviceBase object
1359
    &#34;&#34;&#34;
1360
    return db.query(models.Device).filter(and_(models.Device.serial_number == ser)).first()</code></pre>
1361
</details>
1362
</dd>
1363
<dt id="sql_app.crud.find_devicelicenses_by_licid_array"><code class="name flex">
1364
<span>def <span class="ident">find_devicelicenses_by_licid_array</span></span>(<span>db: sqlalchemy.orm.session.Session, lcs: [])</span>
1365
</code></dt>
1366
<dd>
1367
<div class="desc"><p>Finds all device_licenses with license_id in given id array</p></div>
1368
<details class="source">
1369
<summary>
1370
<span>Expand source code</span>
1371
</summary>
1372
<pre><code class="python">def find_devicelicenses_by_licid_array(db: Session, lcs: []):
1373
    &#34;&#34;&#34;
1374
    Finds all device_licenses with license_id in given id array
1375
    &#34;&#34;&#34;
1376
    return db.query(models.DeviceLicense).filter(models.DeviceLicense.license_id.in_(lcs)).all()</code></pre>
1377
</details>
1378
</dd>
1379
<dt id="sql_app.crud.find_filtered_ldlogs"><code class="name flex">
1380
<span>def <span class="ident">find_filtered_ldlogs</span></span>(<span>db: sqlalchemy.orm.session.Session, logs: [])</span>
1381
</code></dt>
1382
<dd>
1383
<div class="desc"><p>Returns all ld logs with ids in given id array.</p></div>
1384
<details class="source">
1385
<summary>
1386
<span>Expand source code</span>
1387
</summary>
1388
<pre><code class="python">def find_filtered_ldlogs(db: Session, logs: []):
1389
    &#34;&#34;&#34;
1390
    Returns all ld logs with ids in given id array.
1391
    &#34;&#34;&#34;
1392
    return db.query(models.LDLog).filter(models.LDLog.id.in_(logs)).order_by(desc(models.LDLog.timestamp)).all()</code></pre>
1393
</details>
1394
</dd>
1395
<dt id="sql_app.crud.find_filtered_logs"><code class="name flex">
1396
<span>def <span class="ident">find_filtered_logs</span></span>(<span>db: sqlalchemy.orm.session.Session, logs: [])</span>
1397
</code></dt>
1398
<dd>
1399
<div class="desc"><p>Returns all usb logs with ids in given id array.</p></div>
1400
<details class="source">
1401
<summary>
1402
<span>Expand source code</span>
1403
</summary>
1404
<pre><code class="python">def find_filtered_logs(db: Session, logs: []):
1405
    &#34;&#34;&#34;
1406
    Returns all usb logs with ids in given id array.
1407
    &#34;&#34;&#34;
1408
    return db.query(models.USBLog).filter(models.USBLog.id.in_(logs)).order_by(desc(models.USBLog.timestamp)).all()</code></pre>
1409
</details>
1410
</dd>
1411
<dt id="sql_app.crud.find_head_device"><code class="name flex">
1412
<span>def <span class="ident">find_head_device</span></span>(<span>db: sqlalchemy.orm.session.Session, serial: <a title="sql_app.schemas.HeadDeviceTemp" href="schemas.html#sql_app.schemas.HeadDeviceTemp">HeadDeviceTemp</a>)</span>
1413
</code></dt>
1414
<dd>
1415
<div class="desc"><p>Finds one head device by its serial number</p></div>
1416
<details class="source">
1417
<summary>
1418
<span>Expand source code</span>
1419
</summary>
1420
<pre><code class="python">def find_head_device(db: Session, serial: schemas.HeadDeviceTemp):
1421
    &#34;&#34;&#34;
1422
    Finds one head device by its serial number
1423
    &#34;&#34;&#34;
1424
    return db.query(models.HeadDevice).filter(models.HeadDevice.serial_number == serial.serial_number).first()</code></pre>
1425
</details>
1426
</dd>
1427
<dt id="sql_app.crud.find_headdevice_by_serial"><code class="name flex">
1428
<span>def <span class="ident">find_headdevice_by_serial</span></span>(<span>db: sqlalchemy.orm.session.Session, serial: str)</span>
1429
</code></dt>
1430
<dd>
1431
<div class="desc"><p>Finds one specific head device by given serial number</p></div>
1432
<details class="source">
1433
<summary>
1434
<span>Expand source code</span>
1435
</summary>
1436
<pre><code class="python">def find_headdevice_by_serial(db: Session, serial: str):
1437
    &#34;&#34;&#34;
1438
    Finds one specific head device by given serial number
1439
    &#34;&#34;&#34;
1440
    return db.query(models.HeadDevice).filter(models.HeadDevice.serial_number == serial).first()</code></pre>
1441
</details>
1442
</dd>
1443
<dt id="sql_app.crud.find_headdevices_by_license"><code class="name flex">
1444
<span>def <span class="ident">find_headdevices_by_license</span></span>(<span>db: sqlalchemy.orm.session.Session, lic_id: int)</span>
1445
</code></dt>
1446
<dd>
1447
<div class="desc"><p>Returns all head devices with specific license</p></div>
1448
<details class="source">
1449
<summary>
1450
<span>Expand source code</span>
1451
</summary>
1452
<pre><code class="python">def find_headdevices_by_license(db: Session, lic_id: int):
1453
    &#34;&#34;&#34;
1454
    Returns all head devices with specific license
1455
    &#34;&#34;&#34;
1456
    return db.query(models.HeadDevice).filter(models.HeadDevice.license_id == lic_id).all()</code></pre>
1457
</details>
1458
</dd>
1459
<dt id="sql_app.crud.find_headdevices_by_team"><code class="name flex">
1460
<span>def <span class="ident">find_headdevices_by_team</span></span>(<span>db: sqlalchemy.orm.session.Session, team_id: int)</span>
1461
</code></dt>
1462
<dd>
1463
<div class="desc"><p>Returns all head devices in specific team</p></div>
1464
<details class="source">
1465
<summary>
1466
<span>Expand source code</span>
1467
</summary>
1468
<pre><code class="python">def find_headdevices_by_team(db: Session, team_id: int):
1469
    &#34;&#34;&#34;
1470
    Returns all head devices in specific team
1471
    &#34;&#34;&#34;
1472
    return db.query(models.HeadDevice).filter(models.HeadDevice.team_id == team_id).all()</code></pre>
1473
</details>
1474
</dd>
1475
<dt id="sql_app.crud.find_license"><code class="name flex">
1476
<span>def <span class="ident">find_license</span></span>(<span>db: sqlalchemy.orm.session.Session, name: str)</span>
1477
</code></dt>
1478
<dd>
1479
<div class="desc"><p>finds one license by given string name</p></div>
1480
<details class="source">
1481
<summary>
1482
<span>Expand source code</span>
1483
</summary>
1484
<pre><code class="python">def find_license(db: Session, name: str):
1485
    &#34;&#34;&#34;
1486
    finds one license by given string name
1487
    &#34;&#34;&#34;
1488
    return db.query(models.License).filter(models.License.license_id == name).first()</code></pre>
1489
</details>
1490
</dd>
1491
<dt id="sql_app.crud.find_pc"><code class="name flex">
1492
<span>def <span class="ident">find_pc</span></span>(<span>db: sqlalchemy.orm.session.Session, username: str, hostname: str)</span>
1493
</code></dt>
1494
<dd>
1495
<div class="desc"><p>Finds one pc with given username and hostname</p></div>
1496
<details class="source">
1497
<summary>
1498
<span>Expand source code</span>
1499
</summary>
1500
<pre><code class="python">def find_pc(db: Session, username: str, hostname: str):
1501
    &#34;&#34;&#34;
1502
    Finds one pc with given username and hostname
1503
    &#34;&#34;&#34;
1504
    return db.query(models.PC).filter(and_(models.PC.username == username,
1505
                                           models.PC.hostname == hostname)).first()</code></pre>
1506
</details>
1507
</dd>
1508
<dt id="sql_app.crud.find_pc_by_name"><code class="name flex">
1509
<span>def <span class="ident">find_pc_by_name</span></span>(<span>db: sqlalchemy.orm.session.Session, username: str)</span>
1510
</code></dt>
1511
<dd>
1512
<div class="desc"><p>Finds one pc by its username</p></div>
1513
<details class="source">
1514
<summary>
1515
<span>Expand source code</span>
1516
</summary>
1517
<pre><code class="python">def find_pc_by_name(db: Session, username: str):
1518
    &#34;&#34;&#34;
1519
    Finds one pc by its username
1520
    &#34;&#34;&#34;
1521
    return db.query(models.PC).filter(models.PC.username == username).first()</code></pre>
1522
</details>
1523
</dd>
1524
<dt id="sql_app.crud.find_pc_by_name_all"><code class="name flex">
1525
<span>def <span class="ident">find_pc_by_name_all</span></span>(<span>db: sqlalchemy.orm.session.Session, username: str)</span>
1526
</code></dt>
1527
<dd>
1528
<div class="desc"><p>Finds all pcs with same username</p></div>
1529
<details class="source">
1530
<summary>
1531
<span>Expand source code</span>
1532
</summary>
1533
<pre><code class="python">def find_pc_by_name_all(db: Session, username: str):
1534
    &#34;&#34;&#34;
1535
    Finds all pcs with same username
704 1536
    &#34;&#34;&#34;
705 1537
    return db.query(models.PC).filter(models.PC.username == username).offset(0).limit(100).all()</code></pre>
706 1538
</details>
......
753 1585
    return db.query(models.Team).filter(models.Team.name == name).first()</code></pre>
754 1586
</details>
755 1587
</dd>
1588
<dt id="sql_app.crud.find_user"><code class="name flex">
1589
<span>def <span class="ident">find_user</span></span>(<span>db: sqlalchemy.orm.session.Session, name: str)</span>
1590
</code></dt>
1591
<dd>
1592
<div class="desc"><p>Finds one user by given username</p></div>
1593
<details class="source">
1594
<summary>
1595
<span>Expand source code</span>
1596
</summary>
1597
<pre><code class="python">def find_user(db: Session, name: str):
1598
    &#34;&#34;&#34;
1599
    Finds one user by given username
1600
    &#34;&#34;&#34;
1601
    return db.query(models.User).filter(models.User.username == name).first()</code></pre>
1602
</details>
1603
</dd>
1604
<dt id="sql_app.crud.find_user_byid"><code class="name flex">
1605
<span>def <span class="ident">find_user_byid</span></span>(<span>db: sqlalchemy.orm.session.Session, id: int)</span>
1606
</code></dt>
1607
<dd>
1608
<div class="desc"><p>Finds one user by given id</p></div>
1609
<details class="source">
1610
<summary>
1611
<span>Expand source code</span>
1612
</summary>
1613
<pre><code class="python">def find_user_byid(db: Session, id: int):
1614
    &#34;&#34;&#34;
1615
    Finds one user by given id
1616
    &#34;&#34;&#34;
1617
    return db.query(models.User).filter(models.User.id == id).first()</code></pre>
1618
</details>
1619
</dd>
756 1620
<dt id="sql_app.crud.get_body_device"><code class="name flex">
757 1621
<span>def <span class="ident">get_body_device</span></span>(<span>db: sqlalchemy.orm.session.Session, body_id: int)</span>
758 1622
</code></dt>
......
785 1649
    return db.query(models.BodyDevice).offset(skip).limit(limit).all()</code></pre>
786 1650
</details>
787 1651
</dd>
1652
<dt id="sql_app.crud.get_bodydevices_with_ids"><code class="name flex">
1653
<span>def <span class="ident">get_bodydevices_with_ids</span></span>(<span>db: sqlalchemy.orm.session.Session, ids: [])</span>
1654
</code></dt>
1655
<dd>
1656
<div class="desc"><p>returns all bodydevices with given ids</p></div>
1657
<details class="source">
1658
<summary>
1659
<span>Expand source code</span>
1660
</summary>
1661
<pre><code class="python">def get_bodydevices_with_ids(db: Session, ids: []):
1662
    &#34;&#34;&#34;
1663
    returns all bodydevices with given ids
1664
    &#34;&#34;&#34;
1665
    return db.query(models.BodyDevice).filter(models.BodyDevice.id.in_(ids)).all()</code></pre>
1666
</details>
1667
</dd>
788 1668
<dt id="sql_app.crud.get_device"><code class="name flex">
789 1669
<span>def <span class="ident">get_device</span></span>(<span>db: sqlalchemy.orm.session.Session, device_id: int)</span>
790 1670
</code></dt>
......
801 1681
    return db.query(models.Device).filter(models.Device.id == device_id).first()</code></pre>
802 1682
</details>
803 1683
</dd>
1684
<dt id="sql_app.crud.get_device_licenses"><code class="name flex">
1685
<span>def <span class="ident">get_device_licenses</span></span>(<span>db: sqlalchemy.orm.session.Session, device_id: int)</span>
1686
</code></dt>
1687
<dd>
1688
<div class="desc"><p>returns all entries in devices_licenses table with given device_id</p></div>
1689
<details class="source">
1690
<summary>
1691
<span>Expand source code</span>
1692
</summary>
1693
<pre><code class="python">def get_device_licenses(db: Session, device_id: int):
1694
    &#34;&#34;&#34;
1695
    returns all entries in devices_licenses table with given device_id
1696
    &#34;&#34;&#34;
1697
    return db.query(models.DeviceLicense).filter(models.DeviceLicense.device_id == device_id).all()</code></pre>
1698
</details>
1699
</dd>
1700
<dt id="sql_app.crud.get_devicelicense_by_devicelicense"><code class="name flex">
1701
<span>def <span class="ident">get_devicelicense_by_devicelicense</span></span>(<span>db: sqlalchemy.orm.session.Session, device_id: int, license_id: int)</span>
1702
</code></dt>
1703
<dd>
1704
<div class="desc"><p>returns entry in devices_licenses table with given device id and license id</p></div>
1705
<details class="source">
1706
<summary>
1707
<span>Expand source code</span>
1708
</summary>
1709
<pre><code class="python">def get_devicelicense_by_devicelicense(db: Session, device_id: int, license_id: int):
1710
    &#34;&#34;&#34;
1711
    returns entry in devices_licenses table with given device id and license id
1712
    &#34;&#34;&#34;
1713
    return db.query(models.DeviceLicense).filter(and_(models.DeviceLicense.device_id == device_id,
1714
                                                      models.DeviceLicense.license_id == license_id)).first()</code></pre>
1715
</details>
1716
</dd>
804 1717
<dt id="sql_app.crud.get_devices"><code class="name flex">
805 1718
<span>def <span class="ident">get_devices</span></span>(<span>db: sqlalchemy.orm.session.Session, skip: int = 0, limit: int = 100)</span>
806 1719
</code></dt>
......
817 1730
    return db.query(models.Device).offset(skip).limit(limit).all()</code></pre>
818 1731
</details>
819 1732
</dd>
1733
<dt id="sql_app.crud.get_devices_by_team"><code class="name flex">
1734
<span>def <span class="ident">get_devices_by_team</span></span>(<span>db: sqlalchemy.orm.session.Session, team: int)</span>
1735
</code></dt>
1736
<dd>
1737
<div class="desc"><p>returns all devices with same team</p></div>
1738
<details class="source">
1739
<summary>
1740
<span>Expand source code</span>
1741
</summary>
1742
<pre><code class="python">def get_devices_by_team(db: Session, team: int):
1743
    &#34;&#34;&#34;
1744
    returns all devices with same team
1745
    &#34;&#34;&#34;
1746
    return db.query(models.Device).filter(models.Device.team_id == team).all()</code></pre>
1747
</details>
1748
</dd>
1749
<dt id="sql_app.crud.get_devices_with_ids"><code class="name flex">
... Rozdílový soubor je zkrácen, protože jeho délka přesahuje max. limit.

Také k dispozici: Unified diff