Пример #1
0
def ajax_sol_vote(request, sol_id):
  real_solution_id = int(sol_id)
  vote_value = int(request.POST.get('voteVal'))
  unvote = request.POST.get('unvote')
  if vote_value > 100 or vote_value < -100:
    vote_value = 0
  try:
    needed_solution = Solution.objects.get(id=real_solution_id, is_deleted=False)
  except:
    return HttpResponse(simplejson.dumps({'error': True}, sort_keys=True, indent=4), content_type = 'application/json')

  try:
    if request.user.is_authenticated and request.user == needed_solution.owner:
      is_author = True
    else:
      is_author = False
  except:
    is_author = False
  if is_author:
    json = simplejson.dumps({ 'is_author': True })
    return HttpResponse(json, mimetype='application/json')

  voter_score, c = User_score.objects.get_or_create(user=request.user)
  vote, c = Vote.objects.get_or_create_vote(solution=needed_solution, solution_owner=needed_solution.owner, user=request.user)
  is_deleted = True if unvote=='true' else False
  try:
    voted_score = User_score.objects.get(user=needed_solution.owner)
    is_external = False
  except:
    voted_score = User_score.objects.get(external_user=needed_solution.external_answerer)
    is_external = True
  if c and not is_deleted:
    voter_score.votes_count = int(voter_score.votes_count) + 1
    voted_score.voted_count = int(voted_score.voted_count) + 1
    needed_solution.votes_count = int(needed_solution.votes_count) + 1
    needed_solution.votes_sum = int(needed_solution.votes_sum) + vote_value
    voted_score.voted = int(voted_score.voted) + vote_value
  elif not c and is_deleted:
    voter_score.votes_count = int(voter_score.votes_count) - 1
    voted_score.voted_count = int(voted_score.voted_count) - 1
    needed_solution.votes_count = int(needed_solution.votes_count) - 1
    needed_solution.votes_sum = int(needed_solution.votes_sum) - int(vote.vote) + vote_value
    voted_score.voted = int(voted_score.voted) - int(vote.vote) + vote_value
  elif not c and not is_deleted:
    needed_solution.votes_sum = int(needed_solution.votes_sum) - int(vote.vote) + vote_value
    voted_score.voted = int(voted_score.voted) - int(vote.vote) + vote_value
  vote.is_deleted = is_deleted
  vote.vote = vote_value
  vote.datetime = datetime.datetime.now()
  vote.save()
  voter_score.save()
  voted_score.save()
  needed_solution.save()

  if not is_external:
    graphs_user_info = graphs_user(request=request, user_username=needed_solution.owner.username, external=False, JSON='JSON_ready', score=True)
  else:
    graphs_user_info = graphs_user(request=request, user_username=needed_solution.external_answerer.id, external=True, JSON='JSON_ready', score=True)
  results = {'graphs_solution_info': graphs_solution(request, real_solution_id, JSON='JSON_ready'), 'graphs_user_info': graphs_user_info}
  return HttpResponse(simplejson.dumps(results, sort_keys=True, indent=4), content_type = 'application/json')
def main_template_processor(request):
	try:
		if request.user.is_authenticated:
			graphs_currentuser_info = graphs_user(request, user_username=request.user.username, JSON=False)
			return {'graphs_currentuser_info': graphs_currentuser_info}
	except:
		return {}
Пример #3
0
def get_comment_by_id(request, id_exact, operation='view_comment', JSON=True):
    from solutioner.users.views import graphs_user
    operator_user = request.user
    try:
        comment = Comment.objects.get(id__exact=id_exact)
        graphs_user_info = graphs_user(request,
                                       comment.operator.username,
                                       JSON=False)
        comment_datetime = '%s' % comment.datetime if JSON else comment.datetime
        message_dict = {
            'not_allowed': False,
            'id': comment.id,
            'message': comment.message,
            'datetime': comment_datetime,
            'graphs_user_info': graphs_user_info
        }
    except:
        comment = None
        message_dict = {'not_allowed': True}
    if JSON == 'JSON_ready':
        return message_dict
    elif JSON:
        return HttpResponse(simplejson.dumps(message_dict,
                                             sort_keys=True,
                                             indent=4),
                            content_type='application/json')
    else:
        return message_dict
