remove project files from the debian branch

This commit is contained in:
Benjamin Dauvergne 2013-11-04 18:43:20 +01:00
parent 23d7669575
commit f506f16665
113 changed files with 0 additions and 17719 deletions

3
.gitignore vendored
View File

@ -1,3 +0,0 @@
compte-agglo-montpellier.db
local_settings.py
*.pyc

View File

@ -1,10 +0,0 @@
recursive-include compte_agglo_montpellier/locale *.po *.mo
recursive-include compte_agglo_montpellier/static *.png *.gif *.css *.js *.jpg
recursive-include compte_agglo_montpellier/templates *.html *.txt
recursive-include compte_agglo_montpellier/fixtures *.json
recursive-include compte_agglo_montpellier/apps/feed_plugin/templates *.html
recursive-include compte_agglo_montpellier/apps/feed_plugin/locale *.po *.mo
include local_settings.py.example
include requirements.txt
include MANIFEST.in
include VERSION

View File

@ -1,49 +0,0 @@
SCRIPT=./compte-agglo-montpellier
BASE=./compte_agglo_montpellier
all:
true
show-domains-occurences:
grep -Hno 'http.\?://[a-zA-Z0-9.-]*' compte_agglo_montpellier/fixtures/*.json
show-domains:
grep -ho 'http.\?://[a-zA-Z0-9.-]*' compte_agglo_montpellier/fixtures/*.json | sort -u
update-pages-and-saml:
@echo Building file saml-preprod.json, pages-preprod.json, salm-dev.json and pages-dev.json in fixtures...
@./run.sh dumpdata -e attribute_aggregator.userattributeprofile -e \
saml.keyvalue -e authentic2.deleteduser -e saml.libertyassertion -e saml.libertyfederation -e \
saml.libertysession -e saml.libertysessiondump idp saml authentic2 \
attribute_aggregator saml | jsonlint -f > $(BASE)/fixtures/saml-preprod.json
@./run.sh dumpdata sites cms cmsplugin_text_wrapper file \
googlemap link picture snippet teaser video login_plugin data_source_plugin \
a2_service_list_plugin feed_plugin.selectuserfeed feed_plugin.showuserfeed | jsonlint -f > \
$(BASE)/fixtures/pages-preprod.json
@echo Changing URLs for dev
@for preprod in $(BASE)/fixtures/*-preprod.json; do sed -e 's#http://www-test.entrouvert.montpellier-agglo.com#http://drupal.montpellier.entrouvert.org#g' \
-e 's#https://idp-test-entrouvert.montpellier-agglo.com#http://idp-montpellier.entrouvert.org#g' \
-e 's#"idp-test-entrouvert.montpellier-agglo.com"#"idp-montpellier.entrouvert.org"#g' \
-e 's#orig=idp-test-entrouvert.montpellier-agglo.com#orig=idp-montpellier.entrouvert.org#g' \
-e 's#https://eservices-test-entrouvert.montpellier-agglo.com#http://eservices-montpellier.entrouvert.org#g' \
$$preprod >`echo $$preprod | sed s,preprod,dev,`; echo " - processed " $$preprod; done
@git commit -v $(BASE)/fixtures/
update-feeds:
@echo Building file feeds.json in fixtures...
@./run.sh dumpdata feed_plugin.feed | jsonlint -f > \
$(BASE)/fixtures/feeds.json
@git commit -v $(BASE)/fixtures/feeds.json
update-groups:
@echo Building file groups.json in fixtures...
@./run.sh dumpdata -n auth.group | jsonlint -f >$(BASE)/fixtures/groups.json
@git commit -v $(BASE)/fixtures/groups.json
update-users:
@echo Building file users.json in fixtures...
@./run.sh dumpdata portail_citoyen.citoyen | jsonlint -f >$(BASE)/fixtures/users.json
@git commit -v $(BASE)/fixtures/users.json
update-dev:
ssh root@montpellier-dev /var/vhosts/idp-montpellier.entrouvert.org/virtualenv/bin/pip install -U git+git://repos.entrouvert.org/compte-agglo-montpellier.git/

19
README
View File

@ -1,19 +0,0 @@
How to start
============
To work on compte-agglo-montpellier just execute the following line (command
to launch start with $, other lines are expected output)::
$ ./start.sh
The application is now usable at http://localhost:8000/
How to save users settings
==========================
$ ./run.sh dumpdata -n portail_citoyen.citoyen saml.libertyfederation \
feed_plugin.feedpreference portail_citoyen_announces.subscription >user-datas.json
To load them
$ ./run.sh loaddata user-datas.json

View File

@ -1,17 +0,0 @@
#!/usr/bin/env python
import os
import sys
import compte_agglo_montpellier
sys.path.append(os.path.join(
os.path.dirname(compte_agglo_montpellier.__file__),
'apps'))
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "compte_agglo_montpellier.settings")
os.environ.setdefault('DEBUG', '1')
from django.core.management import execute_from_command_line
execute_from_command_line(sys.argv)

View File

@ -1 +0,0 @@
__version__ = '0.1'

View File

@ -1,8 +0,0 @@
from django.contrib import admin
from . import models
class FeedAdmin(admin.ModelAdmin):
list_display = [ 'name', 'url', 'color_hex', 'css_classes' ]
admin.site.register(models.Feed, FeedAdmin)

View File

@ -1,83 +0,0 @@
import logging
import hashlib
from xml.etree import ElementTree as ET
from django.utils.translation import ugettext_lazy as _
from django.core.cache import cache
import feedparser
from cms.plugin_base import CMSPluginBase
from cms.plugin_pool import plugin_pool
from . import models
from . import forms
logger = logging.getLogger(__name__)
class SelectUserFeedPlugin(CMSPluginBase):
model = models.SelectUserFeed
name = _('select user feeds')
render_template = 'feed_plugin/select_user_feed.html'
text_enabled = True
def render(self, context, instance, placeholder):
request = context['request']
user = request.user
submit = 'select-user-feed-plugin-%s' % instance.id
if request.method == 'POST' and submit in request.POST:
form = forms.FeedForm(data=request.POST)
if form.is_valid():
models.FeedPreference.objects.filter(user=user).delete()
for feed in form.cleaned_data['feeds']:
models.FeedPreference.objects.get_or_create(
user=user, feed=feed)
else:
initial = dict(feeds=models.FeedPreference.objects.filter(user=user)
.values_list('feed_id', flat=True))
form = forms.FeedForm(initial=initial)
context.update(dict(form=form, submit=submit))
return context
class ShowUserFeedPlugin(CMSPluginBase):
model = models.ShowUserFeed
name = _('show user feeds')
render_template = 'feed_plugin/show_user_feed.html'
text_enabled = True
def get_feeds(self, instance, user):
entries = []
logger.debug('loading RSS feeds of user %s', user.username)
for pref in models.FeedPreference.objects.filter(user=user):
feed = feedparser.parse(pref.feed.url)
for entry in feed.entries:
for attribute in ('published_parsed', 'updated_parsed',
'created_parsed', 'expired_parsed'):
date = getattr(entry, attribute, None)
if date is not None:
break
entries.append((date, entry.title, entry.link, pref.feed.name,
pref.feed.color_hex, pref.feed.css_classes))
logger.debug('loading finished of %s entries', len(entries))
entries.sort(reverse=True)
entries = entries[:instance.limit]
return [dict(title=title, link=link, feed_name=feed_name,
color_hex=color_hex, css_classes=css_classes)
for date, title, link, feed_name, color_hex, css_classes in entries]
def render(self, context, instance, placeholder):
request = context['request']
user = request.user
key = 'user-feeds-%s-%s' % (user.id, instance.timeout)
entries = cache.get(key)
if entries is None:
entries = self.get_feeds(instance, user)
cache.set(key, entries, instance.timeout)
context.update(dict(entries=entries))
return context
plugin_pool.register_plugin(SelectUserFeedPlugin)
plugin_pool.register_plugin(ShowUserFeedPlugin)

View File

@ -1,10 +0,0 @@
from django import forms
from django.utils.translation import ugettext as _
from . import models
from . import widgets
class FeedForm(forms.Form):
feeds = forms.ModelMultipleChoiceField(queryset=models.Feed.objects.all(),
label=_('Your feeds'), widget=widgets.CheckboxMultipleSelect,
required=False)

View File

@ -1,59 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-07-24 23:01+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: cms_plugins.py:18
msgid "select user feeds"
msgstr "Choisir ses flux"
#: cms_plugins.py:42
msgid "show user feeds"
msgstr "Afficher les flux de l'utilisateur"
#: forms.py:8
msgid "Your feeds"
msgstr "Vos flux"
#: models.py:11
msgid "user feed subscription"
msgstr "abonnement à un flux RSS"
#: models.py:12
msgid "user feed subscriptions"
msgstr "abonnements aux flux RSS"
#: models.py:22
msgid "name"
msgstr "nom"
#: models.py:24
msgid "CSS classes"
msgstr "classe CSS"
#: models.py:27
msgid "feed"
msgstr "flux"
#: models.py:28
msgid "feeds"
msgstr "flux"
#: templates/feed_plugin/select_user_feed.html:5
msgid "Validate"
msgstr "Valider"

View File

@ -1,146 +0,0 @@
# -*- coding: utf-8 -*-
import datetime
from south.db import db
from south.v2 import SchemaMigration
from django.db import models
class Migration(SchemaMigration):
def forwards(self, orm):
# Adding model 'FeedPreference'
db.create_table(u'feed_plugin_feedpreference', (
(u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['portail_citoyen.Citoyen'])),
('feed', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['feed_plugin.Feed'])),
))
db.send_create_signal(u'feed_plugin', ['FeedPreference'])
# Adding model 'SelectUserFeed'
db.create_table(u'cmsplugin_selectuserfeed', (
(u'cmsplugin_ptr', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['cms.CMSPlugin'], unique=True, primary_key=True)),
))
db.send_create_signal(u'feed_plugin', ['SelectUserFeed'])
# Adding model 'ShowUserFeed'
db.create_table(u'cmsplugin_showuserfeed', (
(u'cmsplugin_ptr', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['cms.CMSPlugin'], unique=True, primary_key=True)),
('limit', self.gf('django.db.models.fields.PositiveIntegerField')(default=10)),
('timeout', self.gf('django.db.models.fields.PositiveIntegerField')(default=60)),
))
db.send_create_signal(u'feed_plugin', ['ShowUserFeed'])
# Adding model 'Feed'
db.create_table(u'feed_plugin_feed', (
(u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('name', self.gf('django.db.models.fields.CharField')(max_length=32)),
('url', self.gf('django.db.models.fields.URLField')(max_length=200)),
))
db.send_create_signal(u'feed_plugin', ['Feed'])
def backwards(self, orm):
# Deleting model 'FeedPreference'
db.delete_table(u'feed_plugin_feedpreference')
# Deleting model 'SelectUserFeed'
db.delete_table(u'cmsplugin_selectuserfeed')
# Deleting model 'ShowUserFeed'
db.delete_table(u'cmsplugin_showuserfeed')
# Deleting model 'Feed'
db.delete_table(u'feed_plugin_feed')
models = {
u'auth.group': {
'Meta': {'object_name': 'Group'},
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
},
u'auth.permission': {
'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'},
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
},
'cms.cmsplugin': {
'Meta': {'object_name': 'CMSPlugin'},
'changed_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'language': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}),
'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}),
'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}),
'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.CMSPlugin']", 'null': 'True', 'blank': 'True'}),
'placeholder': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Placeholder']", 'null': 'True'}),
'plugin_type': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}),
'position': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}),
'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}),
'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'})
},
'cms.placeholder': {
'Meta': {'object_name': 'Placeholder'},
'default_width': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'slot': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'})
},
u'contenttypes.contenttype': {
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
},
u'feed_plugin.feed': {
'Meta': {'object_name': 'Feed'},
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
'url': ('django.db.models.fields.URLField', [], {'max_length': '200'})
},
u'feed_plugin.feedpreference': {
'Meta': {'object_name': 'FeedPreference'},
'feed': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['feed_plugin.Feed']"}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['portail_citoyen.Citoyen']"})
},
u'feed_plugin.selectuserfeed': {
'Meta': {'object_name': 'SelectUserFeed', 'db_table': "u'cmsplugin_selectuserfeed'", '_ormbases': ['cms.CMSPlugin']},
u'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'})
},
u'feed_plugin.showuserfeed': {
'Meta': {'object_name': 'ShowUserFeed', 'db_table': "u'cmsplugin_showuserfeed'", '_ormbases': ['cms.CMSPlugin']},
u'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}),
'limit': ('django.db.models.fields.PositiveIntegerField', [], {'default': '10'}),
'timeout': ('django.db.models.fields.PositiveIntegerField', [], {'default': '60'})
},
u'portail_citoyen.citoyen': {
'Meta': {'object_name': 'Citoyen'},
'address': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
'backend': ('django.db.models.fields.CharField', [], {'max_length': '64', 'blank': 'True'}),
'backend_id': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
'city': ('django.db.models.fields.CharField', [], {'max_length': '64', 'blank': 'True'}),
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
'email': ('django.db.models.fields.EmailField', [], {'max_length': '128', 'blank': 'True'}),
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
'mobile': ('django.db.models.fields.CharField', [], {'max_length': '16', 'blank': 'True'}),
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
'phone': ('django.db.models.fields.CharField', [], {'max_length': '16', 'blank': 'True'}),
'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '5', 'blank': 'True'}),
'title': ('django.db.models.fields.CharField', [], {'max_length': '16', 'blank': 'True'}),
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '256'})
}
}
complete_apps = ['feed_plugin']

View File

@ -1,113 +0,0 @@
# -*- coding: utf-8 -*-
import datetime
from south.db import db
from south.v2 import SchemaMigration
from django.db import models
class Migration(SchemaMigration):
def forwards(self, orm):
# Adding field 'Feed.css_classes'
db.add_column(u'feed_plugin_feed', 'css_classes',
self.gf('django.db.models.fields.CharField')(default='', max_length=128),
keep_default=False)
def backwards(self, orm):
# Deleting field 'Feed.css_classes'
db.delete_column(u'feed_plugin_feed', 'css_classes')
models = {
u'auth.group': {
'Meta': {'object_name': 'Group'},
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
},
u'auth.permission': {
'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'},
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
},
'cms.cmsplugin': {
'Meta': {'object_name': 'CMSPlugin'},
'changed_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'language': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}),
'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}),
'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}),
'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.CMSPlugin']", 'null': 'True', 'blank': 'True'}),
'placeholder': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Placeholder']", 'null': 'True'}),
'plugin_type': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}),
'position': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}),
'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}),
'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'})
},
'cms.placeholder': {
'Meta': {'object_name': 'Placeholder'},
'default_width': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'slot': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'})
},
u'contenttypes.contenttype': {
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
},
u'feed_plugin.feed': {
'Meta': {'object_name': 'Feed'},
'css_classes': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
'url': ('django.db.models.fields.URLField', [], {'max_length': '200'})
},
u'feed_plugin.feedpreference': {
'Meta': {'object_name': 'FeedPreference'},
'feed': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['feed_plugin.Feed']"}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['portail_citoyen.Citoyen']"})
},
u'feed_plugin.selectuserfeed': {
'Meta': {'object_name': 'SelectUserFeed', 'db_table': "u'cmsplugin_selectuserfeed'", '_ormbases': ['cms.CMSPlugin']},
u'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'})
},
u'feed_plugin.showuserfeed': {
'Meta': {'object_name': 'ShowUserFeed', 'db_table': "u'cmsplugin_showuserfeed'", '_ormbases': ['cms.CMSPlugin']},
u'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}),
'limit': ('django.db.models.fields.PositiveIntegerField', [], {'default': '10'}),
'timeout': ('django.db.models.fields.PositiveIntegerField', [], {'default': '60'})
},
u'portail_citoyen.citoyen': {
'Meta': {'object_name': 'Citoyen'},
'address': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
'backend': ('django.db.models.fields.CharField', [], {'max_length': '64', 'blank': 'True'}),
'backend_id': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
'city': ('django.db.models.fields.CharField', [], {'max_length': '64', 'blank': 'True'}),
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
'email': ('django.db.models.fields.EmailField', [], {'max_length': '128', 'blank': 'True'}),
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
'mobile': ('django.db.models.fields.CharField', [], {'max_length': '16', 'blank': 'True'}),
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
'phone': ('django.db.models.fields.CharField', [], {'max_length': '16', 'blank': 'True'}),
'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '5', 'blank': 'True'}),
'title': ('django.db.models.fields.CharField', [], {'max_length': '16', 'blank': 'True'}),
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '256'})
}
}
complete_apps = ['feed_plugin']

View File

@ -1,121 +0,0 @@
# -*- coding: utf-8 -*-
import datetime
from south.db import db
from south.v2 import SchemaMigration
from django.db import models
class Migration(SchemaMigration):
def forwards(self, orm):
# Deleting field 'Feed.css_classes'
db.delete_column(u'feed_plugin_feed', 'css_classes')
# Adding field 'Feed.color_hex'
db.add_column(u'feed_plugin_feed', 'color_hex',
self.gf('django.db.models.fields.CharField')(default='', max_length=6),
keep_default=False)
def backwards(self, orm):
# Adding field 'Feed.css_classes'
db.add_column(u'feed_plugin_feed', 'css_classes',
self.gf('django.db.models.fields.CharField')(default='', max_length=128),
keep_default=False)
# Deleting field 'Feed.color_hex'
db.delete_column(u'feed_plugin_feed', 'color_hex')
models = {
u'auth.group': {
'Meta': {'object_name': 'Group'},
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
},
u'auth.permission': {
'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'},
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
},
'cms.cmsplugin': {
'Meta': {'object_name': 'CMSPlugin'},
'changed_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'language': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}),
'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}),
'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}),
'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.CMSPlugin']", 'null': 'True', 'blank': 'True'}),
'placeholder': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Placeholder']", 'null': 'True'}),
'plugin_type': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}),
'position': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}),
'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}),
'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'})
},
'cms.placeholder': {
'Meta': {'object_name': 'Placeholder'},
'default_width': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'slot': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'})
},
u'contenttypes.contenttype': {
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
},
u'feed_plugin.feed': {
'Meta': {'object_name': 'Feed'},
'color_hex': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '6'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
'url': ('django.db.models.fields.URLField', [], {'max_length': '200'})
},
u'feed_plugin.feedpreference': {
'Meta': {'object_name': 'FeedPreference'},
'feed': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['feed_plugin.Feed']"}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['portail_citoyen.Citoyen']"})
},
u'feed_plugin.selectuserfeed': {
'Meta': {'object_name': 'SelectUserFeed', 'db_table': "u'cmsplugin_selectuserfeed'", '_ormbases': ['cms.CMSPlugin']},
u'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'})
},
u'feed_plugin.showuserfeed': {
'Meta': {'object_name': 'ShowUserFeed', 'db_table': "u'cmsplugin_showuserfeed'", '_ormbases': ['cms.CMSPlugin']},
u'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}),
'limit': ('django.db.models.fields.PositiveIntegerField', [], {'default': '10'}),
'timeout': ('django.db.models.fields.PositiveIntegerField', [], {'default': '60'})
},
u'portail_citoyen.citoyen': {
'Meta': {'object_name': 'Citoyen'},
'address': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
'backend': ('django.db.models.fields.CharField', [], {'max_length': '64', 'blank': 'True'}),
'backend_id': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
'city': ('django.db.models.fields.CharField', [], {'max_length': '64', 'blank': 'True'}),
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
'email': ('django.db.models.fields.EmailField', [], {'max_length': '128', 'blank': 'True'}),
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
'mobile': ('django.db.models.fields.CharField', [], {'max_length': '16', 'blank': 'True'}),
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
'phone': ('django.db.models.fields.CharField', [], {'max_length': '16', 'blank': 'True'}),
'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '5', 'blank': 'True'}),
'title': ('django.db.models.fields.CharField', [], {'max_length': '16', 'blank': 'True'}),
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '256'})
}
}
complete_apps = ['feed_plugin']

View File

@ -1,114 +0,0 @@
# -*- coding: utf-8 -*-
import datetime
from south.db import db
from south.v2 import SchemaMigration
from django.db import models
class Migration(SchemaMigration):
def forwards(self, orm):
# Adding field 'Feed.css_classes'
db.add_column(u'feed_plugin_feed', 'css_classes',
self.gf('django.db.models.fields.CharField')(default='', max_length=128),
keep_default=False)
def backwards(self, orm):
# Deleting field 'Feed.css_classes'
db.delete_column(u'feed_plugin_feed', 'css_classes')
models = {
u'auth.group': {
'Meta': {'object_name': 'Group'},
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
},
u'auth.permission': {
'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'},
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
},
'cms.cmsplugin': {
'Meta': {'object_name': 'CMSPlugin'},
'changed_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'language': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}),
'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}),
'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}),
'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.CMSPlugin']", 'null': 'True', 'blank': 'True'}),
'placeholder': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Placeholder']", 'null': 'True'}),
'plugin_type': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}),
'position': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}),
'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}),
'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'})
},
'cms.placeholder': {
'Meta': {'object_name': 'Placeholder'},
'default_width': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'slot': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'})
},
u'contenttypes.contenttype': {
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
},
u'feed_plugin.feed': {
'Meta': {'object_name': 'Feed'},
'color_hex': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '6'}),
'css_classes': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '128'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
'url': ('django.db.models.fields.URLField', [], {'max_length': '200'})
},
u'feed_plugin.feedpreference': {
'Meta': {'object_name': 'FeedPreference'},
'feed': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['feed_plugin.Feed']"}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['portail_citoyen.Citoyen']"})
},
u'feed_plugin.selectuserfeed': {
'Meta': {'object_name': 'SelectUserFeed', 'db_table': "u'cmsplugin_selectuserfeed'", '_ormbases': ['cms.CMSPlugin']},
u'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'})
},
u'feed_plugin.showuserfeed': {
'Meta': {'object_name': 'ShowUserFeed', 'db_table': "u'cmsplugin_showuserfeed'", '_ormbases': ['cms.CMSPlugin']},
u'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}),
'limit': ('django.db.models.fields.PositiveIntegerField', [], {'default': '10'}),
'timeout': ('django.db.models.fields.PositiveIntegerField', [], {'default': '60'})
},
u'portail_citoyen.citoyen': {
'Meta': {'object_name': 'Citoyen'},
'address': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
'backend': ('django.db.models.fields.CharField', [], {'max_length': '64', 'blank': 'True'}),
'backend_id': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
'city': ('django.db.models.fields.CharField', [], {'max_length': '64', 'blank': 'True'}),
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
'email': ('django.db.models.fields.EmailField', [], {'max_length': '128', 'blank': 'True'}),
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
'mobile': ('django.db.models.fields.CharField', [], {'max_length': '16', 'blank': 'True'}),
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
'phone': ('django.db.models.fields.CharField', [], {'max_length': '16', 'blank': 'True'}),
'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '5', 'blank': 'True'}),
'title': ('django.db.models.fields.CharField', [], {'max_length': '16', 'blank': 'True'}),
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '256'})
}
}
complete_apps = ['feed_plugin']

View File

@ -1,38 +0,0 @@
from django.db import models
from django.conf import settings
from django.utils.translation import ugettext_lazy as _
from cms.models import CMSPlugin
class FeedPreference(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL)
feed = models.ForeignKey('Feed')
class Meta:
verbose_name = _('user feed subscription')
verbose_name_plural = _('user feed subscriptions')
class SelectUserFeed(CMSPlugin):
pass
class ShowUserFeed(CMSPlugin):
limit = models.PositiveIntegerField(default=10)
timeout = models.PositiveIntegerField(default=60)
class Feed(models.Model):
name = models.CharField(max_length=32, verbose_name=_('name'))
url = models.URLField()
color_hex = models.CharField(max_length=6,
verbose_name=_('Color'),
help_text=_('as an hexadecimal number'),
default='')
css_classes = models.CharField(max_length=128,
verbose_name=_('CSS classes'),
default='')
class Meta:
verbose_name = _('feed')
verbose_name_plural = _('feeds')
def __unicode__(self):
return self.name

View File

@ -1,15 +0,0 @@
{% load i18n %}
<form method="post" class="feed-form">
{% csrf_token %}
<ul class='feed-list'>
{% for subwidget in form.feeds %}
<li class='feed-list-item'>
{{ subwidget.tag }}
<label for="{{subwidget.attrs.id}}_{{subwidget.index}}">
{{subwidget.choice_label}}
</label>
</li>
{% endfor %}
</ul>
<input type="submit" value="{% trans "Validate" %}" name="{{ submit }}">
</form>

View File

@ -1,8 +0,0 @@
<ul class="show-user-feeds">
{% for entry in entries %}
<li class="show-user-feeds-{{ entry.feed_name|slugify}}{% if entry.css_classes %} {{ entry.css_classes }}{% endif %}"
{% if entry.color_hex %}style="color: #{{ entry.color_hex}}"{% endif %}>
<a href="{{ entry.link }}" {% if entry.color_hex %}style="color: #{{ entry.color_hex}}"{% endif %}>{{ entry.title|safe }}<a/>
</li>
{% endfor %}
</ul>

View File

@ -1,104 +0,0 @@
from itertools import chain
from django.forms.widgets import SubWidget, SelectMultiple
from django.forms.util import flatatt
from django.utils.html import conditional_escape
from django.utils.encoding import StrAndUnicode, force_unicode
from django.utils.safestring import mark_safe
class CheckboxInput(SubWidget):
"""
An object used by CheckboxRenderer that represents a single
<input type='checkbox'>.
"""
def __init__(self, name, value, attrs, choice, index):
self.name, self.value = name, value
self.attrs = attrs
self.choice_value = force_unicode(choice[0])
self.choice_label = force_unicode(choice[1])
self.index = index
def __unicode__(self):
return self.render()
def render(self, name=None, value=None, attrs=None, choices=()):
name = name or self.name
value = value or self.value
attrs = attrs or self.attrs
if 'id' in self.attrs:
label_for = ' for="%s_%s"' % (self.attrs['id'], self.index)
else:
label_for = ''
choice_label = conditional_escape(force_unicode(self.choice_label))
return mark_safe(u'<label%s>%s %s</label>' % (label_for, self.tag(), choice_label))
def is_checked(self):
return self.choice_value in self.value
def tag(self):
if 'id' in self.attrs:
self.attrs['id'] = '%s_%s' % (self.attrs['id'], self.index)
final_attrs = dict(self.attrs, type='checkbox', name=self.name, value=self.choice_value)
if self.is_checked():
final_attrs['checked'] = 'checked'
return mark_safe(u'<input%s />' % flatatt(final_attrs))
class CheckboxRenderer(StrAndUnicode):
def __init__(self, name, value, attrs, choices):
self.name, self.value, self.attrs = name, value, attrs
self.choices = choices
def __iter__(self):
for i, choice in enumerate(self.choices):
yield CheckboxInput(self.name, self.value, self.attrs.copy(), choice, i)
def __getitem__(self, idx):
choice = self.choices[idx] # Let the IndexError propogate
return CheckboxInput(self.name, self.value, self.attrs.copy(), choice, idx)
def __unicode__(self):
return self.render()
def render(self):
"""Outputs a <ul> for this set of checkbox fields."""
return mark_safe(u'<ul>\n%s\n</ul>' % u'\n'.join([u'<li>%s</li>'
% force_unicode(w) for w in self]))
class CheckboxMultipleSelect(SelectMultiple):
"""
Checkbox multi select field that enables iteration of each checkbox
Similar to django.forms.widgets.RadioSelect
"""
renderer = CheckboxRenderer
def __init__(self, *args, **kwargs):
# Override the default renderer if we were passed one.
renderer = kwargs.pop('renderer', None)
if renderer:
self.renderer = renderer
super(CheckboxMultipleSelect, self).__init__(*args, **kwargs)
def subwidgets(self, name, value, attrs=None, choices=()):
for widget in self.get_renderer(name, value, attrs, choices):
yield widget
def get_renderer(self, name, value, attrs=None, choices=()):
"""Returns an instance of the renderer."""
if value is None: value = ''
str_values = set([force_unicode(v) for v in value]) # Normalize to string.
if attrs is None:
attrs = {}
if 'id' not in attrs:
attrs['id'] = name
final_attrs = self.build_attrs(attrs)
choices = list(chain(self.choices, choices))
return self.renderer(name, str_values, final_attrs, choices)
def render(self, name, value, attrs=None, choices=()):
return self.get_renderer(name, value, attrs, choices).render()
def id_for_label(self, id_):
if id_:
id_ += '_0'
return id_

View File

@ -1,104 +0,0 @@
"""
This file was generated with the customdashboard management command, it
contains the two classes for the main dashboard and app index dashboard.
You can customize these classes as you want.
To activate your index dashboard add the following to your settings.py::
ADMIN_TOOLS_INDEX_DASHBOARD = 'authentic2.dashboard.CustomIndexDashboard'
And to activate the app index dashboard::
ADMIN_TOOLS_APP_INDEX_DASHBOARD = 'authentic2.dashboard.CustomAppIndexDashboard'
"""
from django.utils.translation import ugettext_lazy as _
from admin_tools.dashboard import modules, Dashboard, AppIndexDashboard
class CustomIndexDashboard(Dashboard):
"""
Custom index dashboard for authentic2.
"""
def init_with_context(self, context):
# append an app list module for "Applications"
self.children.append(modules.ModelList(
_('Users and roles'),
models=('portail_citoyen.models.Citoyen',
'portail_citoyen.models.Role'),
))
self.children.append(modules.ModelList(
_('Services'),
models=(
'authentic2.saml.models.LibertyProvider',
'authentic2.saml.models.LibertyFederation',
'authentic2.saml.models.SPOptionsIdPPolicy',
'authentic2.saml.models.IdPOptionsSPPolicy',
'authentic2.attribute_aggregator.models.AttributeSource',
'authentic2.idp.models.AttributePolicy',
'authentic2.idp.models.AttributeList',
'authentic2.idp.models.AttributeItem',
),
))
self.children.append(modules.ModelList(
_('Contents'),
models=(
'cms.models.pagemodel.Page',
'data_source_plugin.models.DataSource',
'feed_plugin.models.Feed',
),
))
self.children.append(modules.ModelList(
_('Announces'),
models=(
'portail_citoyen_announces.*',
),
))
# append a recent actions module
self.children.append(modules.RecentActions(_('Recent Actions'), 5))
# append another link list module for "support".
self.children.append(modules.LinkList(
_('Support'),
children=[
{
'title': _('Project site'),
'url': 'http://dev.entrouvert.org/projects/teleservices-agglo-montpellier/',
'external': True,
},
{
'title': _('Report a bug'),
'url': 'http://dev.entrouvert.org/projects/teleservices-agglo-montpellier/issues/new',
'external': True,
},
]
))
class CustomAppIndexDashboard(AppIndexDashboard):
"""
Custom app index dashboard for authentic2.
"""
# we disable title because its redundant with the model list module
title = ''
def __init__(self, *args, **kwargs):
AppIndexDashboard.__init__(self, *args, **kwargs)
# append a model list module and a recent actions module
self.children += [
modules.ModelList(self.app_title, self.models),
modules.RecentActions(
_('Recent Actions'),
include_list=self.get_app_content_types(),
limit=5
)
]
def init_with_context(self, context):
"""
Use this method if you need to access the request context.
"""
return super(CustomAppIndexDashboard, self).init_with_context(context)

View File

@ -1,37 +0,0 @@
[ { "fields" : { "created" : "2013-06-21T16:52:00.185",
"identifier" : "petite_enfance",
"modified" : "2013-06-21T16:52:17.062",
"name" : "Petite enfance",
"site" : 1
},
"model" : "portail_citoyen_announces.category",
"pk" : 1
},
{ "fields" : { "created" : "2013-06-21T16:52:39.908",
"identifier" : "sport",
"modified" : "2013-06-21T16:52:39.923",
"name" : "Sport",
"site" : 1
},
"model" : "portail_citoyen_announces.category",
"pk" : 2
},
{ "fields" : { "created" : "2013-06-24T10:12:31.224",
"identifier" : "culture",
"modified" : "2013-06-24T10:12:31.362",
"name" : "Culture",
"site" : 1
},
"model" : "portail_citoyen_announces.category",
"pk" : 3
},
{ "fields" : { "created" : "2013-06-24T10:13:15.848",
"identifier" : "vie_quotidienne",
"modified" : "2013-06-24T10:13:15.856",
"name" : "Vie quotidienne",
"site" : 1
},
"model" : "portail_citoyen_announces.category",
"pk" : 4
}
]

View File

@ -1,25 +0,0 @@
[ { "fields" : { "color_hex" : "",
"css_classes" : "",
"name" : "Actualités OpenData",
"url" : "http://data.montpellier-agglo.com/?q=flux-rss-donnees.xml"
},
"model" : "feed_plugin.feed",
"pk" : 1
},
{ "fields" : { "color_hex" : "",
"css_classes" : "",
"name" : "Actualités médiathèque",
"url" : "http://services.mediatheque.montpellier-agglo.com/medias/selectionRss.aspx?INSTANCE=EXPLOITATION&SEL=SELECTION_ID_5"
},
"model" : "feed_plugin.feed",
"pk" : 2
},
{ "fields" : { "color_hex" : "ee0000",
"css_classes" : "",
"name" : "Facebook Agglo",
"url" : "https://www.facebook.com/feeds/page.php?format=rss20&id=149399375123718"
},
"model" : "feed_plugin.feed",
"pk" : 3
}
]

View File

@ -1,893 +0,0 @@
[ { "fields" : { "name" : "Administrateur des annonces",
"permissions" : [ [ "add_announce",
"portail_citoyen_announces",
"announce"
],
[ "change_announce",
"portail_citoyen_announces",
"announce"
],
[ "delete_announce",
"portail_citoyen_announces",
"announce"
],
[ "add_category",
"portail_citoyen_announces",
"category"
],
[ "change_category",
"portail_citoyen_announces",
"category"
],
[ "delete_category",
"portail_citoyen_announces",
"category"
],
[ "add_sent",
"portail_citoyen_announces",
"sent"
],
[ "change_sent",
"portail_citoyen_announces",
"sent"
],
[ "delete_sent",
"portail_citoyen_announces",
"sent"
],
[ "change_subscription",
"portail_citoyen_announces",
"subscription"
],
[ "delete_subscription",
"portail_citoyen_announces",
"subscription"
]
]
},
"model" : "auth.group",
"pk" : 1
},
{ "fields" : { "name" : "Administrateur des contenus",
"permissions" : [ [ "add_a2servicelistplugin",
"a2_service_list_plugin",
"a2servicelistplugin"
],
[ "change_a2servicelistplugin",
"a2_service_list_plugin",
"a2servicelistplugin"
],
[ "delete_a2servicelistplugin",
"a2_service_list_plugin",
"a2servicelistplugin"
],
[ "add_cmsplugin",
"cms",
"cmsplugin"
],
[ "change_cmsplugin",
"cms",
"cmsplugin"
],
[ "delete_cmsplugin",
"cms",
"cmsplugin"
],
[ "add_globalpagepermission",
"cms",
"globalpagepermission"
],
[ "change_globalpagepermission",
"cms",
"globalpagepermission"
],
[ "delete_globalpagepermission",
"cms",
"globalpagepermission"
],
[ "add_page",
"cms",
"page"
],
[ "change_page",
"cms",
"page"
],
[ "delete_page",
"cms",
"page"
],
[ "publish_page",
"cms",
"page"
],
[ "view_page",
"cms",
"page"
],
[ "add_pagemoderatorstate",
"cms",
"pagemoderatorstate"
],
[ "change_pagemoderatorstate",
"cms",
"pagemoderatorstate"
],
[ "delete_pagemoderatorstate",
"cms",
"pagemoderatorstate"
],
[ "add_pagepermission",
"cms",
"pagepermission"
],
[ "change_pagepermission",
"cms",
"pagepermission"
],
[ "delete_pagepermission",
"cms",
"pagepermission"
],
[ "add_pageuser",
"cms",
"pageuser"
],
[ "change_pageuser",
"cms",
"pageuser"
],
[ "delete_pageuser",
"cms",
"pageuser"
],
[ "add_pageusergroup",
"cms",
"pageusergroup"
],
[ "change_pageusergroup",
"cms",
"pageusergroup"
],
[ "delete_pageusergroup",
"cms",
"pageusergroup"
],
[ "add_placeholder",
"cms",
"placeholder"
],
[ "change_placeholder",
"cms",
"placeholder"
],
[ "delete_placeholder",
"cms",
"placeholder"
],
[ "add_title",
"cms",
"title"
],
[ "change_title",
"cms",
"title"
],
[ "delete_title",
"cms",
"title"
],
[ "add_textwrapper",
"cmsplugin_text_wrapper",
"textwrapper"
],
[ "change_textwrapper",
"cmsplugin_text_wrapper",
"textwrapper"
],
[ "delete_textwrapper",
"cmsplugin_text_wrapper",
"textwrapper"
],
[ "add_datasource",
"data_source_plugin",
"datasource"
],
[ "change_datasource",
"data_source_plugin",
"datasource"
],
[ "delete_datasource",
"data_source_plugin",
"datasource"
],
[ "add_datasourceplugin",
"data_source_plugin",
"datasourceplugin"
],
[ "change_datasourceplugin",
"data_source_plugin",
"datasourceplugin"
],
[ "delete_datasourceplugin",
"data_source_plugin",
"datasourceplugin"
],
[ "add_plugindatasource",
"data_source_plugin",
"plugindatasource"
],
[ "change_plugindatasource",
"data_source_plugin",
"plugindatasource"
],
[ "delete_plugindatasource",
"data_source_plugin",
"plugindatasource"
],
[ "add_rawinlinetemplateplugin",
"data_source_plugin",
"rawinlinetemplateplugin"
],
[ "change_rawinlinetemplateplugin",
"data_source_plugin",
"rawinlinetemplateplugin"
],
[ "delete_rawinlinetemplateplugin",
"data_source_plugin",
"rawinlinetemplateplugin"
],
[ "add_feed",
"feed_plugin",
"feed"
],
[ "change_feed",
"feed_plugin",
"feed"
],
[ "delete_feed",
"feed_plugin",
"feed"
],
[ "add_feedpreference",
"feed_plugin",
"feedpreference"
],
[ "change_feedpreference",
"feed_plugin",
"feedpreference"
],
[ "delete_feedpreference",
"feed_plugin",
"feedpreference"
],
[ "add_selectuserfeed",
"feed_plugin",
"selectuserfeed"
],
[ "change_selectuserfeed",
"feed_plugin",
"selectuserfeed"
],
[ "delete_selectuserfeed",
"feed_plugin",
"selectuserfeed"
],
[ "add_showuserfeed",
"feed_plugin",
"showuserfeed"
],
[ "change_showuserfeed",
"feed_plugin",
"showuserfeed"
],
[ "delete_showuserfeed",
"feed_plugin",
"showuserfeed"
],
[ "add_link",
"link",
"link"
],
[ "change_link",
"link",
"link"
],
[ "delete_link",
"link",
"link"
],
[ "add_loginplugin",
"login_plugin",
"loginplugin"
],
[ "change_loginplugin",
"login_plugin",
"loginplugin"
],
[ "delete_loginplugin",
"login_plugin",
"loginplugin"
],
[ "add_cachekey",
"menus",
"cachekey"
],
[ "change_cachekey",
"menus",
"cachekey"
],
[ "delete_cachekey",
"menus",
"cachekey"
],
[ "add_picture",
"picture",
"picture"
],
[ "change_picture",
"picture",
"picture"
],
[ "delete_picture",
"picture",
"picture"
],
[ "add_snippet",
"snippet",
"snippet"
],
[ "change_snippet",
"snippet",
"snippet"
],
[ "delete_snippet",
"snippet",
"snippet"
],
[ "add_snippetptr",
"snippet",
"snippetptr"
],
[ "change_snippetptr",
"snippet",
"snippetptr"
],
[ "delete_snippetptr",
"snippet",
"snippetptr"
],
[ "add_teaser",
"teaser",
"teaser"
],
[ "change_teaser",
"teaser",
"teaser"
],
[ "delete_teaser",
"teaser",
"teaser"
]
]
},
"model" : "auth.group",
"pk" : 2
},
{ "fields" : { "name" : "Administrateur SAML",
"permissions" : [ [ "add_attributesource",
"attribute_aggregator",
"attributesource"
],
[ "change_attributesource",
"attribute_aggregator",
"attributesource"
],
[ "delete_attributesource",
"attribute_aggregator",
"attributesource"
],
[ "add_useraliasinsource",
"attribute_aggregator",
"useraliasinsource"
],
[ "change_useraliasinsource",
"attribute_aggregator",
"useraliasinsource"
],
[ "delete_useraliasinsource",
"attribute_aggregator",
"useraliasinsource"
],
[ "add_userattributeprofile",
"attribute_aggregator",
"userattributeprofile"
],
[ "change_userattributeprofile",
"attribute_aggregator",
"userattributeprofile"
],
[ "delete_userattributeprofile",
"attribute_aggregator",
"userattributeprofile"
],
[ "add_attributeitem",
"idp",
"attributeitem"
],
[ "change_attributeitem",
"idp",
"attributeitem"
],
[ "delete_attributeitem",
"idp",
"attributeitem"
],
[ "add_attributelist",
"idp",
"attributelist"
],
[ "change_attributelist",
"idp",
"attributelist"
],
[ "delete_attributelist",
"idp",
"attributelist"
],
[ "add_attributepolicy",
"idp",
"attributepolicy"
],
[ "change_attributepolicy",
"idp",
"attributepolicy"
],
[ "delete_attributepolicy",
"idp",
"attributepolicy"
],
[ "add_userconsentattributes",
"idp",
"userconsentattributes"
],
[ "change_userconsentattributes",
"idp",
"userconsentattributes"
],
[ "delete_userconsentattributes",
"idp",
"userconsentattributes"
],
[ "add_authorizationattributemap",
"saml",
"authorizationattributemap"
],
[ "change_authorizationattributemap",
"saml",
"authorizationattributemap"
],
[ "delete_authorizationattributemap",
"saml",
"authorizationattributemap"
],
[ "add_authorizationattributemapping",
"saml",
"authorizationattributemapping"
],
[ "change_authorizationattributemapping",
"saml",
"authorizationattributemapping"
],
[ "delete_authorizationattributemapping",
"saml",
"authorizationattributemapping"
],
[ "add_authorizationsppolicy",
"saml",
"authorizationsppolicy"
],
[ "change_authorizationsppolicy",
"saml",
"authorizationsppolicy"
],
[ "delete_authorizationsppolicy",
"saml",
"authorizationsppolicy"
],
[ "add_idpoptionssppolicy",
"saml",
"idpoptionssppolicy"
],
[ "change_idpoptionssppolicy",
"saml",
"idpoptionssppolicy"
],
[ "delete_idpoptionssppolicy",
"saml",
"idpoptionssppolicy"
],
[ "add_keyvalue",
"saml",
"keyvalue"
],
[ "change_keyvalue",
"saml",
"keyvalue"
],
[ "delete_keyvalue",
"saml",
"keyvalue"
],
[ "add_libertyartifact",
"saml",
"libertyartifact"
],
[ "change_libertyartifact",
"saml",
"libertyartifact"
],
[ "delete_libertyartifact",
"saml",
"libertyartifact"
],
[ "add_libertyassertion",
"saml",
"libertyassertion"
],
[ "change_libertyassertion",
"saml",
"libertyassertion"
],
[ "delete_libertyassertion",
"saml",
"libertyassertion"
],
[ "add_libertyfederation",
"saml",
"libertyfederation"
],
[ "change_libertyfederation",
"saml",
"libertyfederation"
],
[ "delete_libertyfederation",
"saml",
"libertyfederation"
],
[ "add_libertyidentityprovider",
"saml",
"libertyidentityprovider"
],
[ "change_libertyidentityprovider",
"saml",
"libertyidentityprovider"
],
[ "delete_libertyidentityprovider",
"saml",
"libertyidentityprovider"
],
[ "add_libertymanagedump",
"saml",
"libertymanagedump"
],
[ "change_libertymanagedump",
"saml",
"libertymanagedump"
],
[ "delete_libertymanagedump",
"saml",
"libertymanagedump"
],
[ "add_libertyprovider",
"saml",
"libertyprovider"
],
[ "change_libertyprovider",
"saml",
"libertyprovider"
],
[ "delete_libertyprovider",
"saml",
"libertyprovider"
],
[ "add_libertyproviderpolicy",
"saml",
"libertyproviderpolicy"
],
[ "change_libertyproviderpolicy",
"saml",
"libertyproviderpolicy"
],
[ "delete_libertyproviderpolicy",
"saml",
"libertyproviderpolicy"
],
[ "add_libertyserviceprovider",
"saml",
"libertyserviceprovider"
],
[ "change_libertyserviceprovider",
"saml",
"libertyserviceprovider"
],
[ "delete_libertyserviceprovider",
"saml",
"libertyserviceprovider"
],
[ "add_libertysession",
"saml",
"libertysession"
],
[ "change_libertysession",
"saml",
"libertysession"
],
[ "delete_libertysession",
"saml",
"libertysession"
],
[ "add_libertysessiondump",
"saml",
"libertysessiondump"
],
[ "change_libertysessiondump",
"saml",
"libertysessiondump"
],
[ "delete_libertysessiondump",
"saml",
"libertysessiondump"
],
[ "add_libertysessionsp",
"saml",
"libertysessionsp"
],
[ "change_libertysessionsp",
"saml",
"libertysessionsp"
],
[ "delete_libertysessionsp",
"saml",
"libertysessionsp"
],
[ "add_spoptionsidppolicy",
"saml",
"spoptionsidppolicy"
],
[ "change_spoptionsidppolicy",
"saml",
"spoptionsidppolicy"
],
[ "delete_spoptionsidppolicy",
"saml",
"spoptionsidppolicy"
]
]
},
"model" : "auth.group",
"pk" : 3
},
{ "fields" : { "name" : "Administrateur des utilisateurs",
"permissions" : [ [ "add_citoyen",
"portail_citoyen",
"citoyen"
],
[ "change_citoyen",
"portail_citoyen",
"citoyen"
],
[ "delete_citoyen",
"portail_citoyen",
"citoyen"
]
]
},
"model" : "auth.group",
"pk" : 4
},
{ "fields" : { "name" : "Administrateur des rôles",
"permissions" : [ [ "add_role",
"portail_citoyen",
"role"
],
[ "change_role",
"portail_citoyen",
"role"
],
[ "delete_role",
"portail_citoyen",
"role"
]
]
},
"model" : "auth.group",
"pk" : 5
},
{ "fields" : { "name" : "Agglo::Téléservices::BackOffice::Alex Jany",
"permissions" : [ ]
},
"model" : "auth.group",
"pk" : 6
},
{ "fields" : { "name" : "Agglo::Téléservices::BackOffice::Alfred Nakache",
"permissions" : [ ]
},
"model" : "auth.group",
"pk" : 7
},
{ "fields" : { "name" : "Agglo::Téléservices::BackOffice::Amphitrite",
"permissions" : [ ]
},
"model" : "auth.group",
"pk" : 8
},
{ "fields" : { "name" : "Agglo::Téléservices::BackOffice::Christine Caron",
"permissions" : [ ]
},
"model" : "auth.group",
"pk" : 9
},
{ "fields" : { "name" : "Agglo::Téléservices::BackOffice::Contact CCAS Montpellier",
"permissions" : [ ]
},
"model" : "auth.group",
"pk" : 10
},
{ "fields" : { "name" : "Agglo::Téléservices::BackOffice::Gestionnaire Collecte et Propreté",
"permissions" : [ ]
},
"model" : "auth.group",
"pk" : 11
},
{ "fields" : { "name" : "Agglo::Téléservices::BackOffice::Gestionnaire Police Municipale",
"permissions" : [ ]
},
"model" : "auth.group",
"pk" : 12
},
{ "fields" : { "name" : "Agglo::Téléservices::BackOffice::Gestionnaire Sport",
"permissions" : [ ]
},
"model" : "auth.group",
"pk" : 13
},
{ "fields" : { "name" : "Agglo::Téléservices::BackOffice::Gestionnaire des formulaires",
"permissions" : [ ]
},
"model" : "auth.group",
"pk" : 16
},
{ "fields" : { "name" : "Agglo::Téléservices::BackOffice::Gestionnaire eau et assainissement",
"permissions" : [ ]
},
"model" : "auth.group",
"pk" : 17
},
{ "fields" : { "name" : "Agglo::Téléservices::BackOffice::Gestionnaire emploi",
"permissions" : [ ]
},
"model" : "auth.group",
"pk" : 18
},
{ "fields" : { "name" : "Agglo::Téléservices::BackOffice::Gestionnaire finances",
"permissions" : [ ]
},
"model" : "auth.group",
"pk" : 19
},
{ "fields" : { "name" : "Agglo::Téléservices::BackOffice::Gestionnaire salles",
"permissions" : [ ]
},
"model" : "auth.group",
"pk" : 20
},
{ "fields" : { "name" : "Agglo::Téléservices::BackOffice::Gestionnaire services techniques",
"permissions" : [ ]
},
"model" : "auth.group",
"pk" : 21
},
{ "fields" : { "name" : "Agglo::Téléservices::BackOffice::Gestionnaire téléalarme",
"permissions" : [ ]
},
"model" : "auth.group",
"pk" : 22
},
{ "fields" : { "name" : "Agglo::Téléservices::BackOffice::Gestionnaire État civil",
"permissions" : [ ]
},
"model" : "auth.group",
"pk" : 23
},
{ "fields" : { "name" : "Agglo::Téléservices::BackOffice::Jean Taris",
"permissions" : [ ]
},
"model" : "auth.group",
"pk" : 24
},
{ "fields" : { "name" : "Agglo::Téléservices::BackOffice::Jean Vives",
"permissions" : [ ]
},
"model" : "auth.group",
"pk" : 25
},
{ "fields" : { "name" : "Agglo::Téléservices::BackOffice::Marcel Spilliaert",
"permissions" : [ ]
},
"model" : "auth.group",
"pk" : 26
},
{ "fields" : { "name" : "Agglo::Téléservices::BackOffice::Neptune",
"permissions" : [ ]
},
"model" : "auth.group",
"pk" : 27
},
{ "fields" : { "name" : "Agglo::Téléservices::BackOffice::Néréide",
"permissions" : [ ]
},
"model" : "auth.group",
"pk" : 28
},
{ "fields" : { "name" : "Agglo::Téléservices::BackOffice::POA",
"permissions" : [ ]
},
"model" : "auth.group",
"pk" : 29
},
{ "fields" : { "name" : "Agglo::Téléservices::BackOffice::Pilot",
"permissions" : [ ]
},
"model" : "auth.group",
"pk" : 30
},
{ "fields" : { "name" : "Agglo::Téléservices::BackOffice::Poseïdon",
"permissions" : [ ]
},
"model" : "auth.group",
"pk" : 31
},
{ "fields" : { "name" : "Agglo::Téléservices::BackOffice::Responsable d'association",
"permissions" : [ ]
},
"model" : "auth.group",
"pk" : 32
},
{ "fields" : { "name" : "Agglo::Téléservices::BackOffice::Suzanne Berlioux",
"permissions" : [ ]
},
"model" : "auth.group",
"pk" : 33
},
{ "fields" : { "name" : "Agglo::Téléservices::BackOffice::entreprise assainissement",
"permissions" : [ ]
},
"model" : "auth.group",
"pk" : 34
},
{ "fields" : { "name" : "Agglo::Téléservices::Admin",
"permissions" : [ ]
},
"model" : "auth.group",
"pk" : 36
},
{ "fields" : { "name" : "Agglo::Téléservices::BackOffice::Gestionnaire contact support",
"permissions" : [ ]
},
"model" : "auth.group",
"pk" : 97
},
{ "fields" : { "name" : "Agglo::Téléservices::BackOffice::Support du compte citoyen",
"permissions" : [ ]
},
"model" : "auth.group",
"pk" : 98
},
{ "fields" : { "name" : "Agglo::Téléservices::BackOffice::gestionnaire contact piscine",
"permissions" : [ ]
},
"model" : "auth.group",
"pk" : 99
}
]

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,295 +0,0 @@
[ { "fields" : { "attribute_name" : "uid",
"output_name_format" : "urn:oasis:names:tc:SAML:2.0:attrname-format:basic",
"output_namespace" : "Default",
"required" : true,
"source" : 1
},
"model" : "idp.attributeitem",
"pk" : 2
},
{ "fields" : { "attribute_name" : "email",
"output_name_format" : "urn:oasis:names:tc:SAML:2.0:attrname-format:basic",
"output_namespace" : "Default",
"required" : true,
"source" : 1
},
"model" : "idp.attributeitem",
"pk" : 3
},
{ "fields" : { "attribute_name" : "gn",
"output_name_format" : "urn:oasis:names:tc:SAML:2.0:attrname-format:basic",
"output_namespace" : "Default",
"required" : true,
"source" : 1
},
"model" : "idp.attributeitem",
"pk" : 4
},
{ "fields" : { "attribute_name" : "sn",
"output_name_format" : "urn:oasis:names:tc:SAML:2.0:attrname-format:basic",
"output_namespace" : "Default",
"required" : false,
"source" : 1
},
"model" : "idp.attributeitem",
"pk" : 5
},
{ "fields" : { "attribute_name" : "telephoneNumber",
"output_name_format" : "urn:oasis:names:tc:SAML:2.0:attrname-format:basic",
"output_namespace" : "Default",
"required" : false,
"source" : 1
},
"model" : "idp.attributeitem",
"pk" : 7
},
{ "fields" : { "attribute_name" : "postalCode",
"output_name_format" : "urn:oasis:names:tc:SAML:2.0:attrname-format:basic",
"output_namespace" : "Default",
"required" : false,
"source" : 1
},
"model" : "idp.attributeitem",
"pk" : 8
},
{ "fields" : { "attribute_name" : "street",
"output_name_format" : "urn:oasis:names:tc:SAML:2.0:attrname-format:basic",
"output_namespace" : "Default",
"required" : false,
"source" : 1
},
"model" : "idp.attributeitem",
"pk" : 9
},
{ "fields" : { "attribute_name" : "personalTitle",
"output_name_format" : "urn:oasis:names:tc:SAML:2.0:attrname-format:basic",
"output_namespace" : "Default",
"required" : false,
"source" : 1
},
"model" : "idp.attributeitem",
"pk" : 10
},
{ "fields" : { "attribute_name" : "l",
"output_name_format" : "urn:oasis:names:tc:SAML:2.0:attrname-format:basic",
"output_namespace" : "Default",
"required" : false,
"source" : 1
},
"model" : "idp.attributeitem",
"pk" : 11
},
{ "fields" : { "attribute_name" : "mobile",
"output_name_format" : "urn:oasis:names:tc:SAML:2.0:attrname-format:basic",
"output_namespace" : "Default",
"required" : false,
"source" : 1
},
"model" : "idp.attributeitem",
"pk" : 12
},
{ "fields" : { "attribute_name" : "role",
"output_name_format" : "urn:oasis:names:tc:SAML:2.0:attrname-format:basic",
"output_namespace" : "Default",
"required" : false,
"source" : 1
},
"model" : "idp.attributeitem",
"pk" : 13
},
{ "fields" : { "attributes" : [ 2,
3,
4,
5,
7,
8,
9,
10,
11,
12,
13
],
"name" : "Profile"
},
"model" : "idp.attributelist",
"pk" : 1
},
{ "fields" : { "allow_attributes_selection" : false,
"ask_consent_attributes" : false,
"attribute_filter_for_sso_from_push_sources" : null,
"attribute_list_for_sso_from_pull_sources" : 1,
"enabled" : true,
"filter_source_of_filtered_attributes" : false,
"forward_attributes_from_push_sources" : false,
"map_attributes_from_push_sources" : false,
"map_attributes_of_filtered_attributes" : false,
"name" : "Default",
"output_name_format" : "urn:oasis:names:tc:SAML:2.0:attrname-format:uri",
"output_namespace" : "Default",
"send_error_and_no_attrs_if_missing_required_attrs" : false,
"source_filter_for_sso_from_push_sources" : [ ]
},
"model" : "idp.attributepolicy",
"pk" : 1
},
{ "fields" : { "authn_request_signature_check_hint" : 0,
"name" : "Default"
},
"model" : "saml.libertyproviderpolicy",
"pk" : 1
},
{ "fields" : { "authn_request_signature_check_hint" : 2,
"name" : "Shibboleth SP"
},
"model" : "saml.libertyproviderpolicy",
"pk" : 2
},
{ "fields" : { "accept_slo" : true,
"allow_create" : true,
"back_url" : "/",
"binding_for_sso_response" : "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact",
"enable_binding_for_sso_response" : false,
"enable_http_method_for_defederation_request" : false,
"enable_http_method_for_slo_request" : true,
"enabled" : true,
"force_user_consent" : false,
"forward_slo" : true,
"handle_persistent" : "AUTHSAML2_UNAUTH_PERSISTENT_ACCOUNT_LINKING_BY_AUTH",
"handle_transient" : "AUTHSAML2_UNAUTH_TRANSIENT_ASK_AUTH",
"http_method_for_defederation_request" : 5,
"http_method_for_slo_request" : 5,
"name" : "Default",
"no_nameid_policy" : false,
"requested_name_id_format" : "persistent",
"transient_is_persistent" : false,
"want_authn_request_signed" : false,
"want_force_authn_request" : false,
"want_is_passive_authn_request" : false
},
"model" : "saml.idpoptionssppolicy",
"pk" : 1
},
{ "fields" : { "accept_slo" : true,
"accepted_name_id_format" : "[u'[u\\'[u\"[u\\\\\\'transient\\\\\\'\"\\'', u' u\\' u\" u\\\\\\'persistent\\\\\\'\"\\'', u' u\\' u\" u\\\\\\'email\\\\\\']\"]\\']']",
"ask_user_consent" : false,
"authn_request_signed" : false,
"default_name_id_format" : "persistent",
"enabled" : true,
"encrypt_assertion" : false,
"encrypt_nameid" : false,
"forward_slo" : true,
"idp_initiated_sso" : true,
"name" : "Default",
"prefered_assertion_consumer_binding" : "meta"
},
"model" : "saml.spoptionsidppolicy",
"pk" : 1
},
{ "fields" : { "accept_slo" : true,
"accepted_name_id_format" : "[u'[u\"[u\\'\\']\"]']",
"ask_user_consent" : true,
"authn_request_signed" : false,
"default_name_id_format" : "persistent",
"enabled" : true,
"encrypt_assertion" : false,
"encrypt_nameid" : false,
"forward_slo" : true,
"idp_initiated_sso" : true,
"name" : "Consentement",
"prefered_assertion_consumer_binding" : "meta"
},
"model" : "saml.spoptionsidppolicy",
"pk" : 2
},
{ "fields" : { "accept_slo" : true,
"accepted_name_id_format" : "[u'[u\"[u\\'\\']\"]']",
"ask_user_consent" : false,
"authn_request_signed" : false,
"default_name_id_format" : "none",
"enabled" : true,
"encrypt_assertion" : false,
"encrypt_nameid" : false,
"forward_slo" : true,
"idp_initiated_sso" : false,
"name" : "Hide",
"prefered_assertion_consumer_binding" : "meta"
},
"model" : "saml.spoptionsidppolicy",
"pk" : 3
},
{ "fields" : { "ca_cert_chain" : "",
"entity_id" : "http://eservices-montpellier.entrouvert.org/saml/metadata",
"entity_id_sha1" : "5540b0b614a7f5d0f9583b43495d1e9508b52000",
"federation_source" : null,
"metadata" : "<?xml version=\"1.0\"?>\n<EntityDescriptor xmlns=\"urn:oasis:names:tc:SAML:2.0:metadata\"\n xmlns:saml=\"urn:oasis:names:tc:SAML:2.0:assertion\"\n xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\"\n entityID=\"http://eservices-montpellier.entrouvert.org/saml/metadata\">\n <SPSSODescriptor\n AuthnRequestsSigned=\"true\" WantAssertionsSigned=\"true\"\n protocolSupportEnumeration=\"urn:oasis:names:tc:SAML:2.0:protocol\">\n <KeyDescriptor use=\"signing\">\n <ds:KeyInfo xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\">\n <KeyValue xmlns=\"http://www.w3.org/2000/09/xmldsig#\">\n <RSAKeyValue>\n <Modulus>nJpkBznHNbvE+RAC6mU+NPQnIWs8gFNCm6I3FPcUKYpaJbXaurJ4cJgvnaEiqIXPQDcbHxuLeCbYbId9yascWZirvQbh8d/r+Vv+24bPG++9gW+i3Nnz1VW8V+z0b+puHWvM/FjJjBNJgWkI38gaupz47U6/02CtWx00stitiwk=</Modulus>\n <Exponent>AQAB</Exponent>\n </RSAKeyValue>\n</KeyValue>\n </ds:KeyInfo>\n </KeyDescriptor>\n <KeyDescriptor use=\"encryption\">\n <ds:KeyInfo xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\">\n <KeyValue xmlns=\"http://www.w3.org/2000/09/xmldsig#\">\n <RSAKeyValue>\n <Modulus>3BxSiAzGvY1Yuqa31L7Zr2WHM/8cn5oX+Q6A2SYgzjuvAgnWyizN8YgW/fHR4G7MtkmZ5RFJLXfcSLwbUfpFHV6KO1ikbgViYuFempM+SWtjqEI7ribm9GaI5kUzHJZBrH3/Q9XAd9/GLLALxurGjbKDeLfc0D+7el26g4sYmA8=</Modulus>\n <Exponent>AQAB</Exponent>\n </RSAKeyValue>\n</KeyValue>\n </ds:KeyInfo>\n </KeyDescriptor>\n\n <SingleLogoutService\n Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect\"\n Location=\"http://eservices-montpellier.entrouvert.org/saml/singleLogout\"\n ResponseLocation=\"http://eservices-montpellier.entrouvert.org/saml/singleLogoutReturn\" />\n <SingleLogoutService\n Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:SOAP\"\n Location=\"http://eservices-montpellier.entrouvert.org/saml/singleLogoutSOAP\" />\n <ManageNameIDService\n Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect\"\n Location=\"http://eservices-montpellier.entrouvert.org/saml/manageNameId\"\n ResponseLocation=\"http://eservices-montpellier.entrouvert.org/saml/manageNameIdReturn\" />\n <ManageNameIDService\n Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:SOAP\"\n Location=\"http://eservices-montpellier.entrouvert.org/saml/manageNameIdSOAP\" />\n <AssertionConsumerService isDefault=\"true\" index=\"0\"\n Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact\"\n Location=\"http://eservices-montpellier.entrouvert.org/saml/assertionConsumerArtifact\" />\n <AssertionConsumerService index=\"1\"\n Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST\"\n Location=\"http://eservices-montpellier.entrouvert.org/saml/assertionConsumerPost\" />\n <AssertionConsumerService index=\"2\"\n Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:PAOS\"\n Location=\"http://eservices-montpellier.entrouvert.org/saml/assertionConsumerSOAP\" />\n <AssertionConsumerService index=\"3\"\n Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect\"\n Location=\"http://eservices-montpellier.entrouvert.org/saml/assertionConsumerRedirect\" />\n </SPSSODescriptor>\n\n\n</EntityDescriptor>",
"name" : "Eservices",
"protocol_conformance" : 3,
"public_key" : "",
"ssl_certificate" : ""
},
"model" : "saml.libertyprovider",
"pk" : 2
},
{ "fields" : { "ca_cert_chain" : "",
"entity_id" : "http://drupal.montpellier.entrouvert.org/simplesamlphp/module.php/saml/sp/metadata.php/default-sp",
"entity_id_sha1" : "f7b6634ad4fd5af01a09f2ff9d24b93eed5985e3",
"federation_source" : null,
"metadata" : "<md:EntityDescriptor xmlns:md=\"urn:oasis:names:tc:SAML:2.0:metadata\" entityID=\"http://drupal.montpellier.entrouvert.org/simplesamlphp/module.php/saml/sp/metadata.php/default-sp\">\r\n <md:SPSSODescriptor protocolSupportEnumeration=\"urn:oasis:names:tc:SAML:1.1:protocol urn:oasis:names:tc:SAML:2.0:protocol\">\r\n <md:SingleLogoutService Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect\" Location=\"http://drupal.montpellier.entrouvert.org/simplesamlphp/module.php/saml/sp/saml2-logout.php/default-sp\"/>\r\n <md:AssertionConsumerService Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST\" Location=\"http://drupal.montpellier.entrouvert.org/simplesamlphp/module.php/saml/sp/saml2-acs.php/default-sp\" index=\"0\"/>\r\n <md:AssertionConsumerService Binding=\"urn:oasis:names:tc:SAML:1.0:profiles:browser-post\" Location=\"http://drupal.montpellier.entrouvert.org/simplesamlphp/module.php/saml/sp/saml1-acs.php/default-sp\" index=\"1\"/>\r\n <md:AssertionConsumerService Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact\" Location=\"http://drupal.montpellier.entrouvert.org/simplesamlphp/module.php/saml/sp/saml2-acs.php/default-sp\" index=\"2\"/>\r\n <md:AssertionConsumerService Binding=\"urn:oasis:names:tc:SAML:1.0:profiles:artifact-01\" Location=\"http://drupal.montpellier.entrouvert.org/simplesamlphp/module.php/saml/sp/saml1-acs.php/default-sp/artifact\" index=\"3\"/>\r\n <md:AssertionConsumerService Binding=\"urn:oasis:names:tc:SAML:2.0:profiles:holder-of-key:SSO:browser\" Location=\"http://drupal.montpellier.entrouvert.org/simplesamlphp/module.php/saml/sp/saml2-acs.php/default-sp\" index=\"4\"/>\r\n </md:SPSSODescriptor>\r\n <md:ContactPerson contactType=\"technical\">\r\n <md:GivenName>Administrator</md:GivenName>\r\n <md:EmailAddress>na@example.org</md:EmailAddress>\r\n </md:ContactPerson>\r\n</md:EntityDescriptor>",
"name" : "Site Web de l'agglomération",
"protocol_conformance" : 3,
"public_key" : "",
"ssl_certificate" : ""
},
"model" : "saml.libertyprovider",
"pk" : 3
},
{ "fields" : { "ca_cert_chain" : "",
"entity_id" : "https://test-commune-montpellier.entrouvert.org/saml/metadata",
"entity_id_sha1" : "5da4d3fc93c3dd23a2974c626db5de98c2270a9c",
"federation_source" : null,
"metadata" : "<?xml version=\"1.0\"?>\r\n<EntityDescriptor xmlns=\"urn:oasis:names:tc:SAML:2.0:metadata\"\r\n xmlns:saml=\"urn:oasis:names:tc:SAML:2.0:assertion\"\r\n xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\"\r\n entityID=\"https://test-commune-montpellier.entrouvert.org/saml/metadata\">\r\n<SPSSODescriptor\r\n AuthnRequestsSigned=\"true\"\r\n protocolSupportEnumeration=\"urn:oasis:names:tc:SAML:2.0:protocol\">\r\n<KeyDescriptor use=\"signing\">\r\n <ds:KeyInfo xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\">\r\n <ds:X509Data><ds:X509Certificate>-----BEGIN CERTIFICATE-----\r\nMIIEQTCCAiugAwIBAgIUBwAAAAAAAAAAAAAAAAAAAAAAAAAwCwYJKoZIhvcNAQEF\r\nMIGJMQswCQYDVQQGEwJGUjEOMAwGA1UEBxMFUGFyaXMxFDASBgNVBAoTC0VudHIn\r\nT3V2ZXJ0MSMwIQYDVQQLDBpBdXRvcml0w6kgZGUgY2VydGlmaWNhdGlvbjEvMC0G\r\nA1UEAwwmRW50cidPdXZlcnQgQXV0b3JpdMOpIGRlIENlcnRpZmljYXRpb24wHhcN\r\nMDkwMTIwMDk1NDA0WhcNMTQwMTIwMDg1NDA0WjCBkjELMAkGA1UEBhMCRlIxIjAg\r\nBgNVBAoTGUNlbnRyZSBkZSBHZXN0aW9uIGR1IE5vcmQxFjAUBgNVBAsTDVByb2pl\r\ndCBQckB0aWMxRzBFBgNVBAMTPkNlcnRpZmljYXQgQ29tbXVuIHBvdXIgc2l0ZSB3\r\nY3MgZGUgdGVsZWZvcm11bGFpcmVzLnByYXRpYzU5LmZyMIGcMAsGCSqGSIb3DQEB\r\nAQOBjAAwgYgCgYC/ZvDd3Dq1IdK62vAza9pZidh+YT+j6/9jx1gb9TAIktJRXt3A\r\nD98iAJ1CuolA4QqJyxJQBi0R5wfmWlwR8DP7GE4hl7FB+01yqOvt6b+aX563qXgU\r\nE2wW7D34zZOdCOJAXKsKbklS62bDyNhNKQy32WIQZznJD7oPan5taVd9owIDAQAB\r\noyEwHzAMBgNVHRMBAf8EAjAAMA8GA1UdDwEB/wQFAwMHuAAwCwYJKoZIhvcNAQEF\r\nA4ICAQAFss/AtkkWDUVq7/bqkBb/K5zT9pO5XnCqDEl4dj84dhwrAVUYJqnHBxq6\r\n8W6+u/PC9xCBmXDkT4mLhEq2wEGAcB80PAi8eFWCEB+hRvLJAuHpLdiJMar2/hak\r\n3RSDWMiHr8o2aC4M05YyNCsi62O5GXxL2cpWAALiusUTuPCG5QwPykPNWsZpoJ0D\r\n0Ttim5dy94BQULiBGUr6yPid5pCzsHZjLKJZx/ZdFF26wsZcqdp+DVPGsitb+zei\r\nNvNep5SCb7K9ODDVTiBPDKIb2TxFIEM4UT664YPpmWwu3tVqFUzbGaoSkmZn2rwc\r\nygKQVvmHfcIZ7wD5yCtkdDxFcmMnKPA+H1Ef9JFul1OBgTjIL6RUtzXrFtKqwa6d\r\n83NvjaaAlioqv5uDkPEptF8CDidniPQ5tEYhysJ3L8I0lD4gT80LIlTuCWEjO85z\r\nnXqqw8qVSHkk89Knvydn0w7311a2mGFAiH6BvMgxf/JfZE18i8XcEVZoTOf282rO\r\n16Rf6fPz/WQLw0uRH1z4b6n83+HIBipxTbbF3p0q0CXeA3lw1WPCP4bCHjz46dxT\r\nEp07KHZVIRkTbT8Y4Hizy/dHLuE9xiWrz9wJQHU37eqdrahEvpfDiamER61wwz6r\r\n7cO08dlYUqGU9OuG2MStaZJkU+bS4k9rpH9ozh8n+INDtFOFQA==\r\n-----END CERTIFICATE-----\r\n</ds:X509Certificate></ds:X509Data>\r\n </ds:KeyInfo>\r\n </KeyDescriptor>\r\n\r\n\r\n <SingleLogoutService\r\n Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:SOAP\"\r\n Location=\"https://test-commune-montpellier.entrouvert.org/saml/singleLogoutSOAP\" />\r\n <SingleLogoutService\r\n Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect\"\r\n Location=\"https://test-commune-montpellier.entrouvert.org/saml/singleLogout\"\r\n ResponseLocation=\"https://test-commune-montpellier.entrouvert.org/saml/singleLogoutReturn\" />\r\n <ManageNameIDService\r\n Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:SOAP\"\r\n Location=\"https://test-commune-montpellier.entrouvert.org/saml/manageNameIdSOAP\" />\r\n <ManageNameIDService\r\n Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect\"\r\n Location=\"https://test-commune-montpellier.entrouvert.org/saml/manageNameId\"\r\n ResponseLocation=\"https://test-commune-montpellier.entrouvert.org/saml/manageNameIdReturn\" />\r\n <AssertionConsumerService isDefault=\"true\" index=\"0\"\r\n Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact\"\r\n Location=\"https://test-commune-montpellier.entrouvert.org/saml/singleSignOnArtifact\" />\r\n <AssertionConsumerService index=\"1\"\r\n Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST\"\r\n Location=\"https://test-commune-montpellier.entrouvert.org/saml/singleSignOnPost\" />\r\n <AssertionConsumerService index=\"2\"\r\n Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:PAOS\"\r\n Location=\"https://test-commune-montpellier.entrouvert.org/saml/singleSignOnSOAP\" />\r\n <AssertionConsumerService index=\"3\"\r\n Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect\"\r\n Location=\"https://test-commune-montpellier.entrouvert.org/saml/singleSignOnRedirect\" />\r\n</SPSSODescriptor>\r\n</EntityDescriptor>\r\n",
"name" : "Test commune",
"protocol_conformance" : 3,
"public_key" : "",
"ssl_certificate" : ""
},
"model" : "saml.libertyprovider",
"pk" : 8
},
{ "fields" : { "attribute_policy" : null,
"enable_following_attribute_policy" : false,
"enable_following_sp_options_policy" : false,
"enabled" : true,
"policy" : 1,
"sp_options_policy" : null
},
"model" : "saml.libertyserviceprovider",
"pk" : 2
},
{ "fields" : { "attribute_policy" : null,
"enable_following_attribute_policy" : false,
"enable_following_sp_options_policy" : false,
"enabled" : true,
"policy" : 2,
"sp_options_policy" : null
},
"model" : "saml.libertyserviceprovider",
"pk" : 3
},
{ "fields" : { "attribute_policy" : null,
"enable_following_attribute_policy" : false,
"enable_following_sp_options_policy" : false,
"enabled" : true,
"policy" : 2,
"sp_options_policy" : null
},
"model" : "saml.libertyserviceprovider",
"pk" : 8
},
{ "fields" : { "name" : "USER_PROFILE",
"namespace" : "Default"
},
"model" : "attribute_aggregator.attributesource",
"pk" : 1
}
]

View File

@ -1,295 +0,0 @@
[ { "fields" : { "attribute_name" : "uid",
"output_name_format" : "urn:oasis:names:tc:SAML:2.0:attrname-format:basic",
"output_namespace" : "Default",
"required" : true,
"source" : 1
},
"model" : "idp.attributeitem",
"pk" : 2
},
{ "fields" : { "attribute_name" : "email",
"output_name_format" : "urn:oasis:names:tc:SAML:2.0:attrname-format:basic",
"output_namespace" : "Default",
"required" : true,
"source" : 1
},
"model" : "idp.attributeitem",
"pk" : 3
},
{ "fields" : { "attribute_name" : "gn",
"output_name_format" : "urn:oasis:names:tc:SAML:2.0:attrname-format:basic",
"output_namespace" : "Default",
"required" : true,
"source" : 1
},
"model" : "idp.attributeitem",
"pk" : 4
},
{ "fields" : { "attribute_name" : "sn",
"output_name_format" : "urn:oasis:names:tc:SAML:2.0:attrname-format:basic",
"output_namespace" : "Default",
"required" : false,
"source" : 1
},
"model" : "idp.attributeitem",
"pk" : 5
},
{ "fields" : { "attribute_name" : "telephoneNumber",
"output_name_format" : "urn:oasis:names:tc:SAML:2.0:attrname-format:basic",
"output_namespace" : "Default",
"required" : false,
"source" : 1
},
"model" : "idp.attributeitem",
"pk" : 7
},
{ "fields" : { "attribute_name" : "postalCode",
"output_name_format" : "urn:oasis:names:tc:SAML:2.0:attrname-format:basic",
"output_namespace" : "Default",
"required" : false,
"source" : 1
},
"model" : "idp.attributeitem",
"pk" : 8
},
{ "fields" : { "attribute_name" : "street",
"output_name_format" : "urn:oasis:names:tc:SAML:2.0:attrname-format:basic",
"output_namespace" : "Default",
"required" : false,
"source" : 1
},
"model" : "idp.attributeitem",
"pk" : 9
},
{ "fields" : { "attribute_name" : "personalTitle",
"output_name_format" : "urn:oasis:names:tc:SAML:2.0:attrname-format:basic",
"output_namespace" : "Default",
"required" : false,
"source" : 1
},
"model" : "idp.attributeitem",
"pk" : 10
},
{ "fields" : { "attribute_name" : "l",
"output_name_format" : "urn:oasis:names:tc:SAML:2.0:attrname-format:basic",
"output_namespace" : "Default",
"required" : false,
"source" : 1
},
"model" : "idp.attributeitem",
"pk" : 11
},
{ "fields" : { "attribute_name" : "mobile",
"output_name_format" : "urn:oasis:names:tc:SAML:2.0:attrname-format:basic",
"output_namespace" : "Default",
"required" : false,
"source" : 1
},
"model" : "idp.attributeitem",
"pk" : 12
},
{ "fields" : { "attribute_name" : "role",
"output_name_format" : "urn:oasis:names:tc:SAML:2.0:attrname-format:basic",
"output_namespace" : "Default",
"required" : false,
"source" : 1
},
"model" : "idp.attributeitem",
"pk" : 13
},
{ "fields" : { "attributes" : [ 2,
3,
4,
5,
7,
8,
9,
10,
11,
12,
13
],
"name" : "Profile"
},
"model" : "idp.attributelist",
"pk" : 1
},
{ "fields" : { "allow_attributes_selection" : false,
"ask_consent_attributes" : false,
"attribute_filter_for_sso_from_push_sources" : null,
"attribute_list_for_sso_from_pull_sources" : 1,
"enabled" : true,
"filter_source_of_filtered_attributes" : false,
"forward_attributes_from_push_sources" : false,
"map_attributes_from_push_sources" : false,
"map_attributes_of_filtered_attributes" : false,
"name" : "Default",
"output_name_format" : "urn:oasis:names:tc:SAML:2.0:attrname-format:uri",
"output_namespace" : "Default",
"send_error_and_no_attrs_if_missing_required_attrs" : false,
"source_filter_for_sso_from_push_sources" : [ ]
},
"model" : "idp.attributepolicy",
"pk" : 1
},
{ "fields" : { "authn_request_signature_check_hint" : 0,
"name" : "Default"
},
"model" : "saml.libertyproviderpolicy",
"pk" : 1
},
{ "fields" : { "authn_request_signature_check_hint" : 2,
"name" : "Shibboleth SP"
},
"model" : "saml.libertyproviderpolicy",
"pk" : 2
},
{ "fields" : { "accept_slo" : true,
"allow_create" : true,
"back_url" : "/",
"binding_for_sso_response" : "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact",
"enable_binding_for_sso_response" : false,
"enable_http_method_for_defederation_request" : false,
"enable_http_method_for_slo_request" : true,
"enabled" : true,
"force_user_consent" : false,
"forward_slo" : true,
"handle_persistent" : "AUTHSAML2_UNAUTH_PERSISTENT_ACCOUNT_LINKING_BY_AUTH",
"handle_transient" : "AUTHSAML2_UNAUTH_TRANSIENT_ASK_AUTH",
"http_method_for_defederation_request" : 5,
"http_method_for_slo_request" : 5,
"name" : "Default",
"no_nameid_policy" : false,
"requested_name_id_format" : "persistent",
"transient_is_persistent" : false,
"want_authn_request_signed" : false,
"want_force_authn_request" : false,
"want_is_passive_authn_request" : false
},
"model" : "saml.idpoptionssppolicy",
"pk" : 1
},
{ "fields" : { "accept_slo" : true,
"accepted_name_id_format" : "[u'[u\\'[u\"[u\\\\\\'transient\\\\\\'\"\\'', u' u\\' u\" u\\\\\\'persistent\\\\\\'\"\\'', u' u\\' u\" u\\\\\\'email\\\\\\']\"]\\']']",
"ask_user_consent" : false,
"authn_request_signed" : false,
"default_name_id_format" : "persistent",
"enabled" : true,
"encrypt_assertion" : false,
"encrypt_nameid" : false,
"forward_slo" : true,
"idp_initiated_sso" : true,
"name" : "Default",
"prefered_assertion_consumer_binding" : "meta"
},
"model" : "saml.spoptionsidppolicy",
"pk" : 1
},
{ "fields" : { "accept_slo" : true,
"accepted_name_id_format" : "[u'[u\"[u\\'\\']\"]']",
"ask_user_consent" : true,
"authn_request_signed" : false,
"default_name_id_format" : "persistent",
"enabled" : true,
"encrypt_assertion" : false,
"encrypt_nameid" : false,
"forward_slo" : true,
"idp_initiated_sso" : true,
"name" : "Consentement",
"prefered_assertion_consumer_binding" : "meta"
},
"model" : "saml.spoptionsidppolicy",
"pk" : 2
},
{ "fields" : { "accept_slo" : true,
"accepted_name_id_format" : "[u'[u\"[u\\'\\']\"]']",
"ask_user_consent" : false,
"authn_request_signed" : false,
"default_name_id_format" : "none",
"enabled" : true,
"encrypt_assertion" : false,
"encrypt_nameid" : false,
"forward_slo" : true,
"idp_initiated_sso" : false,
"name" : "Hide",
"prefered_assertion_consumer_binding" : "meta"
},
"model" : "saml.spoptionsidppolicy",
"pk" : 3
},
{ "fields" : { "ca_cert_chain" : "",
"entity_id" : "https://eservices-test-entrouvert.montpellier-agglo.com/saml/metadata",
"entity_id_sha1" : "5540b0b614a7f5d0f9583b43495d1e9508b52000",
"federation_source" : null,
"metadata" : "<?xml version=\"1.0\"?>\n<EntityDescriptor xmlns=\"urn:oasis:names:tc:SAML:2.0:metadata\"\n xmlns:saml=\"urn:oasis:names:tc:SAML:2.0:assertion\"\n xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\"\n entityID=\"https://eservices-test-entrouvert.montpellier-agglo.com/saml/metadata\">\n <SPSSODescriptor\n AuthnRequestsSigned=\"true\" WantAssertionsSigned=\"true\"\n protocolSupportEnumeration=\"urn:oasis:names:tc:SAML:2.0:protocol\">\n <KeyDescriptor use=\"signing\">\n <ds:KeyInfo xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\">\n <KeyValue xmlns=\"http://www.w3.org/2000/09/xmldsig#\">\n <RSAKeyValue>\n <Modulus>nJpkBznHNbvE+RAC6mU+NPQnIWs8gFNCm6I3FPcUKYpaJbXaurJ4cJgvnaEiqIXPQDcbHxuLeCbYbId9yascWZirvQbh8d/r+Vv+24bPG++9gW+i3Nnz1VW8V+z0b+puHWvM/FjJjBNJgWkI38gaupz47U6/02CtWx00stitiwk=</Modulus>\n <Exponent>AQAB</Exponent>\n </RSAKeyValue>\n</KeyValue>\n </ds:KeyInfo>\n </KeyDescriptor>\n <KeyDescriptor use=\"encryption\">\n <ds:KeyInfo xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\">\n <KeyValue xmlns=\"http://www.w3.org/2000/09/xmldsig#\">\n <RSAKeyValue>\n <Modulus>3BxSiAzGvY1Yuqa31L7Zr2WHM/8cn5oX+Q6A2SYgzjuvAgnWyizN8YgW/fHR4G7MtkmZ5RFJLXfcSLwbUfpFHV6KO1ikbgViYuFempM+SWtjqEI7ribm9GaI5kUzHJZBrH3/Q9XAd9/GLLALxurGjbKDeLfc0D+7el26g4sYmA8=</Modulus>\n <Exponent>AQAB</Exponent>\n </RSAKeyValue>\n</KeyValue>\n </ds:KeyInfo>\n </KeyDescriptor>\n\n <SingleLogoutService\n Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect\"\n Location=\"https://eservices-test-entrouvert.montpellier-agglo.com/saml/singleLogout\"\n ResponseLocation=\"https://eservices-test-entrouvert.montpellier-agglo.com/saml/singleLogoutReturn\" />\n <SingleLogoutService\n Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:SOAP\"\n Location=\"https://eservices-test-entrouvert.montpellier-agglo.com/saml/singleLogoutSOAP\" />\n <ManageNameIDService\n Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect\"\n Location=\"https://eservices-test-entrouvert.montpellier-agglo.com/saml/manageNameId\"\n ResponseLocation=\"https://eservices-test-entrouvert.montpellier-agglo.com/saml/manageNameIdReturn\" />\n <ManageNameIDService\n Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:SOAP\"\n Location=\"https://eservices-test-entrouvert.montpellier-agglo.com/saml/manageNameIdSOAP\" />\n <AssertionConsumerService isDefault=\"true\" index=\"0\"\n Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact\"\n Location=\"https://eservices-test-entrouvert.montpellier-agglo.com/saml/assertionConsumerArtifact\" />\n <AssertionConsumerService index=\"1\"\n Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST\"\n Location=\"https://eservices-test-entrouvert.montpellier-agglo.com/saml/assertionConsumerPost\" />\n <AssertionConsumerService index=\"2\"\n Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:PAOS\"\n Location=\"https://eservices-test-entrouvert.montpellier-agglo.com/saml/assertionConsumerSOAP\" />\n <AssertionConsumerService index=\"3\"\n Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect\"\n Location=\"https://eservices-test-entrouvert.montpellier-agglo.com/saml/assertionConsumerRedirect\" />\n </SPSSODescriptor>\n\n\n</EntityDescriptor>",
"name" : "Eservices",
"protocol_conformance" : 3,
"public_key" : "",
"ssl_certificate" : ""
},
"model" : "saml.libertyprovider",
"pk" : 2
},
{ "fields" : { "ca_cert_chain" : "",
"entity_id" : "http://www-test.entrouvert.montpellier-agglo.com/simplesamlphp/module.php/saml/sp/metadata.php/default-sp",
"entity_id_sha1" : "f7b6634ad4fd5af01a09f2ff9d24b93eed5985e3",
"federation_source" : null,
"metadata" : "<md:EntityDescriptor xmlns:md=\"urn:oasis:names:tc:SAML:2.0:metadata\" entityID=\"http://www-test.entrouvert.montpellier-agglo.com/simplesamlphp/module.php/saml/sp/metadata.php/default-sp\">\r\n <md:SPSSODescriptor protocolSupportEnumeration=\"urn:oasis:names:tc:SAML:1.1:protocol urn:oasis:names:tc:SAML:2.0:protocol\">\r\n <md:SingleLogoutService Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect\" Location=\"http://www-test.entrouvert.montpellier-agglo.com/simplesamlphp/module.php/saml/sp/saml2-logout.php/default-sp\"/>\r\n <md:AssertionConsumerService Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST\" Location=\"http://www-test.entrouvert.montpellier-agglo.com/simplesamlphp/module.php/saml/sp/saml2-acs.php/default-sp\" index=\"0\"/>\r\n <md:AssertionConsumerService Binding=\"urn:oasis:names:tc:SAML:1.0:profiles:browser-post\" Location=\"http://www-test.entrouvert.montpellier-agglo.com/simplesamlphp/module.php/saml/sp/saml1-acs.php/default-sp\" index=\"1\"/>\r\n <md:AssertionConsumerService Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact\" Location=\"http://www-test.entrouvert.montpellier-agglo.com/simplesamlphp/module.php/saml/sp/saml2-acs.php/default-sp\" index=\"2\"/>\r\n <md:AssertionConsumerService Binding=\"urn:oasis:names:tc:SAML:1.0:profiles:artifact-01\" Location=\"http://www-test.entrouvert.montpellier-agglo.com/simplesamlphp/module.php/saml/sp/saml1-acs.php/default-sp/artifact\" index=\"3\"/>\r\n <md:AssertionConsumerService Binding=\"urn:oasis:names:tc:SAML:2.0:profiles:holder-of-key:SSO:browser\" Location=\"http://www-test.entrouvert.montpellier-agglo.com/simplesamlphp/module.php/saml/sp/saml2-acs.php/default-sp\" index=\"4\"/>\r\n </md:SPSSODescriptor>\r\n <md:ContactPerson contactType=\"technical\">\r\n <md:GivenName>Administrator</md:GivenName>\r\n <md:EmailAddress>na@example.org</md:EmailAddress>\r\n </md:ContactPerson>\r\n</md:EntityDescriptor>",
"name" : "Site Web de l'agglomération",
"protocol_conformance" : 3,
"public_key" : "",
"ssl_certificate" : ""
},
"model" : "saml.libertyprovider",
"pk" : 3
},
{ "fields" : { "ca_cert_chain" : "",
"entity_id" : "https://test-commune-montpellier.entrouvert.org/saml/metadata",
"entity_id_sha1" : "5da4d3fc93c3dd23a2974c626db5de98c2270a9c",
"federation_source" : null,
"metadata" : "<?xml version=\"1.0\"?>\r\n<EntityDescriptor xmlns=\"urn:oasis:names:tc:SAML:2.0:metadata\"\r\n xmlns:saml=\"urn:oasis:names:tc:SAML:2.0:assertion\"\r\n xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\"\r\n entityID=\"https://test-commune-montpellier.entrouvert.org/saml/metadata\">\r\n<SPSSODescriptor\r\n AuthnRequestsSigned=\"true\"\r\n protocolSupportEnumeration=\"urn:oasis:names:tc:SAML:2.0:protocol\">\r\n<KeyDescriptor use=\"signing\">\r\n <ds:KeyInfo xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\">\r\n <ds:X509Data><ds:X509Certificate>-----BEGIN CERTIFICATE-----\r\nMIIEQTCCAiugAwIBAgIUBwAAAAAAAAAAAAAAAAAAAAAAAAAwCwYJKoZIhvcNAQEF\r\nMIGJMQswCQYDVQQGEwJGUjEOMAwGA1UEBxMFUGFyaXMxFDASBgNVBAoTC0VudHIn\r\nT3V2ZXJ0MSMwIQYDVQQLDBpBdXRvcml0w6kgZGUgY2VydGlmaWNhdGlvbjEvMC0G\r\nA1UEAwwmRW50cidPdXZlcnQgQXV0b3JpdMOpIGRlIENlcnRpZmljYXRpb24wHhcN\r\nMDkwMTIwMDk1NDA0WhcNMTQwMTIwMDg1NDA0WjCBkjELMAkGA1UEBhMCRlIxIjAg\r\nBgNVBAoTGUNlbnRyZSBkZSBHZXN0aW9uIGR1IE5vcmQxFjAUBgNVBAsTDVByb2pl\r\ndCBQckB0aWMxRzBFBgNVBAMTPkNlcnRpZmljYXQgQ29tbXVuIHBvdXIgc2l0ZSB3\r\nY3MgZGUgdGVsZWZvcm11bGFpcmVzLnByYXRpYzU5LmZyMIGcMAsGCSqGSIb3DQEB\r\nAQOBjAAwgYgCgYC/ZvDd3Dq1IdK62vAza9pZidh+YT+j6/9jx1gb9TAIktJRXt3A\r\nD98iAJ1CuolA4QqJyxJQBi0R5wfmWlwR8DP7GE4hl7FB+01yqOvt6b+aX563qXgU\r\nE2wW7D34zZOdCOJAXKsKbklS62bDyNhNKQy32WIQZznJD7oPan5taVd9owIDAQAB\r\noyEwHzAMBgNVHRMBAf8EAjAAMA8GA1UdDwEB/wQFAwMHuAAwCwYJKoZIhvcNAQEF\r\nA4ICAQAFss/AtkkWDUVq7/bqkBb/K5zT9pO5XnCqDEl4dj84dhwrAVUYJqnHBxq6\r\n8W6+u/PC9xCBmXDkT4mLhEq2wEGAcB80PAi8eFWCEB+hRvLJAuHpLdiJMar2/hak\r\n3RSDWMiHr8o2aC4M05YyNCsi62O5GXxL2cpWAALiusUTuPCG5QwPykPNWsZpoJ0D\r\n0Ttim5dy94BQULiBGUr6yPid5pCzsHZjLKJZx/ZdFF26wsZcqdp+DVPGsitb+zei\r\nNvNep5SCb7K9ODDVTiBPDKIb2TxFIEM4UT664YPpmWwu3tVqFUzbGaoSkmZn2rwc\r\nygKQVvmHfcIZ7wD5yCtkdDxFcmMnKPA+H1Ef9JFul1OBgTjIL6RUtzXrFtKqwa6d\r\n83NvjaaAlioqv5uDkPEptF8CDidniPQ5tEYhysJ3L8I0lD4gT80LIlTuCWEjO85z\r\nnXqqw8qVSHkk89Knvydn0w7311a2mGFAiH6BvMgxf/JfZE18i8XcEVZoTOf282rO\r\n16Rf6fPz/WQLw0uRH1z4b6n83+HIBipxTbbF3p0q0CXeA3lw1WPCP4bCHjz46dxT\r\nEp07KHZVIRkTbT8Y4Hizy/dHLuE9xiWrz9wJQHU37eqdrahEvpfDiamER61wwz6r\r\n7cO08dlYUqGU9OuG2MStaZJkU+bS4k9rpH9ozh8n+INDtFOFQA==\r\n-----END CERTIFICATE-----\r\n</ds:X509Certificate></ds:X509Data>\r\n </ds:KeyInfo>\r\n </KeyDescriptor>\r\n\r\n\r\n <SingleLogoutService\r\n Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:SOAP\"\r\n Location=\"https://test-commune-montpellier.entrouvert.org/saml/singleLogoutSOAP\" />\r\n <SingleLogoutService\r\n Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect\"\r\n Location=\"https://test-commune-montpellier.entrouvert.org/saml/singleLogout\"\r\n ResponseLocation=\"https://test-commune-montpellier.entrouvert.org/saml/singleLogoutReturn\" />\r\n <ManageNameIDService\r\n Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:SOAP\"\r\n Location=\"https://test-commune-montpellier.entrouvert.org/saml/manageNameIdSOAP\" />\r\n <ManageNameIDService\r\n Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect\"\r\n Location=\"https://test-commune-montpellier.entrouvert.org/saml/manageNameId\"\r\n ResponseLocation=\"https://test-commune-montpellier.entrouvert.org/saml/manageNameIdReturn\" />\r\n <AssertionConsumerService isDefault=\"true\" index=\"0\"\r\n Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact\"\r\n Location=\"https://test-commune-montpellier.entrouvert.org/saml/singleSignOnArtifact\" />\r\n <AssertionConsumerService index=\"1\"\r\n Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST\"\r\n Location=\"https://test-commune-montpellier.entrouvert.org/saml/singleSignOnPost\" />\r\n <AssertionConsumerService index=\"2\"\r\n Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:PAOS\"\r\n Location=\"https://test-commune-montpellier.entrouvert.org/saml/singleSignOnSOAP\" />\r\n <AssertionConsumerService index=\"3\"\r\n Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect\"\r\n Location=\"https://test-commune-montpellier.entrouvert.org/saml/singleSignOnRedirect\" />\r\n</SPSSODescriptor>\r\n</EntityDescriptor>\r\n",
"name" : "Test commune",
"protocol_conformance" : 3,
"public_key" : "",
"ssl_certificate" : ""
},
"model" : "saml.libertyprovider",
"pk" : 8
},
{ "fields" : { "attribute_policy" : null,
"enable_following_attribute_policy" : false,
"enable_following_sp_options_policy" : false,
"enabled" : true,
"policy" : 1,
"sp_options_policy" : null
},
"model" : "saml.libertyserviceprovider",
"pk" : 2
},
{ "fields" : { "attribute_policy" : null,
"enable_following_attribute_policy" : false,
"enable_following_sp_options_policy" : false,
"enabled" : true,
"policy" : 2,
"sp_options_policy" : null
},
"model" : "saml.libertyserviceprovider",
"pk" : 3
},
{ "fields" : { "attribute_policy" : null,
"enable_following_attribute_policy" : false,
"enable_following_sp_options_policy" : false,
"enabled" : true,
"policy" : 2,
"sp_options_policy" : null
},
"model" : "saml.libertyserviceprovider",
"pk" : 8
},
{ "fields" : { "name" : "USER_PROFILE",
"namespace" : "Default"
},
"model" : "attribute_aggregator.attributesource",
"pk" : 1
}
]

View File

@ -1,25 +0,0 @@
[ { "fields" : { "address" : "4 rue Jean Moulin",
"backend" : "",
"backend_id" : "",
"city" : "Montpellier",
"date_joined" : "2013-03-12T14:27:45",
"email" : "pcros+admin@entrouvert.com",
"first_name" : "Administrator",
"groups" : [ 6 ],
"is_active" : true,
"is_staff" : true,
"is_superuser" : true,
"last_login" : "2013-06-26T22:27:10.036",
"last_name" : "Admin",
"mobile" : "0630692893",
"password" : "pbkdf2_sha256$10000$IOQGUjVQffV3$ccZh+rZg0uf2WPiq/1/OmEZNJZWvdwyvGsDjppgn/YU=",
"phone" : "",
"postal_code" : "34000",
"title" : "Monsieur",
"user_permissions" : [ ],
"username" : "admin"
},
"model" : "portail_citoyen.citoyen",
"pk" : 1
}
]

View File

@ -1,19 +0,0 @@
import re
from django import forms
from django.utils.translation import ugettext_lazy as _
from authentic2.forms import UserProfileForm as Authentic2UserProfileForm
class UserProfileForm(Authentic2UserProfileForm):
def __init__(self, *args, **kwargs):
super(UserProfileForm, self).__init__(*args, **kwargs)
self.fields['phone'].help_text = None
self.fields['mobile'].help_text = None
class Meta(Authentic2UserProfileForm.Meta):
widgets = {
'phone': forms.TextInput(attrs={'placeholder': _('such as 0499999999')}),
'mobile': forms.TextInput(attrs={'placeholder': _('such as 0499999999')}),
}

View File

@ -1,195 +0,0 @@
# Translation file of compte-agglo-montpellier
# Copyright (C) 2013 Entr'ouvert
# This file is distributed under the same license as the PACKAGE package.
# Benjamin Dauvergne <bdauvergne@entrouvert.com>, 2013.
#
msgid ""
msgstr ""
"Project-Id-Version: compte-agglo-montpellier 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-07-31 17:27+0200\n"
"PO-Revision-Date: 2013-07-31 17:29+0200\n"
"Last-Translator: Benjamin Dauvergne <bdauvergne@entrouvert.com>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: dashboard.py:25
msgid "Users and roles"
msgstr "Utilisateurs et rôles"
#: dashboard.py:30
msgid "Services"
msgstr ""
#: dashboard.py:43
msgid "Contents"
msgstr "Contenus"
#: dashboard.py:52
msgid "Announces"
msgstr "Annonces"
#: dashboard.py:59 dashboard.py:94
msgid "Recent Actions"
msgstr "Actions récentes"
#: dashboard.py:63
msgid "Support"
msgstr ""
#: dashboard.py:66
msgid "Project site"
msgstr "Site du projet"
#: dashboard.py:71
msgid "Report a bug"
msgstr "Rapporter un bogue"
#: forms.py:17 forms.py:18
msgid "such as 0499999999"
msgstr "par exemple 0499999999"
#: menu.py:22
msgid "Dashboard"
msgstr "Bureau"
#: registration_forms.py:19 registration_forms.py:34
msgid ""
"At least 8 characters, including one uppercase, one lowercase and a special "
"character"
msgstr ""
"Au moins 8 caractères, comprenant une lettre majuscule, une lettre minuscule "
"et un caractère spécial (!@#$&*)"
#: registration_forms.py:28 registration_forms.py:43
msgid "invalid password"
msgstr "Mot de passe invalide"
#: settings.py:40
msgid "English"
msgstr "Anglais"
#: settings.py:41
msgid "French"
msgstr "Français"
#: templates/404.html:23 templates/500.html:23 templates/base.html:23
msgid "Logout"
msgstr "Me déconnecter"
#: templates/a2_service_list_plugin/plugin.html:7
msgid "My services"
msgstr "Mes services"
#: templates/auth/login_form.html:6
#: templates/registration/password_reset_complete.html:24
msgid "Log in"
msgstr "Me connecter"
#: templates/auth/login_form.html:8
msgid "Cancel"
msgstr ""
#: templates/auth/login_form.html:14
msgid "Forgot password?"
msgstr ""
#: templates/auth/login_form.html:14
msgid "Reset it!"
msgstr ""
#: templates/auth/login_form.html:15
msgid "Not a member?"
msgstr ""
#: templates/auth/login_form.html:15
msgid "Register!"
msgstr ""
#: templates/passerelle_register_plugin/plugin.html:26
#: templates/profiles/edit_profile.html:12
msgid "Modify"
msgstr "Modifier"
#: templates/profiles/edit_profile.html:14
msgid "Create"
msgstr ""
#: templates/profiles/edit_profile.html:22
msgid "My account"
msgstr "Mon compte"
#: templates/profiles/edit_profile.html:23
#: templates/registration/password_change_form.html:18
msgid "Change password"
msgstr "Changer de mot de passe"
#: templates/profiles/edit_profile.html:24
msgid "Delete account"
msgstr "Supprimer mon compte"
#: templates/registration/activation_complete.html:16
msgid "Your account is now activated"
msgstr "Votre compte est maintenant activé"
#: templates/registration/activation_complete.html:18
#: templates/registration/delete_account.html:26
#: templates/registration/logout.html:17
#: templates/registration/password_change_form.html:34
#: templates/registration/password_reset_confirm.html:37
#: templates/registration/password_reset_done.html:21
#: templates/registration/password_reset_form.html:34
#: templates/registration/registration_complete.html:18
msgid "Back"
msgstr "Retour"
#: templates/registration/delete_account.html:25
msgid "Confirm"
msgstr "Confirmer"
#: templates/registration/logout.html:9
msgid "Logging out"
msgstr "Déconnexion"
#: templates/registration/logout.html:16
msgid "Logged out"
msgstr "Déconnexion"
#: templates/registration/password_change_form.html:33
#: templates/registration/password_reset_confirm.html:36
#: templates/registration/password_reset_form.html:33
msgid "Submit"
msgstr "Soumettre"
#: templates/registration/password_reset_complete.html:17
msgid "Password reset successfully"
msgstr ""
#: templates/registration/password_reset_confirm.html:20
#: templates/registration/password_reset_done.html:18
#: templates/registration/password_reset_form.html:18
msgid "Resetting password"
msgstr ""
#: templates/registration/password_reset_confirm.html:46
msgid "Password reset failed"
msgstr ""
#: templates/registration/password_reset_done.html:20
msgid "Email with password reset instructions has been sent."
msgstr ""
#: templates/registration/registration_complete.html:16
msgid "Successful registration"
msgstr ""
#: templates/registration/registration_complete.html:17
msgid "You are now registered. Activation email sent."
msgstr ""
#: templates/registration/registration_form.html:9
msgid "Registration"
msgstr ""

View File

@ -1,30 +0,0 @@
"""
This file was generated with the custommenu management command, it contains
the classes for the admin menu, you can customize this class as you want.
To activate your custom menu add the following to your settings.py::
ADMIN_TOOLS_MENU = 'authentic2.menu.CustomMenu'
"""
from django.core.urlresolvers import reverse
from django.utils.translation import ugettext_lazy as _
from admin_tools.menu import items, Menu
class CustomMenu(Menu):
"""
Custom Menu for authentic2 admin site.
"""
def __init__(self, **kwargs):
Menu.__init__(self, **kwargs)
self.children += [
items.MenuItem(_('Dashboard'), reverse('admin:index')),
items.Bookmarks(),
]
def init_with_context(self, context):
"""
Use this method if you need to access the request context.
"""
return super(CustomMenu, self).init_with_context(context)

View File

@ -1,50 +0,0 @@
import re
from django.utils.translation import ugettext_lazy as _
from django import forms
from django.contrib.auth.forms import SetPasswordForm as OldSetPasswordForm, \
PasswordChangeForm as OldPasswordChangeForm
from authentic2.registration_backend.forms import RegistrationForm as AuthenticRegistrationForm
PASSWORD_RE = re.compile(r'^(?=.*[A-Z])(?=.*[!@#$&*])(?=.*[a-z]).{8,}$')
class RegistrationForm(AuthenticRegistrationForm):
# see http://dev.entrouvert.org/issues/3203
def __init__(self, *args, **kwargs):
super(RegistrationForm, self).__init__(*args, **kwargs)
self.fields['password1'].help_text = _('At least 8 characters, '
'including one uppercase, one lowercase and a special '
'character')
def clean_password1(self):
global PASSWORD_RE
password = self.cleaned_data['password1']
if not PASSWORD_RE.match(password):
raise forms.ValidationError(_('invalid password'))
return password
class SetPasswordMixin(object):
def __init__(self, *args, **kwargs):
super(SetPasswordMixin, self).__init__(*args, **kwargs)
self.fields['new_password1'].help_text = _('At least 8 characters, '
'including one uppercase, one lowercase and a special '
'character')
def clean_new_password1(self):
global PASSWORD_RE
password = self.cleaned_data['new_password1']
if not PASSWORD_RE.match(password):
raise forms.ValidationError(_('invalid password'))
return password
class SetPasswordForm(SetPasswordMixin, OldSetPasswordForm):
pass
class PasswordChangeForm(SetPasswordMixin, OldPasswordChangeForm):
pass

View File

@ -1,463 +0,0 @@
import json
import os
import logging.handlers
from django.conf.global_settings import PASSWORD_HASHERS
gettext_noop = lambda s: s
# Python dotted path to the WSGI application used by Django's runserver.
WSGI_APPLICATION = 'compte_agglo_montpellier.wsgi.application'
DEBUG = 'DEBUG' in os.environ
DEBUG_PROPAGATE_EXCEPTIONS = 'DEBUG_PROPAGATE_EXCEPTIONS' in os.environ
USE_DEBUG_TOOLBAR = 'USE_DEBUG_TOOLBAR' in os.environ
TEMPLATE_DEBUG = DEBUG
PROJECT_PATH = os.path.join(os.path.dirname(__file__), '..')
PROJECT_NAME = 'compte-agglo-montpellier'
ADMINS = ()
if 'ADMINS' in os.environ:
ADMINS = filter(None, os.environ.get('ADMINS').split(':'))
ADMINS = [ admin.split(';') for admin in ADMINS ]
for admin in ADMINS:
assert len(admin) == 2, 'ADMINS setting must be a colon separated list of name and emails separated by a semi-colon'
assert '@' in admin[1], 'ADMINS setting pairs second value must be emails'
MANAGERS = ADMINS
DATABASES = {
'default': {
'ENGINE': os.environ.get('DATABASE_ENGINE', 'django.db.backends.sqlite3'),
'NAME': os.environ.get('DATABASE_NAME', os.path.join(PROJECT_PATH, PROJECT_NAME + '.db')),
}
}
# Hey Entr'ouvert is in France !!
TIME_ZONE = 'Europe/Paris'
LANGUAGE_CODE = 'fr'
SITE_ID = 1
USE_I18N = True
LANGUAGES = (
('en', gettext_noop('English')),
('fr', gettext_noop('French')),
)
USE_L10N = True
# Static files
STATIC_ROOT = os.environ.get('STATIC_ROOT', '/var/lib/%s/static' % PROJECT_NAME)
STATIC_URL = os.environ.get('STATIC_URL', '/static/')
MEDIA_ROOT = os.environ.get('MEDIA_ROOT', '/var/lib/%s/media' % PROJECT_NAME)
MEDIA_URL = os.environ.get('MEDIA_URL', '/media/')
if 'STATICFILES_DIRS' in os.environ:
STATICFILES_DIRS = os.environ['STATICFILES_DIRS'].split(':')
else:
STATICFILES_DIRS = ('/var/lib/%s/extra-static/' % PROJECT_NAME,)
TEMPLATE_LOADERS = (
'django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader',
)
TEMPLATE_CONTEXT_PROCESSORS = (
'django.contrib.auth.context_processors.auth',
'django.core.context_processors.debug',
'django.core.context_processors.i18n',
'django.core.context_processors.media',
'django.core.context_processors.request',
'django.contrib.messages.context_processors.messages',
'django.core.context_processors.static',
'authentic2.context_processors.federations_processor',
'cms.context_processors.media',
'sekizai.context_processors.sekizai',
)
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.middleware.http.ConditionalGetMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.transaction.TransactionMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'authentic2.idp.middleware.DebugMiddleware',
'cms.middleware.page.CurrentPageMiddleware',
'cms.middleware.user.CurrentUserMiddleware',
'cms.middleware.toolbar.ToolbarMiddleware',
'entrouvert.djommon.middleware.VersionMiddleware',
)
ROOT_URLCONF = 'compte_agglo_montpellier.urls'
if os.environ.get('TEMPLATE_DIRS'):
TEMPLATE_DIRS = os.environ['TEMPLATE_DIRS'].split(':')
else:
TEMPLATE_DIRS = ('/var/lib/%s/templates' % PROJECT_NAME,)
import sys
import os
apps_dir = os.path.join(os.path.dirname(__file__), 'apps')
if apps_dir not in sys.path:
sys.path.append(apps_dir)
import portail_citoyen # FIXME: without that sys.path does not contain portail_citoyen.apps
INSTALLED_APPS = (
'compte_agglo_montpellier',
'feed_plugin',
'portail_citoyen_announces',
'login_plugin',
'data_source_plugin',
'a2_service_list_plugin',
'passerelle_register_plugin',
'portail_citoyen',
'authentic2',
'authentic2.nonce',
'authentic2.saml',
'authentic2.idp',
'authentic2.idp.saml',
'authentic2.auth2_auth',
'authentic2.attribute_aggregator',
'authentic2.disco_service',
'menus',
'cms',
'cms.plugins.file',
'cms.plugins.googlemap',
'cms.plugins.link',
'cms.plugins.picture',
'cms.plugins.snippet',
'cms.plugins.teaser',
'cms.plugins.video',
'cmsplugin_text_wrapper',
'admin_tools',
'admin_tools.theming',
'admin_tools.menu',
'admin_tools.dashboard',
'registration',
'south',
'mptt',
'sekizai',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
)
MESSAGE_STORAGE = 'django.contrib.messages.storage.session.SessionStorage'
# Registration settings
ACCOUNT_ACTIVATION_DAYS = int(os.environ.get('ACCOUNT_ACTIVATION_DAYS', 3))
PASSWORD_RESET_TIMEOUT_DAYS = int(os.environ.get('PASSWORD_RESET_TIMEOUT_DAYS', 3))
A2_REGISTRATION_FORM_CLASS = 'compte_agglo_montpellier.registration_forms.RegistrationForm'
A2_REGISTRATION_SET_PASSWORD_FORM_CLASS = 'compte_agglo_montpellier.registration_forms.SetPasswordForm'
A2_REGISTRATION_CHANGE_PASSWORD_FORM_CLASS = 'compte_agglo_montpellier.registration_forms.PasswordChangeForm'
# authentication
AUTHENTICATION_BACKENDS = (
'django.contrib.auth.backends.ModelBackend',
)
AUTH_USER_MODEL = 'portail_citoyen.Citoyen'
PASSWORD_HASHERS += (
'authentic2.hashers.Drupal7PasswordHasher',
)
# sessions
SESSION_EXPIRE_AT_BROWSER_CLOSE = 'SESSION_EXPIRE_AT_BROWSER_CLOSE' in os.environ
SESSION_COOKIE_AGE = int(os.environ.get('SESSION_COOKIE_AGE', 36000)) # one day of work
SESSION_COOKIE_NAME = os.environ.get('SESSION_COOKIE_NAME', 'sessionid')
SESSION_COOKIE_PATH = os.environ.get('SESSION_COOKIE_PATH', '/')
SESSION_COOKIE_SECURE = 'SESSION_COOKIE_SECURE' in os.environ
# email settings
EMAIL_HOST = os.environ.get('EMAIL_HOST', 'localhost')
EMAIL_HOST_USER = os.environ.get('EMAIL_HOST_USER', '')
EMAIL_HOST_PASSWORD = os.environ.get('EMAIL_HOST_PASSWORD', '')
EMAIL_PORT = int(os.environ.get('EMAIL_PORT', 25))
EMAIL_SUBJECT_PREFIX = os.environ.get('EMAIL_SUBJECT_PREFIX', '[Compte Agglo Montpellier]')
EMAIL_USE_TLS = 'EMAIL_USE_TLS' in os.environ
SERVER_EMAIL = os.environ.get('SERVER_EMAIL', 'root@localhost')
DEFAULT_FROM_EMAIL = os.environ.get('DEFAULT_FROM_EMAIL', 'e-services@montpellier-agglo.com')
# web & network settings
if 'ALLOWED_HOSTS' in os.environ:
ALLOWED_HOSTS = os.environ['ALLOWED_HOSTS'].split(':')
USE_X_FORWARDED_HOST = 'USE_X_FORWARDED_HOST' in os.environ
LOGIN_REDIRECT_URL = os.environ.get('LOGIN_REDIRECT_URL', '/')
LOGIN_URL = os.environ.get('LOGIN_URL', '/login')
LOGOUT_URL = os.environ.get('LOGOUT_URL', '/accounts/logout')
if 'INTERNAL_IPS' in os.environ:
INTERNAL_IPS = os.environ['INTERNAL_IPS'].split(':')
else:
INTERNAL_IPS = ('127.0.0.1',)
# cache
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
},
}
if 'CACHE_BACKEND' in os.environ:
CACHES['default'] = json.loads(os.environ['CACHE_BACKEND'])
# misc
SECRET_KEY = os.environ.get('SECRET_KEY', '0!=(1kc6kri-ui+tmj@mr+*0bvj!(p*r0duu2n=)7@!p=pvf9n')
DEBUG_TOOLBAR_CONFIG = {'INTERCEPT_REDIRECTS': False}
# Authentic2 settings
DISCO_SERVICE = 'DISCO_SERVICE' in os.environ
DISCO_USE_OF_METADATA = 'DISCO_USE_OF_METADATA' in os.environ
DISCO_SERVICE_NAME = os.environ.get('DISCO_SERVICE_NAME', "http://www.identity-hub.com/disco_service/disco")
DISCO_RETURN_ID_PARAM = "entityID"
SHOW_DISCO_IN_MD = 'SHOW_DISCO_IN_MD' in os.environ
USE_DISCO_SERVICE = 'USE_DISCO_SERVICE' in os.environ
###########################
# Authentication settings
###########################
# Only RSA private keys are currently supported
AUTH_FRONTENDS = ( 'authentic2.auth2_auth.backend.LoginPasswordBackend',)
SSLAUTH_CREATE_USER = 'SSLAUTH_CREATE_USER' in os.environ
AUTHENTICATION_EVENT_EXPIRATION = int(os.environ.get('AUTHENTICATION_EVENT_EXPIRATION', 3600*24*7))
#############################
# Identity Provider settings
#############################
# List of IdP backends, mainly used to show available services in the homepage
# of user, and to handle SLO for each protocols
IDP_BACKENDS = [ ]
# You MUST changes these keys, they are just for testing !
LOCAL_METADATA_CACHE_TIMEOUT = int(os.environ.get('LOCAL_METADATA_CACHE_TIMEOUT', 600))
SAML_SIGNATURE_PUBLIC_KEY = os.environ.get('SAML_SIGNATURE_PUBLIC_KEY', '''-----BEGIN CERTIFICATE-----
MIIDIzCCAgugAwIBAgIJANUBoick1pDpMA0GCSqGSIb3DQEBBQUAMBUxEzARBgNV
BAoTCkVudHJvdXZlcnQwHhcNMTAxMjE0MTUzMzAyWhcNMTEwMTEzMTUzMzAyWjAV
MRMwEQYDVQQKEwpFbnRyb3V2ZXJ0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
CgKCAQEAvxFkfPdndlGgQPDZgFGXbrNAc/79PULZBuNdWFHDD9P5hNhZn9Kqm4Cp
06Pe/A6u+g5wLnYvbZQcFCgfQAEzziJtb3J55OOlB7iMEI/T2AX2WzrUH8QT8NGh
ABONKU2Gg4XiyeXNhH5R7zdHlUwcWq3ZwNbtbY0TVc+n665EbrfV/59xihSqsoFr
kmBLH0CoepUXtAzA7WDYn8AzusIuMx3n8844pJwgxhTB7Gjuboptlz9Hri8JRdXi
VT9OS9Wt69ubcNoM6zuKASmtm48UuGnhj8v6XwvbjKZrL9kA+xf8ziazZfvvw/VG
Tm+IVFYB7d1x457jY5zjjXJvNysoowIDAQABo3YwdDAdBgNVHQ4EFgQUeF8ePnu0
fcAK50iBQDgAhHkOu8kwRQYDVR0jBD4wPIAUeF8ePnu0fcAK50iBQDgAhHkOu8mh
GaQXMBUxEzARBgNVBAoTCkVudHJvdXZlcnSCCQDVAaInJNaQ6TAMBgNVHRMEBTAD
AQH/MA0GCSqGSIb3DQEBBQUAA4IBAQAy8l3GhUtpPHx0FxzbRHVaaUSgMwYKGPhE
IdGhqekKUJIx8et4xpEMFBl5XQjBNq/mp5vO3SPb2h2PVSks7xWnG3cvEkqJSOeo
fEEhkqnM45b2MH1S5uxp4i8UilPG6kmQiXU2rEUBdRk9xnRWos7epVivTSIv1Ncp
lG6l41SXp6YgIb2ToT+rOKdIGIQuGDlzeR88fDxWEU0vEujZv/v1PE1YOV0xKjTT
JumlBc6IViKhJeo1wiBBrVRIIkKKevHKQzteK8pWm9CYWculxT26TZ4VWzGbo06j
o2zbumirrLLqnt1gmBDvDvlOwC/zAAyL4chbz66eQHTiIYZZvYgy
-----END CERTIFICATE-----''')
SAML_SIGNATURE_PRIVATE_KEY = os.environ.get('SAML_SIGNATURE_PRIVATE_KEY', '''-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAvxFkfPdndlGgQPDZgFGXbrNAc/79PULZBuNdWFHDD9P5hNhZ
n9Kqm4Cp06Pe/A6u+g5wLnYvbZQcFCgfQAEzziJtb3J55OOlB7iMEI/T2AX2WzrU
H8QT8NGhABONKU2Gg4XiyeXNhH5R7zdHlUwcWq3ZwNbtbY0TVc+n665EbrfV/59x
ihSqsoFrkmBLH0CoepUXtAzA7WDYn8AzusIuMx3n8844pJwgxhTB7Gjuboptlz9H
ri8JRdXiVT9OS9Wt69ubcNoM6zuKASmtm48UuGnhj8v6XwvbjKZrL9kA+xf8ziaz
Zfvvw/VGTm+IVFYB7d1x457jY5zjjXJvNysoowIDAQABAoIBAQCj8t2iKXya10HG
V6Saaeih8aftoLBV38VwFqqjPU0+iKqDpk2JSXBhjI6s7uFIsaTNJpR2Ga1qvns1
hJQEDMQSLhJvXfBgSkHylRWCpJentr4E3D7mnw5pRsd61Ev9U+uHcdv/WHP4K5hM
xsdiwXNXD/RYd1Q1+6bKrCuvnNJVmWe0/RV+r3T8Ni5xdMVFbRWt/VEoE620XX6c
a9TQPiA5i/LRVyie+js7Yv+hVjGOlArtuLs6ECQsivfPrqKLOBRWcofKdcf+4N2e
3cieUqwzC15C31vcMliD9Hax9c1iuTt9Q3Xzo20fOSazAnQ5YBEExyTtrFBwbfQu
ku6hp81pAoGBAN6bc6iJtk5ipYpsaY4ZlbqdjjG9KEXB6G1MExPU7SHXOhOF0cDH
/pgMsv9hF2my863MowsOj3OryVhdQhwA6RrV263LRh+JU8NyHV71BwAIfI0BuVfj
6r24KudwtUcvMr9pJIrJyMAMaw5ZyNoX7YqFpS6fcisSJYdSBSoxzrzVAoGBANu6
xVeMqGavA/EHSOQP3ipDZ3mnWbkDUDxpNhgJG8Q6lZiwKwLoSceJ8z0PNY3VetGA
RbqtqBGfR2mcxHyzeqVBpLnXZC4vs/Vy7lrzTiHDRZk2SG5EkHMSKFA53jN6S/nJ
JWpYZC8lG8w4OHaUfDHFWbptxdGYCgY4//sjeiuXAoGBANuhurJ99R5PnA8AOgEW
4zD1hLc0b4ir8fvshCIcAj9SUB20+afgayRv2ye3Dted1WkUL4WYPxccVhLWKITi
rRtqB03o8m3pG3kJnUr0LIzu0px5J/o8iH3ZOJOTE3iBa+uI/KHmxygc2H+XPGFa
HGeAxuJCNO2kAN0Losbnz5dlAoGAVsCn94gGWPxSjxA0PC7zpTYVnZdwOjbPr/pO
LDE0cEY9GBq98JjrwEd77KibmVMm+Z4uaaT0jXiYhl8pyJ5IFwUS13juCbo1z/u/
ldMoDvZ8/R/MexTA/1204u/mBecMJiO/jPw3GdIJ5phv2omHe1MSuSNsDfN8Sbap
gmsgaiMCgYB/nrTk89Fp7050VKCNnIt1mHAcO9cBwDV8qrJ5O3rIVmrg1T6vn0aY
wRiVcNacaP+BivkrMjr4BlsUM6yH4MOBsNhLURiiCL+tLJV7U0DWlCse/doWij4U
TKX6tp6oI+7MIJE6ySZ0cBqOiydAkBePZhu57j6ToBkTa0dbHjn1WA==
-----END RSA PRIVATE KEY-----''')
# Whether to autoload SAML 2.0 identity providers and services metadata
# Only https URLS are accepted.
# Can be none, sp, idp or both
SAML_METADATA_AUTOLOAD = os.environ.get('SAML_METADATA_AUTOLOAD', 'none')
PUSH_PROFILE_UPDATES = 'PUSH_PROFILE_UPDATES' in os.environ
# Logging settings
LOGGING = {
'version': 1,
'disable_existing_loggers': True,
'filters': {
'cleaning': {
'()': 'authentic2.utils.CleanLogMessage',
},
},
'formatters': {
'syslog': {
'format': 'portail-citoyen(pid=%(process)d) %(levelname)s %(name)s: %(message)s',
},
'syslog_debug': {
'format': 'portail-citoyen(pid=%(process)d) %(levelname)s %(asctime)s t_%(thread)s %(name)s: %(message)s',
},
},
'handlers': {
'syslog': {
'level': 'DEBUG',
'class': 'entrouvert.logging.handlers.SysLogHandler',
'formatter': 'syslog_debug' if DEBUG else 'syslog',
'facility': logging.handlers.SysLogHandler.LOG_LOCAL0,
'address': '/dev/log',
'max_length': 999,
'filters': ['cleaning'],
},
'mail_admins': {
'level': 'ERROR',
'class': 'django.utils.log.AdminEmailHandler',
'filters': ['cleaning'],
'include_html': True,
},
'console': {
'class': 'logging.StreamHandler',
'formatter': 'syslog_debug',
'level': 'DEBUG',
},
},
'loggers': {
'authentic2': {
'handlers': ['mail_admins','syslog'],
'level': 'DEBUG' if DEBUG else 'INFO',
'propagate': False,
},
'requests': {
'handlers': ['mail_admins','syslog'],
'level': 'ERROR',
'propagate': False,
},
'portail_citoyen': {
'handlers': ['mail_admins','syslog'],
'level': 'DEBUG' if DEBUG else 'INFO',
'propagate': False,
},
'django': {
'handlers': ['mail_admins','syslog'],
'level': 'DEBUG' if DEBUG else 'INFO',
'propagate': False,
},
'django.db': {
'handlers': ['mail_admins','syslog'],
'level': 'INFO',
'propagate': False,
},
'': {
'handlers': ['mail_admins','syslog'],
'level': 'DEBUG' if DEBUG else 'INFO',
'propagate': True,
},
}
}
SOUTH_TESTS_MIGRATE = False
# Admin tools
ADMIN_TOOLS_INDEX_DASHBOARD = 'compte_agglo_montpellier.dashboard.CustomIndexDashboard'
ADMIN_TOOLS_APP_INDEX_DASHBOARD = 'compte_agglo_montpellier.dashboard.CustomAppIndexDashboard'
ADMIN_TOOLS_MENU = 'compte_agglo_montpellier.menu.CustomMenu'
ADMIN_TOOLS_THEMING_CSS = 'portail_citoyen/css/admin.css'
AUTH_SAML2 = 'AUTH_SAML2' in os.environ
AUTH_OPENID = 'AUTH_OPENID' in os.environ
AUTH_SSL = 'AUTH_SSL' in os.environ
AUTH_OATH = 'AUTH_OATH' in os.environ
IDP_SAML2 = True
IDP_OPENID = 'IDP_OPENID' in os.environ
IDP_CAS = 'IDP_CAS' in os.environ
# cms settings
CMS_TEMPLATES = (
('base_two_columns.html', 'Canevas sur deux colonnes'),
('base_one_column.html', 'Canevas sur une colonne'),
('base_help.html', 'Canevas de l\'aide'),
)
CMS_REDIRECTS = True
CMS_TEXT_WRAPPERS = (
('block', {
'render_template': 'block.html',
'extra_context': {},
}),
)
PORTAIL_CITOYEN_FAVICON_URL = 'http://www.montpellier-agglo.com/sites/all/themes/zen_agglo/favicon.png'
PORTAIL_CITOYEN_WCSINST_DEFAULT_VARIABLES = {
'commune_url': '',
'commune_legal_url': '',
}
ANNOUNCES_TRANSPORTS = (
'portail_citoyen_announces.transports.EmailTransport',
('portail_citoyen_announces.transports.SMSTransport', {
'url': os.environ.get('PORTAIL_CITOYEN_SMS_URL', ''),
'from_mobile': os.environ.get('PORTAIL_CITOYEN_SMS_FROM', ''),
'login': os.environ.get('PORTAIL_CITOYEN_SMS_LOGIN', ''),
'password': os.environ.get('PORTAIL_CITOYEN_SMS_PASSWORD', ''),
}),
)
try:
from local_settings import *
except ImportError, e:
if 'local_settings' in e.args[0]:
pass
if USE_DEBUG_TOOLBAR:
try:
import debug_toolbar
MIDDLEWARE_CLASSES += ('debug_toolbar.middleware.DebugToolbarMiddleware',)
INSTALLED_APPS += ('debug_toolbar',)
except ImportError:
print "Debug toolbar missing, not loaded"
if AUTH_SAML2:
INSTALLED_APPS += ('authentic2.authsaml2',)
AUTHENTICATION_BACKENDS += (
'authentic2.authsaml2.backends.AuthSAML2PersistentBackend',
'authentic2.authsaml2.backends.AuthSAML2TransientBackend')
AUTH_FRONTENDS += ('authentic2.authsaml2.frontend.AuthSAML2Frontend',)
IDP_BACKENDS += ('authentic2.authsaml2.backends.AuthSAML2Backend',)
DISPLAY_MESSAGE_ERROR_PAGE = True
if AUTH_OPENID:
INSTALLED_APPS += ('authentic2.auth2_auth.auth2_openid', 'django_authopenid',)
AUTH_FRONTENDS += ('authentic2.auth2_auth.auth2_openid.backend.OpenIDFrontend',)
if AUTH_SSL:
AUTHENTICATION_BACKENDS += ('authentic2.auth2_auth.auth2_ssl.backend.SSLBackend',)
AUTH_FRONTENDS += ('authentic2.auth2_auth.auth2_ssl.frontend.SSLFrontend',)
INSTALLED_APPS += ('authentic2.auth2_auth.auth2_ssl',)
if AUTH_OATH:
INSTALLED_APPS += ('authentic2.auth2_auth.auth2_oath',)
AUTHENTICATION_BACKENDS += ('authentic2.auth2_auth.auth2_oath.backend.OATHTOTPBackend',)
AUTH_FRONTENDS += ('authentic2.auth2_auth.auth2_oath.frontend.OATHOTPFrontend',)
if IDP_SAML2:
IDP_BACKENDS += ('authentic2.idp.saml.backend.SamlBackend',)
if IDP_OPENID:
INSTALLED_APPS += ('authentic2.idp.idp_openid',)
TEMPLATE_CONTEXT_PROCESSORS += ('authentic2.idp.idp_openid.context_processors.openid_meta',)
if IDP_CAS:
INSTALLED_APPS += ('authentic2.idp.idp_cas',)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 351 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 477 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 604 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 518 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 332 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 208 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 126 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 139 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1016 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 302 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 249 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 649 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 576 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 577 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 498 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -1,691 +0,0 @@
/* general stuff */
html, body { margin: 0; font-family: 'Carme', sans-serif; font-size: 13px;}
a { text-decoration: none; }
a:hover { text-decoration: underline; }
h1, h2, h3 { margin-top: 0; }
a {
-webkit-transition: color 200ms ease-out;
}
/* layout */
body {
overflow-x: hidden;
background: #ece6e0 url(bg-page.png) 0 -200px repeat-x;
}
div#page {
width: 100%;
}
div#header {
background-color: #ffffff;
width: 100%;
margin: 0 0 0 0;
position: absolute;
top: 0px;
margin-left: -500px;
z-index: 0;
}
div#top {
background: url(header-agglo.jpg) 0% 0% no-repeat;
height: 456px;
width: 1500px;
margin: 0 auto 0 auto;
margin-left: 50%;
}
div#top h1 {
width: 10em;
text-align: center;
padding-top: 3em;
padding-left: 2em;
margin-left: 20px;
font-size: 120%;
font-weight: bold;
}
div#top h1 a {
color: white;
text-shadow: #6374AB 0px 0px 3px;
}
div#top a img {
border: 0;
}
div#main-content-wrapper {
position: relative;
z-index: 100;
width: 1000px;
margin: 200px auto 0px auto;
}
div#main-content {
margin: 0;
min-height: 300px;
}
div#footer {
clear: both;
background: white url(background_footer.png) no-repeat top left;
padding: 0px;
width: 1000px;
height: 160px;
margin: 10px auto 0 auto;
position: relative;
}
p#legal {
font-size: small;
padding-top: 140px;
color: white;
margin: 0;
padding-left: 15px;
}
#content {
position: relative;
margin:0;
color: rgb(58, 58, 58);
}
div#content a {
color: #f68423;
}
div#content a:hover {
text-decoration: underline;
}
#menu {
font-size: 130%;
margin-top: -1px;
}
#menu ul {
list-style: none;
margin: 0;
padding: 10px 0 32px 0;
-webkit-border-top-right-radius: 5px;
-moz-border-radius-topright: 5px;
border-top-right-radius: 5px;
}
#menu li {
display: inline;
margin: 0px 10px 0 0;
padding: 5px;
background: #f68423;
border: 5px solid transparent;
border-width: 2px 5px;
-webkit-transition: all .2s ease-in-out;
-moz-transition: all .2s ease-in-out;
}
#menu li a {
color: white;
text-transform: uppercase;
white-space: pre;
}
#menu li:hover {
background-color: #f4bc03;
border-color: #f4bc03;
}
#menu li:hover a {
text-decoration: none;
}
#menu li.selected, #menu li.ancestor {
background: #515151;
border-color: #515151;
}
#menu li.selected a {
color: white;
}
#left {
float: left;
width: 49.5%;
}
#right {
float: right;
width: 49.5%;
}
br.clear {
clear: both;
}
#error-404, #error-500, #content .block, #password-changed {
background: white;
font-size: 110%;
margin-bottom: 1em;
}
#content .block h2 {
background: #e87b1c url(Picto-EServices.png) 5px 50% no-repeat;
font-weight: normal;
color: white;
text-transform: uppercase;
padding: 6px 10px 6px 50px;
font-size: 130%;
cursor: default; /* someday, perhaps, cursor: move */
}
#content .block h2.feeds {
background-image: url(Picto-Bulle.png);
}
#content .block h2.newsletters {
background-image: url(Picto-coeur.png);
}
#content .demarches ul,
#content ul.mes-demarches {
list-style: none;
padding-left: 0px;
margin: 0px;
-webkit-column-count: 2;
-moz-column-count: 2;
column-count: 2;
}
#content ul.mes-demarches a,
#content .demarches ul a {
color: inherit;
font-weight: bold;
background: transparent url(bullet_rouge.png) left center no-repeat;
padding-left: 10px;
}
#content ul.mes-demarches a:hover,
#content .demarches ul a:hover {
color: #f68423;
}
#content ul.mes-demarches li,
#content .demarches ul li {
margin: 1ex 0 10px 1ex;
padding-left: 10px;
-webkit-column-break-inside: avoid;
-moz-column-break-inside: avoid;
column-break-inside: avoid;
}
#content .demarches .toutes-les-demarches {
padding: 10px 0 10px 0;
margin-left: 20px;
}
#content .toutes-les-demarches a {
background: transparent url(button_orange_eye.png) no-repeat 0px center;
color: #f68423;
text-transform: uppercase;
padding-left: 30px;
font-size: 130%;
}
#content .toutes-les-demarches a:hover {
color: #f68423;
}
#commune-selector {
margin-left: 5px;
margin-bottom: 10px;
}
#content #futurs-demarches {
overflow-y: hidden;
margin: 5px;
padding-bottom: 15px;
}
#content #futurs-demarches.selected {
display: block;
}
div#single-title {
font-size: 130%;
padding: 5px;
background: #f68423 url(Picto-EServices.png) 5px 50% no-repeat;
border: 1px solid #f68423;
color: white;
text-transform: uppercase;
padding-left: 50px;
}
body.narrow-page #main-content {
background: white;
margin-top: 0;
padding: 10px 10px 0 10px;
}
body.narrow-page #main-content form div input {
display: block;
margin-left: 10px;
margin-bottom: 2ex;
}
div#welcome {
text-align: justify;
margin: 0 1em;
}
div#welcome h2 {
text-align: center;
margin: 1ex 0;
}
span.helptext {
color: #666;
}
body.narrow-page div.right {
padding-top: 2em;
width: 35em;
margin: 1ex auto;
}
body.narrow-page div.right form {
border: 1px solid #f68423;
padding: 1em;
}
body.narrow-page div.right form div label {
font-weight: bold;
width: 14em;
display: block;
float: left;
padding-top: 3px;
}
body.narrow-page div.right form div input {
width: 17em;
}
body.narrow-page div.right form div.form-field-required label:after {
content: "";
}
body.narrow-page div.right form > input {
display: block;
margin: 1em auto 0 auto;
background: #f68423;
color: white;
border: none;
padding: 3px 1em;
}
div.login-actions {
text-align: center;
}
.region-header {
width: 1000px;
position: absolute;
top: 0px;
}
#toplinks {
background: #ffffff;
position: relative;
float: right;
width: 250px;
padding: 5px 5px 5px 5px;
}
#toplinks span {
width: 100%;
display: block;
margin: 0;
padding: 0;
color: #888;
background: url(button_connexion.gif) left center no-repeat;
border: 1px solid #e9e9e9;
line-height: 20px;
height: 22px;
}
#toplinks a {
color: #888;
border: 1px solid transparent;
}
#toplinks a.logout {
padding-left: 30px;
}
#toplinks a:hover {
text-decoration: none;
color: #222;
}
#toplinks a.restricted {
color: white;
float: right;
padding: 0 1ex;
border: 1px outset #888;
background: #f68423;
}
div#username {
float: right;
padding: 5px 5px 5px 5px;
background: white;
line-height: 20px;
height: 22px;
border: 1px solid white;
}
ul.newsList {
list-style: none;
}
ul.newsList li.abonne {
margin: 0;
padding: 0;
}
.abonne {
padding-left: 20px;
background: transparent url(Validation.png) center left no-repeat;
}
.nonAbonne {
padding-left: 20px;
background: transparent url(Annulation.png) center left no-repeat;
}
/* page de profil */
#my-informations {
margin-bottom: 15px;
padding: 0px;
}
#my-informations p {
padding: 0 5px;
}
#my-informations select,
#my-informations input {
margin-left: 10px;
display: block;
}
/* forms error reporting */
.errorlist {
list-style: none;
padding-left: 0;
margin-left: 0;
}
ul.errorlist li {
display: block;
color: #f44;
}
.form-field-required label:after {
content: '*';
color: #D90024;
}
ul.errorlist + p {
margin-top: 0px;
}
/* django-cms */
#admin-links .cms_placeholder-bar {
width: 50%;
}
.passerelle-register-plugin input + label {
background: transparent url(Annulation.png) center left no-repeat;
}
.passerelle-register-plugin input:checked + label {
background: transparent url(Validation.png) center left no-repeat;
}
.passerelle-register-plugin td input {
display: none
}
.passerelle-register-plugin td label {
padding-left: 2em;
}
div.block form {
padding: 0 1ex;
}
table.announces {
width: 100%;
margin-bottom: 1em;
}
table.announces thead td {
font-weight: bold;
}
table.announces thead th {
width: 30%;
}
table.announces tbody td {
text-align: center;
}
table.announces tbody th {
width: 35%;
text-align: left;
font-weight: normal;
}
#agglolinks {
position: absolute;
right: 0;
top: -140px;
}
#agglolinks a {
display: inline-block;
margin-left: 10px;
width: 130px;
color: white;
background: blue;
text-transform: uppercase;
text-align: center;
padding: 5px 5px;
font-size: 16px;
}
#agglolinks a.agglo-mon-agglo, #agglolinks a.agglo-mes-e-services {
background: #f68423;
}
#agglolinks a.agglo-connaitre {
background: #d90024;
}
#agglolinks a.agglo-vivre {
background: #1f4791;
}
#agglolinks a.agglo-entreprendre {
background: #a3d117;
}
.chapeau {
font-style: italic;
font-size: 110%;
}
/* mon compte */
#my-informations-form {
width: 90%;
padding-bottom: 1em;
}
#my-informations-form input[type~=text] {
width: 100%;
}
#id_edit-profile-email_wrap, #id_edit-profile-address_wrap {
clear: both;
}
#id_edit-profile-first_name_wrap, #id_edit-profile-phone_wrap, #id_edit-profile-postal_code_wrap {
width: 45%;
float: left;
}
#id_edit-profile-last_name_wrap, #id_edit-profile-mobile_wrap, #id_edit-profile-city_wrap {
width: 45%;
float: right;
}
/* pied de page */
#footer-menu {
position: absolute;
display: block;
top: 20px;
left: 20px;
width: 435px;
list-style: none;
margin: 0;
padding: 0;
text-align: left;
}
.footer-menu-leaf {
display: inline;
margin: 0;
padding: 0;
padding-right: 20px;
padding-bottom: 20px;
float: left;
}
.footer-menu-leaf-link, .footer-menu-leaf-link:hover {
display: block;
width: 125px;
height: 26px;
line-height: 26px;
background: #ffffff;
text-align: center;
text-transform: uppercase;
color: #515151;
text-decoration: none;
font-size: 14px;
}
/* pages d'aide */
#help-content {
background: white;
position: relative;
padding: 10px 20px;
}
#help-title {
background: #e6e6d6 url(toptitle.png) no-repeat left top;
font-weight: bold;
color: #f68423;
text-transform: uppercase;
padding: 6px 10px 6px 50px;
font-size: 200%;
cursor: default; /* someday, perhaps, cursor: move */
}
#help-page-title {
color: #f68423;
padding-bottom: 20px;
}
#help-page-title.aide {
display: none;
}
#help-text {
width: 580px;
margin-left: 380px;
}
.clear {
clear: both;
}
#help-menu {
width: 360px;
float: left;
}
#help-summary-caption {
background: #f68423;
color: white;
font-size: 150%;
font-weith: bold;
text-align: center;
padding: 15px 0px;
}
#help-menu #help-summary-caption-link, #help-menu #help-summary-caption-link:hover {
background: #f68423;
color: white;
text-decoration: none;
}
#help-menu-content {
padding: 0;
margin: 0;
}
#help-menu-content > li {
background: #e6e6d6;
margin-bottom: 5px;
list-style: none;
font-size: 150%;
font-weight: bold;
line-height: 1.5em;
}
#help-menu-content > li > ul {
background: white;
margin-bottom: 5px;
list-style: none;
font-size: 100%;
font-weight: bold;
line-height: 1.5em;
padding: 10px 10px;
}
#help-menu-content li.ancestor {
background: rgb(58, 58, 58);
}
#help-menu-content li.ancestor > a, #help-menu-content li.ancestor > a.hover {
color: white;
}
#help-menu-content > li > ul > li {
padding: 0px 10px;
font-size: 80%;
}
#help-menu-content > li > ul > li.selected {
border-left: solid 4px #f68423;
}
#help-menu-content li a, #help-menu-content li a:hover {
color: rgb(58, 58, 58);
text-decoration: none;
}
#my-password {
padding-bottom: 1ex;
}
#my-password p {
font-weight: bold;
}
#my-password p a {
color: inherit;
padding: 1ex;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

