1. Python / Говнокод #11794

    −96

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    dash = []
    for row in menuconf.dashboard:
        _row = []
        for col in row:
            _col = [col[0]]
            for endpoint in col[1:]:
                if endpoint in streams.endpoints:
                    s = streams.endpoints[endpoint]
                    if issubclass(type(s), Stream):
                        if s.has_permission(request, 'x'):
                            _col.append(endpoint)
                    else:
                        _col.append(endpoint)
                else:
                    if type(endpoint) is tuple:
                        add_pair = False
                        for e in endpoint:
                            if e in streams.endpoints:
                                s = streams.endpoints[e]
                                if issubclass(type(s), Stream):
                                    if s.has_permission(request, 'x'):
                                        add_pair = True
                        if add_pair:
                            _col.append(endpoint)
                    else:
                        _col.append(endpoint)
            if len(_col) > 1:
                _row.append(_col)
        if _row:
            dash.append(_row)

    Запостил: ods, 18 Сентября 2012

    Комментарии (3) RSS

    • Что это и в чем говно.
      Ответить
      • Какая-то жесть. Перебор словаря сделан очень забавно: проходим по ключам и таскаем значения по ключу вместо итерации по endpoints.items(). Плюс сомнительные манипуляции с type и issubclass, противоречащие идеологии утиной типизации.
        Видимо, происходит фильтрация таблицы неких потоков/эндпоинтов по признаку наличия прав... выполнения?
        Ответить
    • Это дашбоард админки. Типа-DSL на основе вложенных тюплов, из которых формируется HTML-таблица. Выкидываются те пункты меню, на которые нет прав у текущего редактора.
      Ответить

    Добавить комментарий