diff options
Diffstat (limited to 'provisioning-model.lua')
-rw-r--r-- | provisioning-model.lua | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/provisioning-model.lua b/provisioning-model.lua index f96da7e..61633d6 100644 --- a/provisioning-model.lua +++ b/provisioning-model.lua @@ -1191,8 +1191,16 @@ list_devices = function() -- Get the devices from the DB local res, err = pcall(function() local connected = databaseconnect() - local sql = "SELECT device_id FROM devices_to_classes GROUP BY device_id ORDER BY device_id ASC" - retval = getselectresponse(sql) + local sql = "SELECT device_id, c.label AS class, g.label AS group FROM devices_to_classes d2c JOIN provisioning_classes c USING(class_id) JOIN provisioning_class_groups g USING(class_group_id) ORDER BY device_id" + local tmp = getselectresponse(sql) + local reverse_device_id = {} + for i,d in ipairs(tmp) do + if not reverse_device_id[d.device_id] then + retval[#retval+1] = {device_id=d.device_id} + reverse_device_id[d.device_id] = #retval + end + retval[reverse_device_id[d.device_id]][d.group] = d.class + end if connected then databasedisconnect() end end) if not res and err then |