View File

@ -1,87 +0,0 @@
{% load menu_tags cms_tags sekizai_tags i18n %}
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="content-language" content="fr" />
<title>Compte Citoyen :: Montpellier Agglomération :: {% page_attribute "page_title" %}</title>
<link rel="shortcut icon" href="/static/themes/django-montpellier/favicon.png">
<link rel="stylesheet" type="text/css" href="/static/themes/django-montpellier/style.css">
<link href='https://fonts.googleapis.com/css?family=Lato:400,700,700italic,400italic|Carme|Arvo' rel='stylesheet' type='text/css'>
{% render_block "css" %}
</head>
<body {% block bodyargs %}{% endblock %}>
{% cms_toolbar %}
<div id="page">
<div id="header">
<div id="top">
<a href="/" accesskey="1"><img src="/static/themes/django-montpellier/logo.png"
title="Montpellier agglomération" /></a>
<div class="region-header">
{% if user.is_authenticated %}
<div id="toplinks">
<span><a class="logout" href="{% url 'auth_logout' %}">{% trans "Logout" %}</a>
{% block admin-links %}{% endblock %}
</span>
</div>
<div id="username">{{ user.first_name }} {{ user.last_name }}</div>
{% endif %}
</div>
</div>
{% block messages %}
{% if messages %}
<div id="messages">
<ul class="messages">
{% for message in messages %}
<li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li>
{% endfor %}
</ul>
</div>
{% endif %}
{% endblock %}
</div> <!-- header -->
<div id="main-content-wrapper">
{% block title %}{% endblock %}
{% block menu %}
<div id="menu">
<ul><li><a href="http://www-test.entrouvert.montpellier-agglo.com">Mon agglo</a></li
>{% show_menu_below_id "top-page" 0 100 100 100 %}</ul>
</div>
{% endblock %}
<div id="main-content">
<div id="content">
{% block content %}
<div id="error-404">
<h2>Page inexistante</h2>
<p>La page <tt>{{ request_path}}</tt> n'existe pas. Souhaitez-vous revenir à <a href="/">l'accueil</a> ?</p>
</div>
{% endblock %}
</div> <!-- #content -->
</div> <!-- #main-content -->
</div> <!-- #main-content-wrapper -->
<div id="footer">
<!-- p id="bottom-links">
{% show_menu_below_id "menu-du-bas" %}
{% if request.user.is_staff %}
<a href="/admin">Administration</a>
{% endif %}
</p -->
<p id="legal">Copyright © 2006-2013 Entr'ouvert</p>
</div>
</div>
{% render_block "js" %}
<script>
function toTitleCase(str)
{
return str.replace(/\w\S*/g,
function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();});
}
$('#commune-selector').live('change',
function () {
var value = $(this).val();
$('#futurs-demarches').toggleClass('selected', value != 'none');
$('#futurs-demarches').text('Ici bientôt les e-services de la commune de ' + toTitleCase(value));
});
</script>
</body>
</html>

