""" 'fix' calculated fields """ from django.core import meta from django.core.template import loader from django.core.extensions import get_object_or_404 from django.views.auth.login import redirect_to_login from zilbo.common.utils.views.filter import object_list from zilbo.common.utils.views.create_update import create_audit_object #from django.models.tags import bookmarks def bookmark_list(request, app_label, module_name, paginate_by=None, allow_empty=False, template_name=None, template_loader=loader, login_required=False, extra_lookup_kwargs=None, extra_context=None): if login_required and request.user.is_anonymous(): return redirect_to_login(request.path) if extra_lookup_kwargs is None: extra_lookup_kwargs = {} if extra_context is None: extra_context = {} extra_lookup_kwargs['where'] = [ 'user_id = %d' % request.user.id] return object_list(request, app_label, module_name, paginate_by, allow_empty, template_name, template_loader, extra_lookup_kwargs, extra_context) def create_bookmark(request, app_label, module_name, content_type_id, object_id, template_name=None, template_loader=loader, extra_context=None, post_save_redirect=None, login_required=False, follow=None): """ bookmark-creation function. (with audit trail) """ if login_required and request.user.is_anonymous(): return redirect_to_login(request.path) if extra_context is None: extra_context = {} else: extra_context = extra_context.copy() contenttypes_mod = meta.get_module('core', 'contenttypes') c_obj = get_object_or_404(contenttypes_mod, pk=content_type_id ) obj = get_object_or_404(c_obj.get_model_module(), pk=object_id ) if request.POST: new_data = request.POST.copy() new_data['content_type'] = str( c_obj.id) new_data['object_id'] = str(obj.id) new_data['user'] = str(request.user.id) new_data['headline'] = str(obj) request._post = new_data extra_context['content_type'] = c_obj.id extra_context['object_id'] = obj.id extra_context['object'] = obj extra_context['headline'] = str(obj) return create_audit_object(request, app_label, module_name, template_name, template_loader, extra_context, post_save_redirect, login_required, follow)