Exemplo n.º 1
0
 def get_context_data(self, **kwargs):
     data = super().get_context_data(**kwargs)
     try:
         data['profile'] = self.user = User.objects.get(
             pk=self.kwargs['pk'], is_active=True)
     except:
         raise Http404
     self.tags_stat = tags_stat(self.user.id)
     data['tree'] = json.dumps(self.gen_tag_tree(-1))
     data['p_tags'] = list(Problem.objects.all())
     data['tag_problem_recommendation'] = dict()
     for tag_id in TagInfo.objects.values_list('tag_id', flat=True):
         if tag_id in self.tags_stat:
             problem_id_list = select_with_tags(
                 self.user.id, [(tag_id, self.tags_stat[tag_id])],
                 max_count_per_tag=5)
             data['tag_problem_recommendation'][tag_id] = [
                 Problem.objects.get(id=p_id) for p_id in problem_id_list
             ]
         else:
             data['tag_problem_recommendation'][tag_id] = []
     return data
Exemplo n.º 2
0
def unfamiliar_problems(user_id):
  tags_record = list(filter(lambda k: k[1][0] < 2 and k[1][1] - k[1][0] >= 1, tags_stat(user_id).items()))
  random.shuffle(tags_record)
  return select_with_tags(user_id, tags_record)