View File

@ -1,87 +0,0 @@
{% load menu_tags cms_tags sekizai_tags i18n %}
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="content-language" content="fr" />
<title>Compte Citoyen :: Montpellier Agglomération :: {% page_attribute "page_title" %}</title>
<link rel="shortcut icon" href="/static/themes/django-montpellier/favicon.png">
<link rel="stylesheet" type="text/css" href="/static/themes/django-montpellier/style.css">
<link href='https://fonts.googleapis.com/css?family=Lato:400,700,700italic,400italic|Carme|Arvo' rel='stylesheet' type='text/css'>
{% render_block "css" %}
</head>
<body {% block bodyargs %}{% endblock %}>
{% cms_toolbar %}
<div id="page">
<div id="header">
<div id="top">
<a href="/" accesskey="1"><img src="/static/themes/django-montpellier/logo.png"
title="Montpellier agglomération" /></a>
<div class="region-header">
{% if user.is_authenticated %}
<div id="toplinks">
<span><a class="logout" href="{% url 'auth_logout' %}">{% trans "Logout" %}</a>
{% block admin-links %}{% endblock %}
</span>
</div>
<div id="username">{{ user.first_name }} {{ user.last_name }}</div>
{% endif %}
</div>
</div>
{% block messages %}
{% if messages %}
<div id="messages">
<ul class="messages">
{% for message in messages %}
<li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li>
{% endfor %}
</ul>
</div>
{% endif %}
{% endblock %}
</div> <!-- header -->
<div id="main-content-wrapper">
{% block title %}{% endblock %}
{% block menu %}
<div id="menu">
<ul><li><a href="http://www-test.entrouvert.montpellier-agglo.com">Mon agglo</a></li
>{% show_menu_below_id "top-page" 0 100 100 100 %}</ul>
</div>
{% endblock %}
<div id="main-content">
<div id="content">
{% block content %}
<div id="error-404">
<h2>Erreur système</h2>
<p>Une erreur système est survenue, les administrateurs du site en ont été prévenus. Souhaitez-vous revenir à <a href="/">l'accueil</a> ?</p>
</div>
{% endblock %}
</div> <!-- #content -->
</div> <!-- #main-content -->
</div> <!-- #main-content-wrapper -->
<div id="footer">
<!-- p id="bottom-links">
{% show_menu_below_id "menu-du-bas" %}
{% if request.user.is_staff %}
<a href="/admin">Administration</a>
{% endif %}
</p -->
<p id="legal">Copyright © 2006-2013 Entr'ouvert</p>
</div>
</div>
{% render_block "js" %}
<script>
function toTitleCase(str)
{
return str.replace(/\w\S*/g,
function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();});
}
$('#commune-selector').live('change',
function () {
var value = $(this).val();
$('#futurs-demarches').toggleClass('selected', value != 'none');
$('#futurs-demarches').text('Ici bientôt les e-services de la commune de ' + toTitleCase(value));
});
</script>
</body>
</html>

