Esempio n. 1
0
def related_discussions_of_url(request):
    search_url = request.REQUEST.get('search_url', '')
    applicabale_discussions_list, list_title = get_discussion_with_parent_url_list( search_url, request.user)
    if list_title:
        page_name = u'פעילויות שקשורות ל' + list_title
    else:
        page_name = u'פעילויות שקשורות ל' + search_url
               
#     return render(request, 'coplay/discussion_list.html',
#                   {'latest_discussion_list': applicabale_discussions_list,
#                    'page_name': page_name})
                           
    return render(request, 'coplay/discussion_url_list.html',
                  {'applicabale_discussions_list': applicabale_discussions_list,
                   'list_title': page_name,
                   'page_name': page_name})
Esempio n. 2
0
def related_discussions_of_url(request):
    search_url = request.REQUEST.get('search_url', '')
    applicabale_discussions_list, list_title = get_discussion_with_parent_url_list(
        search_url, request.user)
    if list_title:
        page_name = u'פעילויות שקשורות ל' + list_title
    else:
        page_name = u'פעילויות שקשורות ל' + search_url


#     return render(request, 'coplay/discussion_list.html',
#                   {'latest_discussion_list': applicabale_discussions_list,
#                    'page_name': page_name})

    return render(
        request, 'coplay/discussion_url_list.html', {
            'applicabale_discussions_list': applicabale_discussions_list,
            'list_title': page_name,
            'page_name': page_name
        })
Esempio n. 3
0
def discussion_details(request, pk):
    try:
        discussion = Discussion.objects.get(id=int(pk))
    except Discussion.DoesNotExist:
        return HttpResponseRedirect('coplay_root')

    if discussion.get_is_viewing_require_login(
    ) and not request.user.is_authenticated():
        return HttpResponseRedirect(reverse('login') + '?next=' + request.path)

    if not can_user_acess_discussion(discussion, request.user):
        return render(request, 'coplay/message.html', {
            'message': 'אינך מורשה לצפות בדיון',
            'rtl': 'dir="rtl"'
        })

    list_encourage = discussion.feedback_set.all().filter(
        feedbabk_type=Feedback.ENCOURAGE).order_by("-created_at")
    list_cooperation = discussion.feedback_set.all().filter(
        feedbabk_type=Feedback.COOPERATION).order_by("-created_at")
    list_intuition = discussion.feedback_set.all().filter(
        feedbabk_type=Feedback.INTUITION).order_by("-created_at")
    list_advice = discussion.feedback_set.all().filter(
        feedbabk_type=Feedback.ADVICE).order_by("-created_at")
    list_decision = discussion.decision_set.all().order_by("-created_at")
    list_tasks = discussion.task_set.all().order_by("-target_date")
    for task in list_tasks:
        poll_for_task_complition(task)
    like_levels = LikeLevel.level
    list_viewers = discussion.viewer_set.all().exclude(
        views_counter=0).order_by("-views_counter_updated_at")

    list_anonymous_viewers = discussion.anonymousvisitorviewer_set.all(
    ).exclude(views_counter=0).order_by("-views_counter_updated_at")

    list_tasks_open = discussion.task_set.all().order_by("target_date").filter(
        status=Task.STARTED)

    #     list_tasks_closed_and_aborted = discussion.task_set.all().exclude(status = Task.MISSED).filter(final_state = True).order_by("-closed_at")
    list_tasks_closed_and_aborted = discussion.task_set.all().exclude(
        status=Task.MISSED).order_by("-updated_at")

    list_tasks = list(list_tasks_open) + list(list_tasks_closed_and_aborted)

    vote_form = None
    feedback_form = None
    description_form = None
    add_decision_form = None
    add_task_form = None

    is_a_follower = discussion.is_a_follower(request.user)

    add_task_form = AddTaskForm()
    if request.user == discussion.owner:
        if discussion.is_active():
            description_form = UpdateDiscussionForm()
            add_decision_form = AddDecisionForm()
    else:
        vote_form = VoteForm()
        feedback_form = AddFeedbackForm()

    list_followers = discussion.get_followers_list()

    page_name = u'עוזרים ב' + discussion.title

    applicabale_discussions_list, list_title = get_discussion_with_parent_url_list(
        request.path, request.user)

    #the response shall not indicate current user's view
    return_response = render(
        request, 'coplay/discussion_detail.html', {
            'discussion': discussion,
            'list_encourage': list_encourage,
            'list_cooperation': list_cooperation,
            'list_intuition': list_intuition,
            'list_advice': list_advice,
            'list_decision': list_decision,
            'list_tasks': list_tasks,
            'feedback_form': feedback_form,
            'description_form': description_form,
            'add_decision_form': add_decision_form,
            'vote_form': vote_form,
            'add_task_form': add_task_form,
            'like_levels': like_levels,
            'list_viewers': list_viewers,
            'list_anonymous_viewers': list_anonymous_viewers,
            'page_name': page_name,
            'is_a_follower': is_a_follower,
            'list_followers': list_followers,
            'related_discussions': applicabale_discussions_list != [],
            'ROOT_URL': 'http://' + SITE_URL
        })

    #current view is recorded after response had been resolved
    if request.user.is_authenticated():
        success, error_string = discussion_record_a_view(
            discussion, request.user)
        if success == False:
            return render(request, 'coplay/message.html', {
                'message': error_string,
                'rtl': 'dir="rtl"'
            })

    discussion_record_anonymous_view(discussion, request)

    return return_response