Пример #4
0
def get_comment_by_id(request, id_exact, operation='view_comment', JSON=True):
  from solutioner.users.views import graphs_user
  operator_user = request.user
  try:
    comment = Comment.objects.get(id__exact = id_exact)
    graphs_user_info = graphs_user(request, comment.operator.username, JSON=False)
    comment_datetime = '%s'%comment.datetime if JSON else comment.datetime
    message_dict = {'not_allowed': False, 'id': comment.id, 'message': comment.message, 'datetime': comment_datetime, 'graphs_user_info': graphs_user_info}
  except:
    comment = None
    message_dict = {'not_allowed': True}
  if JSON == 'JSON_ready':
    return message_dict
  elif JSON:
    return HttpResponse(simplejson.dumps(message_dict, sort_keys=True, indent=4), content_type = 'application/json')
  else:
    return message_dict
Пример #5
0
def view_solution(request, solution_id):
  try:
    redirectTo = re.search(r'http://[-.\w\d]+/(.+)', request.META['HTTP_REFERER']).group(1)
    redirectTo = '/'+redirectTo
  except:
    redirectTo = '/'
  real_solution_id = int(solution_id)
  needed_solution = get_object_or_404(Solution, id=real_solution_id, is_deleted=False)
  owner_score = User_score.objects.get(user=needed_solution.owner)
  if request.user != needed_solution.owner:
    owner_score.viewed_count = int(owner_score.viewed_count) + 1
    owner_score.save()
    try:
      needed_solution.viewed = int(needed_solution.viewed) + 1
    except:
      needed_solution.viewed = 0
    needed_solution.save()
  graphs_user_info = graphs_user(request, user_username=needed_solution.owner.username, external=False, JSON=False, score=True)

  add_comment_av = False
  if RBACGenericPermission.objects.get_user_permission(needed_solution.owner, Solution, 'add_comment', request.user) and request.user.is_authenticated():
    add_comment_av = True
  if add_comment_av: #if permissions passed, POST vars come to account
    form = add_comment(request, object_inst=needed_solution , JSON=False)
    if not form: #DONE!
      return HttpResponseRedirect(redirectTo)
  else:
    form = None
    
  if request.user.is_authenticated() and request.user != needed_solution.owner:
    user_score = User_score.objects.get(user=request.user)
    user_score.views_count = int(user_score.views_count) + 1
    user_score.save()
      
  graphs_solution_info = graphs_solution(request, real_solution_id, JSON=False)
  tags = Solution.objects.get(id=real_solution_id).tags.values_list('id', flat=True)
  soltags = Solution.objects.filter(tags__id__in=tags).exclude(id=real_solution_id)[0:20]
  latestsols = most_recent_sols()
  mostpops = most_pop_sols()
  comments = get_comment(request=request, operation='view_comment', owner=needed_solution.owner, model=Solution, order_by='-datetime', limit=10, object_inst=needed_solution)
  return render_to_response('view_solution.html',{ 'graphs_solution_info': graphs_solution_info, 'graphs_user_info': graphs_user_info,'soltags':soltags, 'mostpops':mostpops, 'latestsols':latestsols, 'form': form, 'add_comment_av': add_comment_av, 'comments': comments }, context_instance=RequestContext(request))
Пример #6
0
def get_comment(request, owner, model, object_inst, operation, order_by='datetime', last_id=False, first_ever_comment=False, limit=5, JSON=False, **kwargs):
  from solutioner.users.views import graphs_user
  filter_dict = {'is_deleted': False, 'owner_id': owner.id, 'owner_ct': ContentType.objects.get_for_model(owner), 'object_ct': ContentType.objects.get_for_model(object_inst), 'object_id': object_inst.id }
  for key in kwargs:
    if kwargs[key]:
      filter_dict[key] = kwargs[key]
  operator_user = request.user
  try:
    permission = RBACGenericPermission.objects.get_user_permission(owner, model, operation, operator_user)
  except:
    permission = False
  if not permission:
    filter_dict['operator_id'] = request.user.id
  if last_id:
    filter_dict['id__lt'] = last_id
  else:
    try:
      filter_dict['id__lt'] = Comment.objects.filter(**filter_dict).order_by(order_by)[:1][0].id + 1
    except:
      filter_dict['id__lt'] = 0
  if first_ever_comment:
    try:
      first_ever_comment = Comment.objects.filter(**filter_dict).order_by('datetime')[:1][0].id
    except:
      first_ever_comment = 0
  comments =  Comment.objects.filter(**filter_dict).order_by(order_by)[:limit]
        
  comments_list = []
  for comment in comments:
    last_comment = comment.id
    graphs_user_info = graphs_user(request, comment.operator.username, JSON=False)
    comment_datetime = '%s'%comment.datetime if JSON else comment.datetime
    message_dict = {'id': comment.id, 'message': comment.message, 'datetime': comment_datetime, 'datetime_since': timesince(comment.datetime), 'graphs_user_info': graphs_user_info}
    comments_list.append(message_dict)
    comments= {'last_comment': last_comment, 'first_ever_comment': first_ever_comment, 'comments_list': comments_list }
  if JSON:
    return HttpResponse(simplejson.dumps(comments, sort_keys=True, indent=4), content_type = 'application/json')
  else:
    return comments_list
