fixed hazelnut checkbox management
[unfold.git] / manifold / metadata.py
index 0924ded..41a16f3 100644 (file)
@@ -16,9 +16,6 @@ class MetaData:
         self.auth=auth
         self.hash_by_object={}
 
-        # XXX Retrieve all metadata the first time we instanciate the class
-        self.fetch()
-
     def fetch (self):
         offline_filename="offline-metadata.json"
         if work_offline:
@@ -39,14 +36,21 @@ class MetaData:
             'object': 'local:object', # proposed to replace metadata:table
             'fields':     fields 
         })
-#old#        rows_result = manifold_api.Get('metadata:table', [], [], fields)
+
+        if row_results['code'] == 1: # warning
+            messages.warning(request, result['description'])
+        elif row_results['code'] == 2:
+            messages.error(request, result['description'])
+            # XXX FAIL HERE XXX
+
         rows = rows_result.ok_value()
-        if not rows:
-            print "Failed to retrieve metadata",rows_result.error()
-            rows=[]
+# API errors will be handled by the outer logic
+#        if not rows:
+#            print "Failed to retrieve metadata",rows_result.error()
+#            rows=[]
         self.hash_by_object = dict ( [ (row['table'], row) for row in rows ] )
         # save for next time we use offline mode
-        if debug:
+        if debug and rows:
             with file(offline_filename,'w') as f:
                 f.write(json.dumps(self.hash_by_object))
 
@@ -57,4 +61,8 @@ class MetaData:
         return self.hash_by_object[object]
 
     def sorted_fields_by_object (self, object):
-        return self.hash_by_object[object]['columns'].sort()
+        return self.hash_by_object[object]['column'].sort()
+
+    def get_field_type(self, object, field):
+        print "Temp fix for metadata::get_field_type() -> consider moving to manifold.core.metadata soon"
+        return field