View File

@ -1,28 +0,0 @@
{% load url from future %}
{% load sekizai_tags %}
{% load i18n %}
{% if request.user.is_authenticated %}
{% addtoblock "css" %}<link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}a2_service_list_plugin/css/style.css"></link>{% endaddtoblock %}
<div class="service-list">
<h1>{% trans "My services" %}</h1>
<ul>
{% for service in services %}
{% if service.actions %}
<li>{% if service.url %}<a href="{{ service.url }}">{% endif %}{{ service.name }}{% if service.url %}</a>{% endif %}
<span class="actions">
{% for action in service.actions %}
<form action="{{ action.2 }}" method="{{ action.1 }}">
{% for key, value in action.3 %}
<input type="hidden" name="{{ key }}" value="{{ value }}" />
{% endfor %}
<input type="hidden" name="next" value="/"/>
<input type="submit" class="submit-link" value="{{ action.0 }}">
</form>
{% endfor %}
</span>
</li>
{% endif %}
{% endfor %}
</ul>
</div>
{% endif %}

View File

@ -1,75 +0,0 @@
{% extends "base.html" %}
{% load i18n %}
{% block bodyargs %}
class="narrow-page"
{% endblock %}
{% block title %}
<div id="single-title">Compte citoyen</div>
{% endblock %}
{% block menu %}
{% endblock %}
{% block content %}
<div id="welcome">
<h2>Bienvenue sur le portail Internet de Montpellier Agglomération</h2>
<h3>Un site Internet pour et par lusager</h3>
<p>
Innovante, Montpellier Agglomération lance un site inédit, personnalisable à
volonté, pour que chaque internaute puisse créer sa propre version en fonction
de ses centres dintérêts et de ses envies !
</p>
<p>
E-services accessibles 24h/24 et 7jrs/7 en un clic, navigation qui sadapte à
linternaute… avec la nouvelle version de son site lancée en septembre 2012,
vous avez accès à un graphisme épuré pour plus de confort de lecture, des
présentations ludiques et interactives, des photos, des vidéos… et une mine
dinformations à découvrir au fil de votre parcours ou de vos recherches.
<p>
<h3>Une offre de services performante</h3>
<p>
Contacter une piscine ou le service des déchets ? Réaliser une modification de
votre abonnement à la téléalarme ? Effectuer une demande de raccordement au
réseau d'assainissement ? Répondre à une offre d'emploi ou déposer une
candidature spontanée ?
</p>
<p>
La plate-forme de services dématérialisés évolue et vous permet d'accomplir la
plupart de vos démarches en ligne, 24h/24 et 7j/7, de suivre le traitement de
vos demandes de « e-services ».
</p>
<p>
Pour cela il vous suffit de vous connecter avec votre compte citoyen de
Montpellier Agglo pour accéder au portail et à ses « e-services ».
</p>
<p>
Si vous ne disposez pas encore de compte citoyen de Montpellier Agglo ?
N'hésitez plus et inscrivez-vous dès maintenant, votre compte vous donnera
également accès à votre compte lecteur du réseau des Médiathèque, à votre
compte famille à l'Ecolothèque ou le compte élève au Conservatoire, et enfin
d'accéder directement à vos espaces personnalisés, sans avoir à re-saisir vos
identifiants et mots de passe.
</p>
</div>
<div class="right">
{% for name, content in methods %}
{{ content|safe }}
{% endfor %}
</div>
<br class="clear"/>
{% endblock %}

