Esempio n. 1
0
def format_messages_in_context_sorted(request, context, messages):
    cmd_messages = []
    blast_messages = []
    for msg in messages:
        msg = annotate_msg(msg)
        # are we a command?
        m=CMD_MESSAGE_MATCHER.match(msg.text)
        if m is None: blast_messages.append(msg)
        else: cmd_messages.append(msg)
    if len(cmd_messages)>0:
        context['cmd_messages'] = paginated(request, cmd_messages, per_page=5, prefix="cmd")
    if len(blast_messages)>0:
        context['blast_messages'] = paginated(request, blast_messages, per_page=10, prefix="blast")
    return context
Esempio n. 2
0
def messages(request, template="smsforum/manage_messages.html"):
    if request.method == 'POST':    
        # now iterate through all the messages you learned about
        for id in request.POST.getlist('message'):
            m = IncomingMessage.objects.get(id=int(id))
            
            # get submitted translation + category
            trans_txt = request.POST['trans_'+str(id)]
            category_txt = request.POST['category_'+str(id)]
            
            # update categories and translation
            # m.tags = category_txt.strip()
            if trans_txt is not None and \
              len(trans_txt.strip())>0 :
                m.update_translation (trans_txt)
            if len(category_txt)>0 and \
              category_txt is not None and category_txt != "None":
                m.update_tag(category_txt)

    if 'next' in request.GET:
        return HttpResponseRedirect(request.GET['next'])
    messages = IncomingMessage.objects.select_related().order_by('-received')
    context = {'villages': Village.objects.all().order_by('name'), 
               'regions': Region.objects.all().order_by('name')}
    (village, region) = get_village_and_region(request, context)
    if village is not None:
        messages = messages.filter(domains=village)
    elif region is not None:
        villages = region.get_children(klass=Village)
        messages = messages.filter(domains__in=villages)
    context = add_categories(context)
    # although we can support arbitrary UIs, the current drop-down ui
    # for tags only shows one tag 'selected' at any given time.
    annotated_messages = []
    for m in messages:
        matcher=CMD_MESSAGE_MATCHER.match(m.text)
        if matcher is None: 
            #if len(m.tags)>0:
            #    m.selected = m.tags[0].name.strip()
            if m.basictags.count()>0:
                m.selected  = m.basictags.all()[0].txt
            if m.annotations.count() > 0:
                m.note = m.annotations.all()[0].text
            annotated_messages.append(m)
    context['messages'] = paginated(request, annotated_messages)
    return render_to_response(request, template, context)
Esempio n. 3
0
def format_messages_in_context(request, context, messages):
    cmd_messages = []
    blast_messages = []
    for msg in messages:
        for tag in msg.messagetag_set.all():
            if IsFlag(tag): msg.flagged = True
            elif tag.code.set.name == "TOSTAN_CODE": msg.code = tag.code
        notes = msg.messageannotation_set.filter(message=msg)
        if len(notes) > 0: msg.note = notes[0].text
        # are we a command?
        m=CMD_MESSAGE_MATCHER.match(msg.text)
        if m is None: blast_messages.append(msg)
        else: cmd_messages.append(msg)
    if len(cmd_messages)>0:
        context['cmd_messages'] = paginated(request, cmd_messages, per_page=5, prefix="cmd")
    if len(blast_messages)>0:
        context['blast_messages'] = paginated(request, blast_messages, per_page=10, prefix="blast")
    context['codes'] = Code.objects.filter(set=CodeSet.objects.get(name="TOSTAN_CODE"))
    return context