fixes for rec.get
[sface.git] / sface / screens / userscreen.py
index 479c6eb..4eb7793 100644 (file)
@@ -5,10 +5,10 @@ import pickle
 from PyQt4.QtCore import *
 from PyQt4.QtGui import *
 
 from PyQt4.QtCore import *
 from PyQt4.QtGui import *
 
-from sfa.util.record import SfaRecord, SliceRecord, AuthorityRecord, UserRecord
 from sface.config import config
 from sface.sfiprocess import SfiProcess
 from sface.screens.sfascreen import SfaScreen
 from sface.config import config
 from sface.sfiprocess import SfiProcess
 from sface.screens.sfascreen import SfaScreen
+from sface.sfidata import SfiData
 
 NAME_COLUMN = 0
 #ROLE_COLUMN = 1
 
 NAME_COLUMN = 0
 #ROLE_COLUMN = 1
@@ -67,13 +67,10 @@ class UserNameDelegate(QStyledItemDelegate):
         if option.state & QStyle.State_Selected:
             painter.fillRect(option.rect, option.palette.color(QPalette.Active, QPalette.Highlight))
 
         if option.state & QStyle.State_Selected:
             painter.fillRect(option.rect, option.palette.color(QPalette.Active, QPalette.Highlight))
 
-        color = None
         for x in user_status.keys():
             if (user_status[x] == status_data) and (x in color_status):
         for x in user_status.keys():
             if (user_status[x] == status_data) and (x in color_status):
-                color = color_status[x]
+                painter.fillPath(path, color_status[x])
 
 
-        if color != None:
-            painter.fillPath(path, color)
         painter.setPen(QColor.fromRgb(0, 0, 0))
         painter.drawText(textRect, Qt.AlignVCenter, QString(data))
 
         painter.setPen(QColor.fromRgb(0, 0, 0))
         painter.drawText(textRect, Qt.AlignVCenter, QString(data))
 
@@ -127,7 +124,6 @@ class UserView(QTableView):
         model = current.model()
         node_index = model.index(current.row(), 0, current.parent())
         node_data = node_index.data().toString()
         model = current.model()
         node_index = model.index(current.row(), 0, current.parent())
         node_data = node_index.data().toString()
-        self.emit(SIGNAL('hostnameClicked(QString)'), node_data)
 
     def hideUnusableColumns(self):
         self.hideColumn(SERVER_MEMBERSHIP_STATUS_COLUMN)
 
     def hideUnusableColumns(self):
         self.hideColumn(SERVER_MEMBERSHIP_STATUS_COLUMN)
@@ -143,27 +139,23 @@ class UserModel(QStandardItemModel):
         slice_persons = []
 
         if sliceRec:
         slice_persons = []
 
         if sliceRec:
-            #for pi in sliceRec.get_field("PI", default=[]):
+            #for pi in sliceRec.get("PI", []):
             #    name = str(pi)
             #    if not name in added_persons:
             #         slice_persons.append({"name": name, "role": "PI", "member": user_status["in"]})
             #         added_persons.append(name)
 
             #    name = str(pi)
             #    if not name in added_persons:
             #         slice_persons.append({"name": name, "role": "PI", "member": user_status["in"]})
             #         added_persons.append(name)
 
-            for researcher in sliceRec.get_field("researcher", default=[]):
+            for researcher in sliceRec.get("researcher", []):
                 name = str(researcher)
                 if not name in added_persons:
                      slice_persons.append({"name": name, "role": "researcher", "member": user_status["in"]})
                      added_persons.append(name)
 
                 name = str(researcher)
                 if not name in added_persons:
                      slice_persons.append({"name": name, "role": "researcher", "member": user_status["in"]})
                      added_persons.append(name)
 
-        i=0
-        while (os.path.exists(config.getAuthorityListFile(i))):
-            rec = self.readUserRecord(i)
-            if rec:
-                name = str(rec.get_name())
-                if not name in added_persons:
-                    slice_persons.append({"name": name, "role": "", "member": user_status["out"]})
-                    added_persons.append(name)
-            i=i+1
+        userNames = SfiData().getAuthorityHrns(type="user")
+        for name in userNames:
+            if not name in added_persons:
+                slice_persons.append({"name": name, "role": "", "member": user_status["out"]})
+                added_persons.append(name)
 
         rootItem = self.invisibleRootItem()
 
 
         rootItem = self.invisibleRootItem()
 
