コード例 #1
0
ファイル: choose.py プロジェクト: m5/epics-project-explorer
 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")
コード例 #2
0
    def add(self,item,relations,weight=1):
        debug_print("Adding %s to %s" % (", ".join(map(str,relations)),item))
        result = Session.query(model.Suggestable).filter_by(id=item)
        if (result.count() > 0):
            item_suggestable = result.first()
        else:
            return

        item_suggestable.weight += weight
        Session.add(item_suggestable)

        for relation in relations:
            if (relation == item):
                continue

            result = Session.query(model.Suggestable).filter_by(id=relation)
            relation_suggestable = result.first()
            if not relation_suggestable: continue

            results = Session.query(model.Suggestion).filter(
                    or_(
                        and_( model.Suggestion.high_choice_id == relation_suggestable.id,
                              model.Suggestion.low_choice_id == item_suggestable.id
                              ),
                        and_( model.Suggestion.high_choice_id == item_suggestable.id,
                              model.Suggestion.low_choice_id == relation_suggestable.id
                              )
                        )
                    )
            if (results.count() > 0):
                suggestion = results.first()
                suggestion.weight += weight
                if suggestion.weight <= 0:
                    Session.delete(suggestion)
                else:
                    Session.add(suggestion)
            else:
                suggestion = model.Suggestion(item_suggestable,relation_suggestable)
                Session.add(suggestion)
            Session.commit()