def dict_ajax(self): selected = request.POST.getone("selected") deselected = request.POST.getone("deselected") sid_hash = request.POST.getone("sid_hash") if selected: like = model.Like(sid_hash, selected) Session.save(like) Session.commit() if deselected: unliked = Session.query(model.Like).filter_by(sid_hash=sid_hash, item=deselected).first() print unliked Session.delete(unliked) Session.commit() all_likes = [] for row in Session.query(model.Like.item).filter_by(sid_hash=sid_hash): all_likes.append(row[0]) print all_likes suggestions = [] c.recs = [] if len(all_likes) > 0: for suggestion in g.rec.suggest(all_likes): if suggestion[0] in g.teams: suggestions.append(suggestion[0]) c.recs = suggestions[:3] return render("/xml_recs.mak")
def ajax(self): selected = request.POST.getone("selected").lower() deselected = request.POST.getone("deselected").lower() print "---!!!###!!!---" print selected print deselected sid_hash = request.POST.getone("sid_hash") recomender = dbRecomender() if selected: recomender.add_by_sid(sid_hash, selected) if deselected: print "$$$$$$$$$$$\ndeselecting%s\n$$$$$$$$$$$$$$$" % deselected recomender.remove_by_sid(sid_hash, deselected) recomendations = recomender.recomend_by_sid(sid_hash) c.recs = map(lambda x: x[0], recomendations) c.recs = c.recs[:3] c.avail = [] for selection in Session.query(model.Interaction).filter_by(sid_hash=sid_hash).first().choices: for avail in selection.available_choices: if avail.choice.id not in c.recs: c.avail.append(avail.choice.id) response.content_type = "text/xml" r = render("/xml_recs.mak") print r return r
def update_available(self): if 'selected' in request.POST: for avail in meta.Session.query(model.AvailableChoice): meta.Session.delete(avail) selected = request.POST.getone('selected') availables = defaultdict(list) for selection in (s for s in selected.split(';') if s): major,team = map(int,selection.split(',')) availables[major].append(team) for major, choices in availables.iteritems(): suggestable = meta.Session.query(model.Suggestable).filter_by(id=major).first() suggestable.available_choices = [ model.AvailableChoice(team) for team in choices ] meta.Session.add(suggestable) print '\n\n################################' print suggestable print suggestable.available_choices meta.Session.commit() return "Update Successful" else: c.avail_for = defaultdict(list) c.teams = meta.Session.query(model.Category).filter(model.Category.name == 'team').first().members c.teams.sort(key=lambda s:s.name) c.schools = meta.Session.query(model.Category).filter(model.Category.name != 'team') for team, major in [( major.id, avail.choice.id) for school in c.schools for major in school.members for avail in major.available_choices]: print "\n\n$$$$$$$$$$$$$$$$$$$$$$$$$" print team, major c.avail_for[team].append(major) print c.avail_for return render('update_available.mak')
def parse_choices(self): known_names = {} if 'unknown_aliases' in session: for unknown_alias in session['unknown_aliases']: if unknown_alias in request.POST: if request.POST.getone(unknown_alias) == '': known_names[unknown_alias] = None continue new_alias = model.Alias() new_alias.name = unknown_alias new_alias.refers_to_id = request.POST[unknown_alias] print "uk: %s; id: %s " % (unknown_alias, request.POST[unknown_alias]) meta.Session.add(new_alias) meta.Session.commit() if 'choices' in request.POST: choices_lines = request.POST.getone('choices').replace('\r','') choices_lines = choices_lines.split('\n') elif 'lines_to_parse' in session: choices_lines = session['lines_to_parse'] else: return "Nothing to parse." rec = dbRecomender() known_names = {} c.categories = defaultdict(list) for category in meta.Session.query(model.Category): for item in category.members: known_names[item.name] = item.id c.categories[category].append(item) for item in meta.Session.query(model.Alias): known_names[item.name] = item.refers_to.id c.unknown_aliases = set() unknown_lines = [] for line in choices_lines: line_choices = [] unknown_line_aliases = set() for item in line.split(): if item in known_names: if known_names[item] == None: continue line_choices.append(known_names[item]) else: unknown_line_aliases.add(item) if unknown_line_aliases: c.unknown_aliases = c.unknown_aliases.union( unknown_line_aliases ) unknown_lines.append(line) else: rec.add_row(line_choices) if c.unknown_aliases: session['lines_to_parse'] = unknown_lines session['unknown_aliases'] = c.unknown_aliases session.save() return( render('add_aliases.mak') ) else: return( "Choices Updated." )
def view_controlls(self): c.default_scrape_url = "http://engineering.purdue.edu/EPICS/Projects/Teams/" c.formatted_majors = "" for school in meta.Session.query(model.Category).filter(model.Category.name != 'team'): c.formatted_majors += school.name + '\n' c.formatted_majors += '\n'.join(m.name for m in school.members) c.formatted_majors += '\n' return render('update_teams.mak')
def index(self): # Return a rendered template # return render('/choose.mako') # or, return a response print request.environ.get("REMOTE_ADDR") sid = request.environ.get("REMOTE_ADDR") + str(time.time()) c.majors = {} c.teams = [] for item in Session.query(model.Category).all(): if item.name == "team": c.teams = item.members else: c.majors[item.name] = item.members for member in item.members: print member print c.categories c.sid_hash = hashlib.md5(sid).hexdigest() # soup = BeautifulSoup(render('/rec.mak')) return render("/rec.mak")