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)
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
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
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))
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))