Beispiel #1
0
    ''', re.I | re.X | re.S)

RE_STRIP_TAGS = re.compile(r'</?(img|br|p|div|ul|li|ol)[^<>]*?>', re.I | re.M)

# Add some html5 allowed attributes
EXTRA_ATTRIBUTES = ('srcset', 'sizes')
feedparser._HTMLSanitizer.acceptable_attributes.update(set(EXTRA_ATTRIBUTES))

# Wordpress ATOM timeout
WP_TIMEOUT = 5

# Feed allowed enclosure type as thumbnails
FEED_THUMBNAIL_MIMES = ('image/jpeg', 'image/png', 'image/webp')

gouvfr_menu = nav.Bar('gouvfr_menu', [
    nav.Item(_('Data'), 'datasets.list'),
    nav.Item(_('Reuses'), 'reuses.list'),
    nav.Item(_('Organizations'), 'organizations.list'),
    nav.Item(_('Dashboard'), 'site.dashboard'),
    nav.Item(_('Documentation'), None, url='https://doc.data.gouv.fr'),
])

theme.menu(gouvfr_menu)

footer_links = [
    nav.Item(_('Documentation'), None, url='https://doc.data.gouv.fr'),
    nav.Item(_('Reference Data'), 'gouvfr.spd'),
    nav.Item(_('Licences'), 'gouvfr.licences'),
    nav.Item(_('API'), 'apidoc.swaggerui'),
    nav.Item(_('Terms of use'), 'site.terms'),
    nav.Item(_('Tracking and privacy'), 'gouvfr.suivi'),
Beispiel #2
0
                 author=author,
                 url=url_for('reuses.show', reuse=reuse.id, _external=True),
                 updated=reuse.created_at,
                 published=reuse.created_at)
    return feed.get_response()


@blueprint.route('/', endpoint='list')
class ReuseListView(SearchView):
    model = Reuse
    context_name = 'reuses'
    template_name = 'reuse/list.html'


navbar = nav.Bar('edit_reuse', [
    nav.Item(_('Issues'), 'reuses.issues'),
    nav.Item(_('Transfer'), 'reuses.transfer'),
])


class ReuseView(object):
    model = Reuse
    object_name = 'reuse'

    @property
    def reuse(self):
        return self.get_object()

    def get_context(self):
        for item in navbar:
            item._args = {'reuse': self.reuse}
Beispiel #3
0
                             dataset=dataset.id,
                             _external=True),
                 updated=dataset.last_modified,
                 published=dataset.created_at)
    return feed.get_response()


@blueprint.route('/', endpoint='list')
class DatasetListView(SearchView):
    model = Dataset
    context_name = 'datasets'
    template_name = 'dataset/list.html'


navbar = nav.Bar('edit_dataset', [
    nav.Item(_('Descrition'), 'datasets.edit'),
    nav.Item(_('Additionnal informations'), 'datasets.edit_extras'),
    nav.Item(_('Resources'), 'datasets.edit_resources'),
    nav.Item(_('Issues'), 'datasets.issues'),
    nav.Item(_('Transfer'), 'datasets.transfer'),
])


class DatasetView(object):
    model = Dataset
    object_name = 'dataset'

    @property
    def dataset(self):
        return self.get_object()
Beispiel #4
0
log = logging.getLogger(__name__)

themes = Themes()


def get_current_theme():
    if getattr(g, 'theme', None) is None:
        g.theme = current_app.theme_manager.themes[current_app.config['THEME']]
        g.theme.configure()
    return g.theme


current = LocalProxy(get_current_theme)

default_menu = nav.Bar('default_menu', [
    nav.Item(_('Organizations'), 'organizations.list'),
    nav.Item(_('Datasets'), 'datasets.list'),
    nav.Item(_('Reuses'), 'reuses.list'),
    nav.Item(_('Map'), 'site.map'),
])


@contextfunction
def theme_static_with_version(ctx, filename, external=False):
    '''Override the default theme static to add cache burst'''
    if current_app.theme_manager.static_folder:
        url = assets.cdn_for('_themes.static',
                             filename=current.identifier + '/' + filename,
                             _external=external)
    else:
        url = assets.cdn_for('_themes.static',
Beispiel #5
0
from udata.i18n import lazy_gettext as _

log = logging.getLogger(__name__)

gouvpt_menu = nav.Bar(
    'gouvpt_menu',
    [
        nav.Item(
            _('Documentation'),
            None,
            url='#',
            items=[
                nav.Item(_('About Open Data'), 'gouvpt.faq',
                         {'section': 'about_opendata'}),
                nav.Item(_('About Dados.gov'), 'gouvpt.faq',
                         {'section': 'about_dadosgov'}),
                nav.Item(_('Publish data'), 'gouvpt.faq',
                         {'section': 'publish'}),
                nav.Item(_('Reuse data'), 'gouvpt.faq', {'section': 'reuse'}),
                nav.Item(_('Licenses'), 'gouvpt.faq', {'section': 'licenses'}),
                nav.Item(_('Acessibilidade'), 'gouvpt.faq',
                         {'section': 'acessibilidade'}),
                nav.Item(_('API'), 'gouvpt.docapi'),
            ]),
        nav.Item(
            _('Open Data'),
            None,
            url='#',
            items=[
                nav.Item(_('Datasets'), 'datasets.list'),
                #nav.Item(_('Data Analysis'), 'gouvpt.rawgraphs', {'embed': 'true'}),
Beispiel #6
0
from udata.app import cache, nav
from udata.i18n import lazy_gettext as _

log = logging.getLogger(__name__)

RE_POST_IMG = re.compile(
    r'\<img .* src="https?:(?P<src>.+\.(?:png|jpg))" .* />(?P<content>.+)')

gouvfr_menu = nav.Bar(
    'gouvfr_menu',
    [
        nav.Item(
            _('Discover OpenData'),
            'gouvfr.faq',
            #          items=[
            #     nav.Item(_('As a citizen'), 'gouvfr.faq', {'section': 'citizen'}),
            #     nav.Item(_('As a producer'), 'gouvfr.faq', {'section': 'producer'}),
            #     nav.Item(_('As a reuser'), 'gouvfr.faq', {'section': 'reuser'}),
            #     nav.Item(_('As a developer'), 'gouvfr.faq', {'section': 'developer'}),
            # ]
        ),
        nav.Item(
            _('Data'),
            'datasets.list',
            #          items=[
            #     nav.Item(_('Datasets'), 'datasets.list'),
            #     nav.Item(_('Reuses'), 'reuses.list'),
            #     nav.Item(_('Organizations'), 'organizations.list'),
            # ]
        ),
        # nav.Item(_('Dashboard'), 'site.dashboard'),
        # nav.Item(_('Events'), '#', url='#', items=[
Beispiel #7
0
from udata import theme
from udata.app import nav
from udata.core.post.models import Post
from udata.i18n import lazy_gettext as _

log = logging.getLogger(__name__)

gouvpt_menu = nav.Bar('gouvpt_menu', [
    nav.Item(
        _('Documentation'),
        None,
        url='#',
        items=[
            nav.Item(_('About Open Data'), 'gouvpt.faq',
                     {'section': 'about_opendata'}),
            nav.Item(_('About Dados.gov'), 'gouvpt.faq',
                     {'section': 'about_dadosgov'}),
            nav.Item(_('Publish data'), 'gouvpt.faq', {'section': 'publish'}),
            nav.Item(_('Reuse data'), 'gouvpt.faq', {'section': 'reuse'}),
            nav.Item(_('Licenses'), 'gouvpt.faq', {'section': 'licenses'}),
            nav.Item(_('Acessibilidade'), 'gouvpt.faq',
                     {'section': 'acessibilidade'}),
            nav.Item(_('API'), 'apidoc.swaggerui'),
        ]),
    nav.Item(_('Open Data'),
             None,
             url='#',
             items=[
                 nav.Item(_('Datasets'), 'datasets.list'),
                 nav.Item(_('Reuses'), 'reuses.list'),
                 nav.Item(_('Organizations'), 'organizations.list'),
                 nav.Item(_('Dashboard'), 'site.dashboard'),
Beispiel #8
0
RE_POST_IMG = re.compile(
    r'\<img .* src="https?:(?P<src>.+\.(?:png|jpg))" .* />(?P<content>.+)')

# Wordpress ATOM timeout
WP_TIMEOUT = 5

gouvfr_menu = nav.Bar(
    'gouvfr_menu',
    [
        nav.Item(_('Discover OpenData'),
                 'gouvfr.faq',
                 items=[
                     nav.Item(_('As a citizen'), 'gouvfr.faq',
                              {'section': 'citizen'}),
                     nav.Item(_('As a producer'), 'gouvfr.faq',
                              {'section': 'producer'}),
                     nav.Item(_('As a reuser'), 'gouvfr.faq',
                              {'section': 'reuser'}),
                     nav.Item(_('As a developer'), 'gouvfr.faq',
                              {'section': 'developer'}),
                     nav.Item(_('As a system integrator'), 'gouvfr.faq',
                              {'section': 'system-integrator'}),
                 ]),
        nav.Item(_('Data'),
                 'datasets.list',
                 items=[
                     nav.Item(_('Datasets'), 'datasets.list'),
                     nav.Item(_('Reuses'), 'reuses.list'),
                     nav.Item(_('Organizations'), 'organizations.list'),
                 ]),
        nav.Item(_('Dashboard'), 'site.dashboard'),
        # nav.Item(_('Territories'), 'territories.home'),
Beispiel #9
0
)
from .tasks import notify_new_member


blueprint = I18nBlueprint('organizations', __name__,
                          url_prefix='/organizations')


@blueprint.before_app_request
def set_g_user_orgs():
    if current_user.is_authenticated():
        g.user_organizations = current_user.organizations


navbar = nav.Bar('edit_org', [
    nav.Item(_('Descrition'), 'organizations.edit'),
    nav.Item(_('Members'), 'organizations.edit_members'),
    nav.Item(_('Membership request'),
             'organizations.edit_membership_requests'),
    nav.Item(_('Teams'), 'organizations.edit_teams'),
    nav.Item(_('Issues'), 'organizations.issues')
])


@blueprint.route('/', endpoint='list')
class OrganizationListView(SearchView):
    model = Organization
    context_name = 'organizations'
    template_name = 'organization/list.html'

Beispiel #10
0
    ''', re.I | re.X | re.S)