View File

@ -1,16 +0,0 @@
{% load i18n %}
<div>
<form method="post" action="">
{% csrf_token %}
{% include "form_fields.html" with form=form %}
<input type="submit" name="{{ submit_name }}" value="{% trans "Log in" %}"/>
{% if cancel %}
<input type="submit" name="cancel" value="{% trans 'Cancel' %}"/>
{% endif %}
</form>
</div>
<div class="login-actions">
<p>→ {% trans "Forgot password?" %} <a href="{% url 'auth_password_reset' %}">{% trans "Reset it!" %}</a></p>
<p>→ {% trans "Not a member?" %} <a href="{% url 'registration_register' %}">{% trans "Register!" %}</a></p>
</div>

View File

@ -1,91 +0,0 @@
{% load menu_tags cms_tags sekizai_tags i18n %}
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="content-language" content="fr" />
<title>Compte Citoyen :: Montpellier Agglomération :: {% page_attribute "page_title" %}</title>
<link rel="shortcut icon" href="{{ STATIC_URL }}/themes/django-montpellier/favicon.png">
<link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}/themes/django-montpellier/style.css">
<link href='https://fonts.googleapis.com/css?family=Lato:400,700,700italic,400italic|Carme|Arvo' rel='stylesheet' type='text/css'>
{% render_block "css" %}
</head>
<body {% block bodyargs %}{% endblock %}>
{% cms_toolbar %}
<div id="page">
<div id="header">
<div id="top">
<a href="/" accesskey="1"><img src="{{ STATIC_URL }}/themes/django-montpellier/logo.png"
title="Montpellier agglomération" /></a>
<div class="region-header">
{% if user.is_authenticated %}
<div id="toplinks">
<span><a class="logout" href="{% url 'auth_logout' %}">{% trans "Logout" %}</a>
{% block admin-links %}{% endblock %}
</span>
</div>
<div id="username">{{ user.first_name }} {{ user.last_name }}</div>
{% endif %}
</div>
</div>
{% block messages %}
{% if messages %}
<div id="messages">
<ul class="messages">
{% for message in messages %}
<li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li>
{% endfor %}
</ul>
</div>
{% endif %}
{% endblock %}
</div> <!-- header -->
<div id="main-content-wrapper">
<div id="agglolinks">
{% show_menu_below_id "agglo-links" 0 0 100 100 "compte-agglo-montpellier/agglo-links-menu.html" %}
</div>
<!--
<a class="agglo-accueil" href="http://www.montpellier-agglo.com">Mon agglo</a>
<a class="agglo-connaitre" href="http://www.montpellier-agglo.com/widgets/connaitre">Connaître</a>
<a class="agglo-vivre" href="http://www.montpellier-agglo.com/widgets/vivre">Vivre</a>
<a class="agglo-entreprendre" href="http://www.montpellier-agglo.com/widgets/entreprendre">Entreprendre</a>
<a class="agglo-accueil" href="http://idp-test-entrouvert.montpellier-agglo.com">Mes e-services</a>
-->
{% block title %}{% endblock %}
{% block menu %}
<div id="menu">
<ul>{% show_menu_below_id "top-page" 0 0 100 100 %}</ul>
</div>
{% endblock %}
<div id="main-content">
<div id="content">
{% block content %}
{% endblock %}
</div> <!-- #content -->
</div> <!-- #main-content -->
</div> <!-- #main-content-wrapper -->
<div id="footer">
<p id="legal">Copyright © 2006-2013 Entr'ouvert</p>
<ul id="footer-menu">
{% show_menu_below_id "footer-menu" 0 0 100 100 "compte-agglo-montpellier/footer-menu.html" %}
</ul>
</div>
</div>
{% render_block "js" %}
<script>
function toTitleCase(str)
{
return str.replace(/\w\S*/g,
function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();});
}
$('#commune-selector').live('change',
function () {
var value = $(this).val();
$('#futurs-demarches').toggleClass('selected', value != 'none');
$('#futurs-demarches').text('Ici bientôt les e-services de la commune de ' + toTitleCase(value));
});
</script>
</body>
</html>