Пример #7
0
def follow_suggest(request):
  random_t = random.random()
  suggest = None
  following_count = User_info.objects.get(user=request.user).following.all().count()
  f_list = range(0, following_count)
  done = False
  
  if random_t > 0.5:
    while not done:
      if f_list:
        rand = random.choice(f_list)
        following = User_info.objects.get(user=request.user).following.all()[rand]
        suggest_count = User_info.objects.get(user=following).following.all().count()
        suggest_list = range(0, suggest_count)
        suggested = False
        while not suggested:
          if suggest_list:
            s_rand = random.choice(suggest_list)
            suggest = User_info.objects.get(user=following).following.all()[s_rand]
            if suggest != request.user and not (User_info.objects.get(user=request.user).following.filter(username=suggest.username)):
              suggested = True
              done = True
            else:
              suggest = None
              suggest_list.remove(s_rand)
          else:
            f_list.remove(rand)
            suggested = True
      else:
        done = True
    if not suggest:
      followers_count = request.user.users_usersfollowing.all().count()
      followers_list = range(0, followers_count)
      suggested = False
      while not suggested:
        if followers_list:
          rand = random.choice(followers_list)
          suggest = suggest = User.objects.get(username=request.user.users_usersfollowing.all()[rand])
          
          if suggest != request.user and not (User_info.objects.get(user=request.user).following.filter(username=suggest)):
            suggested = True
          else:
            suggest = None
            followers_list.remove(rand)
        else:
          suggested = True
  else:
    followers_count = request.user.users_usersfollowing.all().count()
    followers_list = range(0, followers_count)
    suggested = False
    while not suggested:
      if followers_list:
        rand = random.choice(followers_list)
        suggest = User.objects.get(username=request.user.users_usersfollowing.all()[rand])
        
        if suggest != request.user and not (User_info.objects.get(user=request.user).following.filter(username=suggest)):
          suggested = True
        else:
          suggest = None
          followers_list.remove(rand)
      else:
        suggested = True
    if not suggest:
      while not done:
        if f_list:
          rand = random.choice(f_list)
          following = User_info.objects.get(user=request.user).following.all()[rand]
          suggest_count = User_info.objects.get(user=following).following.all().count()
          suggest_list = range(0, suggest_count)
          suggested = False
          while not suggested:
            if suggest_list:
              s_rand = random.choice(suggest_list)
              suggest = User_info.objects.get(user=following).following.all()[s_rand]
              if suggest != request.user and not (User_info.objects.get(user=request.user).following.filter(username=suggest.username)):
                suggested = True
                done = True
              else:
                suggest = None
                suggest_list.remove(s_rand)
            else:
              f_list.remove(rand)
              suggested = True
        else:
          done = True
  if suggest:
    from solutioner.users.views import graphs_user
    suggest = graphs_user(request, user=suggest, JSON=False)
        
  return HttpResponse(simplejson.dumps({'suggest': suggest}, sort_keys=True, indent=4), content_type = 'application/json')
