def send_content(self, request): '''Main loop for this view''' # get the meetings this user is in if request.session.user.superuser == '1': #the superuser gets sent straight to the Administrator page #pm_meetings = Directory.get_meetings() #meetings = [] self.forward_to_superuser(request) else: pm_meetings = [] meetings = [] for meeting in Directory.get_meetings(): if Directory.get_group(meeting.id, request.session.user.id) != None: if self.user_is_pm(meeting, request.session.user.id): pm_meetings.append(meeting) else: meetings.append(meeting) # send to the appropriate page if len(meetings)+len(pm_meetings) == 0: #and request.session.user.superuser != '1': #superuser is now redirected before this line self.no_meetings(request) elif len(meetings)+len(pm_meetings) == 1: #and request.session.user.superuser != '1': #superuser is now redirected before this line if len(meetings) == 1: self.forward_to_meeting(request, meetings[0]) else: #self.forward_to_meeting(request, pm_meetings[0]) self.forward_to_pm(request, pm_meetings[0]) else: self.show_meetings(request, meetings, pm_meetings)
def meetings_page(self, request): '''Shows the meetings (embedded in the main page table)''' request.writeln('<div class="module"><h1>Programs</h1>') # current meetings request.writeln(''' <div align="center" name="meetingselect" id="meetingselect"> <div id="meetinglist"> ''') meetings = Directory.get_meetings() meetings.sort(lambda a,b: cmp(a.name, b.name)) for meeting in meetings: request.writeln('''<div class="progBox"> <span style="display:none;" id="meetinginfo_''' + meeting.id + '''">''' + str(meeting.id) + '''/''' + meeting.view + '''/''' + meeting.name + '''</span> <span style="float:left;">'''+meeting.name+'''</span> <span style="float:right;"> <a class="ui-icon ui-icon-pencil" href='javascript:editMeeting("''' + meeting.id + '''");'></a> <a class="ui-icon ui-icon-closethick" href='javascript:deleteMeeting("''' + meeting.id + '''");'></a> <a class="ui-icon ui-icon-plusthick" href='javascript:renameMeeting("''' + meeting.id + '''");'></a> </span> </div> ''') request.writeln('''</div><br/> <center> <div id="programFormDialog" style="display:none;" title="Create New Program"> ''' + request.cgi_form(_adminaction='newmeeting', meetingname=None, meetingview=None, meetingusers=None, name='npForm') + ''' <select style="display:none;" name="meetingview"><option value="poet">POET Acquisition Collaboration</option></select> <table border=0 style="height:100%;padding:10px;"> <tr> <td>Name:</td><td><input type="text" name="meetingname" size="20" /></td> </tr> <tr> <td>Users:</td><td><select name="meetingusers" multiple size="5"> ''') users = Directory.get_users() users.sort(lambda a,b: cmp(a.username, b.username)) for user in users: request.writeln('''<option id="'''+ user.id + '''">''' + user.name + '''</option>''') request.writeln(''' </select></td> </tr> <tr> <td><input type="submit" id="newProgram" value="Create" onclick="document.npForm.submit();" /></td><td><input type="button" id="cancelNP" value="Cancel" /></td> </tr> </table> </form> </div> <input type="button" id="createNP" value="Create New Program"></input> </center> </div> </div> ''')
def meetings_page(self, request): '''Shows the meetings (embedded in the main page table)''' request.writeln('<center><div class="i">Programs:</div></center>') # current meetings request.writeln(''' <p align="center"> <select name="meetingselect" id="meetingselect" size="15"> ''') meetings = Directory.get_meetings() meetings.sort(lambda a,b: cmp(a.name, b.name)) for meeting in meetings: request.writeln('<option selected value="' + meeting.id + '/' + meeting.view + '/' + meeting.name + '">' + meeting.name + '</option>') request.writeln(''' </select> </p> <p align="center"> <a href="javascript:openMeeting();">Open</a> | <a href="javascript:editMeeting();">Edit</a> | <a href="javascript:exportMeeting();">Export</a> | <a href="javascript:copyMeeting();">Copy</a> | <a href="javascript:renameMeeting();">Rename</a> | <a href="javascript:deleteMeeting();">Delete</a> </p> <hr> ''' + request.cgi_form(_adminaction='newmeeting', meetingname=None, meetingview=None) + ''' New Program: <center> <table border=0> <tr> <td>New Program Name:</td> <td><input type="text" name="meetingname" size="20"></td> </tr><tr> <td>New Program Type:</td> <td> <select name="meetingview"> ''') for name in top_level_components: view = BaseView.views[name] request.writeln('<option value="' + name + '">' + html(view.NAME) + '</option>') request.writeln(''' </select> </td> </tr> </table> <input type="submit" value="Create New Program"> </form> </center> <hr> ''' + request.cgi_multipart_form(global_rootid=Directory.meetings_item.id, global_adminview='MeetingHome', _mhaction='import', importfile=None) + ''' Import Program: <center> <table border=0> <tr> <td>Import File:</td> <td><input type="file" name="subaction"></td> </tr> </table> <input type="submit" value="Import"> </form> </center> <hr> <p> * Notes about Exporting: <br> 1. Programs are saved in XML format. Information for all users is included with each export. The structure can be inferred from the XML (sorry, no explicit DTD or Schema). <br> 2. Export files are gzipped to reduce bandwidth. <i>Please save the download with a <b>.gz</b> extension</i>. Programs such as WinZip (Windows) or gunzip (Mac/Unix/Linux) can read gzipped files. </p> ''')