Esempio n. 1
0
 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")
Esempio n. 2
0
 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
Esempio n. 3
0
 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')
Esempio n. 4
0
    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." )
Esempio n. 5
0
    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')
Esempio n. 6
0
 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")