Пример #8
0
def ajax_sol_vote(request, sol_id):
    real_solution_id = int(sol_id)
    vote_value = int(request.POST.get('voteVal'))
    unvote = request.POST.get('unvote')
    if vote_value > 100 or vote_value < -100:
        vote_value = 0
    try:
        needed_solution = Solution.objects.get(id=real_solution_id,
                                               is_deleted=False)
    except:
        return HttpResponse(simplejson.dumps({'error': True},
                                             sort_keys=True,
                                             indent=4),
                            content_type='application/json')

    try:
        if request.user.is_authenticated and request.user == needed_solution.owner:
            is_author = True
        else:
            is_author = False
    except:
        is_author = False
    if is_author:
        json = simplejson.dumps({'is_author': True})
        return HttpResponse(json, mimetype='application/json')

    voter_score, c = User_score.objects.get_or_create(user=request.user)
    vote, c = Vote.objects.get_or_create_vote(
        solution=needed_solution,
        solution_owner=needed_solution.owner,
        user=request.user)
    is_deleted = True if unvote == 'true' else False
    try:
        voted_score = User_score.objects.get(user=needed_solution.owner)
        is_external = False
    except:
        voted_score = User_score.objects.get(
            external_user=needed_solution.external_answerer)
        is_external = True
    if c and not is_deleted:
        voter_score.votes_count = int(voter_score.votes_count) + 1
        voted_score.voted_count = int(voted_score.voted_count) + 1
        needed_solution.votes_count = int(needed_solution.votes_count) + 1
        needed_solution.votes_sum = int(needed_solution.votes_sum) + vote_value
        voted_score.voted = int(voted_score.voted) + vote_value
    elif not c and is_deleted:
        voter_score.votes_count = int(voter_score.votes_count) - 1
        voted_score.voted_count = int(voted_score.voted_count) - 1
        needed_solution.votes_count = int(needed_solution.votes_count) - 1
        needed_solution.votes_sum = int(needed_solution.votes_sum) - int(
            vote.vote) + vote_value
        voted_score.voted = int(voted_score.voted) - int(
            vote.vote) + vote_value
    elif not c and not is_deleted:
        needed_solution.votes_sum = int(needed_solution.votes_sum) - int(
            vote.vote) + vote_value
        voted_score.voted = int(voted_score.voted) - int(
            vote.vote) + vote_value
    vote.is_deleted = is_deleted
    vote.vote = vote_value
    vote.datetime = datetime.datetime.now()
    vote.save()
    voter_score.save()
    voted_score.save()
    needed_solution.save()

    if not is_external:
        graphs_user_info = graphs_user(
            request=request,
            user_username=needed_solution.owner.username,
            external=False,
            JSON='JSON_ready',
            score=True)
    else:
        graphs_user_info = graphs_user(
            request=request,
            user_username=needed_solution.external_answerer.id,
            external=True,
            JSON='JSON_ready',
            score=True)
    results = {
        'graphs_solution_info':
        graphs_solution(request, real_solution_id, JSON='JSON_ready'),
        'graphs_user_info':
        graphs_user_info
    }
    return HttpResponse(simplejson.dumps(results, sort_keys=True, indent=4),
                        content_type='application/json')
Пример #9
0
def view_solution(request, solution_id):
    try:
        redirectTo = re.search(r'http://[-.\w\d]+/(.+)',
                               request.META['HTTP_REFERER']).group(1)
        redirectTo = '/' + redirectTo
    except:
        redirectTo = '/'
    real_solution_id = int(solution_id)
    needed_solution = get_object_or_404(Solution,
                                        id=real_solution_id,
                                        is_deleted=False)
    owner_score = User_score.objects.get(user=needed_solution.owner)
    if request.user != needed_solution.owner:
        owner_score.viewed_count = int(owner_score.viewed_count) + 1
        owner_score.save()
        try:
            needed_solution.viewed = int(needed_solution.viewed) + 1
        except:
            needed_solution.viewed = 0
        needed_solution.save()
    graphs_user_info = graphs_user(
        request,
        user_username=needed_solution.owner.username,
        external=False,
        JSON=False,
        score=True)

    add_comment_av = False
    if RBACGenericPermission.objects.get_user_permission(
            needed_solution.owner, Solution, 'add_comment',
            request.user) and request.user.is_authenticated():
        add_comment_av = True
    if add_comment_av:  #if permissions passed, POST vars come to account
        form = add_comment(request, object_inst=needed_solution, JSON=False)
        if not form:  #DONE!
            return HttpResponseRedirect(redirectTo)
    else:
        form = None

    if request.user.is_authenticated(
    ) and request.user != needed_solution.owner:
        user_score = User_score.objects.get(user=request.user)
        user_score.views_count = int(user_score.views_count) + 1
        user_score.save()

    graphs_solution_info = graphs_solution(request,
                                           real_solution_id,
                                           JSON=False)
    tags = Solution.objects.get(id=real_solution_id).tags.values_list(
        'id', flat=True)
    soltags = Solution.objects.filter(tags__id__in=tags).exclude(
        id=real_solution_id)[0:20]
    latestsols = most_recent_sols()
    mostpops = most_pop_sols()
    comments = get_comment(request=request,
                           operation='view_comment',
                           owner=needed_solution.owner,
                           model=Solution,
                           order_by='-datetime',
                           limit=10,
                           object_inst=needed_solution)
    return render_to_response('view_solution.html', {
        'graphs_solution_info': graphs_solution_info,
        'graphs_user_info': graphs_user_info,
        'soltags': soltags,
        'mostpops': mostpops,
        'latestsols': latestsols,
        'form': form,
        'add_comment_av': add_comment_av,
        'comments': comments
    },
                              context_instance=RequestContext(request))
