from django.views.generic.simple import redirect_to from django.template import RequestContext as _ from django.template.defaultfilters import slugify from django.shortcuts import render_to_response, get_object_or_404 from django.http import Http404 from saudade.common.shortcuts import r2r from saudade.todo.models import Task, Group CT_TJS = 'text/javascript; charset=utf-8' CT_AXML = 'application/xml; charset=utf-8' def ajax_get(request, type, id): if type.lower() == 'task': task = get_object_or_404(Task, id=id) return r2r('todo/ajax/get/task.html', {'task':task,}, _(request), ct=CT_AXML) elif type.lower() == 'group': group = get_object_or_404(Group, id=id) return r2r('todo/ajax/get/group.html', {'group':group,}, _(request), ct=CT_AXML) else: raise Http404 def ajax_create(request, type): if type.lower() == 'task': return r2r('todo/ajax/get/task.html', {}, _(request), ct=CT_AXML) elif type.lower() == 'group': return r2r('todo/ajax/get/group.html', {}, _(request), ct=CT_AXML) else: raise Http404 def ajax_edit(request, type, id, cname): if type == "group": m = Group.ChangeManipulator(id) p = Group.ajaxEdit(request, id) elif type == "task": m = Task.ChangeManipulator(id) p = Task.ajaxEdit(request, id) else: return errors = m.get_validation_errors(p) if not errors: m.do_html2python(p) o = m.save(p) return r2r('todo/ajax/post.html', {'object':o, 'class':cname, 'type':type}, _(request), ct=CT_TJS) else: return r2r('todo/ajax/error.html', {'errors' : errors, 'p' : p}, _(request), ct=CT_AXML) def ajax_add(request, type): if type == "group": p = Group.ajaxAdd(request) m = Group.AddManipulator() elif type == "task": p = Task.ajaxAdd(request) m = Task.AddManipulator() else: return errors = m.get_validation_errors(p) if not errors: m.do_html2python(p) obj = m.save(p) return r2r('todo/ajax/add/%s.html' % (type), {'object':obj}, _(request), ct=CT_TJS) return r2r('todo/ajax/error.html', {'errors' : errors, 'p' : p}, _(request), ct=CT_AXML)