View File

@ -1,26 +0,0 @@
{% extends "base.html" %}
{% load cms_tags %}
{% load menu_tags %}
{% block admin-links %}
{% placeholder "admin-links" %}
{% endblock %}
{% block content %}
<div id="help-content">
<h1 id="help-title">Utilisation du compte citoyen</h1>
<div id="help-menu">
<h2 id="help-summary-caption"><a id="help-summary-caption-link" href="/aide">Sommaire</a></h2>
<ul id="help-menu-content">
{% show_menu 2 3 0 1 %}
</ul>
</div>
<div id="help-text">
<h2 id="help-page-title" class="{% page_attribute "slug" %}">{% page_attribute "page_title" %}</h2>
{% block center %}
{% placeholder "center" %}
{% endblock %}
</div>
<div class="clear"></div>
</div>
{% endblock %}

View File

@ -1,14 +0,0 @@
{% extends "base.html" %}
{% load cms_tags %}
{% block admin-links %}
{% placeholder "admin-links" %}
{% endblock %}
{% block content %}
<div id="center">
{% block center %}
{% placeholder "center" %}
{% endblock %}
</div>
{% endblock %}

View File

@ -1,20 +0,0 @@
{% extends "base.html" %}
{% load cms_tags %}
{% block admin-links %}
{% placeholder "admin-links" %}
{% endblock %}
{% block content %}
<div id="left">
{% block left %}
{% placeholder "left" %}
{% endblock %}
</div>
<div id="right">
{% block right %}
{% placeholder "right" %}
{% endblock %}
</div>
<br style="clear"/>
{% endblock %}