Пример #10
0
def get_comment(request,
                owner,
                model,
                object_inst,
                operation,
                order_by='datetime',
                last_id=False,
                first_ever_comment=False,
                limit=5,
                JSON=False,
                **kwargs):
    from solutioner.users.views import graphs_user
    filter_dict = {
        'is_deleted': False,
        'owner_id': owner.id,
        'owner_ct': ContentType.objects.get_for_model(owner),
        'object_ct': ContentType.objects.get_for_model(object_inst),
        'object_id': object_inst.id
    }
    for key in kwargs:
        if kwargs[key]:
            filter_dict[key] = kwargs[key]
    operator_user = request.user
    try:
        permission = RBACGenericPermission.objects.get_user_permission(
            owner, model, operation, operator_user)
    except:
        permission = False
    if not permission:
        filter_dict['operator_id'] = request.user.id
    if last_id:
        filter_dict['id__lt'] = last_id
    else:
        try:
            filter_dict['id__lt'] = Comment.objects.filter(
                **filter_dict).order_by(order_by)[:1][0].id + 1
        except:
            filter_dict['id__lt'] = 0
    if first_ever_comment:
        try:
            first_ever_comment = Comment.objects.filter(
                **filter_dict).order_by('datetime')[:1][0].id
        except:
            first_ever_comment = 0
    comments = Comment.objects.filter(**filter_dict).order_by(order_by)[:limit]

    comments_list = []
    for comment in comments:
        last_comment = comment.id
        graphs_user_info = graphs_user(request,
                                       comment.operator.username,
                                       JSON=False)
        comment_datetime = '%s' % comment.datetime if JSON else comment.datetime
        message_dict = {
            'id': comment.id,
            'message': comment.message,
            'datetime': comment_datetime,
            'datetime_since': timesince(comment.datetime),
            'graphs_user_info': graphs_user_info
        }
        comments_list.append(message_dict)
        comments = {
            'last_comment': last_comment,
            'first_ever_comment': first_ever_comment,
            'comments_list': comments_list
        }
    if JSON:
        return HttpResponse(simplejson.dumps(comments,
                                             sort_keys=True,
                                             indent=4),
                            content_type='application/json')
    else:
        return comments_list
