예제 #1
0
class PyLucidRequestObjects(object):
    """ PyLucid request objects """
    _check_setattr = False
    def __init__(self, request):
        self.request = request

        self.path_info = PathInfo(request)

        self.preferences_form = SystemPreferencesForm()
        self.preferences = self.preferences_form.get_preferences()

        # FIXME: import here, against import loop:
        from pylucid_project.apps.pylucid.models import Language

        self.languages = Language.objects.get_languages(request)
        self.default_language = Language.objects.get_or_create_default(request)
        try:
            self.current_language = self.languages[0]
        except IndexError, err:
            messages.info(request,
                (
                    "There exist no language on this site!"
                    " Used default one."
                    " Go into 'django admin/PyLucid/Languages' and"
                    " add at least one language to this site!"
                    " (Original error was: %s)"
                ) % err
            )
            self.languages = [self.default_language]
            self.current_language = self.default_language


        # Storing extra html head code from plugins, used in:
        # pylucid.defaulttags.extraheadBlock - redirect {% extrahead %} block tag content
        # pylucid_plugin.extrahead.context_middleware - insert the data into the global page
        self.extrahead = extrahead.ExtraHead()

        # objects witch will be set later:
        # self.object2comment - Object to comment
        # self.pagetree - The current PageTree model instance
        # self.pagemeta - The current PageMeta model instance
        #
        # if current page == PageTree.PAGE_TYPE: # a normal content page
        #     self.pagecontent - PageContent instance, attached at pylucid.views._render_page()
        # elif  current page == PageTree.PLUGIN_TYPE: # a plugin page
        #     self.pluginpage - PluginPage instance, attached at pylucid.system.pylucid_plugin.call_plugin()
        #
        # self.page_template - The global page template as a string
        # self.context - The global context

        self._check_setattr = settings.DEBUG
예제 #2
0
class PyLucidRequestObjects(object):
    """ PyLucid request objects """
    _check_setattr = False

    def __init__(self, request):
        self.request = request

        self.path_info = PathInfo(request)

        self.preferences_form = SystemPreferencesForm()
        self.preferences = self.preferences_form.get_preferences()

        # FIXME: import here, against import loop:
        from pylucid_project.apps.pylucid.models import Language

        self.languages = Language.objects.get_languages(request)
        self.default_language = Language.objects.get_or_create_default(request)
        try:
            self.current_language = self.languages[0]
        except IndexError, err:
            messages.info(request,
                          ("There exist no language on this site!"
                           " Used default one."
                           " Go into 'django admin/PyLucid/Languages' and"
                           " add at least one language to this site!"
                           " (Original error was: %s)") % err)
            self.languages = [self.default_language]
            self.current_language = self.default_language

        # Storing extra html head code from plugins, used in:
        # pylucid.defaulttags.extraheadBlock - redirect {% extrahead %} block tag content
        # pylucid_plugin.extrahead.context_middleware - insert the data into the global page
        self.extrahead = extrahead.ExtraHead()

        # objects witch will be set later:
        # self.object2comment - Object to comment
        # self.pagetree - The current PageTree model instance
        # self.pagemeta - The current PageMeta model instance
        #
        # if current page == PageTree.PAGE_TYPE: # a normal content page
        #     self.pagecontent - PageContent instance, attached at pylucid.views._render_page()
        # elif  current page == PageTree.PLUGIN_TYPE: # a plugin page
        #     self.pluginpage - PluginPage instance, attached at pylucid.system.pylucid_plugin.call_plugin()
        #
        # self.page_template - The global page template as a string
        # self.context - The global context

        self._check_setattr = settings.DEBUG