@@ -190,15 +182,15 @@ class UserModel(QStandardItemModel):
             childStatus = str(item.child(row, MEMBERSHIP_STATUS_COLUMN).data(Qt.DisplayRole).toString())
 
             if (childStatus == user_status['add']):
             childStatus = str(item.child(row, MEMBERSHIP_STATUS_COLUMN).data(Qt.DisplayRole).toString())
 
             if (childStatus == user_status['add']):
-                researcher = slicerec.get_field("researcher", [])
+                researcher = slicerec.get("researcher", [])
                 researcher.append(childName)
                 slicerec["researcher"] = researcher
                 change = True
             elif (childStatus == user_status['remove']):
                 researcher.append(childName)
                 slicerec["researcher"] = researcher
                 change = True
             elif (childStatus == user_status['remove']):
-                if childName in slicerec.get_field("PI"):
-                     slicerec.get_field("PI").remove(childName)
-                if childName in slicerec.get_field("researcher"):
-                     slicerec.get_field("researcher").remove(childName)
+                if childName in slicerec.get("PI"):
+                     slicerec.get("PI").remove(childName)
+                if childName in slicerec.get("researcher"):
+                     slicerec.get("researcher").remove(childName)
                 change = True
 
         return change
                 change = True
 
         return change
@@ -216,15 +208,6 @@ class UserModel(QStandardItemModel):
 
         return researchers
 
 
         return researchers
 
-    def readUserRecord(self, i):
-        rec_file = config.getAuthorityListFile(i)
-        if os.path.exists(rec_file):
-            xml = open(rec_file).read()
-            rec = UserRecord()
-            rec.load_from_string(xml)
-            return rec
-        return None
-
 class UsersWidget(QWidget):
     def __init__(self, parent):
         QWidget.__init__(self, parent)
 class UsersWidget(QWidget):
     def __init__(self, parent):
         QWidget.__init__(self, parent)
@@ -302,24 +285,6 @@ class UsersWidget(QWidget):
         else:
             self.setStatus("<font color='red'>Authority rec refresh error: %s</font>" % (faultString))
 
         else:
             self.setStatus("<font color='red'>Authority rec refresh error: %s</font>" % (faultString))
 
-    def readSliceRecord(self):
-        rec_file = config.getSliceRecordFile()
-        if os.path.exists(rec_file):
-            xml = open(rec_file).read()
-            rec = SliceRecord()
-            rec.load_from_string(xml)
-            return rec
-        return None
-
-    def readAuthorityRecord(self):
-        rec_file = config.getAuthorityRecordFile()
-        if os.path.exists(rec_file):
-            xml = open(rec_file).read()
-            rec = AuthorityRecord()
-            rec.load_from_string(xml)
-            return rec
-        return None
-
     def setStatus(self, msg, timeout=None):
         self.parent().setStatus(msg, timeout)
 
     def setStatus(self, msg, timeout=None):
         self.parent().setStatus(msg, timeout)
 
@@ -333,7 +298,7 @@ class UsersWidget(QWidget):
         if self.checkRunningProcess():
             return
 
         if self.checkRunningProcess():
             return
 
-        rec = self.readSliceRecord()
+        rec = SfiData().getSliceRecord()
         change = self.userModel.updateRecord(rec)
 
         if not change:
         change = self.userModel.updateRecord(rec)
 
         if not change:
@@ -365,11 +330,11 @@ class UsersWidget(QWidget):
     def refreshAuthority(self):
         self.connect(self.process, SIGNAL('finished()'), self.getAuthorityRecordFinished)
 
     def refreshAuthority(self):
         self.connect(self.process, SIGNAL('finished()'), self.getAuthorityRecordFinished)
 
-        self.process.listRecords(config.getAuthority(), "user", config.getAuthorityListFile())
+        self.process.listRecords(config.getAuthority(), None)
         self.setStatus("Refreshing user records. This will take some time...")
 
     def updateView(self):
         self.setStatus("Refreshing user records. This will take some time...")
 
     def updateView(self):
-        sliceRec = self.readSliceRecord()
+        sliceRec = SfiData().getSliceRecord()
 
         if not sliceRec:
             # wait until we've resolved the slicerecord before displaying
 
         if not sliceRec:
             # wait until we've resolved the slicerecord before displaying