예제 #1
0
    def test_addRetrieveWebsite(self):
        ra = F.addResearchGroup("Beer drinkers anonymous")
        db.put(ra)

        auth1 = F.addName("Author", "One")
        auth2 = F.addName("Author", "Two")

        auth1_key = db.put(auth1)
        auth2_key = db.put(auth2)

        auths = [auth1, auth2]

        w = F.addWebsite("http://beer.com", ra, auths)

        self.assert_(w.address == "http://beer.com")
        self.assert_(w.group.name == "Beer drinkers anonymous")
        # self.assert_(len(w.authors) == 2)
        self.assert_(auth1_key in w.authors and auth2_key in w.authors)

        w_key = db.put(w)

        w = db.get(w_key)

        self.assert_(w.address == "http://beer.com")
        self.assert_(w.group.name == "Beer drinkers anonymous")
        # self.assert_(len(w.authors) == 2)
        self.assert_(auth1_key in w.authors and auth2_key in w.authors)
예제 #2
0
        def put_websites(websites):
            """
			adds Website records to DB from a list of xml website tags
		
			Keyword arguments:
			websites -- list of website xml tags
		
			no return
			"""
            group_list = []
            website_list = []

            if websites is not None:
                for website in websites:

                    url = get_text(website.find('url'))
                    group = get_text(website.find('group'))
                    group = Faculty3.addResearchGroup(group)

                    group_list.append(group)
                    authors = website.findall('author')

                    author_list = put_names(authors)
                    website_list.append(
                        Faculty3.addWebsite(url, group, author_list))

            for g in group_list:
                db.put(g)

            return website_list
예제 #3
0
파일: Import.py 프로젝트: saadfsti/class
		def put_websites(websites):
			"""
			adds Website records to DB from a list of xml website tags
		
			Keyword arguments:
			websites -- list of website xml tags
		
			no return
			"""
			group_list = []
			website_list = []
			
			if websites is not None:
				for website in websites:
		
					url = get_text(website.find('url'))
					group = get_text(website.find('group'))
					group = Faculty3.addResearchGroup(group)
					
					group_list.append(group)
					authors = website.findall('author')
					
					author_list = put_names(authors)
					website_list.append(Faculty3.addWebsite(url, group, author_list))
			
			for g in group_list:
				db.put(g)
				
			return website_list
예제 #4
0
    def post(self):
        '''
		Put all the submitted data into the data store and redirect to the person's page.
		@param self
		'''
        # Get the person's key from the query string and make it a Key object
        key = self.request.get('key')
        key = db.Key(key)

        # Get the person from the database
        person = db.get(key)

        # NAME
        name = {
            'first': self.request.get('name.first'),
            'middle': self.request.get('name.middle'),
            'last': self.request.get('name.last'),
            'suffix': self.request.get('name.suffix')
        }
        person.name = Faculty3.addName(**name)

        # USERNAME
        person.username = self.request.get('username')

        # TITLE / STATUS
        if person.kind() == 'Faculty':
            person.title = self.request.get('title')
        else:
            assert person.kind() == 'Student'
            person.status = self.request.get('status')

        # EMAILS
        emails = []
        for argument in self.request.arguments():
            if argument.startswith('email-') and self.request.get(
                    argument + '-toggle') == 'on':
                email = self.request.get(argument)
                emails.append(db.Email(email))
        person.emails = emails

        # WEBSITES
        websites = set()
        for argument in self.request.arguments():
            if argument.startswith('website-') and self.request.get(
                    argument + '-toggle') == 'on':
                address = self.request.get(argument)
                group = self.request.get(argument + '-group')
                group = db.get(group)
                website = Faculty3.addWebsite(address, group, [person.name])
                website = db.put(website)
                websites.add(website)
        person.websites = list(websites)

        # RESEARCH AREAS
        research_areas = set()
        for argument in self.request.arguments():
            if argument.startswith('research_area-') and self.request.get(
                    argument + '-toggle') == 'on':
                research_area = self.request.get(argument)
                research_area = db.Key(research_area)
                research_areas.add(research_area)
        person.research_areas = list(research_areas)

        # RESEARCH GROUPS
        research_groups = set()
        for argument in self.request.arguments():
            if argument.startswith('research_group-') and self.request.get(
                    argument + '-toggle') == 'on':
                research_group = self.request.get(argument)
                research_group = db.Key(research_group)
                research_groups.add(research_group)
        person.research_groups = list(research_groups)

        # Commit all changes to the data store and redirect to the person's page
        db.put(person)
        self.redirect('/view/person?key=' + str(key))
예제 #5
0
	def post (self):
		'''
		Put all the submitted data into the data store and redirect to the person's page.
		@param self
		'''
		# Get the person's key from the query string and make it a Key object
		key = self.request.get('key')
		key = db.Key(key)
		
		# Get the person from the database
		person = db.get(key)
		
		# NAME
		name = {
			'first' : self.request.get('name.first'),
			'middle' : self.request.get('name.middle'),
			'last' : self.request.get('name.last'),
			'suffix' : self.request.get('name.suffix')
		}
		person.name = Faculty3.addName(**name)
		
		# USERNAME
		person.username = self.request.get('username')
		
		# TITLE / STATUS
		if person.kind() == 'Faculty':
			person.title = self.request.get('title')
		else:
			assert person.kind() == 'Student'
			person.status = self.request.get('status')
		
		# EMAILS
		emails = []
		for argument in self.request.arguments():
			if argument.startswith('email-') and self.request.get(argument + '-toggle') == 'on':
				email = self.request.get(argument)
				emails.append(db.Email(email))
		person.emails = emails
		
		# WEBSITES
		websites = set()
		for argument in self.request.arguments():
			if argument.startswith('website-') and self.request.get(argument + '-toggle') == 'on':
				address = self.request.get(argument)
				group = self.request.get(argument + '-group')
				group = db.get(group)
				website = Faculty3.addWebsite(address, group, [person.name])
				website = db.put(website)
				websites.add(website)
		person.websites = list(websites)
		
		# RESEARCH AREAS
		research_areas = set()
		for argument in self.request.arguments():
			if argument.startswith('research_area-') and self.request.get(argument + '-toggle') == 'on':
				research_area = self.request.get(argument)
				research_area = db.Key(research_area)
				research_areas.add(research_area)
		person.research_areas = list(research_areas)
		
		# RESEARCH GROUPS
		research_groups = set()
		for argument in self.request.arguments():
			if argument.startswith('research_group-') and self.request.get(argument + '-toggle') == 'on':
				research_group = self.request.get(argument)
				research_group = db.Key(research_group)
				research_groups.add(research_group)
		person.research_groups = list(research_groups)
		
		# Commit all changes to the data store and redirect to the person's page
		db.put(person)
		self.redirect('/view/person?key=' + str(key))