fixes for rec.get
[sface.git] / sface / screens / userscreen.py
index db0d3e7..4eb7793 100644 (file)
@@ -5,10 +5,10 @@ import pickle
 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.sfidata import SfiData
 
 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))
 
-        color = None
         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))
 
@@ -142,29 +139,23 @@ class UserModel(QStandardItemModel):
         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)
 
-            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)
 
-        i=0
-        while (os.path.exists(config.getAuthorityListFile(i))):
-            rec = self.readUserRecord(i)
-            if rec:
-                type = str(rec.get_type())
-                if (type == "user"):
-                    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()
 
@@ -191,15 +182,15 @@ class UserModel(QStandardItemModel):
             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']):
-                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
@@ -217,15 +208,6 @@ class UserModel(QStandardItemModel):
 
         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)
@@ -303,24 +285,6 @@ class UsersWidget(QWidget):
         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)
 
@@ -334,7 +298,7 @@ class UsersWidget(QWidget):
         if self.checkRunningProcess():
             return
 
-        rec = self.readSliceRecord()
+        rec = SfiData().getSliceRecord()
         change = self.userModel.updateRecord(rec)
 
         if not change:
@@ -366,11 +330,11 @@ class UsersWidget(QWidget):
     def refreshAuthority(self):
         self.connect(self.process, SIGNAL('finished()'), self.getAuthorityRecordFinished)
 
-        self.process.listRecords(config.getAuthority(), None, config.getAuthorityListFile())
+        self.process.listRecords(config.getAuthority(), None)
         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