View File

@ -1,3 +0,0 @@
<div class="block">
{{ body|safe }}
</div>

View File

@ -1,4 +0,0 @@
{% load menu_tags %}
{% for child in children %}
<a class="agglo-{{ child.get_menu_title|slugify }}" href="{{ child.attr.redirect_url|default:child.get_absolute_url }}">{{ child.get_menu_title }}</a>
{% endfor %}

View File

@ -1,5 +0,0 @@
{% for child in children %}
<li class="footer-menu-leaf">
<a class="footer-menu-leaf-link" href="{{ child.attr.redirect_url }}">{{ child.get_menu_title }}</a>
</li>
{% endfor %}

View File

@ -1 +0,0 @@
{% include "portail_citoyen/form.html" %}

View File

@ -1 +0,0 @@
{% include "portail_citoyen/form_fields.html" %}

View File

@ -1,6 +0,0 @@
{% load menu_tags %}{% for child in children %}<li
class="{% if child.selected %}selected{% endif %}{% if child.ancestor %}ancestor{% endif %}{% if child.sibling %}sibling{% endif %}{% if child.descendant %}descendant{% endif %}"
><a href="{{ child.attr.redirect_url|default:child.get_absolute_url }}">{{ child.get_menu_title }}</a
>{% if child.children %} <ul>
{% show_menu from_level to_level extra_inactive extra_active template "" "" child %}
</ul>{% endif %}</li>{% endfor %}

