Exemple #1
0
def client_exchange(request):
    ret = None
    if request.method == 'POST':
        function_name = request.POST['fun']  # function called from client
        user = request.user
        if function_name == 'experiment':
            ret = experiment()
        elif function_name == 'warn':
            # TODO: (RBE to RBA) send mail withinfos
            ret = "warn test"
            #print request.POST
        else:
            key = request.POST['key']
            version_key = request.POST['version_key']

            text = Text.objects.get(key=key)
            #TODO: stupid why restrict to latest ?
            text_version = text.get_latest_version()

            if (text != None):
                if function_name == 'ownNotify':
                    ret = own_notify(request=request, key=key)
                if function_name in (
                        'editComment',
                        'addComment',
                        'removeComment',
                ):
                    if function_name == 'editComment':
                        ret = edit_comment(
                            request=request,
                            key=key,
                            comment_key=request.POST['comment_key'])
                    elif function_name == 'addComment':
                        ret = add_comment(request=request,
                                          key=key,
                                          version_key=version_key)
                    elif function_name == 'removeComment':
                        ret = remove_comment(
                            request=request,
                            key=key,
                            comment_key=request.POST['comment_key'])

                    ret['filterData'] = get_filter_datas(
                        request, text_version, text)
                    #ret['tagCloud'] = get_tagcloud(key)
    if ret:
        if type(ret) != HttpResponseRedirect and type(ret) != HttpResponse:
            ret = HttpResponse(
                simplejson.dumps(ret,
                                 cls=RequestComplexEncoder,
                                 request=request))
    else:
        ret = HttpResponse()
        ret.status_code = 403
    return ret
Exemple #2
0
def text_view_comments(request, key, version_key=None, adminkey=None):
    text = get_text_by_keys_or_404(key)
    
    read_only = False
    if version_key :
        text_version = get_textversion_by_keys_or_404(version_key, adminkey, key)
        if settings.ALLOW_CLIENT_MODIF_ON_LAST_VERSION_ONLY :
            read_only = (text.last_text_version_id != text_version.id) 
    else :
        text_version = text.get_latest_version()
    
    comments = get_viewable_comments(request, text_version.comment_set.filter(reply_to__isnull=True),text)
    filter_datas = get_filter_datas(request, text_version, text)
    
    get_params = simplejson.dumps(request.GET)
    wrapped_text_version, _ , _ = spannify(text_version.get_content())

    from cm.models import ApplicationConfiguration
    categories = {}
    for i in range(1, 6):
      if text_version.__dict__['category_' + str(i)] == None or text_version.__dict__['category_' + str(i)].lower() != 'none':
        if text_version.__dict__['category_' + str(i)] != None and text_version.__dict__['category_' + str(i)] != '':
          categories[i] = text_version.__dict__['category_' + str(i)]
        else:
          if ApplicationConfiguration.get_key('workspace_category_' + str(i)) != None and ApplicationConfiguration.get_key('workspace_category_' + str(i)) != '':
            categories[i] = ApplicationConfiguration.get_key('workspace_category_' + str(i))

    template_dict = {
        'text' : text,
        'text_version' : text_version,
        'title' : text_version.title, # TODO use it ...
        'get_params' : get_params,
        'content' : wrapped_text_version,
        'client_date_fmt' : settings.CLIENT_DATE_FMT,
        'read_only' : read_only,
    }
    template_dict['json_comments'] = jsonize(comments, request)
    template_dict['json_filter_datas'] = jsonize(filter_datas, request)
    if categories:
      categories[0] = 'none'
    template_dict['categories'] = jsonize(categories, request)
    custom_css_str = ApplicationConfiguration.get_key('custom_css')
    if custom_css_str:
      custom_css = cssutils.parseString(custom_css_str)
      for css_rule in custom_css:
        if css_rule.type == css_rule.STYLE_RULE and css_rule.wellformed:
          css_rule.selectorText = "#textcontainer %s" %css_rule.selectorText
      template_dict['custom_css'] = custom_css.cssText

    template_dict['custom_font'] = ApplicationConfiguration.get_key('custom_font')
    template_dict['custom_titles_font'] = ApplicationConfiguration.get_key('custom_titles_font')
    return render_to_response('site/text_view_comments.html',
                              template_dict,
                              context_instance=RequestContext(request))
Exemple #3
0
def client_exchange(request):
    ret = None
    if request.method == 'POST' :
        function_name = request.POST['fun']# function called from client
        user = request.user
        if function_name == 'experiment' :
            ret = experiment()
        elif function_name == 'warn' :
            # TODO: (RBE to RBA) send mail withinfos
            ret = "warn test"
            #print request.POST
        else :
            key = request.POST['key']
            version_key = request.POST['version_key']
    
            text = Text.objects.get(key=key)
            #TODO: stupid why restrict to latest ? 
            text_version = text.get_latest_version()
            
            if (text != None) :
                if function_name == 'ownNotify' : 
                    ret = own_notify(request=request, key=key)
                if function_name in ('editComment', 'addComment', 'removeComment',) :
                    if function_name == 'editComment' :
                        ret = edit_comment(request=request, key=key, comment_key=request.POST['comment_key'])
                    elif function_name == 'addComment' :
                        ret = add_comment(request=request, key=key, version_key=version_key)
                    elif function_name == 'removeComment' :
                        ret = remove_comment(request=request, key=key, comment_key=request.POST['comment_key'])
                        
                    ret['filterData'] = get_filter_datas(request, text_version, text)
                    #ret['tagCloud'] = get_tagcloud(key)
    if ret :
        if type(ret) != HttpResponseRedirect and type(ret) != HttpResponse:
            ret = HttpResponse(simplejson.dumps(ret, cls=RequestComplexEncoder, request=request))        
    else :
        ret = HttpResponse()
        ret.status_code = 403 
    return ret