def events_list_maker(request, events, JSON=False):
    from solutioner.users.views import graphs_user
    operators_info = {}
    events_list = []
    for event in events:
        event_dict = {'datetime_since': timesince(event.datetime)}
        event_dict[
            'datetime'] = '%s' % event.datetime if JSON else event.datetime
        try:
            event_dict['graphs_user_info'] = operators_info[event.operator]
        except:
            operators_info[event.operator] = graphs_user(request=request,
                                                         user=event.operator,
                                                         JSON=False)
            event_dict['graphs_user_info'] = operators_info[event.operator]
        if event.operation_result_ct == ContentType.objects.get_for_model(
                Comment) and event.operation.name == 'post_desk':
            permission = check_event_perm(request,
                                          owner=event.owner,
                                          model=event.object,
                                          operation='view_desk',
                                          operator_user=request.user,
                                          event=event)
            if permission:
                event_dict.update(event_dict_f(event))
                if JSON:
                    comment = get_comment_by_id(
                        request,
                        id_exact=event.operation_result_id,
                        operation='view_desk',
                        JSON='JSON_ready')
                else:
                    comment = get_comment_by_id(
                        request,
                        id_exact=event.operation_result_id,
                        operation='view_desk',
                        JSON=False)
                event_dict['comment'] = comment
                event_dict['type'] = 'comment'
            else:
                event_dict = {}

        elif event.operation_result_ct == ContentType.objects.get_for_model(
                Comment
        ) and event.object_ct == ContentType.objects.get_for_model(
                Solution) and event.operation.name == 'add_comment':
            #permission = check_event_perm(request, owner=event.owner, model=event.operation_result, operation='view_comment', operator_user=request.user, event=event)
            if True:  #permission
                event_dict.update(event_dict_f(event))
                if JSON:
                    comment = get_comment_by_id(
                        request,
                        id_exact=event.operation_result_id,
                        operation='view_comment',
                        JSON='JSON_ready')
                else:
                    comment = get_comment_by_id(
                        request,
                        id_exact=event.operation_result_id,
                        operation='view_comment',
                        JSON=False)
                event_dict['comment'] = comment
                event_dict['type'] = 'commented_on_solution'
            else:
                event_dict = {}

        elif event.operation_result_ct == ContentType.objects.get_for_model(
                Solution) and event.operation.name == 'add_solution':
            #permission = check_event_perm()
            if True:  #permission
                event_dict.update(event_dict_f(event))
                from solutioner.users.views import graphs_solution_plus_user
                solution = graphs_solution_plus_user(request,
                                                     event.operation_result_id,
                                                     JSON='JSON_ready',
                                                     safe=True)
                event_dict['type'] = 'add_solution'
                event_dict['solution'] = solution
        elif event.operation_result_ct == ContentType.objects.get_for_model(
                Solution) and event.operation.name == 'edit_solution':
            #permission = check_event_perm()
            if True:  #permission
                event_dict.update(event_dict_f(event))
                event_dict['type'] = 'edit_solution'
        elif event.operation_result_ct == ContentType.objects.get_for_model(
                User) and event.operation.name == 'register':
            #permission = check_event_perm()
            if True:  #permission
                event_dict.update(event_dict_f(event))
                event_dict['type'] = 'register'
        elif event.operation_result_ct == ContentType.objects.get_for_model(
                User) and event.operation.name == 'edit_profile':
            #permission = check_event_perm()
            if True:  #permission
                event_dict.update(event_dict_f(event))
                event_dict['type'] = 'edit_profile'
        elif event.operation_result_ct == ContentType.objects.get_for_model(
                Vote) and event.operation.name == 'vote_solution':
            #permission = check_event_perm()
            if True:  #permission
                event_dict.update(event_dict_f(event))
                event_dict['type'] = 'vote_solution'
        events_list.append(event_dict)
        last_event = event.id
    try:
        last_event = last_event
    except:
        last_event = 1
    return events_list, last_event