View File

@ -1,28 +0,0 @@
{% load i18n %}
<div id="passerelle-register-plugin-{{ instance_id }}" class="passerelle-register-plugin">
{{ form.non_field_errors }}
{% for field in form %}
{{ field.errors }}
{% endfor %}
<form method="post">
{% csrf_token %}
<table id="passerelle-register-plugin-table-{{ instance_id }}">
<tbody>
{% for field in form %}
<tr class="{% for checkbox in field %}{% if checkbox.is_checked %}passerelle-register-plugin-checked-{{ checkbox.choice_value|slugify }} {% endif %}{% endfor %}">
{% for choice in form.all_choices %}
{% for checkbox in field %}
{% if checkbox.choice_value == choice %}
<td>{{ checkbox.tag }}<label for="{{field.name}}_0">{{ field.label }}</label></td>
{% endif %}
{% endfor %}
{% endfor %}
</tr>
{% endfor %}
</tbody>
</table>
<input type="submit" name="{{ submit }}" value="{% trans "Modify" %}"/>
</form>
</div>

View File

@ -1,28 +0,0 @@
{% extends "base.html" %}
{% load i18n %}
{% block content %}
<div id="left">
<div class="block" id="my-informations">
<h2>Mes informations</h2>
<form method="post" id="my-informations-form">
{% csrf_token %}
{% include "form_fields.html" with form=form %}
{% if form.instance and form.instance.id %}
<input type="submit" value="{% trans "Modify" %}"/>
{% else %}
<input type="submit" value="{% trans "Create" %}"/>
{% endif %}
</form>
</div>
</div>
<div id="right">
<div class="block" id="my-password">
<h2>{% trans "My account" %}</h2>
<p><a href="{% url 'auth_password_change' %}">{% trans "Change password" %}</a></p>
<p><a href="{% url 'delete_account' %}">{% trans "Delete account" %}</a></p>
</div>
</div>
{% endblock %}

View File

@ -1,19 +0,0 @@
{% extends "base.html" %}
{% load i18n %}
{% block bodyargs %}
class="narrow-page"
{% endblock %}
{% block title %}
<div id="single-title">Compte citoyen</div>
{% endblock %}
{% block menu %}
{% endblock %}
{% block content %}
<h2>{% trans "Your account is now activated" %}</h2>
<p><button type="button" onclick="location.href = '/'">{% trans "Back" %}</button></p>
{% endblock %}

View File

@ -1,34 +0,0 @@
Bonjour,
Vous avez demandé à ouvrir un compte citoyen sur le portail de Montpellier
Agglo et nous vous en remercions.
Votre identifiant daccès est : {{ user.username }}
Pour confirmer la création et activer votre compte, cliquez sur le lien suivant :
http://{{ site.domain }}{% url 'registration_activate' activation_key %}
Ce lien est valable pendant {{ expiration_days }} jours.
Ce compte personnalisé et sécurisé est le vôtre! Il vous permet de :
- Accomplir vos démarches en ligne 24h/24 auprès de Montpellier Agglo dans un
premier temps puis à terme auprès de la médiathèque, de lécolothèque, du
conservatoire et de votre commune.
- Suivre létat de vos démarches en ligne
- Gérer vos inscriptions à nos newsletters et à nos flux dinfos
- Modifier vos informations personnelles
- Modifier votre mot de passe
Nhésitez pas à compléter toutes vos coordonnées. Ainsi, vous naurez plus
besoin de les réécrire dans les formulaires, ces informations seront
directement préremplies. Pour y accéder, rendez-vous sur le portail, rubrique
Mon compte.
Nous vous remercions dutiliser notre portail de e-services.
Les équipes de Montpellier Agglo.
--------------------------------------------------
Important : Cet email est généré par un automate, merci de ne pas y répondre.

View File

@ -1 +0,0 @@
Activation de votre compte citoyen

View File

@ -1,36 +0,0 @@
{% extends "base.html" %}
{% load i18n %}
{% block bodyargs %}
class="narrow-page"
{% endblock %}
{% block title %}
<div id="single-title">Compte citoyen</div>
{% endblock %}
{% block menu %}
{% endblock %}
{% block content %}
<div id="welcome">
<h2>Supprimer mon compte</h2>
<p>
Si vous cliquez sur le bouton "confirmer" toutes vos données concernant les
eservices seront effacées et vous ne pourrez plus les récupérer.
</p>
<form method="post" action=".">
{% csrf_token %}
<input type="submit" name="submit" value="{% trans 'Confirm' %}" />
<button type="button" onclick="location.href = '/'">{% trans "Back" %}</button>
</form>
</div>
<div class="right">
</div>
<br class="clear"/>
{% endblock %}

View File

@ -1,18 +0,0 @@
{% extends "base.html" %}
{% load i18n %}
{% block bodyargs %}
class="narrow-page"
{% endblock %}
{% block title %}
<div id="single-title">{% trans "Logging out" %}</div>
{% endblock %}
{% block menu %}
{% endblock %}
{% block content %}
<p>{% trans "Logged out" %}</p>
<p><button type="button" onclick="location.href = '/'">{% trans "Back" %}</button></p>
{% endblock %}

View File

@ -1,40 +0,0 @@
{% extends "base.html" %}
{% load i18n %}
{% block bodyargs %}
class="narrow-page"
{% endblock %}
{% block title %}
<div id="single-title">Compte citoyen</div>
{% endblock %}
{% block menu %}
{% endblock %}
{% block content %}
<div id="welcome">
<h2>{% trans "Change password" %}</h2>
<p>
Pour modifier votre mot de passe vous devez saisir votre mot de passe actuel
puis votre nouveau mot de passe à deux reprises. Attention de saisir votre
nouveau mot de passe à l'identique dans les deux zones texte prévues à cet
effet.
</p>
</div>
<div class="right">
<form method="post" action=".">
{% csrf_token %}
{% include "form_fields.html" with form=form %}
<input type="submit" value="{% trans 'Submit' %}" />
<button type="button" onclick="location.href = '/'">{% trans "Back" %}</button>
</form>
</div>
<br class="clear"/>
{% endblock %}

View File

@ -1,30 +0,0 @@
{% extends "base.html" %}
{% load i18n %}
{% block bodyargs %}
class="narrow-page"
{% endblock %}
{% block title %}
<div id="single-title">Compte citoyen</div>
{% endblock %}
{% block menu %}
{% endblock %}
{% block content %}
<h2>{% trans "Password reset successfully" %}</h2>
<p>
Votre mot de passe a été modifié avec succès. Vous pouvez à présent utiliser
votre nouveau mot de passe pour vous connecter.
</p>
<p><a href="{% url 'auth_login' %}">{% trans "Log in" %}</a></p>
</div>
<br class="clear"/>
{% endblock %}

View File

@ -1,50 +0,0 @@
{% extends "base.html" %}
{% load i18n %}
{% block bodyargs %}
class="narrow-page"
{% endblock %}
{% block title %}
<div id="single-title">Compte citoyen</div>
{% endblock %}
{% block menu %}
{% endblock %}
{% block content %}
{% if validlink %}
<div id="welcome">
<h2>{% trans "Resetting password" %}</h2>
<p>
Pour modifier votre mot de passe vous devez saisir votre mot de passe actuel
puis votre nouveau mot de passe à deux reprises. Attention de saisir votre
nouveau mot de passe à l'identique dans les deux zones texte prévues à cet
effet.
</p>
</div>
<div class="right">
<form method="post" action=".">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="{% trans 'Submit' %}" />
<button type="button" onclick="location.href = '/'">{% trans "Back" %}</button>
</form>
</div>
<br class="clear"/>
{% else %}
<p>{% trans "Password reset failed" %}</p>
{% endif %}
{% endblock %}

View File

@ -1,24 +0,0 @@
{% extends "base.html" %}
{% load i18n %}
{% block bodyargs %}
class="narrow-page"
{% endblock %}
{% block title %}
<div id="single-title">Compte citoyen</div>
{% endblock %}
{% block menu %}
{% endblock %}
{% block content %}
<div>
<h2>{% trans "Resetting password" %}</h2>
<p>{% trans "Email with password reset instructions has been sent." %}</p>
<p><button type="button" onclick="location.href = '/'">{% trans "Back" %}</button></p>
</div>
{% endblock %}

View File

@ -1,16 +0,0 @@
Bonjour,
Vous avez demandé à réinitialiser votre mot de passe du compte citoyen de Montpellier Agglo.
Voici pour rappel votre identifiant : {{ user.username }}
Pour réinitialiser votre mot de passe, cliquez sur le lien suivant :
{{ protocol }}://{{ domain }}{% url 'auth_password_reset_confirm' uidb36=uid token=token %}
Nous vous remercions dutiliser notre portail de e-services.
Les équipes de Montpellier Agglo.
--------------------------------------------------
Important : Cet email est généré par un automate, merci de ne pas y répondre.

View File

@ -1,40 +0,0 @@
{% extends "base.html" %}
{% load i18n %}
{% block bodyargs %}
class="narrow-page"
{% endblock %}
{% block title %}
<div id="single-title">Compte citoyen</div>
{% endblock %}
{% block menu %}
{% endblock %}
{% block content %}
<div id="welcome">
<h2>{% trans "Resetting password" %}</h2>
<p>
Si vous avez égaré votre mot de passe et que vous souhaitez pouvoir vous
connecter à nouveau indiquez votre adresse électronique. Vous recevrez un
courriel vous permettant de définir un nouveau mot de passe.
</p>
</div>
<div class="right">
<form method="post" action=".">
{% csrf_token %}
{% include "form_fields.html" with form=form %}
<input type="submit" value="{% trans 'Submit' %}" />
<button type="button" onclick="location.href = '/'">{% trans "Back" %}</button>
</form>
</div>
<br class="clear"/>
{% endblock %}

View File

@ -1 +0,0 @@
Réinitialisation du mot de passe de votre compte citoyen

Some files were not shown because too many files have changed in this diff Show More