예제 #1
0
def home(request):
  from solutioner.solutions.views import most_recent_sols, most_pop_sols
  from solutioner.users.forms import RegisterForm, LoginForm
  form_login = LoginForm()
  form_reg = RegisterForm(prefix='0')
  from solutioner.solutions.views import add_solution
  from solutioner.comments.views import add_comment
  form_add_solution = add_solution(request, JSON=False)
  form_add_comment = add_comment(request, object_inst=request.user, operation='post_desk', JSON=False)
  if request.user.is_authenticated():
    last_event, firstever_event = get_home_events(request, JSON=False)
  else:
    last_event, firstever_event = 1, 1

  return render_to_response('home.html', {'last_event': last_event, 'firstever_event': firstever_event, 'form_reg': form_reg, 'form_login': form_login, 'form_add_solution': form_add_solution, 'form_add_comment': form_add_comment, 'latestsols': most_recent_sols(), 'mostpops': most_pop_sols()}, context_instance=RequestContext(request))
예제 #2
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))
예제 #3
0
def profile_desk(request, user_username):
  try:
    redirectTo = re.search(r'http://[-.\w\d]+/(.+)', request.META['HTTP_REFERER']).group(1)
    redirectTo = '/'+redirectTo
  except:
    redirectTo = '/'
  user = User.objects.get(username=user_username)
  post_desk = False
  if RBACGenericPermission.objects.get_user_permission(user, User, 'post_desk', request.user):
    post_desk = True
  if post_desk: #if permissions passed then POST vars come to account
    form = add_comment(request, object_inst=user, operation='post_desk', JSON=False)
    if not form: #DONE!
      return HttpResponseRedirect(redirectTo)
  else:
    form = None
  from solutioner.solutions.views import add_solution
  form_add_solution = add_solution(request, JSON=False)
  last_event, firstever_event = get_profile_events(request, user_username=user_username, JSON=False)
  graphs_user_info = graphs_user(request, user_username=user_username, JSON=False)
  return render_to_response("profile_desk.html", {'title': 'Desk', 'graphs_user_info': graphs_user_info, 'form': form, 'form_add_solution': form_add_solution, 'post_desk': post_desk, 'last_event': last_event, 'firstever_event': firstever_event, 'user_following_limited_graph': user_following_graph(request, user_username, limit=5), 'user_followers_limited_graph': user_followers_graph(request, user_username, limit=5) }, context_instance=RequestContext(request))
예제 #4
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))