def notification_list_maker(events, request=None, JSON=False, cur_user=None):
    operators_info = {}
    events_list = []
    for event in events:
        event_dict = {}
        from solutioner.users.views import graphs_user
        try:
            event_dict['graphs_user_info'] = operators_info[event.operator]
        except:
            operators_info[event.operator] = graphs_user(request=request,
                                                         user=event.operator,
                                                         JSON=False,
                                                         cur_user=cur_user)
            event_dict['graphs_user_info'] = operators_info[event.operator]
        if event.operation_result_ct == ContentType.objects.get_for_model(
                Comment) and event.operation.name == 'post_desk':
            #permission = check_event_perm(request, owner=event.owner, model=event.object, operation='view_desk', operator_user=request.user, event=event)
            if True:
                event_dict.update(event_dict_f(event))
                event_dict['type'] = 'commented_on_desk'
                event_dict[
                    'datetime'] = '%s' % event.datetime if JSON else event.datetime
            else:
                event_dict = {}

        elif event.operation_result_ct == ContentType.objects.get_for_model(
                Comment
        ) and event.object_ct == ContentType.objects.get_for_model(
                Solution) and event.operation.name == 'add_comment':
            #permission = check_event_perm(request, owner=event.owner, model=event.operation_result, operation='view_comment', operator_user=request.user, event=event)
            if True:  #permission
                event_dict.update(event_dict_f(event))
                event_dict['type'] = 'commented_on_solution'
                event_dict[
                    'datetime'] = '%s' % event.datetime if JSON else event.datetime
            else:
                event_dict = {}

        elif event.operation_result_ct == ContentType.objects.get_for_model(
                Solution) and event.operation.name == 'add_solution':
            #permission = check_event_perm()
            if True:  #permission
                event_dict.update(event_dict_f(event))
                event_dict['type'] = 'add_solution'
                event_dict[
                    'datetime'] = '%s' % event.datetime if JSON else event.datetime
        elif event.operation_result_ct == ContentType.objects.get_for_model(
                Solution) and event.operation.name == 'edit_solution':
            #permission = check_event_perm()
            if True:  #permission
                event_dict.update(event_dict_f(event))
                event_dict['type'] = 'edit_solution'
                event_dict[
                    'datetime'] = '%s' % event.datetime if JSON else event.datetime
        elif event.operation_result_ct == ContentType.objects.get_for_model(
                User) and event.operation.name == 'register':
            #permission = check_event_perm()
            if True:  #permission
                event_dict.update(event_dict_f(event))
                event_dict['type'] = 'register'
                event_dict[
                    'datetime'] = '%s' % event.datetime if JSON else event.datetime
        elif event.operation_result_ct == ContentType.objects.get_for_model(
                User) and event.operation.name == 'edit_profile':
            #permission = check_event_perm()
            if True:  #permission
                event_dict.update(event_dict_f(event))
                event_dict['type'] = 'edit_profile'
                event_dict[
                    'datetime'] = '%s' % event.datetime if JSON else event.datetime
        elif event.operation_result_ct == ContentType.objects.get_for_model(
                Vote) and event.operation.name == 'vote_solution':
            #permission = check_event_perm()
            if True:  #permission
                event_dict.update(event_dict_f(event))
                event_dict['type'] = 'vote_solution'
                event_dict[
                    'datetime'] = '%s' % event.datetime if JSON else event.datetime
        events_list.append(event_dict)

    return events_list
Пример #13
0
def events_list_maker(request, events, JSON=False):
  from solutioner.users.views import graphs_user
  operators_info = {}
  events_list = []
  for event in events:
    event_dict = {'datetime_since': timesince(event.datetime) }
    event_dict['datetime'] = '%s'%event.datetime if JSON else event.datetime
    try:
      event_dict['graphs_user_info'] = operators_info[event.operator]
    except:
      operators_info[event.operator] = graphs_user(request=request, user=event.operator, JSON=False)
      event_dict['graphs_user_info'] = operators_info[event.operator]
    if event.operation_result_ct == ContentType.objects.get_for_model(Comment) and event.operation.name == 'post_desk':
      permission = check_event_perm(request, owner=event.owner, model=event.object, operation='view_desk', operator_user=request.user, event=event)
      if permission:
        event_dict.update(event_dict_f(event))
        if JSON:
          comment = get_comment_by_id(request, id_exact=event.operation_result_id, operation='view_desk', JSON='JSON_ready')
        else:
          comment = get_comment_by_id(request, id_exact=event.operation_result_id, operation='view_desk', JSON=False)
        event_dict['comment'] = comment
        event_dict['type'] = 'comment'
      else:
        event_dict = {}

    elif event.operation_result_ct == ContentType.objects.get_for_model(Comment) and event.object_ct == ContentType.objects.get_for_model(Solution) and event.operation.name == 'add_comment':
      #permission = check_event_perm(request, owner=event.owner, model=event.operation_result, operation='view_comment', operator_user=request.user, event=event)
      if True: #permission
        event_dict.update(event_dict_f(event))
        if JSON:
          comment = get_comment_by_id(request, id_exact=event.operation_result_id, operation='view_comment', JSON='JSON_ready')
        else:
          comment = get_comment_by_id(request, id_exact=event.operation_result_id, operation='view_comment', JSON=False)
        event_dict['comment'] = comment
        event_dict['type'] = 'commented_on_solution'
      else:
        event_dict = {}

    elif event.operation_result_ct == ContentType.objects.get_for_model(Solution) and event.operation.name == 'add_solution':
      #permission = check_event_perm()
      if True: #permission
        event_dict.update(event_dict_f(event))
        from solutioner.users.views import graphs_solution_plus_user
        solution = graphs_solution_plus_user(request, event.operation_result_id, JSON='JSON_ready', safe=True)
        event_dict['type'] = 'add_solution'
        event_dict['solution'] = solution
    elif event.operation_result_ct == ContentType.objects.get_for_model(Solution) and event.operation.name == 'edit_solution':
      #permission = check_event_perm()
      if True: #permission
        event_dict.update(event_dict_f(event))
        event_dict['type'] = 'edit_solution'
    elif event.operation_result_ct == ContentType.objects.get_for_model(User) and event.operation.name == 'register':
      #permission = check_event_perm()
      if True: #permission
        event_dict.update(event_dict_f(event))
        event_dict['type'] = 'register'
    elif event.operation_result_ct == ContentType.objects.get_for_model(User) and event.operation.name == 'edit_profile':
      #permission = check_event_perm()
      if True: #permission
        event_dict.update(event_dict_f(event))
        event_dict['type'] = 'edit_profile'
    elif event.operation_result_ct == ContentType.objects.get_for_model(Vote) and event.operation.name == 'vote_solution':
      #permission = check_event_perm()
      if True: #permission
        event_dict.update(event_dict_f(event))
        event_dict['type'] = 'vote_solution'
    events_list.append(event_dict)
    last_event = event.id
  try:
    last_event = last_event
  except:
    last_event = 1
  return events_list, last_event
