Completed
Push — master ( a4011e...739b7a )
by Glenn
49s
created

order_checklist_items()   D

Complexity

Conditions 8

Size

Total Lines 27

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 8
c 1
b 0
f 0
dl 0
loc 27
rs 4
1
from skf.database import db
0 ignored issues
show
Unused Code introduced by
Unused db imported from skf.database
Loading history...
2
from skf.api.security import log, val_num, val_float
3
from skf.database.checklists import checklists
0 ignored issues
show
Unused Code introduced by
Unused checklists imported from skf.database.checklists
Loading history...
4
from skf.database.checklists_kb import checklists_kb
5
6
7
def get_checklist_item(checklist_id):
8
    log("User requested specific checklist item", "LOW", "PASS")
9
    val_float(checklist_id)
10
   
11
    result = checklists_kb.query.filter(checklists_kb.checklistID == checklist_id).one()
12
    return result
13
14
15
def get_checklist_items():
16
    log("User requested list of checklist items", "LOW", "PASS")
17
    result = checklists_kb.query.group_by(checklists_kb.checklistID).paginate(1, 1500, False)
18
    return order_checklist_items(result)
19
20
21
def get_checklist_items_lvl(lvl):
22
    log("User requested list of checklist items based on level", "LOW", "PASS")
23
    val_num(lvl)
24
    if lvl == 1:
25
        result = checklists_kb.query.filter(checklists_kb.checklist_items.has(level = 0) | checklists_kb.checklist_items.has(level = 1)).group_by(checklists_kb.checklistID).paginate(1, 1500, False)
26
    elif lvl == 2:
27
        result = checklists_kb.query.filter(checklists_kb.checklist_items.has(level = 0) | checklists_kb.checklist_items.has(level = 1) | checklists_kb.checklist_items.has(level = 2)).group_by(checklists_kb.checklistID).paginate(1, 1500, False)
28
    elif lvl == 3:
29
        result = checklists_kb.query.filter(checklists_kb.checklist_items.has(level = 0) | checklists_kb.checklist_items.has(level = 1) | checklists_kb.checklist_items.has(level = 2) | checklists_kb.checklist_items.has(level = 3)).group_by(checklists_kb.checklistID).paginate(1, 1500, False)
30
    return order_checklist_items(result)
31
32
33
def order_checklist_items(checklist_items):
34
    ordered_checklist_items = []
35
    for item in checklist_items.items:
36
        numbers = item.checklistID.split('.')
37
        category = int(numbers[0])
38
        category_requirement = int(numbers[1])
39
        if (len(ordered_checklist_items) == 0):
40
            ordered_checklist_items.append(item)
41
        else:
42
            y = 0
43
            while y < len(ordered_checklist_items):
44
                numbers_ordered = ordered_checklist_items[y].checklistID.split('.')
45
                category_ordered = int(numbers_ordered[0])
46
                category_requirement_ordered = int(numbers_ordered[1])
47
                if (category < category_ordered):
48
                    ordered_checklist_items.insert(y, item)
49
                    break
50
                else:
51
                    if (category == category_ordered):
52
                        if (category_requirement < category_requirement_ordered):
53
                            ordered_checklist_items.insert(y, item)
54
                            break
55
                y = y + 1
56
            if (y == len(ordered_checklist_items)):
57
                ordered_checklist_items.insert(y, item)
58
    checklist_items.items = ordered_checklist_items
59
    return checklist_items
60
61