RE_STRIP_TAGS = re.compile(r'</?(img|br|p|div|ul|li|ol)[^<>]*?>', re.I | re.M)

# Add some html5 allowed attributes
EXTRA_ATTRIBUTES = ('srcset', 'sizes')
feedparser._HTMLSanitizer.acceptable_attributes.update(set(EXTRA_ATTRIBUTES))

# Wordpress ATOM timeout
WP_TIMEOUT = 5

# Feed allowed enclosure type as thumbnails
FEED_THUMBNAIL_MIMES = ('image/jpeg', 'image/png', 'image/webp')

gouvfr_menu = nav.Bar('gouvfr_menu', [
    nav.Item(_('Data'), 'datasets.list'),
    nav.Item(_('Reuses'), 'reuses.list'),
    nav.Item(_('Organizations'), 'organizations.list'),
    nav.Item(_('Dashboard'), 'site.dashboard'),
    nav.Item(_('Documentation'),
             None,
             url='https://doc.data.gouv.fr',
             items=[
                 nav.Item(_('Technical documentation'),
                          None,
                          url='https://doc.data.gouv.fr'),
                 nav.Item(_('Open data guides'),
                          None,
                          url='https://guides.etalab.gouv.fr'),
             ]),
    nav.Item(_('News'), 'posts.list'),
Beispiel #11
0
 def wrapper(cls):
     blueprint.add_url_rule('/{0}/'.format(endpoint), view_func=cls.as_view(str(endpoint)))
     navbar.items.append(nav.Item(label or endpoint.title(), 'admin.{0}'.format(endpoint)))
     return cls
Beispiel #12
0
                author=author,
                url=url_for('reuses.show', reuse=reuse.id, _external=True),
                updated=reuse.created_at,
                published=reuse.created_at)
    return feed.get_response()


@blueprint.route('/', endpoint='list')
class ReuseListView(SearchView):
    model = Reuse
    context_name = 'reuses'
    template_name = 'reuse/list.html'


navbar = nav.Bar('edit_reuse', [
    nav.Item(_('Descrition'), 'reuses.edit'),
    nav.Item(_('Issues'), 'reuses.issues'),
    nav.Item(_('Transfer'), 'reuses.transfer'),
])


class ReuseView(object):
    model = Reuse
    object_name = 'reuse'

    @property
    def reuse(self):
        return self.get_object()

    def get_context(self):
        for item in navbar:
Beispiel #13
0
'''
udata-koumoul

Theme for Koumoul's demo opendata portal
'''

from udata.app import nav
from udata.i18n import lazy_gettext as _
from udata import theme

nav.Bar('footer_documentation', [
    nav.Item(_('Catalogue de données'),
             None,
             url='https://github.com/opendatateam/udata/',
             items=[
                 nav.Item(_('API'), 'apidoc.swaggerui'),
                 nav.Item(_('Documentation technique'),
                          None,
                          url='https://udata.readthedocs.io/'),
             ]),
    nav.Item(
        _('Diffusion de données'),
        None,
        url='https://github.com/koumoul-dev/data-fair/',
        items=[
            nav.Item(_('Manuel utilisateur'),
                     None,
                     url='https://koumoul-dev.github.io/data-fair/user-guide'),
            nav.Item(_('Installation'),
                     None,
                     url='https://koumoul-dev.github.io/data-fair/install'),
Beispiel #14
0
'''
from __future__ import unicode_literals

import logging

from udata import theme
from udata.app import nav
from udata.i18n import lazy_gettext as _

log = logging.getLogger(__name__)

gouvlu_menu = nav.Bar('gouvlu_menu', [
    nav.Item(_('Data'),
             'datasets.list',
             items=[
                 nav.Item(_('Datasets'), 'datasets.list'),
                 nav.Item(_('Reuses'), 'reuses.list'),
                 nav.Item(_('Organizations'), 'organizations.list'),
             ]),
    nav.Item(_('Dashboard'), 'site.dashboard'),
    nav.Item(_('Events'),
             None,
             url='#',
             items=[
                 nav.Item(
                     _('Game of code'), None, url='http://www.gameofcode.eu/'),
             ]),
])

theme.menu(gouvlu_menu)
Beispiel #15
0
log = logging.getLogger(__name__)

RE_POST_IMG = re.compile(
    r'\<img .* src="https?:(?P<src>.+\.(?:png|jpg))" .* />(?P<content>.+)')

gouvfr_menu = nav.Bar(
    'gouvfr_menu',
    [
        nav.Item(_('Discover OpenData'),
                 'gouvfr.faq',
                 items=[
                     nav.Item(_('As a citizen'), 'gouvfr.faq',
                              {'section': 'citizen'}),
                     nav.Item(_('As a producer'), 'gouvfr.faq',
                              {'section': 'producer'}),
                     nav.Item(_('As a reuser'), 'gouvfr.faq',
                              {'section': 'reuser'}),
                     nav.Item(_('As a developer'), 'gouvfr.faq',
                              {'section': 'developer'}),
                     nav.Item(_('As a system integrator'), 'gouvfr.faq',
                              {'section': 'system-integrator'}),
                 ]),
        nav.Item(_('Data'),
                 'datasets.list',
                 items=[
                     nav.Item(_('Datasets'), 'datasets.list'),
                     nav.Item(_('Reuses'), 'reuses.list'),
                     nav.Item(_('Organizations'), 'organizations.list'),
                 ]),
        nav.Item(_('Dashboard'), 'site.dashboard'),
        nav.Item(_('Events'),
log = logging.getLogger(__name__)

RE_POST_IMG = re.compile(
    r'\<img .* src="https?:(?P<src>.+\.(?:png|jpg))" .* />(?P<content>.+)')

# Wordpress ATOM timeout
WP_TIMEOUT = 5

lecatalogue_menu = nav.Bar(
    'lecatalogue_menu',
    [
        nav.Item(_('Data'),
                 'datasets.list',
                 items=[
                     nav.Item(_('Datasets'), 'datasets.list'),
                     nav.Item(_('Reuses'), 'reuses.list'),
                     nav.Item(_('Organizations'), 'organizations.list'),
                 ]),
        nav.Item(_('Dashboard'), 'site.dashboard'),
        # nav.Item(_('Territories'), 'territories.home'),
    ])

theme.menu(lecatalogue_menu)

nav.Bar('lecatalogue_footer', [
    nav.Item(_('Reference Data'), 'gouvfr.spd'),
    nav.Item(_('Licences'), 'gouvfr.licences'),
    nav.Item(_('API'), 'apidoc.swaggerui'),
    nav.Item(_('Credits'), 'gouvfr.credits'),
    nav.Item(_('Terms of use'), 'site.terms'),
Beispiel #17
0
log = logging.getLogger(__name__)


@blueprint.before_app_request
def set_g_sysadmin():
    g.sysadmin = sysadmin


@blueprint.app_context_processor
def inject_sysadmin_perms():
    return {'sysadmin': sysadmin}


navbar = nav.Bar('edit_user', [
    nav.Item(_('Profile'), 'users.edit'),
    nav.Item(_('Settings'), 'users.settings'),
    nav.Item(_('API KEY'), 'users.apikey_settings'),
    nav.Item(_('Notifications'), 'users.notifications_settings'),
])


@blueprint.route('/', endpoint='list')
class UserListView(SearchView):
    model = User
    template_name = 'user/list.html'
    context_name = 'users'
    default_sort = ('last_name', 'first_name')


class UserView(object):