Пример #14
0
def notification_list_maker(events,request=None, JSON=False, cur_user=None):
  operators_info = {}
  events_list = []
  for event in events:
    event_dict = {}
    from solutioner.users.views import graphs_user
    try:
      event_dict['graphs_user_info'] = operators_info[event.operator]
    except:
      operators_info[event.operator] = graphs_user(request=request, user=event.operator, JSON=False, cur_user=cur_user)
      event_dict['graphs_user_info'] = operators_info[event.operator]
    if event.operation_result_ct == ContentType.objects.get_for_model(Comment) and event.operation.name == 'post_desk':
      #permission = check_event_perm(request, owner=event.owner, model=event.object, operation='view_desk', operator_user=request.user, event=event)
      if True:
        event_dict.update(event_dict_f(event))
        event_dict['type'] = 'commented_on_desk'
        event_dict['datetime'] = '%s'%event.datetime if JSON else event.datetime
      else:
        event_dict = {}

    elif event.operation_result_ct == ContentType.objects.get_for_model(Comment) and event.object_ct == ContentType.objects.get_for_model(Solution) and event.operation.name == 'add_comment':
      #permission = check_event_perm(request, owner=event.owner, model=event.operation_result, operation='view_comment', operator_user=request.user, event=event)
      if True: #permission
        event_dict.update(event_dict_f(event))
        event_dict['type'] = 'commented_on_solution'
        event_dict['datetime'] = '%s'%event.datetime if JSON else event.datetime
      else:
        event_dict = {}

    elif event.operation_result_ct == ContentType.objects.get_for_model(Solution) and event.operation.name == 'add_solution':
      #permission = check_event_perm()
      if True: #permission
        event_dict.update(event_dict_f(event))
        event_dict['type'] = 'add_solution'
        event_dict['datetime'] = '%s'%event.datetime if JSON else event.datetime
    elif event.operation_result_ct == ContentType.objects.get_for_model(Solution) and event.operation.name == 'edit_solution':
      #permission = check_event_perm()
      if True: #permission
        event_dict.update(event_dict_f(event))
        event_dict['type'] = 'edit_solution'
        event_dict['datetime'] = '%s'%event.datetime if JSON else event.datetime
    elif event.operation_result_ct == ContentType.objects.get_for_model(User) and event.operation.name == 'register':
      #permission = check_event_perm()
      if True: #permission
        event_dict.update(event_dict_f(event))
        event_dict['type'] = 'register'
        event_dict['datetime'] = '%s'%event.datetime if JSON else event.datetime
    elif event.operation_result_ct == ContentType.objects.get_for_model(User) and event.operation.name == 'edit_profile':
      #permission = check_event_perm()
      if True: #permission
        event_dict.update(event_dict_f(event))
        event_dict['type'] = 'edit_profile'
        event_dict['datetime'] = '%s'%event.datetime if JSON else event.datetime
    elif event.operation_result_ct == ContentType.objects.get_for_model(Vote) and event.operation.name == 'vote_solution':
      #permission = check_event_perm()
      if True: #permission
        event_dict.update(event_dict_f(event))
        event_dict['type'] = 'vote_solution'
        event_dict['datetime'] = '%s'%event.datetime if JSON else event.datetime
    events_list.append(event_dict)
    
  return events_list