예제 #3
0
파일: tests.py 프로젝트: ckolumbus/PyLucid
class BlogPluginAnonymousTestCase(BlogPluginTestCase):
    def setUp(self):
        cache.clear()

        from pylucid_project.apps.pylucid.preference_forms import SystemPreferencesForm
        self.system_pref_form = SystemPreferencesForm()
        self.system_preferences = self.system_pref_form.get_preferences()
        self.system_preferences["message_level_anonymous"] = message_constants.DEBUG
        self.system_pref_form.save()

        DEBUG_LANG_FILTER = True
        settings.PYLUCID.I18N_DEBUG = True

        self.pref_form = BlogPrefForm()

    def _set_language_filter(self, language_filter):
        self.pref_form["language_filter"] = language_filter
        self.pref_form.save()
예제 #4
0
class BlogPluginAnonymousTestCase(BlogPluginTestCase):
    def setUp(self):
        cache.clear()

        from pylucid_project.apps.pylucid.preference_forms import SystemPreferencesForm
        self.system_pref_form = SystemPreferencesForm()
        self.system_preferences = self.system_pref_form.get_preferences()
        self.system_preferences["message_level_anonymous"] = message_constants.DEBUG
        self.system_pref_form.save()

        DEBUG_LANG_FILTER = True
        settings.PYLUCID.I18N_DEBUG = True

        self.pref_form = BlogPrefForm()

    def _set_language_filter(self, language_filter):
        self.pref_form["language_filter"] = language_filter
        self.pref_form.save()
예제 #5
0
파일: log.py 프로젝트: xuanxu11/PyLucid
    def log_action(self,
                   app_label,
                   action,
                   request=None,
                   message=None,
                   long_message=None,
                   data=None):
        if request is None:
            request = ThreadLocal.get_current_request()

        kwargs = {
            "uri": request.build_absolute_uri(),
            "app_label": app_label,
            "action": action,
            "message": message,
            "long_message": long_message,
            "data": data,
        }

        if hasattr(request, "PYLUCID"):
            kwargs["used_language"] = request.PYLUCID.current_language
            preferences = request.PYLUCID.preferences  # Get SystemPreferences
        else:
            from pylucid_project.apps.pylucid.preference_forms import SystemPreferencesForm  # import loops
            preferences_form = SystemPreferencesForm()
            preferences = preferences_form.get_preferences()

        for key in META_KEYS:
            value = request.META.get(key)
            if value and len(value) > 255:
                value = "%s..." % value[:252]
            kwargs[key.lower()] = value

        new_entry = self.model(**kwargs)
        new_entry.save()

        # Auto cleanup Log Table to protect against overloading.
        max_count = preferences.get("max_log_entries", 1000)
        queryset = LogEntry.objects.order_by('-createtime')
        ids = tuple(queryset[max_count:].values_list('id', flat=True))
        if ids:
            queryset.filter(id__in=ids).delete()

        return new_entry
예제 #6
0
파일: log.py 프로젝트: BIGGANI/PyLucid
    def log_action(self, app_label, action, request=None, message=None, long_message=None, data=None):
        if request is None:
            request = ThreadLocal.get_current_request()

        kwargs = {
            "uri": request.build_absolute_uri(),
            "app_label": app_label,
            "action": action,
            "message": message,
            "long_message": long_message,
            "data": data,
        }

        if hasattr(request, "PYLUCID"):
            kwargs["used_language"] = request.PYLUCID.current_language
            preferences = request.PYLUCID.preferences # Get SystemPreferences
        else:
            from pylucid_project.apps.pylucid.preference_forms import SystemPreferencesForm # import loops
            preferences_form = SystemPreferencesForm()
            preferences = preferences_form.get_preferences()

        for key in META_KEYS:
            value = request.META.get(key)
            if value and len(value) > 255:
                value = "%s..." % value[:252]
            kwargs[key.lower()] = value

        new_entry = self.model(**kwargs)
        new_entry.save()

        # Auto cleanup Log Table to protect against overloading.                 
        max_count = preferences.get("max_log_entries", 1000)
        queryset = LogEntry.objects.order_by('-createtime')
        ids = tuple(queryset[max_count:].values_list('id', flat=True))
        if ids:
            queryset.filter(id__in=ids).delete()

        return new_entry