src/cm/views/__init__.py
author reno
Thu, 03 Dec 2009 15:55:39 +0100
changeset 17 a4be0b8a905d
parent 0 40c8f766c9b8
child 24 c8a95e540b79
permissions -rw-r--r--
bug fix : can view own comment on comment add on mod priori bug fix : client : add no-notif record when user declines it
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     1
from cm.diff import text_diff as _text_diff, \
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     2
    text_history as inner_text_history, get_colors
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     3
from cm.message import display_message
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     4
from cm.models import Text, TextVersion, Attachment, Comment, Configuration
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     5
from cm.security import has_global_perm
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     6
from cm.utils.spannifier import spannify
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     7
from django import forms
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     8
from django.core.urlresolvers import reverse
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     9
from django.forms import ModelForm
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    10
from django.forms.util import ErrorList
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    11
from django.http import HttpResponse, HttpResponseRedirect, Http404
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    12
from django.shortcuts import render_to_response
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    13
from django.template import RequestContext
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    14
from django.utils.translation import ugettext as _, ugettext_lazy
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    15
from django.views.generic.list_detail import object_list
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    16
import mimetypes
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    17
import simplejson
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    18
import sys
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    19
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    20
def get_text_by_keys_or_404(key, adminkey=None):
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    21
    try:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    22
        if not adminkey:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    23
            return Text.objects.get(key=key)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    24
        else:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    25
            return Text.objects.get(key = key, adminkey = adminkey)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    26
    except Text.DoesNotExist:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    27
        raise Http404('No Text with such keys')
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    28
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    29
def get_keys_from_dict(dico, prefix):
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    30
    res = {}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    31
    for k, v in dico.items():
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    32
        if k.startswith(prefix):
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    33
            key = k[len(prefix):]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    34
            if key == u'_':
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    35
                key = None
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    36
            res[key] = v
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    37
    return res
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    38
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    39
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    40
def unauthorized(request):
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    41
    resp = render_to_response('site/unauthorized.html', context_instance=RequestContext(request))
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    42
    resp.status_code = 403
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    43
    return resp
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    44
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    45
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    46
def redirect(request, view_id, args):
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    47
    return HttpResponseRedirect(reverse(view_id, args=args))