def main(): name = ShowQueue.init_log('DisplayVersions') ryw_view.print_header_logo() print '<TITLE>Display All Versions</TITLE>' form = cgi.FieldStorage() objID = form.getfirst('objid', '') if not objID: ryw.give_bad_news( 'DisplayVersions: no objID given.', logging.error) exit_now(1) else: ryw.db_print_info_browser('DisplayVersions: objID = ' + objID, 32) success,searchFile,reverseLists = \ ReverseLists.open_searchfile_reverselists( 'DisplaySelection.main:') if not success: exit_now(1) print_title() success,allVersions = searchFile.get_all_version_meta(objID) if not success: ryw.give_bad_news( 'DisplayVersion: searchFile.get_all_version_meta failed: ' + objID, logging.error) exit_now(1) numVers = len(allVersions) if numVers < 1: ryw.give_bad_news( 'DisplayVersions: no version found.', logging.error) exit_now(1) metaList = allVersions.values() ryw.db_print_info_browser('DisplayVersions: ' + repr(metaList), 32) metaList = ryw.sortmeta(metaList) displayObject = ryw_view.DisplayObject( RepositoryRoot, calledByVillageSide = False, missingFileFunc = Browse.reqDownloadFunc, searchFile = searchFile, reverseLists = reverseLists) print "<BR><B><FONT SIZE=2>Displaying " + str(numVers) + \ " version(s) of the object.</FONT></B>" displayObject.begin_print() for meta in metaList: displayObject.show_an_object_compact(meta) displayObject.end_print() ryw_view.print_footer() reverseLists.done() searchFile.done()
def generate(self): """Main Browse View function.""" ryw.print_header() self.print_initialHTML() form = cgi.FieldStorage() # setup_logging() viewroot = form.getfirst('viewroot', '') if not viewroot: ryw.give_bad_news('viewroot not found',logging.error) sys.exit(1) ryw.db_print2('Browse.generate: viewroot is: ' + viewroot, 61) if viewroot[-1] == os.sep: viewroot = viewroot[:-1] relpath = form.getfirst('relpath', os.sep) ryw.db_print2('Browse.generate: relpath1: ' + relpath, 61) relpath = ryw_bizarro.fix_browse_rel_path(relpath) ryw.db_print2('Browse.generate: relpath2: ' + relpath, 61) if relpath[0] != os.sep: relpath = os.sep + relpath if relpath[-1] != os.sep: relpath = relpath + os.sep ryw.db_print2('Browse.generate: relpath3: ' + relpath, 61) path = viewroot + relpath self.viewroot = viewroot self.relpath = relpath # path must be a directory if not os.path.exists(path): ryw.give_news('path no longer exists: ' + path, logging.warning) sys.exit(1) ll = os.listdir(path) #success,searchFile = ryw.open_search_file( # self.scriptName + ':', self.logDir, self.logFile, # self.searchFile, False) #if not success: # sys.exit(1) count=0 title = relpath[1:-1] title = title.replace("\\"," » ") #print "<H2>The Digital StudyHall</H2>" ryw_view.print_logo() if title != "": print "<H3> content repository: %s </H3>" % (title,) else: print "<H3> content repository: </H3>" print "<TABLE border=0 width=100%><TR>" for i in ll: if not os.path.isfile(path+i): print '<td width=20%%><A HREF="%s?viewroot=%s&relpath=%s%s"><img src="/icons/folder.gif" border=0><br>%s</A></td>' % (self.scriptName,viewroot,relpath,i,i) count += 1 if (count == 5): print "</TR><TR>" count = 0 while (count < 5): print "<td width=20%> </td>" count += 1 print "</TR></TABLE>" metalist = [] for i in ll: if os.path.isfile(path + i): # get its metadata from server and add option # for 'add to downloadqueue' f = open(path + i) line = f.readline() f.close() if line[-1] == '\n': line = line[:-1] objname, version = line.split('#') version = int(version) #success,d = searchFile.get_meta(objname, # version) success,d = ryw.get_meta(self.absObjStoreRoot, objname, version) if not success: logging.warning( self.scriptName + ': get_meta failed: ' + objname + ' ' + str(version)) continue metalist.append(d) metalist = ryw.sortmeta(metalist) success,searchFile,reverseLists = \ ReverseLists.open_searchfile_reverselists( 'Browse.generate:') if not success: sys.exit(1) displayObject = ryw_view.DisplayObject( self.Root, calledByVillageSide = self.calledByVillageSide, missingFileFunc = reqDownloadFunc, searchFile = searchFile, reverseLists = reverseLists) displayObject.begin_print() for i in metalist: #self.generate_row(d) displayObject.show_an_object_compact(i) displayObject.end_print() self.print_footer() searchFile.done() reverseLists.done()