Esempio n. 4
0
def discussion_details(request, pk):
    try:
        discussion = Discussion.objects.get(id=int(pk))
    except Discussion.DoesNotExist:
        return HttpResponseRedirect('coplay_root')
    
    if discussion.get_is_viewing_require_login() and not request.user.is_authenticated():
        return HttpResponseRedirect( reverse('login') + '?next=' + request.path)        
    
    if not can_user_acess_discussion( discussion, request.user):
        return render(request, 'coplay/message.html', 
                      {  'message'      :  'אינך מורשה לצפות בדיון',
                       'rtl': 'dir="rtl"'})

    list_encourage = discussion.feedback_set.all().filter(
        feedbabk_type=Feedback.ENCOURAGE).order_by("-created_at")
    list_cooperation = discussion.feedback_set.all().filter(
        feedbabk_type=Feedback.COOPERATION).order_by("-created_at")
    list_intuition = discussion.feedback_set.all().filter(
        feedbabk_type=Feedback.INTUITION).order_by("-created_at")
    list_advice = discussion.feedback_set.all().filter(
        feedbabk_type=Feedback.ADVICE).order_by("-created_at")
    list_decision = discussion.decision_set.all().order_by("-created_at")
    list_tasks = discussion.task_set.all().order_by("-target_date")
    for task in list_tasks:
        poll_for_task_complition(task)
    like_levels = LikeLevel.level
    list_viewers = discussion.viewer_set.all().exclude(
        views_counter= 0 ).order_by("-views_counter_updated_at")
        
    list_anonymous_viewers = discussion.anonymousvisitorviewer_set.all().exclude(
        views_counter= 0 ).order_by("-views_counter_updated_at")

    list_tasks_open = discussion.task_set.all().order_by("target_date").filter(status = Task.STARTED)
    
#     list_tasks_closed_and_aborted = discussion.task_set.all().exclude(status = Task.MISSED).filter(final_state = True).order_by("-closed_at")
    list_tasks_closed_and_aborted = discussion.task_set.all().exclude(status = Task.MISSED).order_by("-updated_at")

    list_tasks = list(list_tasks_open) + list( list_tasks_closed_and_aborted)
    
    vote_form = None
    feedback_form = None
    description_form = None
    add_decision_form = None
    add_task_form = None

    is_a_follower = discussion.is_a_follower(request.user)
    
    add_task_form = AddTaskForm()        
    if request.user == discussion.owner:
        if discussion.is_active():
            description_form = UpdateDiscussionForm()
            add_decision_form = AddDecisionForm()
    else:
        vote_form = VoteForm()
        feedback_form = AddFeedbackForm()
 
    list_followers = discussion.get_followers_list()
    
    page_name = u'עוזרים ב' + discussion.title
    
    applicabale_discussions_list, list_title = get_discussion_with_parent_url_list( request.path, request.user)

    
    #the response shall not indicate current user's view
    return_response = render(request, 'coplay/discussion_detail.html',
                  {'discussion': discussion,
                   'list_encourage': list_encourage,
                   'list_cooperation': list_cooperation,
                   'list_intuition': list_intuition,
                   'list_advice': list_advice,
                   'list_decision': list_decision,
                   'list_tasks': list_tasks,
                   'feedback_form': feedback_form,
                   'description_form': description_form,
                   'add_decision_form': add_decision_form,
                   'vote_form': vote_form,
                   'add_task_form': add_task_form,
                   'like_levels': like_levels,
                   'list_viewers':list_viewers,
                   'list_anonymous_viewers':list_anonymous_viewers,
                   'page_name': page_name ,
                   'is_a_follower': is_a_follower,
                   'list_followers': list_followers,
                   'related_discussions': applicabale_discussions_list != [],
                   'ROOT_URL': 'http://' + SITE_URL})
    
    #current view is recorded after response had been resolved
    if request.user.is_authenticated():
        success, error_string = discussion_record_a_view (discussion, request.user)
        if success == False:
            return render(request, 'coplay/message.html', 
                      {  'message'      :  error_string,
                       'rtl': 'dir="rtl"'})

    discussion_record_anonymous_view (discussion, request)
            
    return return_response