Пример #1
0
 def get_context_data(self, **kwargs):
     kwargs.update({
         'djangobmf': self.read_session_data()
     })
     # allways read current version, if in development mode
     if settings.DEBUG:
         kwargs["djangobmf"]['version'] = get_version()
     return super(BaseMixin, self).get_context_data(**kwargs)
Пример #2
0
 def _read_session_data(self):
     """
     returns the data saved in the session or an
     default dictionary containing the version of
     the bmf
     """
     return self.request.session.get("djangobmf", {
         'version': get_version(),
     })
Пример #3
0
 def _read_session_data(self):
     """
     returns the data saved in the session or an
     default dictionary containing the version of
     the bmf
     """
     return self.request.session.get("djangobmf", {
         'version': get_version(),
         'debugjs': bmfsettings.DEBUG_JS,
     })
Пример #4
0
    def get_context_data(self, **kwargs):
        # update context with session data
        kwargs.update({
            'djangobmf': self._read_session_data(),
        })

        # always read current version, if in DEBUG mode
        if settings.DEBUG:
            kwargs["djangobmf"]['version'] = get_version()

        return super(BaseViewMixin, self).get_context_data(**kwargs)
Пример #5
0
 def read_session_data(self):
     """
     returns the data saved in the session or an
     default dictionary containing the version of
     the bmf
     """
     return self.request.session.get("djangobmf", {
         'version': get_version(),
         'active_dashboard': None,
         # 'active_view': None,
     })
Пример #6
0
from djangobmf.views.api import APIIndex
from djangobmf.views.api import APIViewDetail
from djangobmf.views.api import APIModuleListView
# from djangobmf.views.api import APIModuleDetailView
from djangobmf.views.api import NotificationCountAPI
from djangobmf.views.api import NotificationListAPI
from djangobmf.views.api import NotificationViewAPI
from djangobmf.views.configuration import ConfigurationView
from djangobmf.views.configuration import ConfigurationEdit
from djangobmf.views.dashboard import DashboardIndex
from djangobmf.views.dashboard import Redirect
# from djangobmf.views.dashboard import DashboardCategory
# from djangobmf.views.dashboard import DashboardView
from djangobmf.views.wizard import WizardView

VERSION = get_version()

if settings.DEBUG:
    CACHE_TIME = 1
else:
    CACHE_TIME = 86400  # 24h


@cache_page(CACHE_TIME, key_prefix=VERSION)
@last_modified(lambda req, **kw: now())
def i18n_javascript(request):
    """
    Displays the i18n JavaScript that the Django admin requires.
    """
    if settings.USE_I18N:  # pragma: no cover
        from django.views.i18n import javascript_catalog
Пример #7
0
    def get_context_data(self, **kwargs):
        session_data = self._read_session_data()

        # TODO check below this line ----------------------------------------
        # load dashboard
        if hasattr(self, '_bmf_view_class'):
            current_view = self._bmf_view_class.key
            current_dashboard = self._bmf_dashboard
        elif hasattr(self, 'get_dashboard'):
            current_dashboard = self.get_dashboard()
            current_view = None
        else:
            try:
                current_dashboard = self.request.djangobmf_site.get_dashboard(session_data['active_dashboard'])
            except KeyError:
                current_dashboard = None
            current_view = None

        # update session
        if current_dashboard and current_dashboard.key != session_data['active_dashboard']:
            session_data['active_dashboard'] = current_dashboard.key
            self._write_session_data(session_data)

        dashboards = self._update_dashboards()

        # collect data
        sidebar = []
        if current_dashboard:
            for category in current_dashboard:
                for view in category:
                    try:
                        url = dashboards[current_dashboard.key][category.key][view.key]
                    except KeyError:
                        continue
                    sidebar.append({
                        'category': category.name,
                        'view': view,
                        'url': url,
                        'active': current_view == view.key,
                    })

        navigation_dashboard = []
        for key in dashboards.keys():
            obj = self.request.djangobmf_site.get_dashboard(key)
            url = reverse(
                'djangobmf:dashboard',
                kwargs={
                    'dashboard': key,
                },
            )
            navigation_dashboard.append({
                'name': obj.name,
                'url': url,
                'active': current_dashboard == obj,
            })

        # update context with session data
        kwargs.update({
            'djangobmf': self._read_session_data(),
            'sidebar': sidebar,
            'navigation_dashboard': navigation_dashboard,
            'active_dashboard': current_dashboard,
            'active_dashboard_view': current_view,
        })
        # TODO check above this line ----------------------------------------

        # always read current version, if in DEBUG mode
        if settings.DEBUG:
            kwargs["djangobmf"]['version'] = get_version()

        return super(BaseViewMixin, self).get_context_data(**kwargs)
Пример #8
0
from django.conf import settings
from django.conf.urls import patterns, include, url
from django.utils import timezone
from django.views.decorators.cache import cache_page
from django.views.decorators.http import last_modified

