def listpagelets(self,sessionuserid,pgts): # To simulate the query of a database , just adding known pagelet ids into a tuple print "\nPagelet List" printstr ="" newrow = {} colhead =[] for pgt in pgts: fieldset = pgt.acl(sessionuserid) newdict ={} for field in fieldset.keys(): if 'r' in list(fieldset[field]) or (fieldset[field] =='-w' and pgt.isauthor(sessionuserid)==True): fld = storedata.fetch_field(field) newdict[fld] = storedata.fetch_field_value(field, pgt.id) if fld not in colhead: colhead.append(fld) newrow[pgt.getid()] = newdict printstr += " " for eachcol in colhead: printstr += eachcol + " " printstr += "\n" for eachp in newrow.keys(): printstr += eachp + " " p = newrow[eachp] for eachcol in colhead: if eachcol in p.keys(): printstr += str(p[eachcol]) + " " printstr += "\n" print printstr
def view(self,sessionuserid): ''' For fields in cs, show readable fields ''' fieldset = self.acl(sessionuserid) #get field's by ID, retrieve the value associated and return #here's where persistence will come into play first #print "\nPagelet Field Access list" print "\nPagelet View for ", sessionuserid for field in fieldset.keys(): fld = storedata.fetch_field(field) #fld = cPickle.load(open(field + ".obj",'rb')) if 'r' in list(fieldset[field]) or (fieldset[field] =='-w' and self.isauthor(sessionuserid)==True): print "\n" + str(fld) + storedata.fetch_field_value(field, self.id)
def edit(self,sessionuserid): ''' For fields in cs, show editable fields ''' print "pagelet",sessionuserid fieldset = self.acl(sessionuserid) list_of_fields = [] for field in fieldset.keys(): var = storedata.fetch_field(field) if 'w' in list(fieldset[field]): ans = raw_input(var) list_of_fields.append(dict({field:ans})) else: list_of_fields.append({field: storedata.fetch_field_value(field, self.id) }) storedata.update_field(self.sessionuser, list_of_fields, self.id)