def saveProject(self, form):
		
		db = self.__db
		cursor = self.__cursor
		hostname = self.__hostname
		
		#print "Content-type:text/html"		# TEMPORARY, REMOVE AFTER DEBUGGING TO HAVE SCRIPT REDIRECT PROPERLY!!!!!!
		#print					# DITTO
		#print `form`
		
		# Handlers
		pHandler = ProjectDatabaseHandler(db, cursor)
		uHandler = UserHandler(db, cursor)
		
		# Get project ID from form
		projectID = form.getvalue("packetID")
		ownerID = form.getvalue("packetOwner")

		# get owner's name
		packetOwner = uHandler.getUserByID(ownerID)

		packetName = form.getvalue("packetName")
		packetDescription = form.getvalue("packetDescription")

		# private or public
		if form.getvalue("private_or_public") == "public":
			isPrivate = False
		else:
			isPrivate = True
		
		# Lists of project readers & editors
		# Updated Sept. 3/08: Do NOT save readers for a public project
		if isPrivate:
			projectReaderIDs = form.getlist("readersList")
		else:
			projectReaderIDs = []
			
		# writers are always needed
		projectWriterIDs = form.getlist("writersList")
		
		projectReaders = []
		projectWriters = []

		for rID in projectReaderIDs:
			tmpReader = uHandler.getUserByID(rID)
			projectReaders.append(tmpReader)

		for wID in projectWriterIDs:
			tmpWriter = uHandler.getUserByID(wID)
			
			# check categories - a Reader cannot be given Write access to a project
			if tmpWriter.getCategory() != 'Reader':
				projectWriters.append(tmpWriter)
			
			#projectWriters.append(tmpWriter)

		# Update database values
		pHandler.updatePacket(projectID, ownerID, packetName, packetDescription, isPrivate, projectReaderIDs, projectWriterIDs)

		# Output new values
		newProject = Packet(projectID, packetName, packetDescription, packetOwner, isPrivate, projectReaders, projectWriters)
		
		self.showProjectDetails('view', newProject)
    def saveProject(self, form):

        db = self.__db
        cursor = self.__cursor
        hostname = self.__hostname

        #print "Content-type:text/html"		# TEMPORARY, REMOVE AFTER DEBUGGING TO HAVE SCRIPT REDIRECT PROPERLY!!!!!!
        #print					# DITTO
        #print `form`

        # Handlers
        pHandler = ProjectDatabaseHandler(db, cursor)
        uHandler = UserHandler(db, cursor)

        # Get project ID from form
        projectID = form.getvalue("packetID")
        ownerID = form.getvalue("packetOwner")

        # get owner's name
        packetOwner = uHandler.getUserByID(ownerID)

        packetName = form.getvalue("packetName")
        packetDescription = form.getvalue("packetDescription")

        # private or public
        if form.getvalue("private_or_public") == "public":
            isPrivate = False
        else:
            isPrivate = True

        # Lists of project readers & editors
        # Updated Sept. 3/08: Do NOT save readers for a public project
        if isPrivate:
            projectReaderIDs = form.getlist("readersList")
        else:
            projectReaderIDs = []

        # writers are always needed
        projectWriterIDs = form.getlist("writersList")

        projectReaders = []
        projectWriters = []

        for rID in projectReaderIDs:
            tmpReader = uHandler.getUserByID(rID)
            projectReaders.append(tmpReader)

        for wID in projectWriterIDs:
            tmpWriter = uHandler.getUserByID(wID)

            # check categories - a Reader cannot be given Write access to a project
            if tmpWriter.getCategory() != 'Reader':
                projectWriters.append(tmpWriter)

            #projectWriters.append(tmpWriter)

        # Update database values
        pHandler.updatePacket(projectID, ownerID, packetName,
                              packetDescription, isPrivate, projectReaderIDs,
                              projectWriterIDs)

        # Output new values
        newProject = Packet(projectID, packetName, packetDescription,
                            packetOwner, isPrivate, projectReaders,
                            projectWriters)

        self.showProjectDetails('view', newProject)