|
20 | 20 | with open("config.yaml") as stream: |
21 | 21 | try: |
22 | 22 | admin_config = yaml.safe_load(stream) |
23 | | - BASE_CONFIG = admin_config["tables"] |
| 23 | + BASE_CONFIG = admin_config.get("tables") |
24 | 24 | except yaml.YAMLError as exc: |
25 | 25 | raise exc |
26 | 26 |
|
@@ -82,22 +82,41 @@ async def main(): |
82 | 82 | admin_tables = [] |
83 | 83 | for table in found_tables: |
84 | 84 | capitalize_table_name = table._meta.tablename.capitalize() |
| 85 | + # visible columns |
| 86 | + try: |
| 87 | + visible_columns = [ |
| 88 | + column |
| 89 | + for column in table._meta.columns |
| 90 | + if column._meta.name |
| 91 | + in BASE_CONFIG[capitalize_table_name].get( |
| 92 | + "visible_columns", None |
| 93 | + ) |
| 94 | + ] |
| 95 | + except TypeError: |
| 96 | + visible_columns = None |
| 97 | + # visible filters |
| 98 | + try: |
| 99 | + visible_filters = [ |
| 100 | + column |
| 101 | + for column in table._meta.columns |
| 102 | + if column._meta.name |
| 103 | + in BASE_CONFIG[capitalize_table_name].get( |
| 104 | + "visible_filters", None |
| 105 | + ) |
| 106 | + ] |
| 107 | + except TypeError: |
| 108 | + visible_filters = None |
| 109 | + # menu_group |
| 110 | + menu_group = BASE_CONFIG[capitalize_table_name].get( |
| 111 | + "menu_group", None |
| 112 | + ) |
| 113 | + |
85 | 114 | admin_tables.append( |
86 | 115 | TableConfig( |
87 | 116 | table_class=table, |
88 | | - visible_columns=[ |
89 | | - column |
90 | | - for column in table._meta.columns |
91 | | - if column._meta.name |
92 | | - in BASE_CONFIG[capitalize_table_name]["visible_columns"] |
93 | | - ], |
94 | | - visible_filters=[ |
95 | | - column |
96 | | - for column in table._meta.columns |
97 | | - if column._meta.name |
98 | | - in BASE_CONFIG[capitalize_table_name]["visible_filters"] |
99 | | - ], |
100 | | - menu_group=BASE_CONFIG[capitalize_table_name]["menu_group"], |
| 117 | + visible_columns=visible_columns, |
| 118 | + visible_filters=visible_filters, |
| 119 | + menu_group=menu_group, |
101 | 120 | ) |
102 | 121 | ) |
103 | 122 | else: |
@@ -125,6 +144,7 @@ async def main(): |
125 | 144 | secret_table=AuthenticatorSecret, |
126 | 145 | ), |
127 | 146 | ], |
| 147 | + sidebar_links=admin_config.get("sidebar_links", None), |
128 | 148 | ) |
129 | 149 |
|
130 | 150 | # Server |
|
0 commit comments