from djangobmf import get_version
from djangobmf.views import ModuleOverviewView
from djangobmf.views.configuration import ConfigurationView
from djangobmf.views.configuration import ConfigurationEdit
from djangobmf.views.dashboard import DashboardView
from djangobmf.views.dashboard import dashboard_view_factory


@cache_page(86400, key_prefix='bmf-js18n-%s' % get_version())
@last_modified(lambda req, **kw: timezone.now())
def i18n_javascript(request):
    """
    Displays the i18n JavaScript that the Django admin requires.
    """
    if settings.USE_I18N:  # pragma: no cover
        from django.views.i18n import javascript_catalog
    else:  # pragma: no cover
        from django.views.i18n import null_javascript_catalog as javascript_catalog
    return javascript_catalog(request, packages=['djangobmf'])


urlpatterns = patterns(
    '',
    url(r'^$', DashboardView.as_view(), name="dashboard"),
Пример #9
0
from djangobmf.views.api import APIViewDetail
from djangobmf.views.api import APIModuleListView
# from djangobmf.views.api import APIModuleDetailView
from djangobmf.views.api import NotificationCountAPI
from djangobmf.views.api import NotificationListAPI
from djangobmf.views.api import NotificationViewAPI
from djangobmf.views.configuration import ConfigurationView
from djangobmf.views.configuration import ConfigurationEdit
from djangobmf.views.dashboard import DashboardIndex
from djangobmf.views.dashboard import Redirect
# from djangobmf.views.dashboard import DashboardCategory
# from djangobmf.views.dashboard import DashboardView
from djangobmf.views.wizard import WizardView


VERSION = get_version()


if settings.DEBUG:
    CACHE_TIME = 1
else:
    CACHE_TIME = 86400  # 24h


@cache_page(CACHE_TIME, key_prefix=VERSION)
@last_modified(lambda req, **kw: now())
def i18n_javascript(request):
    """
    Displays the i18n JavaScript that the Django admin requires.
    """
    if settings.USE_I18N:  # pragma: no cover
Пример #10
0
from django.conf import settings
from django.conf.urls import patterns, include, url
from django.utils import timezone
from django.views.decorators.cache import cache_page
from django.views.decorators.http import last_modified

from djangobmf import get_version
from djangobmf.views import ModuleOverviewView
from djangobmf.views.configuration import ConfigurationView
from djangobmf.views.configuration import ConfigurationEdit
from djangobmf.views.dashboard import DashboardView
from djangobmf.views.dashboard import dashboard_view_factory


@cache_page(86400, key_prefix='bmf-js18n-%s' % get_version())
@last_modified(lambda req, **kw: timezone.now())
def i18n_javascript(request):
    """
    Displays the i18n JavaScript that the Django admin requires.
    """
    if settings.USE_I18N:  # pragma: no cover
        from django.views.i18n import javascript_catalog
    else:  # pragma: no cover
        from django.views.i18n import null_javascript_catalog as javascript_catalog
    return javascript_catalog(request, packages=['djangobmf'])


urlpatterns = patterns(
    '',
    url(r'^$', DashboardView.as_view(), name="dashboard"),
Пример #11
0
 def read_session_data(self):
     return self.request.session.get("djangobmf", {'version': get_version()})
Пример #12
0
    def get_context_data(self, **kwargs):

        session_data = self.read_session_data()

        # load dashboard
        if hasattr(self, 'get_dashboard_view'):
            current_dashboard = self.get_dashboard()
            current_view = self.get_dashboard_view()
        elif hasattr(self, 'get_dashboard'):
            current_dashboard = self.get_dashboard()
            current_view = None
        else:
            try:
                current_dashboard = self.request.djangobmf_site.get_dashboard(session_data['active_dashboard'])
            except KeyError:
                current_dashboard = None
            current_view = None

        # update session
        if current_dashboard and current_dashboard.key != session_data['active_dashboard']:
            session_data['active_dashboard'] = current_dashboard.key
            self.write_session_data(session_data)

        dashboards = self.update_dashboards()

        # collect data
        sidebar = []
        if current_dashboard:
            for category in current_dashboard:
                for view in category:
                    try:
                        url = dashboards[current_dashboard.key][category.key][view.key]
                    except KeyError:
                        continue
                    sidebar.append({
                        'category': category.name,
                        'view': view,
                        'url': url,
                        'active': current_view == view,
                    })

        navigation_dashboard = []
        for key in dashboards.keys():
            obj = self.request.djangobmf_site.get_dashboard(key)
            url = reverse(
                'djangobmf:dashboard',
                kwargs={
                    'dashboard': key,
                },
            )
            navigation_dashboard.append({
                'name': obj.name,
                'url': url,
                'active': current_dashboard == obj,
            })

        # update context with session data
        kwargs.update({
            'djangobmf': self.read_session_data(),
            'sidebar': sidebar,
            'navigation_dashboard': navigation_dashboard,
            'active_dashboard': current_dashboard,
            'active_dashboard_view': current_view,
        })

        # always read current version, if in development mode
        if settings.DEBUG:
            kwargs["djangobmf"]['version'] = get_version()

        return super(ViewMixin, self).get_context_data(**kwargs)