├── __init__.py ├── bt ├── __init__.py ├── migrations │ └── __init__.py ├── templatetags │ ├── __init__.py │ └── bt.py ├── tests.py ├── feeds.py ├── admin.py └── api.py ├── media ├── img │ ├── asc.gif │ ├── bg.gif │ ├── eye.png │ ├── desc.gif │ ├── noise.png │ ├── plus_alt.png │ └── minus_alt.png ├── js │ ├── flashcanvas.swf │ ├── tinymce │ │ ├── plugins │ │ │ ├── example │ │ │ │ ├── langs │ │ │ │ │ ├── en.js │ │ │ │ │ └── en_dlg.js │ │ │ │ ├── img │ │ │ │ │ └── example.gif │ │ │ │ ├── js │ │ │ │ │ └── dialog.js │ │ │ │ ├── editor_plugin.js │ │ │ │ └── dialog.htm │ │ │ ├── media │ │ │ │ ├── img │ │ │ │ │ ├── flash.gif │ │ │ │ │ ├── trans.gif │ │ │ │ │ ├── flv_player.swf │ │ │ │ │ ├── quicktime.gif │ │ │ │ │ ├── realmedia.gif │ │ │ │ │ ├── shockwave.gif │ │ │ │ │ └── windowsmedia.gif │ │ │ │ ├── css │ │ │ │ │ ├── content.css │ │ │ │ │ └── media.css │ │ │ │ └── js │ │ │ │ │ └── embed.js │ │ │ ├── advimage │ │ │ │ ├── img │ │ │ │ │ └── sample.gif │ │ │ │ ├── css │ │ │ │ │ └── advimage.css │ │ │ │ ├── editor_plugin.js │ │ │ │ ├── langs │ │ │ │ │ └── en_dlg.js │ │ │ │ └── editor_plugin_src.js │ │ │ ├── pagebreak │ │ │ │ ├── img │ │ │ │ │ ├── trans.gif │ │ │ │ │ └── pagebreak.gif │ │ │ │ ├── css │ │ │ │ │ └── content.css │ │ │ │ ├── editor_plugin.js │ │ │ │ └── editor_plugin_src.js │ │ │ ├── advhr │ │ │ │ ├── langs │ │ │ │ │ └── en_dlg.js │ │ │ │ ├── css │ │ │ │ │ └── advhr.css │ │ │ │ ├── editor_plugin.js │ │ │ │ ├── js │ │ │ │ │ └── rule.js │ │ │ │ ├── editor_plugin_src.js │ │ │ │ └── rule.htm │ │ │ ├── emotions │ │ │ │ ├── img │ │ │ │ │ ├── smiley-cry.gif │ │ │ │ │ ├── smiley-cool.gif │ │ │ │ │ ├── smiley-frown.gif │ │ │ │ │ ├── smiley-kiss.gif │ │ │ │ │ ├── smiley-sealed.gif │ │ │ │ │ ├── smiley-smile.gif │ │ │ │ │ ├── smiley-wink.gif │ │ │ │ │ ├── smiley-yell.gif │ │ │ │ │ ├── smiley-innocent.gif │ │ │ │ │ ├── smiley-laughing.gif │ │ │ │ │ ├── smiley-embarassed.gif │ │ │ │ │ ├── smiley-money-mouth.gif │ │ │ │ │ ├── smiley-surprised.gif │ │ │ │ │ ├── smiley-tongue-out.gif │ │ │ │ │ ├── smiley-undecided.gif │ │ │ │ │ └── smiley-foot-in-mouth.gif │ │ │ │ ├── langs │ │ │ │ │ └── en_dlg.js │ │ │ │ ├── js │ │ │ │ │ └── emotions.js │ │ │ │ ├── editor_plugin.js │ │ │ │ └── editor_plugin_src.js │ │ │ ├── spellchecker │ │ │ │ ├── img │ │ │ │ │ └── wline.gif │ │ │ │ ├── css │ │ │ │ │ └── content.css │ │ │ │ ├── editor_plugin.js │ │ │ │ └── editor_plugin_src.js │ │ │ ├── wordcount │ │ │ │ ├── editor_plugin.js │ │ │ │ └── editor_plugin_src.js │ │ │ ├── inlinepopups │ │ │ │ └── skins │ │ │ │ │ └── clearlooks2 │ │ │ │ │ └── img │ │ │ │ │ ├── alert.gif │ │ │ │ │ ├── button.gif │ │ │ │ │ ├── buttons.gif │ │ │ │ │ ├── confirm.gif │ │ │ │ │ ├── corners.gif │ │ │ │ │ ├── vertical.gif │ │ │ │ │ └── horizontal.gif │ │ │ ├── searchreplace │ │ │ │ ├── css │ │ │ │ │ └── searchreplace.css │ │ │ │ ├── langs │ │ │ │ │ └── en_dlg.js │ │ │ │ ├── editor_plugin.js │ │ │ │ └── editor_plugin_src.js │ │ │ ├── table │ │ │ │ ├── css │ │ │ │ │ ├── table.css │ │ │ │ │ ├── cell.css │ │ │ │ │ └── row.css │ │ │ │ ├── js │ │ │ │ │ └── merge_cells.js │ │ │ │ ├── merge_cells.htm │ │ │ │ └── langs │ │ │ │ │ └── en_dlg.js │ │ │ ├── paste │ │ │ │ ├── langs │ │ │ │ │ └── en_dlg.js │ │ │ │ ├── pasteword.htm │ │ │ │ ├── js │ │ │ │ │ ├── pastetext.js │ │ │ │ │ └── pasteword.js │ │ │ │ └── pastetext.htm │ │ │ ├── xhtmlxtras │ │ │ │ ├── css │ │ │ │ │ ├── attributes.css │ │ │ │ │ └── popup.css │ │ │ │ ├── js │ │ │ │ │ ├── abbr.js │ │ │ │ │ ├── cite.js │ │ │ │ │ ├── acronym.js │ │ │ │ │ ├── ins.js │ │ │ │ │ └── del.js │ │ │ │ ├── langs │ │ │ │ │ └── en_dlg.js │ │ │ │ └── editor_plugin.js │ │ │ ├── autosave │ │ │ │ └── langs │ │ │ │ │ └── en.js │ │ │ ├── template │ │ │ │ ├── blank.htm │ │ │ │ ├── css │ │ │ │ │ └── template.css │ │ │ │ ├── langs │ │ │ │ │ └── en_dlg.js │ │ │ │ └── template.htm │ │ │ ├── print │ │ │ │ ├── editor_plugin.js │ │ │ │ └── editor_plugin_src.js │ │ │ ├── advlink │ │ │ │ ├── css │ │ │ │ │ └── advlink.css │ │ │ │ ├── editor_plugin.js │ │ │ │ ├── langs │ │ │ │ │ └── en_dlg.js │ │ │ │ └── editor_plugin_src.js │ │ │ ├── preview │ │ │ │ ├── preview.html │ │ │ │ ├── example.html │ │ │ │ ├── editor_plugin.js │ │ │ │ ├── editor_plugin_src.js │ │ │ │ └── jscripts │ │ │ │ │ └── embed.js │ │ │ ├── iespell │ │ │ │ ├── editor_plugin.js │ │ │ │ └── editor_plugin_src.js │ │ │ ├── style │ │ │ │ ├── css │ │ │ │ │ └── props.css │ │ │ │ ├── editor_plugin.js │ │ │ │ ├── editor_plugin_src.js │ │ │ │ └── langs │ │ │ │ │ └── en_dlg.js │ │ │ ├── nonbreaking │ │ │ │ ├── editor_plugin.js │ │ │ │ └── editor_plugin_src.js │ │ │ ├── autoresize │ │ │ │ └── editor_plugin.js │ │ │ ├── directionality │ │ │ │ ├── editor_plugin.js │ │ │ │ └── editor_plugin_src.js │ │ │ ├── noneditable │ │ │ │ ├── editor_plugin.js │ │ │ │ └── editor_plugin_src.js │ │ │ ├── visualchars │ │ │ │ ├── editor_plugin.js │ │ │ │ └── editor_plugin_src.js │ │ │ ├── tabfocus │ │ │ │ └── editor_plugin.js │ │ │ ├── save │ │ │ │ ├── editor_plugin.js │ │ │ │ └── editor_plugin_src.js │ │ │ ├── legacyoutput │ │ │ │ └── editor_plugin.js │ │ │ ├── insertdatetime │ │ │ │ └── editor_plugin.js │ │ │ ├── advlist │ │ │ │ └── editor_plugin.js │ │ │ ├── contextmenu │ │ │ │ └── editor_plugin.js │ │ │ └── fullpage │ │ │ │ ├── langs │ │ │ │ └── en_dlg.js │ │ │ │ └── editor_plugin.js │ │ ├── themes │ │ │ ├── simple │ │ │ │ ├── img │ │ │ │ │ └── icons.gif │ │ │ │ ├── skins │ │ │ │ │ ├── o2k7 │ │ │ │ │ │ ├── img │ │ │ │ │ │ │ └── button_bg.png │ │ │ │ │ │ ├── content.css │ │ │ │ │ │ └── ui.css │ │ │ │ │ └── default │ │ │ │ │ │ ├── content.css │ │ │ │ │ │ └── ui.css │ │ │ │ ├── langs │ │ │ │ │ └── en.js │ │ │ │ └── editor_template.js │ │ │ └── advanced │ │ │ │ ├── img │ │ │ │ ├── icons.gif │ │ │ │ └── colorpicker.jpg │ │ │ │ ├── skins │ │ │ │ ├── default │ │ │ │ │ ├── img │ │ │ │ │ │ ├── items.gif │ │ │ │ │ │ ├── tabs.gif │ │ │ │ │ │ ├── buttons.png │ │ │ │ │ │ ├── menu_arrow.gif │ │ │ │ │ │ ├── menu_check.gif │ │ │ │ │ │ └── progress.gif │ │ │ │ │ └── content.css │ │ │ │ └── o2k7 │ │ │ │ │ ├── img │ │ │ │ │ ├── button_bg.png │ │ │ │ │ ├── button_bg_black.png │ │ │ │ │ └── button_bg_silver.png │ │ │ │ │ ├── ui_silver.css │ │ │ │ │ ├── content.css │ │ │ │ │ └── ui_black.css │ │ │ │ ├── js │ │ │ │ ├── anchor.js │ │ │ │ ├── source_editor.js │ │ │ │ └── about.js │ │ │ │ ├── anchor.htm │ │ │ │ ├── source_editor.htm │ │ │ │ ├── langs │ │ │ │ ├── en_dlg.js │ │ │ │ └── en.js │ │ │ │ ├── charmap.htm │ │ │ │ └── link.htm │ │ ├── preview_javascript.html │ │ ├── example.html │ │ ├── filebrowser.js │ │ └── utils │ │ │ ├── mctabs.js │ │ │ └── editable_selects.js │ ├── editor.js │ ├── script.min.js │ └── map.js ├── fonts │ ├── DroidSans-webfont.eot │ ├── DroidSans-webfont.ttf │ ├── DroidSans-webfont.woff │ ├── DroidSans-Bold-webfont.eot │ ├── DroidSans-Bold-webfont.ttf │ └── DroidSans-Bold-webfont.woff └── css │ ├── images │ ├── ui-icons_222222_256x240.png │ ├── ui-icons_228ef1_256x240.png │ ├── ui-icons_ef8c08_256x240.png │ ├── ui-icons_ffd27a_256x240.png │ ├── ui-icons_ffffff_256x240.png │ ├── ui-bg_flat_10_000000_40x100.png │ ├── ui-bg_glass_100_f6f6f6_1x400.png │ ├── ui-bg_glass_100_fdf5ce_1x400.png │ ├── ui-bg_glass_65_ffffff_1x400.png │ ├── ui-bg_gloss-wave_35_f6a828_500x100.png │ ├── ui-bg_highlight-soft_75_ffe45c_1x100.png │ ├── ui-bg_diagonals-thick_18_b81900_40x40.png │ ├── ui-bg_diagonals-thick_20_666666_40x40.png │ └── ui-bg_highlight-soft_100_eeeeee_1x100.png │ └── map.css ├── templates ├── registration │ ├── activation_email_subject.txt │ ├── activation_complete.html │ ├── activate.html │ ├── password_change_done.html │ ├── registration_complete.html │ ├── registration_form.html │ ├── password_reset_done.html │ ├── password_reset_complete.html │ ├── activation_email.txt │ ├── login.html │ ├── password_reset_form.html │ ├── password_reset_email.html │ ├── password_reset_confirm.html │ └── password_change_form.html ├── csv.tmpl ├── 404.html ├── comments │ └── comment_notification_email.txt ├── feeditem.html ├── add.html ├── about.html └── base.html ├── babel.cfg ├── .gitignore ├── docs ├── EMAILS.md └── SETUP.md ├── README.md ├── locale └── do.sh ├── pip-requirements.txt ├── generate_catalog.sh ├── setup.cfg ├── manage.py ├── setup.py └── urls.py /__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bt/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bt/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bt/templatetags/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /media/img/asc.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/img/asc.gif -------------------------------------------------------------------------------- /media/img/bg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/img/bg.gif -------------------------------------------------------------------------------- /media/img/eye.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/img/eye.png -------------------------------------------------------------------------------- /media/img/desc.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/img/desc.gif -------------------------------------------------------------------------------- /media/img/noise.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/img/noise.png -------------------------------------------------------------------------------- /media/img/plus_alt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/img/plus_alt.png -------------------------------------------------------------------------------- /media/img/minus_alt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/img/minus_alt.png -------------------------------------------------------------------------------- /media/js/flashcanvas.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/js/flashcanvas.swf -------------------------------------------------------------------------------- /templates/registration/activation_email_subject.txt: -------------------------------------------------------------------------------- 1 | {%load tagger%}{%root_url%} account registration 2 | -------------------------------------------------------------------------------- /media/fonts/DroidSans-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/fonts/DroidSans-webfont.eot -------------------------------------------------------------------------------- /media/fonts/DroidSans-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/fonts/DroidSans-webfont.ttf -------------------------------------------------------------------------------- /media/fonts/DroidSans-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/fonts/DroidSans-webfont.woff -------------------------------------------------------------------------------- /media/fonts/DroidSans-Bold-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/fonts/DroidSans-Bold-webfont.eot -------------------------------------------------------------------------------- /media/fonts/DroidSans-Bold-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/fonts/DroidSans-Bold-webfont.ttf -------------------------------------------------------------------------------- /media/fonts/DroidSans-Bold-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/fonts/DroidSans-Bold-webfont.woff -------------------------------------------------------------------------------- /media/css/images/ui-icons_222222_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/css/images/ui-icons_222222_256x240.png -------------------------------------------------------------------------------- /media/css/images/ui-icons_228ef1_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/css/images/ui-icons_228ef1_256x240.png -------------------------------------------------------------------------------- /media/css/images/ui-icons_ef8c08_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/css/images/ui-icons_ef8c08_256x240.png -------------------------------------------------------------------------------- /media/css/images/ui-icons_ffd27a_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/css/images/ui-icons_ffd27a_256x240.png -------------------------------------------------------------------------------- /media/css/images/ui-icons_ffffff_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/css/images/ui-icons_ffffff_256x240.png -------------------------------------------------------------------------------- /media/js/tinymce/plugins/example/langs/en.js: -------------------------------------------------------------------------------- 1 | tinyMCE.addI18n('en.example',{ 2 | desc : 'This is just a template button' 3 | }); 4 | -------------------------------------------------------------------------------- /media/js/tinymce/plugins/media/img/flash.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/js/tinymce/plugins/media/img/flash.gif -------------------------------------------------------------------------------- /media/js/tinymce/plugins/media/img/trans.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/js/tinymce/plugins/media/img/trans.gif -------------------------------------------------------------------------------- /media/js/tinymce/themes/simple/img/icons.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/js/tinymce/themes/simple/img/icons.gif -------------------------------------------------------------------------------- /media/js/tinymce/plugins/example/langs/en_dlg.js: -------------------------------------------------------------------------------- 1 | tinyMCE.addI18n('en.example_dlg',{ 2 | title : 'This is just a example title' 3 | }); 4 | -------------------------------------------------------------------------------- /media/js/tinymce/themes/advanced/img/icons.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/js/tinymce/themes/advanced/img/icons.gif -------------------------------------------------------------------------------- /media/css/images/ui-bg_flat_10_000000_40x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/css/images/ui-bg_flat_10_000000_40x100.png -------------------------------------------------------------------------------- /media/css/images/ui-bg_glass_100_f6f6f6_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/css/images/ui-bg_glass_100_f6f6f6_1x400.png -------------------------------------------------------------------------------- /media/css/images/ui-bg_glass_100_fdf5ce_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/css/images/ui-bg_glass_100_fdf5ce_1x400.png -------------------------------------------------------------------------------- /media/css/images/ui-bg_glass_65_ffffff_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/css/images/ui-bg_glass_65_ffffff_1x400.png -------------------------------------------------------------------------------- /media/js/tinymce/plugins/advimage/img/sample.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/js/tinymce/plugins/advimage/img/sample.gif -------------------------------------------------------------------------------- /media/js/tinymce/plugins/example/img/example.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/js/tinymce/plugins/example/img/example.gif -------------------------------------------------------------------------------- /media/js/tinymce/plugins/media/img/flv_player.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/js/tinymce/plugins/media/img/flv_player.swf -------------------------------------------------------------------------------- /media/js/tinymce/plugins/media/img/quicktime.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/js/tinymce/plugins/media/img/quicktime.gif -------------------------------------------------------------------------------- /media/js/tinymce/plugins/media/img/realmedia.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/js/tinymce/plugins/media/img/realmedia.gif -------------------------------------------------------------------------------- /media/js/tinymce/plugins/media/img/shockwave.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/js/tinymce/plugins/media/img/shockwave.gif -------------------------------------------------------------------------------- /media/js/tinymce/plugins/pagebreak/img/trans.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/js/tinymce/plugins/pagebreak/img/trans.gif -------------------------------------------------------------------------------- /media/js/tinymce/plugins/advhr/langs/en_dlg.js: -------------------------------------------------------------------------------- 1 | tinyMCE.addI18n('en.advhr_dlg',{ 2 | width:"Width", 3 | size:"Height", 4 | noshade:"No shadow" 5 | }); -------------------------------------------------------------------------------- /media/js/tinymce/plugins/emotions/img/smiley-cry.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/js/tinymce/plugins/emotions/img/smiley-cry.gif -------------------------------------------------------------------------------- /media/js/tinymce/plugins/media/img/windowsmedia.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/js/tinymce/plugins/media/img/windowsmedia.gif -------------------------------------------------------------------------------- /media/js/tinymce/plugins/pagebreak/img/pagebreak.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/js/tinymce/plugins/pagebreak/img/pagebreak.gif -------------------------------------------------------------------------------- /media/js/tinymce/plugins/spellchecker/img/wline.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/js/tinymce/plugins/spellchecker/img/wline.gif -------------------------------------------------------------------------------- /media/js/tinymce/plugins/wordcount/editor_plugin.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/js/tinymce/plugins/wordcount/editor_plugin.js -------------------------------------------------------------------------------- /media/js/tinymce/themes/advanced/img/colorpicker.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/js/tinymce/themes/advanced/img/colorpicker.jpg -------------------------------------------------------------------------------- /media/css/images/ui-bg_gloss-wave_35_f6a828_500x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/css/images/ui-bg_gloss-wave_35_f6a828_500x100.png -------------------------------------------------------------------------------- /media/js/tinymce/plugins/emotions/img/smiley-cool.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/js/tinymce/plugins/emotions/img/smiley-cool.gif -------------------------------------------------------------------------------- /media/js/tinymce/plugins/emotions/img/smiley-frown.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/js/tinymce/plugins/emotions/img/smiley-frown.gif -------------------------------------------------------------------------------- /media/js/tinymce/plugins/emotions/img/smiley-kiss.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/js/tinymce/plugins/emotions/img/smiley-kiss.gif -------------------------------------------------------------------------------- /media/js/tinymce/plugins/emotions/img/smiley-sealed.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/js/tinymce/plugins/emotions/img/smiley-sealed.gif -------------------------------------------------------------------------------- /media/js/tinymce/plugins/emotions/img/smiley-smile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/js/tinymce/plugins/emotions/img/smiley-smile.gif -------------------------------------------------------------------------------- /media/js/tinymce/plugins/emotions/img/smiley-wink.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/js/tinymce/plugins/emotions/img/smiley-wink.gif -------------------------------------------------------------------------------- /media/js/tinymce/plugins/emotions/img/smiley-yell.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/js/tinymce/plugins/emotions/img/smiley-yell.gif -------------------------------------------------------------------------------- /media/js/tinymce/plugins/spellchecker/css/content.css: -------------------------------------------------------------------------------- 1 | .mceItemHiddenSpellWord {background:url(../img/wline.gif) repeat-x bottom left; cursor:default;} 2 | -------------------------------------------------------------------------------- /media/js/tinymce/plugins/spellchecker/editor_plugin.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/js/tinymce/plugins/spellchecker/editor_plugin.js -------------------------------------------------------------------------------- /media/js/tinymce/plugins/wordcount/editor_plugin_src.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/js/tinymce/plugins/wordcount/editor_plugin_src.js -------------------------------------------------------------------------------- /templates/csv.tmpl: -------------------------------------------------------------------------------- 1 | {% for row in data %}{% for col in row %}"{{ col|safe|addslashes }}"{% if not loop.last %},{% endif %}{% endfor %} 2 | {% endfor %} 3 | -------------------------------------------------------------------------------- /media/css/images/ui-bg_highlight-soft_75_ffe45c_1x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/css/images/ui-bg_highlight-soft_75_ffe45c_1x100.png -------------------------------------------------------------------------------- /media/js/tinymce/plugins/emotions/img/smiley-innocent.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/js/tinymce/plugins/emotions/img/smiley-innocent.gif -------------------------------------------------------------------------------- /media/js/tinymce/plugins/emotions/img/smiley-laughing.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/js/tinymce/plugins/emotions/img/smiley-laughing.gif -------------------------------------------------------------------------------- /babel.cfg: -------------------------------------------------------------------------------- 1 | [extractors] 2 | django = babeldjango.extract:extract_django 3 | 4 | [django: templates/*.*] 5 | [django: templates/comments/*.*] 6 | [python: bt/**.py] 7 | -------------------------------------------------------------------------------- /media/css/images/ui-bg_diagonals-thick_18_b81900_40x40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/css/images/ui-bg_diagonals-thick_18_b81900_40x40.png -------------------------------------------------------------------------------- /media/css/images/ui-bg_diagonals-thick_20_666666_40x40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/css/images/ui-bg_diagonals-thick_20_666666_40x40.png -------------------------------------------------------------------------------- /media/css/images/ui-bg_highlight-soft_100_eeeeee_1x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/css/images/ui-bg_highlight-soft_100_eeeeee_1x100.png -------------------------------------------------------------------------------- /media/js/tinymce/plugins/emotions/img/smiley-embarassed.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/js/tinymce/plugins/emotions/img/smiley-embarassed.gif -------------------------------------------------------------------------------- /media/js/tinymce/plugins/emotions/img/smiley-money-mouth.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/js/tinymce/plugins/emotions/img/smiley-money-mouth.gif -------------------------------------------------------------------------------- /media/js/tinymce/plugins/emotions/img/smiley-surprised.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/js/tinymce/plugins/emotions/img/smiley-surprised.gif -------------------------------------------------------------------------------- /media/js/tinymce/plugins/emotions/img/smiley-tongue-out.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/js/tinymce/plugins/emotions/img/smiley-tongue-out.gif -------------------------------------------------------------------------------- /media/js/tinymce/plugins/emotions/img/smiley-undecided.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/js/tinymce/plugins/emotions/img/smiley-undecided.gif -------------------------------------------------------------------------------- /media/js/tinymce/plugins/spellchecker/editor_plugin_src.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/js/tinymce/plugins/spellchecker/editor_plugin_src.js -------------------------------------------------------------------------------- /media/js/tinymce/themes/advanced/skins/default/img/items.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/js/tinymce/themes/advanced/skins/default/img/items.gif -------------------------------------------------------------------------------- /media/js/tinymce/themes/advanced/skins/default/img/tabs.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/js/tinymce/themes/advanced/skins/default/img/tabs.gif -------------------------------------------------------------------------------- /media/js/tinymce/themes/simple/skins/o2k7/img/button_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/js/tinymce/themes/simple/skins/o2k7/img/button_bg.png -------------------------------------------------------------------------------- /media/js/tinymce/plugins/emotions/img/smiley-foot-in-mouth.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/js/tinymce/plugins/emotions/img/smiley-foot-in-mouth.gif -------------------------------------------------------------------------------- /media/js/tinymce/themes/advanced/skins/default/img/buttons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/js/tinymce/themes/advanced/skins/default/img/buttons.png -------------------------------------------------------------------------------- /media/js/tinymce/themes/advanced/skins/o2k7/img/button_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/js/tinymce/themes/advanced/skins/o2k7/img/button_bg.png -------------------------------------------------------------------------------- /media/js/tinymce/themes/advanced/skins/default/img/menu_arrow.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/js/tinymce/themes/advanced/skins/default/img/menu_arrow.gif -------------------------------------------------------------------------------- /media/js/tinymce/themes/advanced/skins/default/img/menu_check.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/js/tinymce/themes/advanced/skins/default/img/menu_check.gif -------------------------------------------------------------------------------- /media/js/tinymce/themes/advanced/skins/default/img/progress.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/js/tinymce/themes/advanced/skins/default/img/progress.gif -------------------------------------------------------------------------------- /media/js/tinymce/themes/advanced/skins/o2k7/img/button_bg_black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/js/tinymce/themes/advanced/skins/o2k7/img/button_bg_black.png -------------------------------------------------------------------------------- /templates/404.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | {% block content %} 3 |

Page Not Found

4 |

What you were looking for is just not there. 5 | {% endblock %} 6 | 7 | -------------------------------------------------------------------------------- /media/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif -------------------------------------------------------------------------------- /media/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/button.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/button.gif -------------------------------------------------------------------------------- /media/js/tinymce/themes/advanced/skins/o2k7/img/button_bg_silver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/js/tinymce/themes/advanced/skins/o2k7/img/button_bg_silver.png -------------------------------------------------------------------------------- /media/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif -------------------------------------------------------------------------------- /media/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif -------------------------------------------------------------------------------- /media/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif -------------------------------------------------------------------------------- /media/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif -------------------------------------------------------------------------------- /media/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stef/nnmon/master/media/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # ignore python compiled files 2 | *.pyc 3 | # ignore mac files 4 | .DS_Store 5 | # ignore setup.py build dirs 6 | build/ 7 | nnmon.egg-info/ 8 | # ignore sqlite db 9 | *.db 10 | *.pyc 11 | -------------------------------------------------------------------------------- /media/js/tinymce/plugins/pagebreak/css/content.css: -------------------------------------------------------------------------------- 1 | .mcePageBreak {display:block;border:0;width:100%;height:12px;border-top:1px dotted #ccc;margin-top:15px;background:#fff url(../img/pagebreak.gif) no-repeat center top;} 2 | -------------------------------------------------------------------------------- /docs/EMAILS.md: -------------------------------------------------------------------------------- 1 | Reading emails in development mode 2 | ================================== 3 | 4 | In development mode, emails are written in `/tmp/app-messages/`. 5 | To find the last sent email use your funcky `ls` command: 6 | 7 | ls -ltr 8 | 9 | -------------------------------------------------------------------------------- /media/js/tinymce/plugins/searchreplace/css/searchreplace.css: -------------------------------------------------------------------------------- 1 | .panel_wrapper {height:85px;} 2 | .panel_wrapper div.current {height:85px;} 3 | 4 | /* IE */ 5 | * html .panel_wrapper {height:100px;} 6 | * html .panel_wrapper div.current {height:100px;} 7 | -------------------------------------------------------------------------------- /templates/registration/activation_complete.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | {% load i18n %} 3 | 4 | {% block title %}Registration{% endblock %} 5 | 6 | {% block content %} 7 | 8 | {% trans "Your account is now active." %} 9 | 10 | {% endblock content %} 11 | -------------------------------------------------------------------------------- /media/js/tinymce/plugins/table/css/table.css: -------------------------------------------------------------------------------- 1 | /* CSS file for table dialog in the table plugin */ 2 | 3 | .panel_wrapper div.current { 4 | height: 245px; 5 | } 6 | 7 | .advfield { 8 | width: 200px; 9 | } 10 | 11 | #class { 12 | width: 150px; 13 | } 14 | -------------------------------------------------------------------------------- /media/js/tinymce/plugins/paste/langs/en_dlg.js: -------------------------------------------------------------------------------- 1 | tinyMCE.addI18n('en.paste_dlg',{ 2 | text_title:"Use CTRL+V on your keyboard to paste the text into the window.", 3 | text_linebreaks:"Keep linebreaks", 4 | word_title:"Use CTRL+V on your keyboard to paste the text into the window." 5 | }); -------------------------------------------------------------------------------- /templates/registration/activate.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | {% load i18n %} 3 | 4 | {% block title %}Registration{% endblock %} 5 | 6 | {% block content %} 7 | 8 | {% trans "Your account activation might work now. If not mail me." %} 9 | 10 | {% endblock content %} 11 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | nnmon the bugtracker for teh internetz 2 | ====================================== 3 | 4 | nnmon is the project running [respectmynet.eu](http://respectmynet.eu/). 5 | 6 | Installation 7 | ------------ 8 | 9 | See [/docs/SETUP.md](nnmon/blob/master/docs/SETUP.md) 10 | 11 | -------------------------------------------------------------------------------- /templates/registration/password_change_done.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | {% load i18n %} 3 | 4 | {% block title %}{% trans 'Password change successful' %}{% endblock %} 5 | 6 | {% block content %} 7 | 8 |

{% trans 'Your password was changed.' %}

9 | 10 | {% endblock %} 11 | -------------------------------------------------------------------------------- /media/js/tinymce/plugins/advhr/css/advhr.css: -------------------------------------------------------------------------------- 1 | input.radio {border:1px none #000; background:transparent; vertical-align:middle;} 2 | .panel_wrapper div.current {height:80px;} 3 | #width {width:50px; vertical-align:middle;} 4 | #width2 {width:50px; vertical-align:middle;} 5 | #size {width:100px;} 6 | -------------------------------------------------------------------------------- /media/js/tinymce/plugins/xhtmlxtras/css/attributes.css: -------------------------------------------------------------------------------- 1 | .panel_wrapper div.current { 2 | height: 290px; 3 | } 4 | 5 | #id, #style, #title, #dir, #hreflang, #lang, #classlist, #tabindex, #accesskey { 6 | width: 200px; 7 | } 8 | 9 | #events_panel input { 10 | width: 200px; 11 | } 12 | -------------------------------------------------------------------------------- /locale/do.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | echo "Compiling django/gettext language files ..." 4 | echo -n " " 5 | for i in `find -mindepth 1 -maxdepth 1 -type d` 6 | do 7 | echo -n "$i " 8 | cd $i/LC_MESSAGES 9 | msgfmt -o django.mo django.po 10 | cd ../.. 11 | done 12 | echo " Finished" 13 | -------------------------------------------------------------------------------- /media/js/tinymce/plugins/autosave/langs/en.js: -------------------------------------------------------------------------------- 1 | tinyMCE.addI18n('en.autosave',{ 2 | restore_content: "Restore auto-saved content", 3 | warning_message: "If you restore the saved content, you will lose all the content that is currently in the editor.\n\nAre you sure you want to restore the saved content?" 4 | }); -------------------------------------------------------------------------------- /templates/registration/registration_complete.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | {% load i18n %} 3 | 4 | {% block title %}Registration{% endblock %} 5 | 6 | {% block content %} 7 | 8 | {% trans "An email containing account-activation information has been sent." %} 9 | 10 | {% endblock content %} 11 | -------------------------------------------------------------------------------- /templates/comments/comment_notification_email.txt: -------------------------------------------------------------------------------- 1 | {%load bt%} 2 | A comment has been posted on {{ content_object }} by {{ comment.user }}. 3 | The comment reads as follows: 4 | {{ comment.comment }} 5 | 6 | Approve: {%root_url%}/comments/approve/{{ comment.id }}/ 7 | Delete: {%root_url%}/comments/delete/{{ comment.id }}/ 8 | -------------------------------------------------------------------------------- /media/js/tinymce/plugins/table/css/cell.css: -------------------------------------------------------------------------------- 1 | /* CSS file for cell dialog in the table plugin */ 2 | 3 | .panel_wrapper div.current { 4 | height: 200px; 5 | } 6 | 7 | .advfield { 8 | width: 200px; 9 | } 10 | 11 | #action { 12 | margin-bottom: 3px; 13 | } 14 | 15 | #class { 16 | width: 150px; 17 | } -------------------------------------------------------------------------------- /templates/registration/registration_form.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block title %}Registration{% endblock %} 4 | 5 | {% block content %} 6 | 7 |
{% csrf_token %} 8 | 9 | {{ form.as_table }} 10 |
11 | 12 |
13 | 14 | {% endblock content %} 15 | -------------------------------------------------------------------------------- /pip-requirements.txt: -------------------------------------------------------------------------------- 1 | Babel>=0.9.6 2 | Django>=1.3 3 | django-ajax-selects>=1.1.4 4 | django-registration>=0.7 5 | django-simple-captcha>=0.2.0 6 | django-tinymce>=1.5 7 | pysqlite>=1.0.1 8 | BabelDjango>=0.2.2 9 | PIL>=1.1.7 10 | flup>=1.0.3.dev-20110405 11 | BeautifulSoup>=3.2.0 12 | python-twitter==0.8.2 13 | lxml 14 | django-tastypie 15 | South>=0.7.6 16 | -------------------------------------------------------------------------------- /templates/registration/password_reset_done.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | {% load i18n %} 3 | 4 | {% block title %}{% trans 'Password reset successful' %}{% endblock %} 5 | 6 | {% block content %} 7 | 8 |

{% trans "We've e-mailed you instructions for setting your password to the e-mail address you submitted. You should be receiving it shortly." %}

9 | 10 | {% endblock %} 11 | -------------------------------------------------------------------------------- /templates/registration/password_reset_complete.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | {% load i18n %} 3 | 4 | {% block title %}{% trans 'Password reset complete' %}{% endblock %} 5 | 6 | {% block content %} 7 | 8 |

{% trans "Your password has been set. You may go ahead and log in now." %}

9 | 10 |

{% trans 'Log in' %}

11 | 12 | {% endblock %} 13 | -------------------------------------------------------------------------------- /media/js/tinymce/themes/simple/langs/en.js: -------------------------------------------------------------------------------- 1 | tinyMCE.addI18n('en.simple',{ 2 | bold_desc:"Bold (Ctrl+B)", 3 | italic_desc:"Italic (Ctrl+I)", 4 | underline_desc:"Underline (Ctrl+U)", 5 | striketrough_desc:"Strikethrough", 6 | bullist_desc:"Unordered list", 7 | numlist_desc:"Ordered list", 8 | undo_desc:"Undo (Ctrl+Z)", 9 | redo_desc:"Redo (Ctrl+Y)", 10 | cleanup_desc:"Cleanup messy code" 11 | }); -------------------------------------------------------------------------------- /media/js/tinymce/plugins/template/blank.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | blank_page 4 | 5 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /media/js/tinymce/plugins/template/css/template.css: -------------------------------------------------------------------------------- 1 | #frmbody { 2 | padding: 10px; 3 | background-color: #FFF; 4 | border: 1px solid #CCC; 5 | } 6 | 7 | .frmRow { 8 | margin-bottom: 10px; 9 | } 10 | 11 | #templatesrc { 12 | border: none; 13 | width: 320px; 14 | height: 240px; 15 | } 16 | 17 | .title { 18 | padding-bottom: 5px; 19 | } 20 | 21 | .mceActionPanel { 22 | padding-top: 5px; 23 | } 24 | -------------------------------------------------------------------------------- /generate_catalog.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # launch this in the python virtualenv to regenerate the .pot : 3 | pybabel extract -F babel.cfg -o locale/django.pot . 4 | 5 | # then this to push it to transifex (after cheching you didn't loose anything 6 | # tx push -s 7 | 8 | # To pull the translated language do this : 9 | # tx pull 10 | 11 | # To add a language link with transifex do : 12 | # tx set -r nnmon.messagespot -l nl locale/nl/LC_MESSAGES/django.po 13 | -------------------------------------------------------------------------------- /bt/tests.py: -------------------------------------------------------------------------------- 1 | """ 2 | This file demonstrates writing tests using the unittest module. These will pass 3 | when you run "manage.py test". 4 | 5 | Replace this with more appropriate tests for your application. 6 | """ 7 | 8 | from django.test import TestCase 9 | 10 | 11 | class SimpleTest(TestCase): 12 | def test_basic_addition(self): 13 | """ 14 | Tests that 1 + 1 always equals 2. 15 | """ 16 | self.assertEqual(1 + 1, 2) 17 | -------------------------------------------------------------------------------- /media/js/tinymce/plugins/table/css/row.css: -------------------------------------------------------------------------------- 1 | /* CSS file for row dialog in the table plugin */ 2 | 3 | .panel_wrapper div.current { 4 | height: 200px; 5 | } 6 | 7 | .advfield { 8 | width: 200px; 9 | } 10 | 11 | #action { 12 | margin-bottom: 3px; 13 | } 14 | 15 | #rowtype,#align,#valign,#class,#height { 16 | width: 150px; 17 | } 18 | 19 | #height { 20 | width: 50px; 21 | } 22 | 23 | .col2 { 24 | padding-left: 20px; 25 | } 26 | -------------------------------------------------------------------------------- /setup.cfg: -------------------------------------------------------------------------------- 1 | [egg_info] 2 | tag_build = dev 3 | tag_svn_revision = true 4 | 5 | [compile_catalog] 6 | directory = locale 7 | domain = django 8 | statistics = true 9 | 10 | [extract_messages] 11 | add_comments = TRANSLATORS: 12 | output_file = locale/django.pot 13 | width = 80 14 | 15 | [init_catalog] 16 | domain = django 17 | input_file = locale/django.pot 18 | output_dir = locale 19 | 20 | [update_catalog] 21 | domain = django 22 | input_file = locale/django.pot 23 | output_dir = locale 24 | previous = true 25 | -------------------------------------------------------------------------------- /templates/registration/activation_email.txt: -------------------------------------------------------------------------------- 1 | {% load i18n %} 2 | {% load tagger %} 3 | 4 | {% trans "Here's your activation key" %} 5 | {{activation_key}} 6 | 7 | {% trans "Please click on this link to activate your account" %} 8 | {%root_url%}{% url registration_activate activation_key %} 9 | 10 | {% trans "This link will expire in:" %} {{expiration_days}} {% trans "days." %} 11 | 12 | {% comment %} 13 | {{site}} 14 | {{site.name}} 15 | {{site.domain}} 16 | (by default name == domain) 17 | {% endcomment %} 18 | -------------------------------------------------------------------------------- /media/js/tinymce/plugins/print/editor_plugin.js: -------------------------------------------------------------------------------- 1 | (function(){tinymce.create("tinymce.plugins.Print",{init:function(a,b){a.addCommand("mcePrint",function(){a.getWin().print()});a.addButton("print",{title:"print.print_desc",cmd:"mcePrint"})},getInfo:function(){return{longname:"Print",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/print",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("print",tinymce.plugins.Print)})(); -------------------------------------------------------------------------------- /media/js/tinymce/preview_javascript.html: -------------------------------------------------------------------------------- 1 | 2 | 4 | 13 | -------------------------------------------------------------------------------- /templates/registration/login.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | {% load i18n %} 3 | 4 | {% block title %}Login{% endblock %} 5 | 6 | {% block content %} 7 |
{% csrf_token %} 8 | {{form.as_p}} 9 | 10 | 11 |
12 | 13 |

[{% trans "Password reset" %}]

14 | 15 | {% endblock %} 16 | -------------------------------------------------------------------------------- /media/js/tinymce/plugins/emotions/langs/en_dlg.js: -------------------------------------------------------------------------------- 1 | tinyMCE.addI18n('en.emotions_dlg',{ 2 | title:"Insert emotion", 3 | desc:"Emotions", 4 | cool:"Cool", 5 | cry:"Cry", 6 | embarassed:"Embarassed", 7 | foot_in_mouth:"Foot in mouth", 8 | frown:"Frown", 9 | innocent:"Innocent", 10 | kiss:"Kiss", 11 | laughing:"Laughing", 12 | money_mouth:"Money mouth", 13 | sealed:"Sealed", 14 | smile:"Smile", 15 | surprised:"Surprised", 16 | tongue_out:"Tongue out", 17 | undecided:"Undecided", 18 | wink:"Wink", 19 | yell:"Yell" 20 | }); -------------------------------------------------------------------------------- /media/js/tinymce/plugins/advlink/css/advlink.css: -------------------------------------------------------------------------------- 1 | .mceLinkList, .mceAnchorList, #targetlist {width:280px;} 2 | .mceActionPanel {margin-top:7px;} 3 | .panel_wrapper div.current {height:320px;} 4 | #classlist, #title, #href {width:280px;} 5 | #popupurl, #popupname {width:200px;} 6 | #popupwidth, #popupheight, #popupleft, #popuptop {width:30px;vertical-align:middle;text-align:center;} 7 | #id, #style, #classes, #target, #dir, #hreflang, #lang, #charset, #type, #rel, #rev, #tabindex, #accesskey {width:200px;} 8 | #events_panel input {width:200px;} 9 | -------------------------------------------------------------------------------- /media/js/tinymce/example.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | TinyMCE Debian Test 4 | 5 | 10 | 11 | 12 | 13 |

TinyMCE Debian Test

14 | 15 |
16 | 17 |
18 | 19 | 20 | -------------------------------------------------------------------------------- /manage.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | from django.core.management import execute_manager 3 | import imp 4 | try: 5 | imp.find_module('settings') # Assumed to be in the same directory. 6 | except ImportError: 7 | import sys 8 | sys.stderr.write("Error: Can't find the file 'settings.py' in the directory containing %r. It appears you've customized things.\nYou'll have to run django-admin.py, passing it your settings module.\n" % __file__) 9 | sys.exit(1) 10 | 11 | import settings 12 | 13 | if __name__ == "__main__": 14 | execute_manager(settings) 15 | -------------------------------------------------------------------------------- /media/js/tinymce/plugins/media/css/content.css: -------------------------------------------------------------------------------- 1 | .mceItemFlash, .mceItemShockWave, .mceItemQuickTime, .mceItemWindowsMedia, .mceItemRealMedia {border:1px dotted #cc0000; background-position:center; background-repeat:no-repeat; background-color:#ffffcc;} 2 | .mceItemShockWave {background-image: url(../img/shockwave.gif);} 3 | .mceItemFlash {background-image:url(../img/flash.gif);} 4 | .mceItemQuickTime {background-image:url(../img/quicktime.gif);} 5 | .mceItemWindowsMedia {background-image:url(../img/windowsmedia.gif);} 6 | .mceItemRealMedia {background-image:url(../img/realmedia.gif);} 7 | -------------------------------------------------------------------------------- /media/js/tinymce/plugins/searchreplace/langs/en_dlg.js: -------------------------------------------------------------------------------- 1 | tinyMCE.addI18n('en.searchreplace_dlg',{ 2 | searchnext_desc:"Find again", 3 | notfound:"The search has been completed. The search string could not be found.", 4 | search_title:"Find", 5 | replace_title:"Find/Replace", 6 | allreplaced:"All occurrences of the search string were replaced.", 7 | findwhat:"Find what", 8 | replacewith:"Replace with", 9 | direction:"Direction", 10 | up:"Up", 11 | down:"Down", 12 | mcase:"Match case", 13 | findnext:"Find next", 14 | replace:"Replace", 15 | replaceall:"Replace all" 16 | }); -------------------------------------------------------------------------------- /media/js/tinymce/themes/simple/skins/o2k7/content.css: -------------------------------------------------------------------------------- 1 | body, td, pre {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;} 2 | 3 | body {background: #FFF;} 4 | .mceVisualAid {border: 1px dashed #BBB;} 5 | 6 | /* IE */ 7 | 8 | * html body { 9 | scrollbar-3dlight-color: #F0F0EE; 10 | scrollbar-arrow-color: #676662; 11 | scrollbar-base-color: #F0F0EE; 12 | scrollbar-darkshadow-color: #DDDDDD; 13 | scrollbar-face-color: #E0E0DD; 14 | scrollbar-highlight-color: #F0F0EE; 15 | scrollbar-shadow-color: #F0F0EE; 16 | scrollbar-track-color: #F5F5F5; 17 | } 18 | -------------------------------------------------------------------------------- /media/js/tinymce/plugins/xhtmlxtras/css/popup.css: -------------------------------------------------------------------------------- 1 | input.field, select.field {width:200px;} 2 | input.picker {width:179px; margin-left: 5px;} 3 | input.disabled {border-color:#F2F2F2;} 4 | img.picker {vertical-align:text-bottom; cursor:pointer;} 5 | h1 {padding: 0 0 5px 0;} 6 | .panel_wrapper div.current {height:160px;} 7 | #xhtmlxtrasdel .panel_wrapper div.current, #xhtmlxtrasins .panel_wrapper div.current {height: 230px;} 8 | a.browse span {display:block; width:20px; height:20px; background:url('../../../themes/advanced/img/icons.gif') -140px -20px;} 9 | #datetime {width:180px;} 10 | -------------------------------------------------------------------------------- /templates/registration/password_reset_form.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | {% load i18n %} 3 | 4 | {% block title %}{% trans "Password reset" %}{% endblock %} 5 | 6 | {% block content %} 7 | 8 |

{% trans "Forgotten your password? Enter your e-mail address below, and we'll e-mail instructions for setting a new one." %}

9 | 10 |
{% csrf_token %} 11 | {{ form.email.errors }} 12 |

{{ form.email }}

13 |
14 | 15 | {% endblock %} 16 | -------------------------------------------------------------------------------- /media/js/tinymce/filebrowser.js: -------------------------------------------------------------------------------- 1 | function djangoFileBrowser(field_name, url, type, win) { 2 | var url = "{{ fb_url }}?pop=2&type=" + type; 3 | 4 | tinyMCE.activeEditor.windowManager.open( 5 | { 6 | 'file': url, 7 | 'width': 820, 8 | 'height': 500, 9 | 'resizable': "yes", 10 | 'scrollbars': "yes", 11 | 'inline': "no", 12 | 'close_previous': "no" 13 | }, 14 | { 15 | 'window': win, 16 | 'input': field_name, 17 | 'editor_id': tinyMCE.selectedInstance.editorId 18 | } 19 | ); 20 | return false; 21 | } 22 | -------------------------------------------------------------------------------- /media/js/tinymce/themes/simple/skins/default/content.css: -------------------------------------------------------------------------------- 1 | body, td, pre { 2 | font-family: Verdana, Arial, Helvetica, sans-serif; 3 | font-size: 10px; 4 | } 5 | 6 | body { 7 | background-color: #FFFFFF; 8 | } 9 | 10 | .mceVisualAid { 11 | border: 1px dashed #BBBBBB; 12 | } 13 | 14 | /* MSIE specific */ 15 | 16 | * html body { 17 | scrollbar-3dlight-color: #F0F0EE; 18 | scrollbar-arrow-color: #676662; 19 | scrollbar-base-color: #F0F0EE; 20 | scrollbar-darkshadow-color: #DDDDDD; 21 | scrollbar-face-color: #E0E0DD; 22 | scrollbar-highlight-color: #F0F0EE; 23 | scrollbar-shadow-color: #F0F0EE; 24 | scrollbar-track-color: #F5F5F5; 25 | } 26 | -------------------------------------------------------------------------------- /media/js/tinymce/plugins/emotions/js/emotions.js: -------------------------------------------------------------------------------- 1 | tinyMCEPopup.requireLangPack(); 2 | 3 | var EmotionsDialog = { 4 | init : function(ed) { 5 | tinyMCEPopup.resizeToInnerSize(); 6 | }, 7 | 8 | insert : function(file, title) { 9 | var ed = tinyMCEPopup.editor, dom = ed.dom; 10 | 11 | tinyMCEPopup.execCommand('mceInsertContent', false, dom.createHTML('img', { 12 | src : tinyMCEPopup.getWindowArg('plugin_url') + '/img/' + file, 13 | alt : ed.getLang(title), 14 | title : ed.getLang(title), 15 | border : 0 16 | })); 17 | 18 | tinyMCEPopup.close(); 19 | } 20 | }; 21 | 22 | tinyMCEPopup.onInit.add(EmotionsDialog.init, EmotionsDialog); 23 | -------------------------------------------------------------------------------- /media/js/tinymce/plugins/emotions/editor_plugin.js: -------------------------------------------------------------------------------- 1 | (function(a){a.create("tinymce.plugins.EmotionsPlugin",{init:function(b,c){b.addCommand("mceEmotion",function(){b.windowManager.open({file:c+"/emotions.htm",width:250+parseInt(b.getLang("emotions.delta_width",0)),height:160+parseInt(b.getLang("emotions.delta_height",0)),inline:1},{plugin_url:c})});b.addButton("emotions",{title:"emotions.emotions_desc",cmd:"mceEmotion"})},getInfo:function(){return{longname:"Emotions",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/emotions",version:a.majorVersion+"."+a.minorVersion}}});a.PluginManager.add("emotions",a.plugins.EmotionsPlugin)})(tinymce); -------------------------------------------------------------------------------- /media/js/tinymce/plugins/xhtmlxtras/js/abbr.js: -------------------------------------------------------------------------------- 1 | /** 2 | * abbr.js 3 | * 4 | * Copyright 2009, Moxiecode Systems AB 5 | * Released under LGPL License. 6 | * 7 | * License: http://tinymce.moxiecode.com/license 8 | * Contributing: http://tinymce.moxiecode.com/contributing 9 | */ 10 | 11 | function init() { 12 | SXE.initElementDialog('abbr'); 13 | if (SXE.currentAction == "update") { 14 | SXE.showRemoveButton(); 15 | } 16 | } 17 | 18 | function insertAbbr() { 19 | SXE.insertElement('abbr'); 20 | tinyMCEPopup.close(); 21 | } 22 | 23 | function removeAbbr() { 24 | SXE.removeElement('abbr'); 25 | tinyMCEPopup.close(); 26 | } 27 | 28 | tinyMCEPopup.onInit.add(init); 29 | -------------------------------------------------------------------------------- /media/js/tinymce/plugins/xhtmlxtras/js/cite.js: -------------------------------------------------------------------------------- 1 | /** 2 | * cite.js 3 | * 4 | * Copyright 2009, Moxiecode Systems AB 5 | * Released under LGPL License. 6 | * 7 | * License: http://tinymce.moxiecode.com/license 8 | * Contributing: http://tinymce.moxiecode.com/contributing 9 | */ 10 | 11 | function init() { 12 | SXE.initElementDialog('cite'); 13 | if (SXE.currentAction == "update") { 14 | SXE.showRemoveButton(); 15 | } 16 | } 17 | 18 | function insertCite() { 19 | SXE.insertElement('cite'); 20 | tinyMCEPopup.close(); 21 | } 22 | 23 | function removeCite() { 24 | SXE.removeElement('cite'); 25 | tinyMCEPopup.close(); 26 | } 27 | 28 | tinyMCEPopup.onInit.add(init); 29 | -------------------------------------------------------------------------------- /templates/registration/password_reset_email.html: -------------------------------------------------------------------------------- 1 | {% load i18n %}{% autoescape off %} 2 | {% trans "You're receiving this e-mail because you requested a password reset" %} 3 | {% blocktrans %}for your user account at {{ site_name }}{% endblocktrans %}. 4 | 5 | {% trans "Please go to the following page and choose a new password:" %} 6 | {% block reset_link %} 7 | {{ protocol }}://{{ domain }}{% url django.contrib.auth.views.password_reset_confirm uidb36=uid token=token %} 8 | {% endblock %} 9 | {% trans "Your username, in case you've forgotten:" %} {{ user.username }} 10 | 11 | {% trans "Thanks for using our site!" %} 12 | 13 | {% blocktrans %}The {{ site_name }} team{% endblocktrans %} 14 | 15 | {% endautoescape %} 16 | -------------------------------------------------------------------------------- /media/js/tinymce/plugins/example/js/dialog.js: -------------------------------------------------------------------------------- 1 | tinyMCEPopup.requireLangPack(); 2 | 3 | var ExampleDialog = { 4 | init : function() { 5 | var f = document.forms[0]; 6 | 7 | // Get the selected contents as text and place it in the input 8 | f.someval.value = tinyMCEPopup.editor.selection.getContent({format : 'text'}); 9 | f.somearg.value = tinyMCEPopup.getWindowArg('some_custom_arg'); 10 | }, 11 | 12 | insert : function() { 13 | // Insert the contents from the input into the document 14 | tinyMCEPopup.editor.execCommand('mceInsertContent', false, document.forms[0].someval.value); 15 | tinyMCEPopup.close(); 16 | } 17 | }; 18 | 19 | tinyMCEPopup.onInit.add(ExampleDialog.init, ExampleDialog); 20 | -------------------------------------------------------------------------------- /media/js/tinymce/plugins/table/js/merge_cells.js: -------------------------------------------------------------------------------- 1 | tinyMCEPopup.requireLangPack(); 2 | 3 | var MergeCellsDialog = { 4 | init : function() { 5 | var f = document.forms[0]; 6 | 7 | f.numcols.value = tinyMCEPopup.getWindowArg('cols', 1); 8 | f.numrows.value = tinyMCEPopup.getWindowArg('rows', 1); 9 | }, 10 | 11 | merge : function() { 12 | var func, f = document.forms[0]; 13 | 14 | tinyMCEPopup.restoreSelection(); 15 | 16 | func = tinyMCEPopup.getWindowArg('onaction'); 17 | 18 | func({ 19 | cols : f.numcols.value, 20 | rows : f.numrows.value 21 | }); 22 | 23 | tinyMCEPopup.close(); 24 | } 25 | }; 26 | 27 | tinyMCEPopup.onInit.add(MergeCellsDialog.init, MergeCellsDialog); 28 | -------------------------------------------------------------------------------- /media/js/tinymce/plugins/xhtmlxtras/js/acronym.js: -------------------------------------------------------------------------------- 1 | /** 2 | * acronym.js 3 | * 4 | * Copyright 2009, Moxiecode Systems AB 5 | * Released under LGPL License. 6 | * 7 | * License: http://tinymce.moxiecode.com/license 8 | * Contributing: http://tinymce.moxiecode.com/contributing 9 | */ 10 | 11 | function init() { 12 | SXE.initElementDialog('acronym'); 13 | if (SXE.currentAction == "update") { 14 | SXE.showRemoveButton(); 15 | } 16 | } 17 | 18 | function insertAcronym() { 19 | SXE.insertElement('acronym'); 20 | tinyMCEPopup.close(); 21 | } 22 | 23 | function removeAcronym() { 24 | SXE.removeElement('acronym'); 25 | tinyMCEPopup.close(); 26 | } 27 | 28 | tinyMCEPopup.onInit.add(init); 29 | -------------------------------------------------------------------------------- /media/js/tinymce/plugins/preview/preview.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 10 | {#preview.preview_desc} 11 | 12 | 13 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /media/js/tinymce/plugins/template/langs/en_dlg.js: -------------------------------------------------------------------------------- 1 | tinyMCE.addI18n('en.template_dlg',{ 2 | title:"Templates", 3 | label:"Template", 4 | desc_label:"Description", 5 | desc:"Insert predefined template content", 6 | select:"Select a template", 7 | preview:"Preview", 8 | warning:"Warning: Updating a template with a different one may cause data loss.", 9 | mdate_format:"%Y-%m-%d %H:%M:%S", 10 | cdate_format:"%Y-%m-%d %H:%M:%S", 11 | months_long:"January,February,March,April,May,June,July,August,September,October,November,December", 12 | months_short:"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec", 13 | day_long:"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday", 14 | day_short:"Sun,Mon,Tue,Wed,Thu,Fri,Sat,Sun" 15 | }); -------------------------------------------------------------------------------- /media/js/tinymce/plugins/advimage/css/advimage.css: -------------------------------------------------------------------------------- 1 | #src_list, #over_list, #out_list {width:280px;} 2 | .mceActionPanel {margin-top:7px;} 3 | .alignPreview {border:1px solid #000; width:140px; height:140px; overflow:hidden; padding:5px;} 4 | .checkbox {border:0;} 5 | .panel_wrapper div.current {height:305px;} 6 | #prev {margin:0; border:1px solid #000; width:428px; height:150px; overflow:auto;} 7 | #align, #classlist {width:150px;} 8 | #width, #height {vertical-align:middle; width:50px; text-align:center;} 9 | #vspace, #hspace, #border {vertical-align:middle; width:30px; text-align:center;} 10 | #class_list {width:180px;} 11 | input {width: 280px;} 12 | #constrain, #onmousemovecheck {width:auto;} 13 | #id, #dir, #lang, #usemap, #longdesc {width:200px;} 14 | -------------------------------------------------------------------------------- /media/js/tinymce/plugins/advimage/editor_plugin.js: -------------------------------------------------------------------------------- 1 | (function(){tinymce.create("tinymce.plugins.AdvancedImagePlugin",{init:function(a,b){a.addCommand("mceAdvImage",function(){if(a.dom.getAttrib(a.selection.getNode(),"class").indexOf("mceItem")!=-1){return}a.windowManager.open({file:b+"/image.htm",width:480+parseInt(a.getLang("advimage.delta_width",0)),height:385+parseInt(a.getLang("advimage.delta_height",0)),inline:1},{plugin_url:b})});a.addButton("image",{title:"advimage.image_desc",cmd:"mceAdvImage"})},getInfo:function(){return{longname:"Advanced image",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advimage",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("advimage",tinymce.plugins.AdvancedImagePlugin)})(); -------------------------------------------------------------------------------- /bt/feeds.py: -------------------------------------------------------------------------------- 1 | from django.contrib.syndication.views import Feed 2 | from django.utils.feedgenerator import Atom1Feed 3 | from bt.models import Violation 4 | 5 | class RssSiteNewsFeed(Feed): 6 | title = "NNMON - Latest NN Infringements" 7 | link = "/" 8 | description = "Latest submissions on network neutrality infringements across Europe" 9 | description_template = 'feeditem.html' 10 | 11 | def items(self): 12 | return Violation.objects.filter(activationid='').order_by('-id')[:10] 13 | 14 | def item_link(self, item): 15 | return item.get_absolute_url() 16 | 17 | def item_title(self, item): 18 | return "%s (%s) %s" % (item.operator, item.country, item.contract) 19 | 20 | class AtomSiteNewsFeed(RssSiteNewsFeed): 21 | feed_type = Atom1Feed 22 | subtitle = RssSiteNewsFeed.description 23 | 24 | -------------------------------------------------------------------------------- /media/js/tinymce/plugins/advhr/editor_plugin.js: -------------------------------------------------------------------------------- 1 | (function(){tinymce.create("tinymce.plugins.AdvancedHRPlugin",{init:function(a,b){a.addCommand("mceAdvancedHr",function(){a.windowManager.open({file:b+"/rule.htm",width:250+parseInt(a.getLang("advhr.delta_width",0)),height:160+parseInt(a.getLang("advhr.delta_height",0)),inline:1},{plugin_url:b})});a.addButton("advhr",{title:"advhr.advhr_desc",cmd:"mceAdvancedHr"});a.onNodeChange.add(function(d,c,e){c.setActive("advhr",e.nodeName=="HR")});a.onClick.add(function(c,d){d=d.target;if(d.nodeName==="HR"){c.selection.select(d)}})},getInfo:function(){return{longname:"Advanced HR",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advhr",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("advhr",tinymce.plugins.AdvancedHRPlugin)})(); -------------------------------------------------------------------------------- /media/js/tinymce/themes/advanced/skins/o2k7/ui_silver.css: -------------------------------------------------------------------------------- 1 | /* Silver */ 2 | .o2k7SkinSilver .mceToolbar .mceToolbarStart span, .o2k7SkinSilver .mceButton, .o2k7SkinSilver .mceSplitButton, .o2k7SkinSilver .mceSeparator, .o2k7SkinSilver .mceSplitButton a.mceOpen, .o2k7SkinSilver .mceListBox a.mceOpen {background-image:url(img/button_bg_silver.png)} 3 | .o2k7SkinSilver table, .o2k7SkinSilver .mceMenuItemTitle a {background:#eee} 4 | .o2k7SkinSilver .mceListBox .mceText {background:#FFF} 5 | .o2k7SkinSilver .mceExternalToolbar, .o2k7SkinSilver .mceListBox .mceText, .o2k7SkinSilver div.mceMenu, .o2k7SkinSilver table.mceLayout, .o2k7SkinSilver .mceMenuItemTitle a, .o2k7SkinSilver table.mceLayout tr.mceFirst td, .o2k7SkinSilver table.mceLayout, .o2k7SkinSilver .mceMenuItemTitle a, .o2k7SkinSilver table.mceLayout tr.mceLast td, .o2k7SkinSilver .mceIframeContainer {border-color: #bbb} 6 | -------------------------------------------------------------------------------- /media/js/tinymce/plugins/example/editor_plugin.js: -------------------------------------------------------------------------------- 1 | (function(){tinymce.PluginManager.requireLangPack("example");tinymce.create("tinymce.plugins.ExamplePlugin",{init:function(a,b){a.addCommand("mceExample",function(){a.windowManager.open({file:b+"/dialog.htm",width:320+parseInt(a.getLang("example.delta_width",0)),height:120+parseInt(a.getLang("example.delta_height",0)),inline:1},{plugin_url:b,some_custom_arg:"custom arg"})});a.addButton("example",{title:"example.desc",cmd:"mceExample",image:b+"/img/example.gif"});a.onNodeChange.add(function(d,c,e){c.setActive("example",e.nodeName=="IMG")})},createControl:function(b,a){return null},getInfo:function(){return{longname:"Example plugin",author:"Some author",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/example",version:"1.0"}}});tinymce.PluginManager.add("example",tinymce.plugins.ExamplePlugin)})(); -------------------------------------------------------------------------------- /media/js/tinymce/plugins/preview/example.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 18 | Example of a custom preview page 19 | 20 | 21 | 22 | Editor contents:
23 |
24 | 25 |
26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /media/js/tinymce/plugins/paste/pasteword.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | {#paste.paste_word_desc} 4 | 5 | 6 | 7 | 8 |
9 |
{#paste.paste_word_desc}
10 | 11 |
{#paste_dlg.word_title}
12 | 13 |
14 | 15 |
16 | 17 | 18 |
19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /media/js/tinymce/plugins/iespell/editor_plugin.js: -------------------------------------------------------------------------------- 1 | (function(){tinymce.create("tinymce.plugins.IESpell",{init:function(a,b){var c=this,d;if(!tinymce.isIE){return}c.editor=a;a.addCommand("mceIESpell",function(){try{d=new ActiveXObject("ieSpell.ieSpellExtension");d.CheckDocumentNode(a.getDoc().documentElement)}catch(f){if(f.number==-2146827859){a.windowManager.confirm(a.getLang("iespell.download"),function(e){if(e){window.open("http://www.iespell.com/download.php","ieSpellDownload","")}})}else{a.windowManager.alert("Error Loading ieSpell: Exception "+f.number)}}});a.addButton("iespell",{title:"iespell.iespell_desc",cmd:"mceIESpell"})},getInfo:function(){return{longname:"IESpell (IE Only)",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/iespell",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("iespell",tinymce.plugins.IESpell)})(); -------------------------------------------------------------------------------- /media/js/tinymce/plugins/style/css/props.css: -------------------------------------------------------------------------------- 1 | #text_font {width:250px;} 2 | #text_size {width:70px;} 3 | .mceAddSelectValue {background:#DDD;} 4 | select, #block_text_indent, #box_width, #box_height, #box_padding_top, #box_padding_right, #box_padding_bottom, #box_padding_left {width:70px;} 5 | #box_margin_top, #box_margin_right, #box_margin_bottom, #box_margin_left, #positioning_width, #positioning_height, #positioning_zindex {width:70px;} 6 | #positioning_placement_top, #positioning_placement_right, #positioning_placement_bottom, #positioning_placement_left {width:70px;} 7 | #positioning_clip_top, #positioning_clip_right, #positioning_clip_bottom, #positioning_clip_left {width:70px;} 8 | .panel_wrapper div.current {padding-top:10px;height:230px;} 9 | .delim {border-left:1px solid gray;} 10 | .tdelim {border-bottom:1px solid gray;} 11 | #block_display {width:145px;} 12 | #list_type {width:115px;} 13 | .disabled {background:#EEE;} 14 | -------------------------------------------------------------------------------- /media/js/tinymce/plugins/style/editor_plugin.js: -------------------------------------------------------------------------------- 1 | (function(){tinymce.create("tinymce.plugins.StylePlugin",{init:function(a,b){a.addCommand("mceStyleProps",function(){a.windowManager.open({file:b+"/props.htm",width:480+parseInt(a.getLang("style.delta_width",0)),height:320+parseInt(a.getLang("style.delta_height",0)),inline:1},{plugin_url:b,style_text:a.selection.getNode().style.cssText})});a.addCommand("mceSetElementStyle",function(d,c){if(e=a.selection.getNode()){a.dom.setAttrib(e,"style",c);a.execCommand("mceRepaint")}});a.onNodeChange.add(function(d,c,f){c.setDisabled("styleprops",f.nodeName==="BODY")});a.addButton("styleprops",{title:"style.desc",cmd:"mceStyleProps"})},getInfo:function(){return{longname:"Style",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/style",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("style",tinymce.plugins.StylePlugin)})(); -------------------------------------------------------------------------------- /media/js/tinymce/plugins/nonbreaking/editor_plugin.js: -------------------------------------------------------------------------------- 1 | (function(){tinymce.create("tinymce.plugins.Nonbreaking",{init:function(a,b){var c=this;c.editor=a;a.addCommand("mceNonBreaking",function(){a.execCommand("mceInsertContent",false,(a.plugins.visualchars&&a.plugins.visualchars.state)?' ':" ")});a.addButton("nonbreaking",{title:"nonbreaking.nonbreaking_desc",cmd:"mceNonBreaking"});if(a.getParam("nonbreaking_force_tab")){a.onKeyDown.add(function(d,f){if(tinymce.isIE&&f.keyCode==9){d.execCommand("mceNonBreaking");d.execCommand("mceNonBreaking");d.execCommand("mceNonBreaking");tinymce.dom.Event.cancel(f)}})}},getInfo:function(){return{longname:"Nonbreaking space",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/nonbreaking",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("nonbreaking",tinymce.plugins.Nonbreaking)})(); -------------------------------------------------------------------------------- /media/js/tinymce/plugins/advlink/editor_plugin.js: -------------------------------------------------------------------------------- 1 | (function(){tinymce.create("tinymce.plugins.AdvancedLinkPlugin",{init:function(a,b){this.editor=a;a.addCommand("mceAdvLink",function(){var c=a.selection;if(c.isCollapsed()&&!a.dom.getParent(c.getNode(),"A")){return}a.windowManager.open({file:b+"/link.htm",width:480+parseInt(a.getLang("advlink.delta_width",0)),height:400+parseInt(a.getLang("advlink.delta_height",0)),inline:1},{plugin_url:b})});a.addButton("link",{title:"advlink.link_desc",cmd:"mceAdvLink"});a.addShortcut("ctrl+k","advlink.advlink_desc","mceAdvLink");a.onNodeChange.add(function(d,c,f,e){c.setDisabled("link",e&&f.nodeName!="A");c.setActive("link",f.nodeName=="A"&&!f.name)})},getInfo:function(){return{longname:"Advanced link",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advlink",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("advlink",tinymce.plugins.AdvancedLinkPlugin)})(); -------------------------------------------------------------------------------- /media/js/tinymce/plugins/example/dialog.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {#example_dlg.title} 5 | 6 | 7 | 8 | 9 | 10 |
11 |

Here is a example dialog.

12 |

Selected text:

13 |

Custom arg:

14 | 15 |
16 | 17 | 18 |
19 |
20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /media/css/map.css: -------------------------------------------------------------------------------- 1 | #map { 2 | border: 2px solid #745C1B; 3 | background: #fff url(../img/noise.png); 4 | border-radius: 5px; 5 | margin: 1em; 6 | width: 300px; 7 | height: 280px; 8 | } 9 | 10 | svg path { stroke-linejoin: round } 11 | 12 | svg .sea { 13 | fill: #fff; 14 | stroke-width: .25px; 15 | } 16 | 17 | svg .graticule { 18 | fill: none; 19 | stroke-width: .2px; 20 | } 21 | svg .bg, svg .bgback { 22 | stroke: none; 23 | fill: #fff; 24 | fill-opacity: 1; 25 | } 26 | svg .bgstroke { 27 | stroke: #7C5B27; 28 | stroke-width:.7px; 29 | fill:none; 30 | } 31 | svg .context { 32 | stroke: #D1BEB0; 33 | stroke-opacity: .3; 34 | fill: #D1BEB0; 35 | fill-opacity: .23; 36 | } 37 | svg .fg { 38 | stroke: #cbb; 39 | stroke-opacity: 1; 40 | stroke-dasharray: 3,5; 41 | fill-opacity: .5; 42 | } 43 | svg .fg:hover { 44 | fill: #ada; 45 | fill-opacity: .37; 46 | } 47 | 48 | .k-layer-toggle h2 { 49 | margin: 20px 0 10px; 50 | font-size: 20px; 51 | } 52 | .k-layer-toggle label { 53 | margin-left: 3px; 54 | } 55 | 56 | -------------------------------------------------------------------------------- /media/js/tinymce/plugins/searchreplace/editor_plugin.js: -------------------------------------------------------------------------------- 1 | (function(){tinymce.create("tinymce.plugins.SearchReplacePlugin",{init:function(a,c){function b(d){a.windowManager.open({file:c+"/searchreplace.htm",width:420+parseInt(a.getLang("searchreplace.delta_width",0)),height:170+parseInt(a.getLang("searchreplace.delta_height",0)),inline:1,auto_focus:0},{mode:d,search_string:a.selection.getContent({format:"text"}),plugin_url:c})}a.addCommand("mceSearch",function(){b("search")});a.addCommand("mceReplace",function(){b("replace")});a.addButton("search",{title:"searchreplace.search_desc",cmd:"mceSearch"});a.addButton("replace",{title:"searchreplace.replace_desc",cmd:"mceReplace"});a.addShortcut("ctrl+f","searchreplace.search_desc","mceSearch")},getInfo:function(){return{longname:"Search/Replace",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/searchreplace",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("searchreplace",tinymce.plugins.SearchReplacePlugin)})(); -------------------------------------------------------------------------------- /media/js/tinymce/plugins/preview/editor_plugin.js: -------------------------------------------------------------------------------- 1 | (function(){tinymce.create("tinymce.plugins.Preview",{init:function(a,b){var d=this,c=tinymce.explode(a.settings.content_css);d.editor=a;tinymce.each(c,function(f,e){c[e]=a.documentBaseURI.toAbsolute(f)});a.addCommand("mcePreview",function(){a.windowManager.open({file:a.getParam("plugin_preview_pageurl",b+"/preview.html"),width:parseInt(a.getParam("plugin_preview_width","550")),height:parseInt(a.getParam("plugin_preview_height","600")),resizable:"yes",scrollbars:"yes",popup_css:c?c.join(","):a.baseURI.toAbsolute("themes/"+a.settings.theme+"/skins/"+a.settings.skin+"/content.css"),inline:a.getParam("plugin_preview_inline",1)},{base:a.documentBaseURI.getURI()})});a.addButton("preview",{title:"preview.preview_desc",cmd:"mcePreview"})},getInfo:function(){return{longname:"Preview",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/preview",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("preview",tinymce.plugins.Preview)})(); -------------------------------------------------------------------------------- /media/js/tinymce/plugins/print/editor_plugin_src.js: -------------------------------------------------------------------------------- 1 | /** 2 | * editor_plugin_src.js 3 | * 4 | * Copyright 2009, Moxiecode Systems AB 5 | * Released under LGPL License. 6 | * 7 | * License: http://tinymce.moxiecode.com/license 8 | * Contributing: http://tinymce.moxiecode.com/contributing 9 | */ 10 | 11 | (function() { 12 | tinymce.create('tinymce.plugins.Print', { 13 | init : function(ed, url) { 14 | ed.addCommand('mcePrint', function() { 15 | ed.getWin().print(); 16 | }); 17 | 18 | ed.addButton('print', {title : 'print.print_desc', cmd : 'mcePrint'}); 19 | }, 20 | 21 | getInfo : function() { 22 | return { 23 | longname : 'Print', 24 | author : 'Moxiecode Systems AB', 25 | authorurl : 'http://tinymce.moxiecode.com', 26 | infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/print', 27 | version : tinymce.majorVersion + "." + tinymce.minorVersion 28 | }; 29 | } 30 | }); 31 | 32 | // Register plugin 33 | tinymce.PluginManager.add('print', tinymce.plugins.Print); 34 | })(); 35 | -------------------------------------------------------------------------------- /media/js/tinymce/plugins/paste/js/pastetext.js: -------------------------------------------------------------------------------- 1 | tinyMCEPopup.requireLangPack(); 2 | 3 | var PasteTextDialog = { 4 | init : function() { 5 | this.resize(); 6 | }, 7 | 8 | insert : function() { 9 | var h = tinyMCEPopup.dom.encode(document.getElementById('content').value), lines; 10 | 11 | // Convert linebreaks into paragraphs 12 | if (document.getElementById('linebreaks').checked) { 13 | lines = h.split(/\r?\n/); 14 | if (lines.length > 1) { 15 | h = ''; 16 | tinymce.each(lines, function(row) { 17 | h += '

' + row + '

'; 18 | }); 19 | } 20 | } 21 | 22 | tinyMCEPopup.editor.execCommand('mceInsertClipboardContent', false, {content : h}); 23 | tinyMCEPopup.close(); 24 | }, 25 | 26 | resize : function() { 27 | var vp = tinyMCEPopup.dom.getViewPort(window), el; 28 | 29 | el = document.getElementById('content'); 30 | 31 | el.style.width = (vp.w - 20) + 'px'; 32 | el.style.height = (vp.h - 90) + 'px'; 33 | } 34 | }; 35 | 36 | tinyMCEPopup.onInit.add(PasteTextDialog.init, PasteTextDialog); 37 | -------------------------------------------------------------------------------- /bt/templatetags/bt.py: -------------------------------------------------------------------------------- 1 | from django.template import Library, Variable 2 | from django.conf import settings 3 | from django import template 4 | import random 5 | from nnmon.bt.models import COUNTRIES, STATUS, TYPES, MEDIA 6 | 7 | register = Library() 8 | 9 | @register.simple_tag 10 | def root_url(): 11 | return settings.ROOT_URL 12 | 13 | @register.simple_tag 14 | def media_url(): 15 | return settings.MEDIA_URL 16 | 17 | country_map=dict(COUNTRIES) 18 | @register.filter(name='country') 19 | def country(code): 20 | return country_map[code] 21 | 22 | status_map=dict(STATUS) 23 | @register.filter(name='status') 24 | def status(code): 25 | try: 26 | return status_map[code] 27 | except: 28 | return code 29 | 30 | type_map=dict(TYPES) 31 | @register.filter(name='type') 32 | def type(code): 33 | try: 34 | return type_map[code] 35 | except: 36 | return code 37 | 38 | media_map=dict(MEDIA) 39 | @register.filter(name='media') 40 | def media(code): 41 | try: 42 | return media_map[code] 43 | except: 44 | return code 45 | -------------------------------------------------------------------------------- /media/js/tinymce/themes/advanced/js/anchor.js: -------------------------------------------------------------------------------- 1 | tinyMCEPopup.requireLangPack(); 2 | 3 | var AnchorDialog = { 4 | init : function(ed) { 5 | var action, elm, f = document.forms[0]; 6 | 7 | this.editor = ed; 8 | elm = ed.dom.getParent(ed.selection.getNode(), 'A'); 9 | v = ed.dom.getAttrib(elm, 'name'); 10 | 11 | if (v) { 12 | this.action = 'update'; 13 | f.anchorName.value = v; 14 | } 15 | 16 | f.insert.value = ed.getLang(elm ? 'update' : 'insert'); 17 | }, 18 | 19 | update : function() { 20 | var ed = this.editor, elm, name = document.forms[0].anchorName.value; 21 | 22 | tinyMCEPopup.restoreSelection(); 23 | 24 | if (this.action != 'update') 25 | ed.selection.collapse(1); 26 | 27 | elm = ed.dom.getParent(ed.selection.getNode(), 'A'); 28 | if (elm) 29 | elm.name = name; 30 | else 31 | ed.execCommand('mceInsertContent', 0, ed.dom.createHTML('a', {name : name, 'class' : 'mceItemAnchor'}, '')); 32 | 33 | tinyMCEPopup.close(); 34 | } 35 | }; 36 | 37 | tinyMCEPopup.onInit.add(AnchorDialog.init, AnchorDialog); 38 | -------------------------------------------------------------------------------- /templates/registration/password_reset_confirm.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | {% load i18n %} 3 | 4 | {% block title %}{% trans 'Password reset' %}{% endblock %} 5 | 6 | {% block content %} 7 | 8 | {% if validlink %} 9 | 10 |

{% trans 'Enter new password' %}

11 | 12 |

{% trans "Please enter your new password twice so we can verify you typed it in correctly." %}

13 | 14 |
{% csrf_token %} 15 | {{ form.new_password1.errors }} 16 |

{{ form.new_password1 }}

17 | {{ form.new_password2.errors }} 18 |

{{ form.new_password2 }}

19 |

20 |
21 | 22 | {% else %} 23 | 24 |

{% trans 'Password reset unsuccessful' %}

25 | 26 |

{% trans "The password reset link was invalid, possibly because it has already been used. Please request a new password reset." %}

27 | 28 | {% endif %} 29 | 30 | {% endblock %} 31 | -------------------------------------------------------------------------------- /media/js/tinymce/themes/advanced/anchor.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {#advanced_dlg.anchor_title} 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
{#advanced_dlg.anchor_title}
{#advanced_dlg.anchor_name}:
19 | 20 |
21 | 22 | 23 |
24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | from setuptools import setup, find_packages 3 | import sys, os 4 | from babel.messages import frontend as babel 5 | version = '0.00000000000001' 6 | 7 | setup(name='nnmon', 8 | version=version, 9 | description="A network neutrality bugtracker", 10 | long_description="""reporting platform for the nnmon project""", 11 | classifiers=[], # Get strings from http://pypi.python.org/pypi?%3Aaction=list_classifiers 12 | keywords='network-neutrality reporting form', 13 | author='Stefan Marsirske', 14 | author_email='stefan.marsiske@gmail.com', 15 | url='http://nnmon.lqdn.fr', 16 | license='AGPLv3', 17 | packages=find_packages(exclude=['ez_setup', 'examples', 'tests']), 18 | include_package_data=True, 19 | zip_safe=False, 20 | install_requires=[ 21 | # -*- Extra requirements: -*- 22 | ], 23 | entry_points=""" 24 | # -*- Entry points: -*- 25 | """, 26 | cmdclass = {'compile_catalog': babel.compile_catalog, 27 | 'extract_messages': babel.extract_messages, 28 | 'init_catalog': babel.init_catalog, 29 | 'update_catalog': babel.update_catalog}, 30 | ) 31 | -------------------------------------------------------------------------------- /media/js/editor.js: -------------------------------------------------------------------------------- 1 | tinyMCE.init({ 2 | mode : "textareas", 3 | width : "180", 4 | height : "600", 5 | theme : "advanced", 6 | theme_advanced_toolbar_align : "left", 7 | theme_advanced_toolbar_location : "top", 8 | theme_advanced_buttons1 : "bold,italic,underline,bullist,numlist,outdent,indent,blockquote,undo,", 9 | theme_advanced_buttons2 : "", 10 | theme_advanced_buttons3 : "", 11 | plugins : "paste", 12 | paste_auto_cleanup_on_paste : true, 13 | paste_strip_class_attributes: 'all', 14 | paste_remove_styles: true, 15 | valid_elements : "@[id|title|dird.autoresize_min_height){i=f}g.setStyle(g.get(a.id+"_ifr"),"height",i+"px");if(d.throbbing){a.setProgressState(false);a.setProgressState(true)}}d.editor=a;d.autoresize_min_height=a.getElement().offsetHeight;a.onChange.add(b);a.onSetContent.add(b);a.onPaste.add(b);a.onKeyUp.add(b);a.onPostRender.add(b);if(a.getParam("autoresize_on_init",true)){a.onInit.add(function(f,e){f.setProgressState(true);d.throbbing=true;f.getBody().style.overflowY="hidden"});a.onLoadContent.add(function(f,e){b();setTimeout(function(){b();f.setProgressState(false);d.throbbing=false},1250)})}a.addCommand("mceAutoResize",b)},getInfo:function(){return{longname:"Auto Resize",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autoresize",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("autoresize",tinymce.plugins.AutoResizePlugin)})(); -------------------------------------------------------------------------------- /media/js/tinymce/plugins/xhtmlxtras/langs/en_dlg.js: -------------------------------------------------------------------------------- 1 | tinyMCE.addI18n('en.xhtmlxtras_dlg',{ 2 | attribute_label_title:"Title", 3 | attribute_label_id:"ID", 4 | attribute_label_class:"Class", 5 | attribute_label_style:"Style", 6 | attribute_label_cite:"Cite", 7 | attribute_label_datetime:"Date/Time", 8 | attribute_label_langdir:"Text Direction", 9 | attribute_option_ltr:"Left to right", 10 | attribute_option_rtl:"Right to left", 11 | attribute_label_langcode:"Language", 12 | attribute_label_tabindex:"TabIndex", 13 | attribute_label_accesskey:"AccessKey", 14 | attribute_events_tab:"Events", 15 | attribute_attrib_tab:"Attributes", 16 | general_tab:"General", 17 | attrib_tab:"Attributes", 18 | events_tab:"Events", 19 | fieldset_general_tab:"General Settings", 20 | fieldset_attrib_tab:"Element Attributes", 21 | fieldset_events_tab:"Element Events", 22 | title_ins_element:"Insertion Element", 23 | title_del_element:"Deletion Element", 24 | title_acronym_element:"Acronym Element", 25 | title_abbr_element:"Abbreviation Element", 26 | title_cite_element:"Citation Element", 27 | remove:"Remove", 28 | insert_date:"Insert current date/time", 29 | option_ltr:"Left to right", 30 | option_rtl:"Right to left", 31 | attribs_title:"Insert/Edit Attributes" 32 | }); -------------------------------------------------------------------------------- /media/js/tinymce/themes/advanced/source_editor.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | {#advanced_dlg.code_title} 4 | 5 | 6 | 7 | 8 |
9 |
{#advanced_dlg.code_title}
10 | 11 |
12 | 13 |
14 | 15 |
16 | 17 | 18 | 19 |
20 | 21 | 22 |
23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /media/js/tinymce/plugins/paste/pastetext.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | {#paste.paste_text_desc} 4 | 5 | 6 | 7 | 8 |
9 |
{#paste.paste_text_desc}
10 | 11 |
12 | 13 |
14 | 15 |
16 | 17 |
{#paste_dlg.text_title}
18 | 19 | 20 | 21 |
22 | 23 | 24 |
25 |
26 | 27 | -------------------------------------------------------------------------------- /media/js/tinymce/plugins/directionality/editor_plugin.js: -------------------------------------------------------------------------------- 1 | (function(){tinymce.create("tinymce.plugins.Directionality",{init:function(a,b){var c=this;c.editor=a;a.addCommand("mceDirectionLTR",function(){var d=a.dom.getParent(a.selection.getNode(),a.dom.isBlock);if(d){if(a.dom.getAttrib(d,"dir")!="ltr"){a.dom.setAttrib(d,"dir","ltr")}else{a.dom.setAttrib(d,"dir","")}}a.nodeChanged()});a.addCommand("mceDirectionRTL",function(){var d=a.dom.getParent(a.selection.getNode(),a.dom.isBlock);if(d){if(a.dom.getAttrib(d,"dir")!="rtl"){a.dom.setAttrib(d,"dir","rtl")}else{a.dom.setAttrib(d,"dir","")}}a.nodeChanged()});a.addButton("ltr",{title:"directionality.ltr_desc",cmd:"mceDirectionLTR"});a.addButton("rtl",{title:"directionality.rtl_desc",cmd:"mceDirectionRTL"});a.onNodeChange.add(c._nodeChange,c)},getInfo:function(){return{longname:"Directionality",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/directionality",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_nodeChange:function(b,a,e){var d=b.dom,c;e=d.getParent(e,d.isBlock);if(!e){a.setDisabled("ltr",1);a.setDisabled("rtl",1);return}c=d.getAttrib(e,"dir");a.setActive("ltr",c=="ltr");a.setDisabled("ltr",0);a.setActive("rtl",c=="rtl");a.setDisabled("rtl",0)}});tinymce.PluginManager.add("directionality",tinymce.plugins.Directionality)})(); -------------------------------------------------------------------------------- /media/js/tinymce/plugins/media/css/media.css: -------------------------------------------------------------------------------- 1 | #id, #name, #hspace, #vspace, #class_name, #align { width: 100px } 2 | #hspace, #vspace { width: 50px } 3 | #flash_quality, #flash_align, #flash_scale, #flash_salign, #flash_wmode { width: 100px } 4 | #flash_base, #flash_flashvars { width: 240px } 5 | #width, #height { width: 40px } 6 | #src, #media_type { width: 250px } 7 | #class { width: 120px } 8 | #prev { margin: 0; border: 1px solid black; width: 380px; height: 230px; overflow: auto } 9 | .panel_wrapper div.current { height: 390px; overflow: auto } 10 | #flash_options, #shockwave_options, #qt_options, #wmp_options, #rmp_options { display: none } 11 | .mceAddSelectValue { background-color: #DDDDDD } 12 | #qt_starttime, #qt_endtime, #qt_fov, #qt_href, #qt_moveid, #qt_moviename, #qt_node, #qt_pan, #qt_qtsrc, #qt_qtsrcchokespeed, #qt_target, #qt_tilt, #qt_urlsubstituten, #qt_volume { width: 70px } 13 | #wmp_balance, #wmp_baseurl, #wmp_captioningid, #wmp_currentmarker, #wmp_currentposition, #wmp_defaultframe, #wmp_playcount, #wmp_rate, #wmp_uimode, #wmp_volume { width: 70px } 14 | #rmp_console, #rmp_numloop, #rmp_controls, #rmp_scriptcallbacks { width: 70px } 15 | #shockwave_swvolume, #shockwave_swframe, #shockwave_swurl, #shockwave_swstretchvalign, #shockwave_swstretchhalign, #shockwave_swstretchstyle { width: 90px } 16 | #qt_qtsrc { width: 200px } 17 | -------------------------------------------------------------------------------- /media/js/tinymce/plugins/noneditable/editor_plugin.js: -------------------------------------------------------------------------------- 1 | (function(){var a=tinymce.dom.Event;tinymce.create("tinymce.plugins.NonEditablePlugin",{init:function(d,e){var f=this,c,b;f.editor=d;c=d.getParam("noneditable_editable_class","mceEditable");b=d.getParam("noneditable_noneditable_class","mceNonEditable");d.onNodeChange.addToTop(function(h,g,k){var j,i;j=h.dom.getParent(h.selection.getStart(),function(l){return h.dom.hasClass(l,b)});i=h.dom.getParent(h.selection.getEnd(),function(l){return h.dom.hasClass(l,b)});if(j||i){f._setDisabled(1);return false}else{f._setDisabled(0)}})},getInfo:function(){return{longname:"Non editable elements",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/noneditable",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_block:function(c,d){var b=d.keyCode;if((b>32&&b<41)||(b>111&&b<124)){return}return a.cancel(d)},_setDisabled:function(d){var c=this,b=c.editor;tinymce.each(b.controlManager.controls,function(e){e.setDisabled(d)});if(d!==c.disabled){if(d){b.onKeyDown.addToTop(c._block);b.onKeyPress.addToTop(c._block);b.onKeyUp.addToTop(c._block);b.onPaste.addToTop(c._block)}else{b.onKeyDown.remove(c._block);b.onKeyPress.remove(c._block);b.onKeyUp.remove(c._block);b.onPaste.remove(c._block)}c.disabled=d}}});tinymce.PluginManager.add("noneditable",tinymce.plugins.NonEditablePlugin)})(); -------------------------------------------------------------------------------- /media/js/tinymce/plugins/visualchars/editor_plugin.js: -------------------------------------------------------------------------------- 1 | (function(){tinymce.create("tinymce.plugins.VisualChars",{init:function(a,b){var c=this;c.editor=a;a.addCommand("mceVisualChars",c._toggleVisualChars,c);a.addButton("visualchars",{title:"visualchars.desc",cmd:"mceVisualChars"});a.onBeforeGetContent.add(function(d,e){if(c.state&&e.format!="raw"&&!e.draft){c.state=true;c._toggleVisualChars(false)}})},getInfo:function(){return{longname:"Visual characters",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/visualchars",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_toggleVisualChars:function(m){var p=this,k=p.editor,a,g,j,n=k.getDoc(),o=k.getBody(),l,q=k.selection,e,c,f;p.state=!p.state;k.controlManager.setActive("visualchars",p.state);if(m){f=q.getBookmark()}if(p.state){a=[];tinymce.walk(o,function(b){if(b.nodeType==3&&b.nodeValue&&b.nodeValue.indexOf("\u00a0")!=-1){a.push(b)}},"childNodes");for(g=0;g$1');c=k.dom.create("div",null,l);while(node=c.lastChild){k.dom.insertAfter(node,a[g])}k.dom.remove(a[g])}}else{a=k.dom.select("span.mceItemNbsp",o);for(g=a.length-1;g>=0;g--){k.dom.remove(a[g],1)}}q.moveToBookmark(f)}});tinymce.PluginManager.add("visualchars",tinymce.plugins.VisualChars)})(); -------------------------------------------------------------------------------- /media/js/tinymce/plugins/tabfocus/editor_plugin.js: -------------------------------------------------------------------------------- 1 | (function(){var c=tinymce.DOM,a=tinymce.dom.Event,d=tinymce.each,b=tinymce.explode;tinymce.create("tinymce.plugins.TabFocusPlugin",{init:function(f,g){function e(i,j){if(j.keyCode===9){return a.cancel(j)}}function h(l,p){var j,m,o,n,k;function q(i){o=c.getParent(l.id,"form");n=o.elements;if(o){d(n,function(s,r){if(s.id==l.id){j=r;return false}});if(i>0){for(m=j+1;m=0;m--){if(n[m].type!="hidden"){return n[m]}}}}return null}if(p.keyCode===9){k=b(l.getParam("tab_focus",l.getParam("tabfocus_elements",":prev,:next")));if(k.length==1){k[1]=k[0];k[0]=":prev"}if(p.shiftKey){if(k[0]==":prev"){n=q(-1)}else{n=c.get(k[0])}}else{if(k[1]==":next"){n=q(1)}else{n=c.get(k[1])}}if(n){if(l=tinymce.get(n.id||n.name)){l.focus()}else{window.setTimeout(function(){window.focus();n.focus()},10)}return a.cancel(p)}}}f.onKeyUp.add(e);if(tinymce.isGecko){f.onKeyPress.add(h);f.onKeyDown.add(e)}else{f.onKeyDown.add(h)}f.onInit.add(function(){d(c.select("a:first,a:last",f.getContainer()),function(i){a.add(i,"focus",function(){f.focus()})})})},getInfo:function(){return{longname:"Tabfocus",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/tabfocus",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("tabfocus",tinymce.plugins.TabFocusPlugin)})(); -------------------------------------------------------------------------------- /media/js/tinymce/plugins/emotions/editor_plugin_src.js: -------------------------------------------------------------------------------- 1 | /** 2 | * editor_plugin_src.js 3 | * 4 | * Copyright 2009, Moxiecode Systems AB 5 | * Released under LGPL License. 6 | * 7 | * License: http://tinymce.moxiecode.com/license 8 | * Contributing: http://tinymce.moxiecode.com/contributing 9 | */ 10 | 11 | (function(tinymce) { 12 | tinymce.create('tinymce.plugins.EmotionsPlugin', { 13 | init : function(ed, url) { 14 | // Register commands 15 | ed.addCommand('mceEmotion', function() { 16 | ed.windowManager.open({ 17 | file : url + '/emotions.htm', 18 | width : 250 + parseInt(ed.getLang('emotions.delta_width', 0)), 19 | height : 160 + parseInt(ed.getLang('emotions.delta_height', 0)), 20 | inline : 1 21 | }, { 22 | plugin_url : url 23 | }); 24 | }); 25 | 26 | // Register buttons 27 | ed.addButton('emotions', {title : 'emotions.emotions_desc', cmd : 'mceEmotion'}); 28 | }, 29 | 30 | getInfo : function() { 31 | return { 32 | longname : 'Emotions', 33 | author : 'Moxiecode Systems AB', 34 | authorurl : 'http://tinymce.moxiecode.com', 35 | infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/emotions', 36 | version : tinymce.majorVersion + "." + tinymce.minorVersion 37 | }; 38 | } 39 | }); 40 | 41 | // Register plugin 42 | tinymce.PluginManager.add('emotions', tinymce.plugins.EmotionsPlugin); 43 | })(tinymce); -------------------------------------------------------------------------------- /media/js/tinymce/plugins/pagebreak/editor_plugin.js: -------------------------------------------------------------------------------- 1 | (function(){tinymce.create("tinymce.plugins.PageBreakPlugin",{init:function(b,d){var f='',a="mcePageBreak",c=b.getParam("pagebreak_separator",""),e;e=new RegExp(c.replace(/[\?\.\*\[\]\(\)\{\}\+\^\$\:]/g,function(g){return"\\"+g}),"g");b.addCommand("mcePageBreak",function(){b.execCommand("mceInsertContent",0,f)});b.addButton("pagebreak",{title:"pagebreak.desc",cmd:a});b.onInit.add(function(){if(b.settings.content_css!==false){b.dom.loadCSS(d+"/css/content.css")}if(b.theme.onResolveName){b.theme.onResolveName.add(function(g,h){if(h.node.nodeName=="IMG"&&b.dom.hasClass(h.node,a)){h.name="pagebreak"}})}});b.onClick.add(function(g,h){h=h.target;if(h.nodeName==="IMG"&&g.dom.hasClass(h,a)){g.selection.select(h)}});b.onNodeChange.add(function(h,g,i){g.setActive("pagebreak",i.nodeName==="IMG"&&h.dom.hasClass(i,a))});b.onBeforeSetContent.add(function(g,h){h.content=h.content.replace(e,f)});b.onPostProcess.add(function(g,h){if(h.get){h.content=h.content.replace(/]+>/g,function(i){if(i.indexOf('class="mcePageBreak')!==-1){i=c}return i})}})},getInfo:function(){return{longname:"PageBreak",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/pagebreak",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("pagebreak",tinymce.plugins.PageBreakPlugin)})(); -------------------------------------------------------------------------------- /media/js/tinymce/plugins/advimage/langs/en_dlg.js: -------------------------------------------------------------------------------- 1 | tinyMCE.addI18n('en.advimage_dlg',{ 2 | tab_general:"General", 3 | tab_appearance:"Appearance", 4 | tab_advanced:"Advanced", 5 | general:"General", 6 | title:"Title", 7 | preview:"Preview", 8 | constrain_proportions:"Constrain proportions", 9 | langdir:"Language direction", 10 | langcode:"Language code", 11 | long_desc:"Long description link", 12 | style:"Style", 13 | classes:"Classes", 14 | ltr:"Left to right", 15 | rtl:"Right to left", 16 | id:"Id", 17 | map:"Image map", 18 | swap_image:"Swap image", 19 | alt_image:"Alternative image", 20 | mouseover:"for mouse over", 21 | mouseout:"for mouse out", 22 | misc:"Miscellaneous", 23 | example_img:"Appearance preview image", 24 | missing_alt:"Are you sure you want to continue without including an Image Description? Without it the image may not be accessible to some users with disabilities, or to those using a text browser, or browsing the Web with images turned off.", 25 | dialog_title:"Insert/edit image", 26 | src:"Image URL", 27 | alt:"Image description", 28 | list:"Image list", 29 | border:"Border", 30 | dimensions:"Dimensions", 31 | vspace:"Vertical space", 32 | hspace:"Horizontal space", 33 | align:"Alignment", 34 | align_baseline:"Baseline", 35 | align_top:"Top", 36 | align_middle:"Middle", 37 | align_bottom:"Bottom", 38 | align_texttop:"Text top", 39 | align_textbottom:"Text bottom", 40 | align_left:"Left", 41 | align_right:"Right", 42 | image_list:"Image list" 43 | }); -------------------------------------------------------------------------------- /media/js/tinymce/plugins/table/merge_cells.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {#table_dlg.merge_cells_title} 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
13 | {#table_dlg.merge_cells_title} 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 |
{#table_dlg.cols}:
{#table_dlg.rows}:
24 |
25 | 26 |
27 | 28 | 29 |
30 |
31 | 32 | 33 | -------------------------------------------------------------------------------- /bt/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | from bt import models 3 | 4 | class CommentInline(admin.TabularInline): 5 | model = models.Comment 6 | max_num = 1 7 | 8 | class ViolationAdmin(admin.ModelAdmin): 9 | list_display = ('state', 'country', 'operator', 'contract', 'resource_name', 'media', 'activationid') 10 | list_filter = ('state', 'operator_ref', 'contract', 'resource_name', 'media', 'country') 11 | inlines = [CommentInline, ] 12 | admin.site.register(models.Violation, ViolationAdmin) 13 | 14 | class CommentAdmin(admin.ModelAdmin): 15 | list_display = ('violation', 'submitter_name', 'comment') 16 | list_filter = ('violation', 'submitter_name') 17 | admin.site.register(models.Comment, CommentAdmin) 18 | 19 | class AttachmentAdmin(admin.ModelAdmin): 20 | list_display = ('name', 'comment') 21 | admin.site.register(models.Attachment, AttachmentAdmin) 22 | 23 | class ConfirmationAdmin(admin.ModelAdmin): 24 | list_display = ('violation', 'key') 25 | list_filter = ('violation__operator_ref', 'violation__contract', 'violation__resource_name', 'violation__media', 'violation__country') 26 | admin.site.register(models.Confirmation, ConfirmationAdmin) 27 | 28 | class FeaturedCaseAdmin(admin.ModelAdmin): 29 | pass 30 | admin.site.register(models.FeaturedCase, FeaturedCaseAdmin) 31 | 32 | class OperatorAdmin(admin.ModelAdmin): 33 | list_display = ("__unicode__", "reported_violations") 34 | search_fields = ('name', ) 35 | pass 36 | admin.site.register(models.Operator, OperatorAdmin) -------------------------------------------------------------------------------- /media/js/tinymce/plugins/advhr/js/rule.js: -------------------------------------------------------------------------------- 1 | var AdvHRDialog = { 2 | init : function(ed) { 3 | var dom = ed.dom, f = document.forms[0], n = ed.selection.getNode(), w; 4 | 5 | w = dom.getAttrib(n, 'width'); 6 | f.width.value = w ? parseInt(w) : (dom.getStyle('width') || ''); 7 | f.size.value = dom.getAttrib(n, 'size') || parseInt(dom.getStyle('height')) || ''; 8 | f.noshade.checked = !!dom.getAttrib(n, 'noshade') || !!dom.getStyle('border-width'); 9 | selectByValue(f, 'width2', w.indexOf('%') != -1 ? '%' : 'px'); 10 | }, 11 | 12 | update : function() { 13 | var ed = tinyMCEPopup.editor, h, f = document.forms[0], st = ''; 14 | 15 | h = '{%trans "Description" %} 5 |
6 |
{{obj.comment_set.all.0.comment|safe}}
7 | Submitter: {%if obj.comment_set.all.0.submitter_name%}{{obj.comment_set.all.0.submitter_name}}{%else%}{{obj.comment_set.all.0.submitter_email}}{%endif%} - {{obj.comment_set.all.0.timestamp|date:"SHORT_DATE_FORMAT" }} 8 | {%if obj.comment_set.all.0.attachment_set.all%} 9 |
10 | {% trans "Attachments" %} 11 |
    12 | {%for a in obj.comment_set.all.0.attachment_set.all%} 13 |
  • {{a.storage.name}}
  • 14 | {%endfor%} 15 |
16 |
17 | {%endif%} 18 |
19 | {%endif%} 20 |
    21 | {%if obj.media%}
  • {% trans "Media" %}: {{obj.media}}
  • {%endif%} 22 | {%if obj.resource_name%}
  • {% trans "Affected Resource/service" %}: {{obj.resource_name}}
  • {%endif%} 23 | {%if obj.type%}
  • {% trans "Type" %}: {{obj.type}}
  • {%endif%} 24 | {%if obj.temporary%}
  • {% trans "Temporary restriction" %}: {% trans "yes" %}
  • {%endif%} 25 | {%if obj.loophole%}
  • {% trans "Loophole offering" %}: {% trans yes %}}
  • {%endif%} 26 | {%if obj.contractual%}
  • {% trans "Contractual restriction" %}: {% trans "yes" %}
  • {%endif%} 27 |
28 | {%if obj.contract_excerpt%}{% trans "Contract excerpt" %}: {{obj.contract_excerpt|safe}}{%endif%} 29 | -------------------------------------------------------------------------------- /bt/api.py: -------------------------------------------------------------------------------- 1 | #from django.contrib.auth.models import User 2 | from tastypie import fields 3 | from tastypie.authorization import DjangoAuthorization 4 | from tastypie.resources import ModelResource, ALL, ALL_WITH_RELATIONS 5 | from bt.models import Violation, Operator 6 | 7 | 8 | #class UserResource(ModelResource): 9 | # class Meta: 10 | # queryset = User.objects.all() 11 | # resource_name = 'auth/user' 12 | # excludes = ['email', 'password', 'is_superuser'] 13 | 14 | class OperatorResource(ModelResource): 15 | 16 | class Meta: 17 | queryset = Operator.objects.all() 18 | list_allowed_methods = ['get', 'post'] 19 | detail_allowed_methods = ['get', 'post', 'put', 'delete'] 20 | resource_name = 'operators' 21 | authorization = DjangoAuthorization() 22 | filtering = { 23 | 'name': ALL, 24 | 'activationid': '', 25 | } 26 | 27 | 28 | class APIResource(ModelResource): 29 | operator = fields.ForeignKey(OperatorResource, 'operator_ref') 30 | # user = fields.ForeignKey(UserResource, 'user') 31 | 32 | class Meta: 33 | queryset = Violation.objects.all() 34 | list_allowed_methods = ['get', 'post'] 35 | detail_allowed_methods = ['get', 'post', 'put', 'delete'] 36 | resource_name = 'violations' 37 | authorization = DjangoAuthorization() 38 | filtering = { 39 | 'country': ALL, 40 | 'contract': ALL, 41 | 'operator_ref': ALL_WITH_RELATIONS, 42 | 'activationid': '', 43 | } 44 | -------------------------------------------------------------------------------- /media/js/tinymce/plugins/save/editor_plugin.js: -------------------------------------------------------------------------------- 1 | (function(){tinymce.create("tinymce.plugins.Save",{init:function(a,b){var c=this;c.editor=a;a.addCommand("mceSave",c._save,c);a.addCommand("mceCancel",c._cancel,c);a.addButton("save",{title:"save.save_desc",cmd:"mceSave"});a.addButton("cancel",{title:"save.cancel_desc",cmd:"mceCancel"});a.onNodeChange.add(c._nodeChange,c);a.addShortcut("ctrl+s",a.getLang("save.save_desc"),"mceSave")},getInfo:function(){return{longname:"Save",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/save",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_nodeChange:function(b,a,c){var b=this.editor;if(b.getParam("save_enablewhendirty")){a.setDisabled("save",!b.isDirty());a.setDisabled("cancel",!b.isDirty())}},_save:function(){var c=this.editor,a,e,d,b;a=tinymce.DOM.get(c.id).form||tinymce.DOM.getParent(c.id,"form");if(c.getParam("save_enablewhendirty")&&!c.isDirty()){return}tinyMCE.triggerSave();if(e=c.getParam("save_onsavecallback")){if(c.execCallback("save_onsavecallback",c)){c.startContent=tinymce.trim(c.getContent({format:"raw"}));c.nodeChanged()}return}if(a){c.isNotDirty=true;if(a.onsubmit==null||a.onsubmit()!=false){a.submit()}c.nodeChanged()}else{c.windowManager.alert("Error: No form element found.")}},_cancel:function(){var a=this.editor,c,b=tinymce.trim(a.startContent);if(c=a.getParam("save_oncancelcallback")){a.execCallback("save_oncancelcallback",a);return}a.setContent(b);a.undoManager.clear();a.nodeChanged()}});tinymce.PluginManager.add("save",tinymce.plugins.Save)})(); -------------------------------------------------------------------------------- /media/js/tinymce/plugins/template/template.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | {#template_dlg.title} 4 | 5 | 6 | 7 | 8 | 9 |
10 |
11 |
{#template_dlg.desc}
12 |
13 | 16 |
17 |
18 |
19 |
20 | {#template_dlg.preview} 21 | 22 |
23 |
24 | 25 |
26 | 27 | 28 |
29 |
30 | 31 | 32 | -------------------------------------------------------------------------------- /templates/registration/password_change_form.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | {% load i18n %} 3 | 4 | {% block title %}{% trans 'Password change' %}{% endblock %} 5 | 6 | {% block content %} 7 | 8 |
{% csrf_token %} 9 |
10 | {% if form.errors %} 11 |

12 | {% blocktrans count form.errors.items|length as counter %}Please correct the error below.{% plural %}Please correct the errors below.{% endblocktrans %} 13 |

14 | {% endif %} 15 | 16 |

{% trans "Please enter your old password, for security's sake, and then enter your new password twice so we can verify you typed it in correctly." %}

17 | 18 |
19 | 20 |
21 | {{ form.old_password.errors }} 22 | {{ form.old_password }} 23 |
24 | 25 |
26 | {{ form.new_password1.errors }} 27 | {{ form.new_password1 }} 28 |
29 | 30 |
31 | {{ form.new_password2.errors }} 32 | {{ form.new_password2 }} 33 |
34 | 35 |
36 | 37 |
38 | 39 |
40 | 41 | 42 |
43 |
44 | 45 | {% endblock %} 46 | -------------------------------------------------------------------------------- /media/js/tinymce/themes/advanced/skins/default/content.css: -------------------------------------------------------------------------------- 1 | body, td, pre {color:#000; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px; margin:8px;} 2 | body {background:#FFF;} 3 | body.mceForceColors {background:#FFF; color:#000;} 4 | h1 {font-size: 2em} 5 | h2 {font-size: 1.5em} 6 | h3 {font-size: 1.17em} 7 | h4 {font-size: 1em} 8 | h5 {font-size: .83em} 9 | h6 {font-size: .75em} 10 | .mceItemTable, .mceItemTable td, .mceItemTable th, .mceItemTable caption, .mceItemVisualAid {border: 1px dashed #BBB;} 11 | a.mceItemAnchor {display:inline-block; width:11px !important; height:11px !important; background:url(img/items.gif) no-repeat 0 0;} 12 | span.mceItemNbsp {background: #DDD} 13 | td.mceSelected, th.mceSelected {background-color:#3399ff !important} 14 | img {border:0;} 15 | table {cursor:default} 16 | table td, table th {cursor:text} 17 | ins {border-bottom:1px solid green; text-decoration: none; color:green} 18 | del {color:red; text-decoration:line-through} 19 | cite {border-bottom:1px dashed blue} 20 | acronym {border-bottom:1px dotted #CCC; cursor:help} 21 | abbr {border-bottom:1px dashed #CCC; cursor:help} 22 | 23 | /* IE */ 24 | * html body { 25 | scrollbar-3dlight-color:#F0F0EE; 26 | scrollbar-arrow-color:#676662; 27 | scrollbar-base-color:#F0F0EE; 28 | scrollbar-darkshadow-color:#DDD; 29 | scrollbar-face-color:#E0E0DD; 30 | scrollbar-highlight-color:#F0F0EE; 31 | scrollbar-shadow-color:#F0F0EE; 32 | scrollbar-track-color:#F5F5F5; 33 | } 34 | 35 | img:-moz-broken {-moz-force-broken-image-icon:1; width:24px; height:24px} 36 | font[face=mceinline] {font-family:inherit !important} 37 | -------------------------------------------------------------------------------- /media/js/script.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * $script.js Async loader & dependency manager 3 | * https://github.com/ded/script.js 4 | * (c) Dustin Diaz, Jacob Thornton 2011 5 | * License: MIT 6 | */ 7 | !function(a,b){typeof define=="function"?define(b):typeof module!="undefined"?module.exports=b():this[a]=b()}("$script",function(){function s(a,b,c){for(c=0,j=a.length;c ' : ' '); 21 | }); 22 | 23 | // Register buttons 24 | ed.addButton('nonbreaking', {title : 'nonbreaking.nonbreaking_desc', cmd : 'mceNonBreaking'}); 25 | 26 | if (ed.getParam('nonbreaking_force_tab')) { 27 | ed.onKeyDown.add(function(ed, e) { 28 | if (tinymce.isIE && e.keyCode == 9) { 29 | ed.execCommand('mceNonBreaking'); 30 | ed.execCommand('mceNonBreaking'); 31 | ed.execCommand('mceNonBreaking'); 32 | tinymce.dom.Event.cancel(e); 33 | } 34 | }); 35 | } 36 | }, 37 | 38 | getInfo : function() { 39 | return { 40 | longname : 'Nonbreaking space', 41 | author : 'Moxiecode Systems AB', 42 | authorurl : 'http://tinymce.moxiecode.com', 43 | infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/nonbreaking', 44 | version : tinymce.majorVersion + "." + tinymce.minorVersion 45 | }; 46 | } 47 | 48 | // Private methods 49 | }); 50 | 51 | // Register plugin 52 | tinymce.PluginManager.add('nonbreaking', tinymce.plugins.Nonbreaking); 53 | })(); -------------------------------------------------------------------------------- /media/js/tinymce/plugins/style/editor_plugin_src.js: -------------------------------------------------------------------------------- 1 | /** 2 | * editor_plugin_src.js 3 | * 4 | * Copyright 2009, Moxiecode Systems AB 5 | * Released under LGPL License. 6 | * 7 | * License: http://tinymce.moxiecode.com/license 8 | * Contributing: http://tinymce.moxiecode.com/contributing 9 | */ 10 | 11 | (function() { 12 | tinymce.create('tinymce.plugins.StylePlugin', { 13 | init : function(ed, url) { 14 | // Register commands 15 | ed.addCommand('mceStyleProps', function() { 16 | ed.windowManager.open({ 17 | file : url + '/props.htm', 18 | width : 480 + parseInt(ed.getLang('style.delta_width', 0)), 19 | height : 320 + parseInt(ed.getLang('style.delta_height', 0)), 20 | inline : 1 21 | }, { 22 | plugin_url : url, 23 | style_text : ed.selection.getNode().style.cssText 24 | }); 25 | }); 26 | 27 | ed.addCommand('mceSetElementStyle', function(ui, v) { 28 | if (e = ed.selection.getNode()) { 29 | ed.dom.setAttrib(e, 'style', v); 30 | ed.execCommand('mceRepaint'); 31 | } 32 | }); 33 | 34 | ed.onNodeChange.add(function(ed, cm, n) { 35 | cm.setDisabled('styleprops', n.nodeName === 'BODY'); 36 | }); 37 | 38 | // Register buttons 39 | ed.addButton('styleprops', {title : 'style.desc', cmd : 'mceStyleProps'}); 40 | }, 41 | 42 | getInfo : function() { 43 | return { 44 | longname : 'Style', 45 | author : 'Moxiecode Systems AB', 46 | authorurl : 'http://tinymce.moxiecode.com', 47 | infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/style', 48 | version : tinymce.majorVersion + "." + tinymce.minorVersion 49 | }; 50 | } 51 | }); 52 | 53 | // Register plugin 54 | tinymce.PluginManager.add('style', tinymce.plugins.StylePlugin); 55 | })(); -------------------------------------------------------------------------------- /media/js/tinymce/themes/advanced/js/source_editor.js: -------------------------------------------------------------------------------- 1 | tinyMCEPopup.requireLangPack(); 2 | tinyMCEPopup.onInit.add(onLoadInit); 3 | 4 | function saveContent() { 5 | tinyMCEPopup.editor.setContent(document.getElementById('htmlSource').value, {source_view : true}); 6 | tinyMCEPopup.close(); 7 | } 8 | 9 | function onLoadInit() { 10 | tinyMCEPopup.resizeToInnerSize(); 11 | 12 | // Remove Gecko spellchecking 13 | if (tinymce.isGecko) 14 | document.body.spellcheck = tinyMCEPopup.editor.getParam("gecko_spellcheck"); 15 | 16 | document.getElementById('htmlSource').value = tinyMCEPopup.editor.getContent({source_view : true}); 17 | 18 | if (tinyMCEPopup.editor.getParam("theme_advanced_source_editor_wrap", true)) { 19 | setWrap('soft'); 20 | document.getElementById('wraped').checked = true; 21 | } 22 | 23 | resizeInputs(); 24 | } 25 | 26 | function setWrap(val) { 27 | var v, n, s = document.getElementById('htmlSource'); 28 | 29 | s.wrap = val; 30 | 31 | if (!tinymce.isIE) { 32 | v = s.value; 33 | n = s.cloneNode(false); 34 | n.setAttribute("wrap", val); 35 | s.parentNode.replaceChild(n, s); 36 | n.value = v; 37 | } 38 | } 39 | 40 | function toggleWordWrap(elm) { 41 | if (elm.checked) 42 | setWrap('soft'); 43 | else 44 | setWrap('off'); 45 | } 46 | 47 | var wHeight=0, wWidth=0, owHeight=0, owWidth=0; 48 | 49 | function resizeInputs() { 50 | var el = document.getElementById('htmlSource'); 51 | 52 | if (!tinymce.isIE) { 53 | wHeight = self.innerHeight - 65; 54 | wWidth = self.innerWidth - 16; 55 | } else { 56 | wHeight = document.body.clientHeight - 70; 57 | wWidth = document.body.clientWidth - 16; 58 | } 59 | 60 | el.style.height = Math.abs(wHeight) + 'px'; 61 | el.style.width = Math.abs(wWidth) + 'px'; 62 | } 63 | -------------------------------------------------------------------------------- /media/js/tinymce/plugins/style/langs/en_dlg.js: -------------------------------------------------------------------------------- 1 | tinyMCE.addI18n('en.style_dlg',{ 2 | title:"Edit CSS Style", 3 | apply:"Apply", 4 | text_tab:"Text", 5 | background_tab:"Background", 6 | block_tab:"Block", 7 | box_tab:"Box", 8 | border_tab:"Border", 9 | list_tab:"List", 10 | positioning_tab:"Positioning", 11 | text_props:"Text", 12 | text_font:"Font", 13 | text_size:"Size", 14 | text_weight:"Weight", 15 | text_style:"Style", 16 | text_variant:"Variant", 17 | text_lineheight:"Line height", 18 | text_case:"Case", 19 | text_color:"Color", 20 | text_decoration:"Decoration", 21 | text_overline:"overline", 22 | text_underline:"underline", 23 | text_striketrough:"strikethrough", 24 | text_blink:"blink", 25 | text_none:"none", 26 | background_color:"Background color", 27 | background_image:"Background image", 28 | background_repeat:"Repeat", 29 | background_attachment:"Attachment", 30 | background_hpos:"Horizontal position", 31 | background_vpos:"Vertical position", 32 | block_wordspacing:"Word spacing", 33 | block_letterspacing:"Letter spacing", 34 | block_vertical_alignment:"Vertical alignment", 35 | block_text_align:"Text align", 36 | block_text_indent:"Text indent", 37 | block_whitespace:"Whitespace", 38 | block_display:"Display", 39 | box_width:"Width", 40 | box_height:"Height", 41 | box_float:"Float", 42 | box_clear:"Clear", 43 | padding:"Padding", 44 | same:"Same for all", 45 | top:"Top", 46 | right:"Right", 47 | bottom:"Bottom", 48 | left:"Left", 49 | margin:"Margin", 50 | style:"Style", 51 | width:"Width", 52 | height:"Height", 53 | color:"Color", 54 | list_type:"Type", 55 | bullet_image:"Bullet image", 56 | position:"Position", 57 | positioning_type:"Type", 58 | visibility:"Visibility", 59 | zindex:"Z-index", 60 | overflow:"Overflow", 61 | placement:"Placement", 62 | clip:"Clip" 63 | }); -------------------------------------------------------------------------------- /media/js/tinymce/plugins/preview/editor_plugin_src.js: -------------------------------------------------------------------------------- 1 | /** 2 | * editor_plugin_src.js 3 | * 4 | * Copyright 2009, Moxiecode Systems AB 5 | * Released under LGPL License. 6 | * 7 | * License: http://tinymce.moxiecode.com/license 8 | * Contributing: http://tinymce.moxiecode.com/contributing 9 | */ 10 | 11 | (function() { 12 | tinymce.create('tinymce.plugins.Preview', { 13 | init : function(ed, url) { 14 | var t = this, css = tinymce.explode(ed.settings.content_css); 15 | 16 | t.editor = ed; 17 | 18 | // Force absolute CSS urls 19 | tinymce.each(css, function(u, k) { 20 | css[k] = ed.documentBaseURI.toAbsolute(u); 21 | }); 22 | 23 | ed.addCommand('mcePreview', function() { 24 | ed.windowManager.open({ 25 | file : ed.getParam("plugin_preview_pageurl", url + "/preview.html"), 26 | width : parseInt(ed.getParam("plugin_preview_width", "550")), 27 | height : parseInt(ed.getParam("plugin_preview_height", "600")), 28 | resizable : "yes", 29 | scrollbars : "yes", 30 | popup_css : css ? css.join(',') : ed.baseURI.toAbsolute("themes/" + ed.settings.theme + "/skins/" + ed.settings.skin + "/content.css"), 31 | inline : ed.getParam("plugin_preview_inline", 1) 32 | }, { 33 | base : ed.documentBaseURI.getURI() 34 | }); 35 | }); 36 | 37 | ed.addButton('preview', {title : 'preview.preview_desc', cmd : 'mcePreview'}); 38 | }, 39 | 40 | getInfo : function() { 41 | return { 42 | longname : 'Preview', 43 | author : 'Moxiecode Systems AB', 44 | authorurl : 'http://tinymce.moxiecode.com', 45 | infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/preview', 46 | version : tinymce.majorVersion + "." + tinymce.minorVersion 47 | }; 48 | } 49 | }); 50 | 51 | // Register plugin 52 | tinymce.PluginManager.add('preview', tinymce.plugins.Preview); 53 | })(); -------------------------------------------------------------------------------- /templates/add.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | {% load bt %} 3 | {% load i18n %} 4 | {% block styles %} 5 | 6 | {% endblock %} 7 | {% block scripts %} 8 | 9 | 10 | 11 | 12 | 13 | 27 | {% endblock %} 28 | 29 | {%block content%} 30 |

{% trans "New Violation" %}

31 |
32 | {% for field in form %} 33 | {% if field.label = 'Resource' %}
{% trans "Provide optional details" %}
{%endif%} 34 |
35 |

36 | {{ field.errors }} 37 |

{{ field.help_text }}
38 | {{ field.label_tag }} {{ field }} 39 |

40 |
41 | {% endfor %} 42 |
43 | {% csrf_token %} 44 | 45 |
46 | {%endblock%} 47 | -------------------------------------------------------------------------------- /media/js/tinymce/plugins/paste/js/pasteword.js: -------------------------------------------------------------------------------- 1 | tinyMCEPopup.requireLangPack(); 2 | 3 | var PasteWordDialog = { 4 | init : function() { 5 | var ed = tinyMCEPopup.editor, el = document.getElementById('iframecontainer'), ifr, doc, css, cssHTML = ''; 6 | 7 | // Create iframe 8 | el.innerHTML = ''; 9 | ifr = document.getElementById('iframe'); 10 | doc = ifr.contentWindow.document; 11 | 12 | // Force absolute CSS urls 13 | css = [ed.baseURI.toAbsolute("themes/" + ed.settings.theme + "/skins/" + ed.settings.skin + "/content.css")]; 14 | css = css.concat(tinymce.explode(ed.settings.content_css) || []); 15 | tinymce.each(css, function(u) { 16 | cssHTML += ''; 17 | }); 18 | 19 | // Write content into iframe 20 | doc.open(); 21 | doc.write('' + cssHTML + ''); 22 | doc.close(); 23 | 24 | doc.designMode = 'on'; 25 | this.resize(); 26 | 27 | window.setTimeout(function() { 28 | ifr.contentWindow.focus(); 29 | }, 10); 30 | }, 31 | 32 | insert : function() { 33 | var h = document.getElementById('iframe').contentWindow.document.body.innerHTML; 34 | 35 | tinyMCEPopup.editor.execCommand('mceInsertClipboardContent', false, {content : h, wordContent : true}); 36 | tinyMCEPopup.close(); 37 | }, 38 | 39 | resize : function() { 40 | var vp = tinyMCEPopup.dom.getViewPort(window), el; 41 | 42 | el = document.getElementById('iframe'); 43 | 44 | if (el) { 45 | el.style.width = (vp.w - 20) + 'px'; 46 | el.style.height = (vp.h - 90) + 'px'; 47 | } 48 | } 49 | }; 50 | 51 | tinyMCEPopup.onInit.add(PasteWordDialog.init, PasteWordDialog); 52 | -------------------------------------------------------------------------------- /media/js/tinymce/plugins/advlink/langs/en_dlg.js: -------------------------------------------------------------------------------- 1 | tinyMCE.addI18n('en.advlink_dlg',{ 2 | title:"Insert/edit link", 3 | url:"Link URL", 4 | target:"Target", 5 | titlefield:"Title", 6 | is_email:"The URL you entered seems to be an email address, do you want to add the required mailto: prefix?", 7 | is_external:"The URL you entered seems to external link, do you want to add the required http:// prefix?", 8 | list:"Link list", 9 | general_tab:"General", 10 | popup_tab:"Popup", 11 | events_tab:"Events", 12 | advanced_tab:"Advanced", 13 | general_props:"General properties", 14 | popup_props:"Popup properties", 15 | event_props:"Events", 16 | advanced_props:"Advanced properties", 17 | popup_opts:"Options", 18 | anchor_names:"Anchors", 19 | target_same:"Open in this window / frame", 20 | target_parent:"Open in parent window / frame", 21 | target_top:"Open in top frame (replaces all frames)", 22 | target_blank:"Open in new window", 23 | popup:"Javascript popup", 24 | popup_url:"Popup URL", 25 | popup_name:"Window name", 26 | popup_return:"Insert 'return false'", 27 | popup_scrollbars:"Show scrollbars", 28 | popup_statusbar:"Show status bar", 29 | popup_toolbar:"Show toolbars", 30 | popup_menubar:"Show menu bar", 31 | popup_location:"Show location bar", 32 | popup_resizable:"Make window resizable", 33 | popup_dependent:"Dependent (Mozilla/Firefox only)", 34 | popup_size:"Size", 35 | popup_position:"Position (X/Y)", 36 | id:"Id", 37 | style:"Style", 38 | classes:"Classes", 39 | target_name:"Target name", 40 | langdir:"Language direction", 41 | target_langcode:"Target language", 42 | langcode:"Language code", 43 | encoding:"Target character encoding", 44 | mime:"Target MIME type", 45 | rel:"Relationship page to target", 46 | rev:"Relationship target to page", 47 | tabindex:"Tabindex", 48 | accesskey:"Accesskey", 49 | ltr:"Left to right", 50 | rtl:"Right to left", 51 | link_list:"Link list" 52 | }); -------------------------------------------------------------------------------- /media/js/tinymce/plugins/searchreplace/editor_plugin_src.js: -------------------------------------------------------------------------------- 1 | /** 2 | * editor_plugin_src.js 3 | * 4 | * Copyright 2009, Moxiecode Systems AB 5 | * Released under LGPL License. 6 | * 7 | * License: http://tinymce.moxiecode.com/license 8 | * Contributing: http://tinymce.moxiecode.com/contributing 9 | */ 10 | 11 | (function() { 12 | tinymce.create('tinymce.plugins.SearchReplacePlugin', { 13 | init : function(ed, url) { 14 | function open(m) { 15 | ed.windowManager.open({ 16 | file : url + '/searchreplace.htm', 17 | width : 420 + parseInt(ed.getLang('searchreplace.delta_width', 0)), 18 | height : 170 + parseInt(ed.getLang('searchreplace.delta_height', 0)), 19 | inline : 1, 20 | auto_focus : 0 21 | }, { 22 | mode : m, 23 | search_string : ed.selection.getContent({format : 'text'}), 24 | plugin_url : url 25 | }); 26 | }; 27 | 28 | // Register commands 29 | ed.addCommand('mceSearch', function() { 30 | open('search'); 31 | }); 32 | 33 | ed.addCommand('mceReplace', function() { 34 | open('replace'); 35 | }); 36 | 37 | // Register buttons 38 | ed.addButton('search', {title : 'searchreplace.search_desc', cmd : 'mceSearch'}); 39 | ed.addButton('replace', {title : 'searchreplace.replace_desc', cmd : 'mceReplace'}); 40 | 41 | ed.addShortcut('ctrl+f', 'searchreplace.search_desc', 'mceSearch'); 42 | }, 43 | 44 | getInfo : function() { 45 | return { 46 | longname : 'Search/Replace', 47 | author : 'Moxiecode Systems AB', 48 | authorurl : 'http://tinymce.moxiecode.com', 49 | infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/searchreplace', 50 | version : tinymce.majorVersion + "." + tinymce.minorVersion 51 | }; 52 | } 53 | }); 54 | 55 | // Register plugin 56 | tinymce.PluginManager.add('searchreplace', tinymce.plugins.SearchReplacePlugin); 57 | })(); -------------------------------------------------------------------------------- /media/js/tinymce/plugins/advlink/editor_plugin_src.js: -------------------------------------------------------------------------------- 1 | /** 2 | * editor_plugin_src.js 3 | * 4 | * Copyright 2009, Moxiecode Systems AB 5 | * Released under LGPL License. 6 | * 7 | * License: http://tinymce.moxiecode.com/license 8 | * Contributing: http://tinymce.moxiecode.com/contributing 9 | */ 10 | 11 | (function() { 12 | tinymce.create('tinymce.plugins.AdvancedLinkPlugin', { 13 | init : function(ed, url) { 14 | this.editor = ed; 15 | 16 | // Register commands 17 | ed.addCommand('mceAdvLink', function() { 18 | var se = ed.selection; 19 | 20 | // No selection and not in link 21 | if (se.isCollapsed() && !ed.dom.getParent(se.getNode(), 'A')) 22 | return; 23 | 24 | ed.windowManager.open({ 25 | file : url + '/link.htm', 26 | width : 480 + parseInt(ed.getLang('advlink.delta_width', 0)), 27 | height : 400 + parseInt(ed.getLang('advlink.delta_height', 0)), 28 | inline : 1 29 | }, { 30 | plugin_url : url 31 | }); 32 | }); 33 | 34 | // Register buttons 35 | ed.addButton('link', { 36 | title : 'advlink.link_desc', 37 | cmd : 'mceAdvLink' 38 | }); 39 | 40 | ed.addShortcut('ctrl+k', 'advlink.advlink_desc', 'mceAdvLink'); 41 | 42 | ed.onNodeChange.add(function(ed, cm, n, co) { 43 | cm.setDisabled('link', co && n.nodeName != 'A'); 44 | cm.setActive('link', n.nodeName == 'A' && !n.name); 45 | }); 46 | }, 47 | 48 | getInfo : function() { 49 | return { 50 | longname : 'Advanced link', 51 | author : 'Moxiecode Systems AB', 52 | authorurl : 'http://tinymce.moxiecode.com', 53 | infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advlink', 54 | version : tinymce.majorVersion + "." + tinymce.minorVersion 55 | }; 56 | } 57 | }); 58 | 59 | // Register plugin 60 | tinymce.PluginManager.add('advlink', tinymce.plugins.AdvancedLinkPlugin); 61 | })(); -------------------------------------------------------------------------------- /media/js/tinymce/plugins/insertdatetime/editor_plugin.js: -------------------------------------------------------------------------------- 1 | (function(){tinymce.create("tinymce.plugins.InsertDateTime",{init:function(a,b){var c=this;c.editor=a;a.addCommand("mceInsertDate",function(){var d=c._getDateTime(new Date(),a.getParam("plugin_insertdate_dateFormat",a.getLang("insertdatetime.date_fmt")));a.execCommand("mceInsertContent",false,d)});a.addCommand("mceInsertTime",function(){var d=c._getDateTime(new Date(),a.getParam("plugin_insertdate_timeFormat",a.getLang("insertdatetime.time_fmt")));a.execCommand("mceInsertContent",false,d)});a.addButton("insertdate",{title:"insertdatetime.insertdate_desc",cmd:"mceInsertDate"});a.addButton("inserttime",{title:"insertdatetime.inserttime_desc",cmd:"mceInsertTime"})},getInfo:function(){return{longname:"Insert date/time",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/insertdatetime",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_getDateTime:function(e,a){var c=this.editor;function b(g,d){g=""+g;if(g.length 7 |

{% trans "RespectMyNet.eu is an online platform enabling citizens to become the watchmen of the Internet by reporting Net Neutrality violations. Everyone is invited to report undue blocking or throttling of their Internet access, and help name and shame operators' harmful practices." %}

8 |

{% trans "This platform is a joint project by La Quadrature du Net, Bits of Freedom and individual contributors. It was launched on September 22nd, 2011." %}

9 |

{% trans "Organisations will submit reports to national and EU regulatory authorities if appropriate." %}

10 |

{% trans "For enquiries about the project, please contact:" %}

11 | 15 |

{% trans "Initiators" %}

16 | 20 |

{% trans "Supporters" %}

21 | 25 | 26 | {% endblock %} 27 | -------------------------------------------------------------------------------- /media/js/tinymce/themes/advanced/langs/en_dlg.js: -------------------------------------------------------------------------------- 1 | tinyMCE.addI18n('en.advanced_dlg',{ 2 | about_title:"About TinyMCE", 3 | about_general:"About", 4 | about_help:"Help", 5 | about_license:"License", 6 | about_plugins:"Plugins", 7 | about_plugin:"Plugin", 8 | about_author:"Author", 9 | about_version:"Version", 10 | about_loaded:"Loaded plugins", 11 | anchor_title:"Insert/edit anchor", 12 | anchor_name:"Anchor name", 13 | code_title:"HTML Source Editor", 14 | code_wordwrap:"Word wrap", 15 | colorpicker_title:"Select a color", 16 | colorpicker_picker_tab:"Picker", 17 | colorpicker_picker_title:"Color picker", 18 | colorpicker_palette_tab:"Palette", 19 | colorpicker_palette_title:"Palette colors", 20 | colorpicker_named_tab:"Named", 21 | colorpicker_named_title:"Named colors", 22 | colorpicker_color:"Color:", 23 | colorpicker_name:"Name:", 24 | charmap_title:"Select custom character", 25 | image_title:"Insert/edit image", 26 | image_src:"Image URL", 27 | image_alt:"Image description", 28 | image_list:"Image list", 29 | image_border:"Border", 30 | image_dimensions:"Dimensions", 31 | image_vspace:"Vertical space", 32 | image_hspace:"Horizontal space", 33 | image_align:"Alignment", 34 | image_align_baseline:"Baseline", 35 | image_align_top:"Top", 36 | image_align_middle:"Middle", 37 | image_align_bottom:"Bottom", 38 | image_align_texttop:"Text top", 39 | image_align_textbottom:"Text bottom", 40 | image_align_left:"Left", 41 | image_align_right:"Right", 42 | link_title:"Insert/edit link", 43 | link_url:"Link URL", 44 | link_target:"Target", 45 | link_target_same:"Open link in the same window", 46 | link_target_blank:"Open link in a new window", 47 | link_titlefield:"Title", 48 | link_is_email:"The URL you entered seems to be an email address, do you want to add the required mailto: prefix?", 49 | link_is_external:"The URL you entered seems to external link, do you want to add the required http:// prefix?", 50 | link_list:"Link list" 51 | }); -------------------------------------------------------------------------------- /media/js/tinymce/plugins/advlist/editor_plugin.js: -------------------------------------------------------------------------------- 1 | (function(){var a=tinymce.each;tinymce.create("tinymce.plugins.AdvListPlugin",{init:function(b,c){var d=this;d.editor=b;function e(g){var f=[];a(g.split(/,/),function(h){f.push({title:"advlist."+(h=="default"?"def":h.replace(/-/g,"_")),styles:{listStyleType:h=="default"?"":h}})});return f}d.numlist=b.getParam("advlist_number_styles")||e("default,lower-alpha,lower-greek,lower-roman,upper-alpha,upper-roman");d.bullist=b.getParam("advlist_bullet_styles")||e("default,circle,disc,square")},createControl:function(d,b){var f=this,e,h;if(d=="numlist"||d=="bullist"){if(f[d][0].title=="advlist.def"){h=f[d][0]}function c(i,k){var j=true;a(k.styles,function(m,l){if(f.editor.dom.getStyle(i,l)!=m){j=false;return false}});return j}function g(){var k,i=f.editor,l=i.dom,j=i.selection;k=l.getParent(j.getNode(),"ol,ul");if(!k||k.nodeName==(d=="bullist"?"OL":"UL")||c(k,h)){i.execCommand(d=="bullist"?"InsertUnorderedList":"InsertOrderedList")}if(h){k=l.getParent(j.getNode(),"ol,ul");if(k){l.setStyles(k,h.styles);k.removeAttribute("_mce_style")}}}e=b.createSplitButton(d,{title:"advanced."+d+"_desc","class":"mce_"+d,onclick:function(){g()}});e.onRenderMenu.add(function(i,j){j.onShowMenu.add(function(){var m=f.editor.dom,l=m.getParent(f.editor.selection.getNode(),"ol,ul"),k;if(l||h){k=f[d];a(j.items,function(n){var o=true;n.setSelected(0);if(l&&!n.isDisabled()){a(k,function(p){if(p.id==n.id){if(!c(l,p)){o=false;return false}}});if(o){n.setSelected(1)}}});if(!l){j.items[h.id].setSelected(1)}}});j.add({id:f.editor.dom.uniqueId(),title:"advlist.types","class":"mceMenuItemTitle"}).setDisabled(1);a(f[d],function(k){k.id=f.editor.dom.uniqueId();j.add({id:k.id,title:k.title,onclick:function(){h=k;g()}})})});return e}},getInfo:function(){return{longname:"Advanced lists",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advlist",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("advlist",tinymce.plugins.AdvListPlugin)})(); -------------------------------------------------------------------------------- /media/js/tinymce/plugins/xhtmlxtras/js/ins.js: -------------------------------------------------------------------------------- 1 | /** 2 | * ins.js 3 | * 4 | * Copyright 2009, Moxiecode Systems AB 5 | * Released under LGPL License. 6 | * 7 | * License: http://tinymce.moxiecode.com/license 8 | * Contributing: http://tinymce.moxiecode.com/contributing 9 | */ 10 | 11 | function init() { 12 | SXE.initElementDialog('ins'); 13 | if (SXE.currentAction == "update") { 14 | setFormValue('datetime', tinyMCEPopup.editor.dom.getAttrib(SXE.updateElement, 'datetime')); 15 | setFormValue('cite', tinyMCEPopup.editor.dom.getAttrib(SXE.updateElement, 'cite')); 16 | SXE.showRemoveButton(); 17 | } 18 | } 19 | 20 | function setElementAttribs(elm) { 21 | setAllCommonAttribs(elm); 22 | setAttrib(elm, 'datetime'); 23 | setAttrib(elm, 'cite'); 24 | } 25 | 26 | function insertIns() { 27 | var elm = tinyMCEPopup.editor.dom.getParent(SXE.focusElement, 'INS'); 28 | tinyMCEPopup.execCommand('mceBeginUndoLevel'); 29 | if (elm == null) { 30 | var s = SXE.inst.selection.getContent(); 31 | if(s.length > 0) { 32 | insertInlineElement('INS'); 33 | var elementArray = tinymce.grep(SXE.inst.dom.select('ins'), function(n) {return n.id == '#sxe_temp_ins#';}); 34 | for (var i=0; i 0) { 33 | insertInlineElement('del'); 34 | var elementArray = tinymce.grep(SXE.inst.dom.select('del'), function(n) {return n.id == '#sxe_temp_del#';}); 35 | for (var i=0; i'; 64 | 65 | h += ''; 64 | 65 | h += ''; 20 | html += '' + ed.getLang('advanced_dlg.about_author') + ''; 21 | html += '' + ed.getLang('advanced_dlg.about_version') + ''; 22 | html += ''; 23 | html += ''; 24 | html += ''; 25 | 26 | tinymce.each(ed.plugins, function(p, n) { 27 | var info; 28 | 29 | if (!p.getInfo) 30 | return; 31 | 32 | html += ''; 33 | 34 | info = p.getInfo(); 35 | 36 | if (info.infourl != null && info.infourl != '') 37 | html += '' + info.longname + ''; 38 | else 39 | html += '' + info.longname + ''; 40 | 41 | if (info.authorurl != null && info.authorurl != '') 42 | html += '' + info.author + ''; 43 | else 44 | html += '' + info.author + ''; 45 | 46 | html += '' + info.version + ''; 47 | html += ''; 48 | 49 | document.getElementById('plugins_tab').style.display = ''; 50 | 51 | }); 52 | 53 | html += ''; 54 | html += ''; 55 | 56 | tcont.innerHTML = html; 57 | 58 | tinyMCEPopup.dom.get('version').innerHTML = tinymce.majorVersion + "." + tinymce.minorVersion; 59 | tinyMCEPopup.dom.get('date').innerHTML = tinymce.releaseDate; 60 | } 61 | 62 | function insertHelpIFrame() { 63 | var html; 64 | 65 | if (tinyMCEPopup.getParam('docs_url')) { 66 | html = ''; 67 | document.getElementById('iframecontainer').innerHTML = html; 68 | document.getElementById('help_tab').style.display = 'block'; 69 | } 70 | } 71 | 72 | tinyMCEPopup.onInit.add(init); 73 | -------------------------------------------------------------------------------- /media/js/tinymce/plugins/directionality/editor_plugin_src.js: -------------------------------------------------------------------------------- 1 | /** 2 | * editor_plugin_src.js 3 | * 4 | * Copyright 2009, Moxiecode Systems AB 5 | * Released under LGPL License. 6 | * 7 | * License: http://tinymce.moxiecode.com/license 8 | * Contributing: http://tinymce.moxiecode.com/contributing 9 | */ 10 | 11 | (function() { 12 | tinymce.create('tinymce.plugins.Directionality', { 13 | init : function(ed, url) { 14 | var t = this; 15 | 16 | t.editor = ed; 17 | 18 | ed.addCommand('mceDirectionLTR', function() { 19 | var e = ed.dom.getParent(ed.selection.getNode(), ed.dom.isBlock); 20 | 21 | if (e) { 22 | if (ed.dom.getAttrib(e, "dir") != "ltr") 23 | ed.dom.setAttrib(e, "dir", "ltr"); 24 | else 25 | ed.dom.setAttrib(e, "dir", ""); 26 | } 27 | 28 | ed.nodeChanged(); 29 | }); 30 | 31 | ed.addCommand('mceDirectionRTL', function() { 32 | var e = ed.dom.getParent(ed.selection.getNode(), ed.dom.isBlock); 33 | 34 | if (e) { 35 | if (ed.dom.getAttrib(e, "dir") != "rtl") 36 | ed.dom.setAttrib(e, "dir", "rtl"); 37 | else 38 | ed.dom.setAttrib(e, "dir", ""); 39 | } 40 | 41 | ed.nodeChanged(); 42 | }); 43 | 44 | ed.addButton('ltr', {title : 'directionality.ltr_desc', cmd : 'mceDirectionLTR'}); 45 | ed.addButton('rtl', {title : 'directionality.rtl_desc', cmd : 'mceDirectionRTL'}); 46 | 47 | ed.onNodeChange.add(t._nodeChange, t); 48 | }, 49 | 50 | getInfo : function() { 51 | return { 52 | longname : 'Directionality', 53 | author : 'Moxiecode Systems AB', 54 | authorurl : 'http://tinymce.moxiecode.com', 55 | infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/directionality', 56 | version : tinymce.majorVersion + "." + tinymce.minorVersion 57 | }; 58 | }, 59 | 60 | // Private methods 61 | 62 | _nodeChange : function(ed, cm, n) { 63 | var dom = ed.dom, dir; 64 | 65 | n = dom.getParent(n, dom.isBlock); 66 | if (!n) { 67 | cm.setDisabled('ltr', 1); 68 | cm.setDisabled('rtl', 1); 69 | return; 70 | } 71 | 72 | dir = dom.getAttrib(n, 'dir'); 73 | cm.setActive('ltr', dir == "ltr"); 74 | cm.setDisabled('ltr', 0); 75 | cm.setActive('rtl', dir == "rtl"); 76 | cm.setDisabled('rtl', 0); 77 | } 78 | }); 79 | 80 | // Register plugin 81 | tinymce.PluginManager.add('directionality', tinymce.plugins.Directionality); 82 | })(); -------------------------------------------------------------------------------- /media/js/tinymce/plugins/table/langs/en_dlg.js: -------------------------------------------------------------------------------- 1 | tinyMCE.addI18n('en.table_dlg',{ 2 | general_tab:"General", 3 | advanced_tab:"Advanced", 4 | general_props:"General properties", 5 | advanced_props:"Advanced properties", 6 | rowtype:"Row in table part", 7 | title:"Insert/Modify table", 8 | width:"Width", 9 | height:"Height", 10 | cols:"Cols", 11 | rows:"Rows", 12 | cellspacing:"Cellspacing", 13 | cellpadding:"Cellpadding", 14 | border:"Border", 15 | align:"Alignment", 16 | align_default:"Default", 17 | align_left:"Left", 18 | align_right:"Right", 19 | align_middle:"Center", 20 | row_title:"Table row properties", 21 | cell_title:"Table cell properties", 22 | cell_type:"Cell type", 23 | valign:"Vertical alignment", 24 | align_top:"Top", 25 | align_bottom:"Bottom", 26 | bordercolor:"Border color", 27 | bgcolor:"Background color", 28 | merge_cells_title:"Merge table cells", 29 | id:"Id", 30 | style:"Style", 31 | langdir:"Language direction", 32 | langcode:"Language code", 33 | mime:"Target MIME type", 34 | ltr:"Left to right", 35 | rtl:"Right to left", 36 | bgimage:"Background image", 37 | summary:"Summary", 38 | td:"Data", 39 | th:"Header", 40 | cell_cell:"Update current cell", 41 | cell_row:"Update all cells in row", 42 | cell_all:"Update all cells in table", 43 | row_row:"Update current row", 44 | row_odd:"Update odd rows in table", 45 | row_even:"Update even rows in table", 46 | row_all:"Update all rows in table", 47 | thead:"Table Head", 48 | tbody:"Table Body", 49 | tfoot:"Table Foot", 50 | scope:"Scope", 51 | rowgroup:"Row Group", 52 | colgroup:"Col Group", 53 | col_limit:"You've exceeded the maximum number of columns of {$cols}.", 54 | row_limit:"You've exceeded the maximum number of rows of {$rows}.", 55 | cell_limit:"You've exceeded the maximum number of cells of {$cells}.", 56 | missing_scope:"Are you sure you want to continue without specifying a scope for this table header cell. Without it, it may be difficult for some users with disabilities to understand the content or data displayed of the table.", 57 | caption:"Table caption", 58 | frame:"Frame", 59 | frame_none:"none", 60 | frame_groups:"groups", 61 | frame_rows:"rows", 62 | frame_cols:"cols", 63 | frame_all:"all", 64 | rules:"Rules", 65 | rules_void:"void", 66 | rules_above:"above", 67 | rules_below:"below", 68 | rules_hsides:"hsides", 69 | rules_lhs:"lhs", 70 | rules_rhs:"rhs", 71 | rules_vsides:"vsides", 72 | rules_box:"box", 73 | rules_border:"border" 74 | }); -------------------------------------------------------------------------------- /media/js/tinymce/themes/simple/skins/o2k7/ui.css: -------------------------------------------------------------------------------- 1 | /* Reset */ 2 | .o2k7SimpleSkin table, .o2k7SimpleSkin tbody, .o2k7SimpleSkin a, .o2k7SimpleSkin img, .o2k7SimpleSkin tr, .o2k7SimpleSkin div, .o2k7SimpleSkin td, .o2k7SimpleSkin iframe, .o2k7SimpleSkin span, .o2k7SimpleSkin * {border:0; margin:0; padding:0; background:transparent; white-space:nowrap; text-decoration:none; font-weight:normal; cursor:default; color:#000} 3 | 4 | /* Containers */ 5 | .o2k7SimpleSkin {position:relative} 6 | .o2k7SimpleSkin table.mceLayout {background:#E5EFFD; border:1px solid #ABC6DD;} 7 | .o2k7SimpleSkin iframe {display:block; background:#FFF; border-bottom:1px solid #ABC6DD;} 8 | .o2k7SimpleSkin .mceToolbar {height:26px;} 9 | 10 | /* Layout */ 11 | .o2k7SimpleSkin .mceToolbar .mceToolbarStart span {display:block; background:url(img/button_bg.png) -22px 0; width:1px; height:22px; } 12 | .o2k7SimpleSkin .mceToolbar .mceToolbarEnd span {display:block; background:url(img/button_bg.png) -22px 0; width:1px; height:22px} 13 | .o2k7SimpleSkin span.mceIcon, .o2k7SimpleSkin img.mceIcon {display:block; width:20px; height:20px} 14 | .o2k7SimpleSkin .mceIcon {background:url(../../img/icons.gif) no-repeat 20px 20px} 15 | 16 | /* Button */ 17 | .o2k7SimpleSkin .mceButton {display:block; background:url(img/button_bg.png); width:22px; height:22px} 18 | .o2k7SimpleSkin a.mceButton span, .o2k7SimpleSkin a.mceButton img {margin:1px 0 0 1px} 19 | .o2k7SimpleSkin a.mceButtonEnabled:hover {background-color:#B2BBD0; background-position:0 -22px} 20 | .o2k7SimpleSkin a.mceButtonActive {background-position:0 -44px} 21 | .o2k7SimpleSkin .mceButtonDisabled span {opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)} 22 | 23 | /* Separator */ 24 | .o2k7SimpleSkin .mceSeparator {display:block; background:url(img/button_bg.png) -22px 0; width:5px; height:22px} 25 | 26 | /* Theme */ 27 | .o2k7SimpleSkin span.mce_bold {background-position:0 0} 28 | .o2k7SimpleSkin span.mce_italic {background-position:-60px 0} 29 | .o2k7SimpleSkin span.mce_underline {background-position:-140px 0} 30 | .o2k7SimpleSkin span.mce_strikethrough {background-position:-120px 0} 31 | .o2k7SimpleSkin span.mce_undo {background-position:-160px 0} 32 | .o2k7SimpleSkin span.mce_redo {background-position:-100px 0} 33 | .o2k7SimpleSkin span.mce_cleanup {background-position:-40px 0} 34 | .o2k7SimpleSkin span.mce_insertunorderedlist {background-position:-20px 0} 35 | .o2k7SimpleSkin span.mce_insertorderedlist {background-position:-80px 0} 36 | -------------------------------------------------------------------------------- /media/js/tinymce/themes/advanced/charmap.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {#advanced_dlg.charmap_title} 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 17 | 27 | 28 | 29 | 48 | 49 |
{#advanced_dlg.charmap_title}
15 | 16 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
 
 
26 |
30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 |
HTML-Code
 
 
NUM-Code
 
47 |
50 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /media/js/tinymce/plugins/visualchars/editor_plugin_src.js: -------------------------------------------------------------------------------- 1 | /** 2 | * editor_plugin_src.js 3 | * 4 | * Copyright 2009, Moxiecode Systems AB 5 | * Released under LGPL License. 6 | * 7 | * License: http://tinymce.moxiecode.com/license 8 | * Contributing: http://tinymce.moxiecode.com/contributing 9 | */ 10 | 11 | (function() { 12 | tinymce.create('tinymce.plugins.VisualChars', { 13 | init : function(ed, url) { 14 | var t = this; 15 | 16 | t.editor = ed; 17 | 18 | // Register commands 19 | ed.addCommand('mceVisualChars', t._toggleVisualChars, t); 20 | 21 | // Register buttons 22 | ed.addButton('visualchars', {title : 'visualchars.desc', cmd : 'mceVisualChars'}); 23 | 24 | ed.onBeforeGetContent.add(function(ed, o) { 25 | if (t.state && o.format != 'raw' && !o.draft) { 26 | t.state = true; 27 | t._toggleVisualChars(false); 28 | } 29 | }); 30 | }, 31 | 32 | getInfo : function() { 33 | return { 34 | longname : 'Visual characters', 35 | author : 'Moxiecode Systems AB', 36 | authorurl : 'http://tinymce.moxiecode.com', 37 | infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/visualchars', 38 | version : tinymce.majorVersion + "." + tinymce.minorVersion 39 | }; 40 | }, 41 | 42 | // Private methods 43 | 44 | _toggleVisualChars : function(bookmark) { 45 | var t = this, ed = t.editor, nl, i, h, d = ed.getDoc(), b = ed.getBody(), nv, s = ed.selection, bo, div, bm; 46 | 47 | t.state = !t.state; 48 | ed.controlManager.setActive('visualchars', t.state); 49 | 50 | if (bookmark) 51 | bm = s.getBookmark(); 52 | 53 | if (t.state) { 54 | nl = []; 55 | tinymce.walk(b, function(n) { 56 | if (n.nodeType == 3 && n.nodeValue && n.nodeValue.indexOf('\u00a0') != -1) 57 | nl.push(n); 58 | }, 'childNodes'); 59 | 60 | for (i = 0; i < nl.length; i++) { 61 | nv = nl[i].nodeValue; 62 | nv = nv.replace(/(\u00a0)/g, '$1'); 63 | 64 | div = ed.dom.create('div', null, nv); 65 | while (node = div.lastChild) 66 | ed.dom.insertAfter(node, nl[i]); 67 | 68 | ed.dom.remove(nl[i]); 69 | } 70 | } else { 71 | nl = ed.dom.select('span.mceItemNbsp', b); 72 | 73 | for (i = nl.length - 1; i >= 0; i--) 74 | ed.dom.remove(nl[i], 1); 75 | } 76 | 77 | s.moveToBookmark(bm); 78 | } 79 | }); 80 | 81 | // Register plugin 82 | tinymce.PluginManager.add('visualchars', tinymce.plugins.VisualChars); 83 | })(); -------------------------------------------------------------------------------- /media/js/tinymce/plugins/pagebreak/editor_plugin_src.js: -------------------------------------------------------------------------------- 1 | /** 2 | * editor_plugin_src.js 3 | * 4 | * Copyright 2009, Moxiecode Systems AB 5 | * Released under LGPL License. 6 | * 7 | * License: http://tinymce.moxiecode.com/license 8 | * Contributing: http://tinymce.moxiecode.com/contributing 9 | */ 10 | 11 | (function() { 12 | tinymce.create('tinymce.plugins.PageBreakPlugin', { 13 | init : function(ed, url) { 14 | var pb = '', cls = 'mcePageBreak', sep = ed.getParam('pagebreak_separator', ''), pbRE; 15 | 16 | pbRE = new RegExp(sep.replace(/[\?\.\*\[\]\(\)\{\}\+\^\$\:]/g, function(a) {return '\\' + a;}), 'g'); 17 | 18 | // Register commands 19 | ed.addCommand('mcePageBreak', function() { 20 | ed.execCommand('mceInsertContent', 0, pb); 21 | }); 22 | 23 | // Register buttons 24 | ed.addButton('pagebreak', {title : 'pagebreak.desc', cmd : cls}); 25 | 26 | ed.onInit.add(function() { 27 | if (ed.settings.content_css !== false) 28 | ed.dom.loadCSS(url + "/css/content.css"); 29 | 30 | if (ed.theme.onResolveName) { 31 | ed.theme.onResolveName.add(function(th, o) { 32 | if (o.node.nodeName == 'IMG' && ed.dom.hasClass(o.node, cls)) 33 | o.name = 'pagebreak'; 34 | }); 35 | } 36 | }); 37 | 38 | ed.onClick.add(function(ed, e) { 39 | e = e.target; 40 | 41 | if (e.nodeName === 'IMG' && ed.dom.hasClass(e, cls)) 42 | ed.selection.select(e); 43 | }); 44 | 45 | ed.onNodeChange.add(function(ed, cm, n) { 46 | cm.setActive('pagebreak', n.nodeName === 'IMG' && ed.dom.hasClass(n, cls)); 47 | }); 48 | 49 | ed.onBeforeSetContent.add(function(ed, o) { 50 | o.content = o.content.replace(pbRE, pb); 51 | }); 52 | 53 | ed.onPostProcess.add(function(ed, o) { 54 | if (o.get) 55 | o.content = o.content.replace(/]+>/g, function(im) { 56 | if (im.indexOf('class="mcePageBreak') !== -1) 57 | im = sep; 58 | 59 | return im; 60 | }); 61 | }); 62 | }, 63 | 64 | getInfo : function() { 65 | return { 66 | longname : 'PageBreak', 67 | author : 'Moxiecode Systems AB', 68 | authorurl : 'http://tinymce.moxiecode.com', 69 | infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/pagebreak', 70 | version : tinymce.majorVersion + "." + tinymce.minorVersion 71 | }; 72 | } 73 | }); 74 | 75 | // Register plugin 76 | tinymce.PluginManager.add('pagebreak', tinymce.plugins.PageBreakPlugin); 77 | })(); -------------------------------------------------------------------------------- /media/js/tinymce/plugins/xhtmlxtras/editor_plugin.js: -------------------------------------------------------------------------------- 1 | (function(){tinymce.create("tinymce.plugins.XHTMLXtrasPlugin",{init:function(a,b){a.addCommand("mceCite",function(){a.windowManager.open({file:b+"/cite.htm",width:350+parseInt(a.getLang("xhtmlxtras.cite_delta_width",0)),height:250+parseInt(a.getLang("xhtmlxtras.cite_delta_height",0)),inline:1},{plugin_url:b})});a.addCommand("mceAcronym",function(){a.windowManager.open({file:b+"/acronym.htm",width:350+parseInt(a.getLang("xhtmlxtras.acronym_delta_width",0)),height:250+parseInt(a.getLang("xhtmlxtras.acronym_delta_width",0)),inline:1},{plugin_url:b})});a.addCommand("mceAbbr",function(){a.windowManager.open({file:b+"/abbr.htm",width:350+parseInt(a.getLang("xhtmlxtras.abbr_delta_width",0)),height:250+parseInt(a.getLang("xhtmlxtras.abbr_delta_width",0)),inline:1},{plugin_url:b})});a.addCommand("mceDel",function(){a.windowManager.open({file:b+"/del.htm",width:340+parseInt(a.getLang("xhtmlxtras.del_delta_width",0)),height:310+parseInt(a.getLang("xhtmlxtras.del_delta_width",0)),inline:1},{plugin_url:b})});a.addCommand("mceIns",function(){a.windowManager.open({file:b+"/ins.htm",width:340+parseInt(a.getLang("xhtmlxtras.ins_delta_width",0)),height:310+parseInt(a.getLang("xhtmlxtras.ins_delta_width",0)),inline:1},{plugin_url:b})});a.addCommand("mceAttributes",function(){a.windowManager.open({file:b+"/attributes.htm",width:380,height:370,inline:1},{plugin_url:b})});a.addButton("cite",{title:"xhtmlxtras.cite_desc",cmd:"mceCite"});a.addButton("acronym",{title:"xhtmlxtras.acronym_desc",cmd:"mceAcronym"});a.addButton("abbr",{title:"xhtmlxtras.abbr_desc",cmd:"mceAbbr"});a.addButton("del",{title:"xhtmlxtras.del_desc",cmd:"mceDel"});a.addButton("ins",{title:"xhtmlxtras.ins_desc",cmd:"mceIns"});a.addButton("attribs",{title:"xhtmlxtras.attribs_desc",cmd:"mceAttributes"});a.onNodeChange.add(function(d,c,f,e){f=d.dom.getParent(f,"CITE,ACRONYM,ABBR,DEL,INS");c.setDisabled("cite",e);c.setDisabled("acronym",e);c.setDisabled("abbr",e);c.setDisabled("del",e);c.setDisabled("ins",e);c.setDisabled("attribs",f&&f.nodeName=="BODY");c.setActive("cite",0);c.setActive("acronym",0);c.setActive("abbr",0);c.setActive("del",0);c.setActive("ins",0);if(f){do{c.setDisabled(f.nodeName.toLowerCase(),0);c.setActive(f.nodeName.toLowerCase(),1)}while(f=f.parentNode)}});a.onPreInit.add(function(){a.dom.create("abbr")})},getInfo:function(){return{longname:"XHTML Xtras Plugin",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/xhtmlxtras",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("xhtmlxtras",tinymce.plugins.XHTMLXtrasPlugin)})(); -------------------------------------------------------------------------------- /media/js/map.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function() { 2 | var onCountryClick = function(target) { 3 | window.location='/list/'+target.iso2+"/"; 4 | }; 5 | $(function() { 6 | window.map = $K.map('#map'); 7 | map.loadMap('/site_media/eu.svg', function(map) { 8 | map 9 | .addLayer('eu', 'bgback') 10 | .addLayer('eu', 'bg') 11 | .addLayer('eu', 'bgstroke') 12 | .addLayer({'id': 'countries', 'className': 'context'}) 13 | .addLayer('graticule') 14 | .addLayer({'id': 'eu', 15 | 'className': 'fg', 16 | 'tooltip': { 17 | content: function(obj,foo) { 18 | var count=0; 19 | if(data) { 20 | for(var i=0;i0) { 28 | return foo.data.name+"
"+count+" reported cases"; 29 | } else { 30 | return foo.data.name; 31 | } 32 | } 33 | }, 34 | 'key': "iso2" 35 | }); 36 | 37 | map.onLayerEvent('click', onCountryClick, 'fg') 38 | 39 | map.addFilter('oglow', 'glow', { size: 3, color: '#988', strength: 1, inner: false }); 40 | map.getLayer('bgback').applyFilter('oglow'); 41 | 42 | map.addFilter('myglow', 'glow', { size: 2, color: '#945C1B', inner: true }); 43 | map.getLayer('bg').applyFilter('myglow'); 44 | 45 | colorscale = new chroma.ColorScale({ 46 | colors: chroma.brewer.YlGnBu, 47 | limits: chroma.limits(data, 'q', 6, 'w') 48 | }); 49 | 50 | if(data) { 51 | map.choropleth({ 52 | data: data, 53 | layer: 'fg', 54 | key: 'iso2', 55 | colors: function(d) { 56 | if (d == null) return '#fff'; 57 | return colorscale.getColor(d['w']); 58 | }, 59 | duration: 0 60 | }); 61 | } 62 | }); 63 | }); 64 | }); 65 | -------------------------------------------------------------------------------- /media/js/tinymce/plugins/noneditable/editor_plugin_src.js: -------------------------------------------------------------------------------- 1 | /** 2 | * editor_plugin_src.js 3 | * 4 | * Copyright 2009, Moxiecode Systems AB 5 | * Released under LGPL License. 6 | * 7 | * License: http://tinymce.moxiecode.com/license 8 | * Contributing: http://tinymce.moxiecode.com/contributing 9 | */ 10 | 11 | (function() { 12 | var Event = tinymce.dom.Event; 13 | 14 | tinymce.create('tinymce.plugins.NonEditablePlugin', { 15 | init : function(ed, url) { 16 | var t = this, editClass, nonEditClass; 17 | 18 | t.editor = ed; 19 | editClass = ed.getParam("noneditable_editable_class", "mceEditable"); 20 | nonEditClass = ed.getParam("noneditable_noneditable_class", "mceNonEditable"); 21 | 22 | ed.onNodeChange.addToTop(function(ed, cm, n) { 23 | var sc, ec; 24 | 25 | // Block if start or end is inside a non editable element 26 | sc = ed.dom.getParent(ed.selection.getStart(), function(n) { 27 | return ed.dom.hasClass(n, nonEditClass); 28 | }); 29 | 30 | ec = ed.dom.getParent(ed.selection.getEnd(), function(n) { 31 | return ed.dom.hasClass(n, nonEditClass); 32 | }); 33 | 34 | // Block or unblock 35 | if (sc || ec) { 36 | t._setDisabled(1); 37 | return false; 38 | } else 39 | t._setDisabled(0); 40 | }); 41 | }, 42 | 43 | getInfo : function() { 44 | return { 45 | longname : 'Non editable elements', 46 | author : 'Moxiecode Systems AB', 47 | authorurl : 'http://tinymce.moxiecode.com', 48 | infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/noneditable', 49 | version : tinymce.majorVersion + "." + tinymce.minorVersion 50 | }; 51 | }, 52 | 53 | _block : function(ed, e) { 54 | var k = e.keyCode; 55 | 56 | // Don't block arrow keys, pg up/down, and F1-F12 57 | if ((k > 32 && k < 41) || (k > 111 && k < 124)) 58 | return; 59 | 60 | return Event.cancel(e); 61 | }, 62 | 63 | _setDisabled : function(s) { 64 | var t = this, ed = t.editor; 65 | 66 | tinymce.each(ed.controlManager.controls, function(c) { 67 | c.setDisabled(s); 68 | }); 69 | 70 | if (s !== t.disabled) { 71 | if (s) { 72 | ed.onKeyDown.addToTop(t._block); 73 | ed.onKeyPress.addToTop(t._block); 74 | ed.onKeyUp.addToTop(t._block); 75 | ed.onPaste.addToTop(t._block); 76 | } else { 77 | ed.onKeyDown.remove(t._block); 78 | ed.onKeyPress.remove(t._block); 79 | ed.onKeyUp.remove(t._block); 80 | ed.onPaste.remove(t._block); 81 | } 82 | 83 | t.disabled = s; 84 | } 85 | } 86 | }); 87 | 88 | // Register plugin 89 | tinymce.PluginManager.add('noneditable', tinymce.plugins.NonEditablePlugin); 90 | })(); -------------------------------------------------------------------------------- /media/js/tinymce/plugins/fullpage/langs/en_dlg.js: -------------------------------------------------------------------------------- 1 | tinyMCE.addI18n('en.fullpage_dlg',{ 2 | title:"Document properties", 3 | meta_tab:"General", 4 | appearance_tab:"Appearance", 5 | advanced_tab:"Advanced", 6 | meta_props:"Meta information", 7 | langprops:"Language and encoding", 8 | meta_title:"Title", 9 | meta_keywords:"Keywords", 10 | meta_description:"Description", 11 | meta_robots:"Robots", 12 | doctypes:"Doctype", 13 | langcode:"Language code", 14 | langdir:"Language direction", 15 | ltr:"Left to right", 16 | rtl:"Right to left", 17 | xml_pi:"XML declaration", 18 | encoding:"Character encoding", 19 | appearance_bgprops:"Background properties", 20 | appearance_marginprops:"Body margins", 21 | appearance_linkprops:"Link colors", 22 | appearance_textprops:"Text properties", 23 | bgcolor:"Background color", 24 | bgimage:"Background image", 25 | left_margin:"Left margin", 26 | right_margin:"Right margin", 27 | top_margin:"Top margin", 28 | bottom_margin:"Bottom margin", 29 | text_color:"Text color", 30 | font_size:"Font size", 31 | font_face:"Font face", 32 | link_color:"Link color", 33 | hover_color:"Hover color", 34 | visited_color:"Visited color", 35 | active_color:"Active color", 36 | textcolor:"Color", 37 | fontsize:"Font size", 38 | fontface:"Font family", 39 | meta_index_follow:"Index and follow the links", 40 | meta_index_nofollow:"Index and don't follow the links", 41 | meta_noindex_follow:"Do not index but follow the links", 42 | meta_noindex_nofollow:"Do not index and don\'t follow the links", 43 | appearance_style:"Stylesheet and style properties", 44 | stylesheet:"Stylesheet", 45 | style:"Style", 46 | author:"Author", 47 | copyright:"Copyright", 48 | add:"Add new element", 49 | remove:"Remove selected element", 50 | moveup:"Move selected element up", 51 | movedown:"Move selected element down", 52 | head_elements:"Head elements", 53 | info:"Information", 54 | add_title:"Title element", 55 | add_meta:"Meta element", 56 | add_script:"Script element", 57 | add_style:"Style element", 58 | add_link:"Link element", 59 | add_base:"Base element", 60 | add_comment:"Comment node", 61 | title_element:"Title element", 62 | script_element:"Script element", 63 | style_element:"Style element", 64 | base_element:"Base element", 65 | link_element:"Link element", 66 | meta_element:"Meta element", 67 | comment_element:"Comment", 68 | src:"Src", 69 | language:"Language", 70 | href:"Href", 71 | target:"Target", 72 | type:"Type", 73 | charset:"Charset", 74 | defer:"Defer", 75 | media:"Media", 76 | properties:"Properties", 77 | name:"Name", 78 | value:"Value", 79 | content:"Content", 80 | rel:"Rel", 81 | rev:"Rev", 82 | hreflang:"Href lang", 83 | general_props:"General", 84 | advanced_props:"Advanced" 85 | }); -------------------------------------------------------------------------------- /media/js/tinymce/themes/advanced/link.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {#advanced_dlg.link_title} 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 |
14 | 17 |
18 | 19 |
20 |
21 | 22 | 23 | 24 | 25 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 |
26 | 27 | 28 | 29 | 30 |
 
49 |
50 |
51 | 52 |
53 | 54 | 55 |
56 |
57 | 58 | 59 | -------------------------------------------------------------------------------- /templates/base.html: -------------------------------------------------------------------------------- 1 | {% load i18n %}{% load bt %} 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | {% block title %}[!] Respect My Net {% endblock %} 10 | 11 | 12 | 13 | 14 | {% block rss %} 15 | {% endblock %} 16 | 17 | {% block styles %} 18 | {% endblock %} 19 | 20 | 21 |
22 |
23 | 46 |
47 |
48 | 49 | {% block content %} 50 | {% endblock %} 51 | {% block other_content %} 52 | {% endblock %} 53 | 57 | {% block scripts %} 58 | {% endblock %} 59 | 60 | 61 | -------------------------------------------------------------------------------- /media/js/tinymce/plugins/advhr/rule.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {#advhr.advhr_desc} 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 |
14 | 17 |
18 | 19 |
20 |
21 | 22 | 23 | 24 | 31 | 32 | 33 | 34 | 42 | 43 | 44 | 45 | 46 | 47 |
25 | 26 | 30 |
48 |
49 |
50 | 51 |
52 | 53 | 54 |
55 |
56 | 57 | 58 | -------------------------------------------------------------------------------- /media/js/tinymce/plugins/fullpage/editor_plugin.js: -------------------------------------------------------------------------------- 1 | (function(){tinymce.create("tinymce.plugins.FullPagePlugin",{init:function(a,b){var c=this;c.editor=a;a.addCommand("mceFullPageProperties",function(){a.windowManager.open({file:b+"/fullpage.htm",width:430+parseInt(a.getLang("fullpage.delta_width",0)),height:495+parseInt(a.getLang("fullpage.delta_height",0)),inline:1},{plugin_url:b,head_html:c.head})});a.addButton("fullpage",{title:"fullpage.desc",cmd:"mceFullPageProperties"});a.onBeforeSetContent.add(c._setContent,c);a.onSetContent.add(c._setBodyAttribs,c);a.onGetContent.add(c._getContent,c)},getInfo:function(){return{longname:"Fullpage",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullpage",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_setBodyAttribs:function(d,a){var l,c,e,g,b,h,j,f=this.head.match(/body(.*?)>/i);if(f&&f[1]){l=f[1].match(/\s*(\w+\s*=\s*".*?"|\w+\s*=\s*'.*?'|\w+\s*=\s*\w+|\w+)\s*/g);if(l){for(c=0,e=l.length;c",a);h.head=f.substring(0,a+1);j=f.indexOf("\n'}h.head+=d.getParam("fullpage_default_doctype",'');h.head+="\n\n\n"+d.getParam("fullpage_default_title","Untitled document")+"\n";if(g=d.getParam("fullpage_default_encoding")){h.head+='\n'}if(g=d.getParam("fullpage_default_font_family")){i+="font-family: "+g+";"}if(g=d.getParam("fullpage_default_font_size")){i+="font-size: "+g+";"}if(g=d.getParam("fullpage_default_text_color")){i+="color: "+g+";"}h.head+="\n\n";h.foot="\n\n"}},_getContent:function(a,c){var b=this;if(!c.source_view||!a.getParam("fullpage_hide_in_source_view")){c.content=tinymce.trim(b.head)+"\n"+tinymce.trim(c.content)+"\n"+tinymce.trim(b.foot)}}});tinymce.PluginManager.add("fullpage",tinymce.plugins.FullPagePlugin)})(); -------------------------------------------------------------------------------- /media/js/tinymce/plugins/save/editor_plugin_src.js: -------------------------------------------------------------------------------- 1 | /** 2 | * editor_plugin_src.js 3 | * 4 | * Copyright 2009, Moxiecode Systems AB 5 | * Released under LGPL License. 6 | * 7 | * License: http://tinymce.moxiecode.com/license 8 | * Contributing: http://tinymce.moxiecode.com/contributing 9 | */ 10 | 11 | (function() { 12 | tinymce.create('tinymce.plugins.Save', { 13 | init : function(ed, url) { 14 | var t = this; 15 | 16 | t.editor = ed; 17 | 18 | // Register commands 19 | ed.addCommand('mceSave', t._save, t); 20 | ed.addCommand('mceCancel', t._cancel, t); 21 | 22 | // Register buttons 23 | ed.addButton('save', {title : 'save.save_desc', cmd : 'mceSave'}); 24 | ed.addButton('cancel', {title : 'save.cancel_desc', cmd : 'mceCancel'}); 25 | 26 | ed.onNodeChange.add(t._nodeChange, t); 27 | ed.addShortcut('ctrl+s', ed.getLang('save.save_desc'), 'mceSave'); 28 | }, 29 | 30 | getInfo : function() { 31 | return { 32 | longname : 'Save', 33 | author : 'Moxiecode Systems AB', 34 | authorurl : 'http://tinymce.moxiecode.com', 35 | infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/save', 36 | version : tinymce.majorVersion + "." + tinymce.minorVersion 37 | }; 38 | }, 39 | 40 | // Private methods 41 | 42 | _nodeChange : function(ed, cm, n) { 43 | var ed = this.editor; 44 | 45 | if (ed.getParam('save_enablewhendirty')) { 46 | cm.setDisabled('save', !ed.isDirty()); 47 | cm.setDisabled('cancel', !ed.isDirty()); 48 | } 49 | }, 50 | 51 | // Private methods 52 | 53 | _save : function() { 54 | var ed = this.editor, formObj, os, i, elementId; 55 | 56 | formObj = tinymce.DOM.get(ed.id).form || tinymce.DOM.getParent(ed.id, 'form'); 57 | 58 | if (ed.getParam("save_enablewhendirty") && !ed.isDirty()) 59 | return; 60 | 61 | tinyMCE.triggerSave(); 62 | 63 | // Use callback instead 64 | if (os = ed.getParam("save_onsavecallback")) { 65 | if (ed.execCallback('save_onsavecallback', ed)) { 66 | ed.startContent = tinymce.trim(ed.getContent({format : 'raw'})); 67 | ed.nodeChanged(); 68 | } 69 | 70 | return; 71 | } 72 | 73 | if (formObj) { 74 | ed.isNotDirty = true; 75 | 76 | if (formObj.onsubmit == null || formObj.onsubmit() != false) 77 | formObj.submit(); 78 | 79 | ed.nodeChanged(); 80 | } else 81 | ed.windowManager.alert("Error: No form element found."); 82 | }, 83 | 84 | _cancel : function() { 85 | var ed = this.editor, os, h = tinymce.trim(ed.startContent); 86 | 87 | // Use callback instead 88 | if (os = ed.getParam("save_oncancelcallback")) { 89 | ed.execCallback('save_oncancelcallback', ed); 90 | return; 91 | } 92 | 93 | ed.setContent(h); 94 | ed.undoManager.clear(); 95 | ed.nodeChanged(); 96 | } 97 | }); 98 | 99 | // Register plugin 100 | tinymce.PluginManager.add('save', tinymce.plugins.Save); 101 | })(); -------------------------------------------------------------------------------- /urls.py: -------------------------------------------------------------------------------- 1 | from django.conf.urls.defaults import patterns, include, url 2 | from django.views.generic.simple import direct_to_template, redirect_to 3 | from django.conf import settings 4 | from django.contrib import admin 5 | from bt import views as bt 6 | from bt.feeds import RssSiteNewsFeed, AtomSiteNewsFeed 7 | 8 | from bt.api import APIResource, OperatorResource 9 | 10 | api_resource = APIResource() 11 | operator_api_resource = OperatorResource() 12 | 13 | admin.autodiscover() 14 | 15 | urlpatterns = patterns('', 16 | url(r'^$', 17 | view=bt.index, 18 | name="homepage"), 19 | url(r'^list/$', 20 | view=bt.list_violations, 21 | name="list_violations"), 22 | url(r'^list/(?P[^/]*)(/(?P[^/]*))?$', 23 | view=bt.filter_violations, 24 | name="filter"), 25 | url(r'^add/$', 26 | view=bt.add, 27 | name="add_violation"), 28 | # violation cannonical url and redirections 29 | url(r'^(?P[0-9]*)$', 30 | redirect_to, 31 | {'url': '/view/%(id)s'}), 32 | url(r'^view/(?P[0-9]*)$', 33 | view=bt.view, 34 | name="violation_url"), 35 | url(r'^attach/(?P[0-9]*)$', 36 | view=bt.get_attach, 37 | name="attach"), 38 | # different data outputs 39 | url(r'^csv$', 40 | view=bt.ascsv, 41 | name="csv_output"), 42 | url(r'^ods$', 43 | view=bt.asods, 44 | name="ods_output"), 45 | url(r'^rss/$', 46 | view=RssSiteNewsFeed(), 47 | name="rss_output"), 48 | url(r'^atom/$', 49 | view=AtomSiteNewsFeed(), 50 | name="atom_output"), 51 | url(r'^activate/$', 52 | view=bt.activate, 53 | name="activate"), 54 | url(r'^confirm/(?P[0-9a-z]*)$', 55 | view=bt.confirm, 56 | name="confirm"), 57 | url(r'^confirm/(?P[0-9]*)/(?P.*)$', 58 | view=bt.confirm, 59 | name="confirm_full"), 60 | url(r'^moderate/$', 61 | view=bt.moderate, 62 | name="moderate"), 63 | url(r'^lookup/$', 64 | view=bt.lookup, 65 | name="lookup"), 66 | url(r'^accounts/logout$', 67 | 'django.contrib.auth.views.logout', {'next_page': '/'}), 68 | url(r'^accounts/', 69 | include('registration.urls')), 70 | url(r'^comments/', 71 | include('django.contrib.comments.urls')), 72 | url(r'^about/$', 73 | direct_to_template, {'template': 'nn.html'}), 74 | url(r'^start/$', 75 | direct_to_template, {'template': 'start.html'}), 76 | url(r'^contact/$', 77 | direct_to_template, {'template': 'about.html'}), 78 | url(r'^captcha/', 79 | include('captcha.urls')), 80 | url(r'^admin/', 81 | include(admin.site.urls)), 82 | url(r'^api/', 83 | include(api_resource.urls)), 84 | url(r'^api/', 85 | include(operator_api_resource.urls)), 86 | ) 87 | 88 | if settings.DEV_SERVER: 89 | urlpatterns += patterns('', 90 | (r'^site_media/(?P.*)$', 91 | 'django.views.static.serve', 92 | {'document_root': settings.MEDIA_PATH}), 93 | ) 94 | --------------------------------------------------------------------------------