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
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)
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