From 37d3cb78c15f0b3cfd668a3f6f18d5f23986cac9 Mon Sep 17 00:00:00 2001 From: Christian Berg Date: Wed, 5 Aug 2015 18:55:48 +0200 Subject: [PATCH 01/93] =?UTF-8?q?Anpassungen=20f=C3=BCr=20das=20Hosting=20?= =?UTF-8?q?bei=20Djangoeurope=20und=20damit=20verbundenen=20Versionen=20Dj?= =?UTF-8?q?ango=201.8=20und=20Python=202.7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 67 +- cleanup.sh | 6 +- .../gallery/photo_confirm_delete.html | 25 - gallery/templates/gallery/photo_list.html | 47 - kasu/locale/de/LC_MESSAGES/django.mo | Bin 18063 -> 0 bytes kasu/settings/base.py | 211 -- kasu/settings/dev.py | 26 - kasu/settings/production.py | 74 - kasu/settings/staging.py | 75 - manage.py | 9 +- requirements/base.txt | 12 +- requirements/development.txt | 4 +- {aggregator => src/aggregator}/__init__.py | 0 {aggregator => src/aggregator}/admin.py | 0 {aggregator => src/aggregator}/feeds.py | 0 .../aggregator}/management/__init__.py | 0 .../management/commands/__init__.py | 0 .../management/commands/update-feeds.py | 0 {aggregator => src/aggregator}/models.py | 0 {aggregator => src/aggregator}/sitemaps.py | 0 .../aggregator}/templatetags/aggregator.py | 0 {content => src/content}/__init__.py | 0 {content => src/content}/admin.py | 0 .../content}/context_processors.py | 0 {content => src/content}/feeds.py | 2 +- {content => src/content}/forms.py | 0 .../content}/locale/de/LC_MESSAGES/django.mo | Bin .../content}/locale/de/LC_MESSAGES/django.po | 0 .../content}/management/__init__.py | 0 .../content}/management/commands/__init__.py | 0 .../management/commands/importarticles.py | 0 .../management/commands/importgalleries.py | 0 {content => src/content}/models.py | 0 {content => src/content}/news_urls.py | 0 .../templates/content/article_archive.html | 0 .../content/article_archive_month.html | 0 .../content/article_archive_year.html | 0 .../templates/content/article_detail.html | 0 .../templates/content/article_form.html | 0 .../templates/content/clear_page.html | 0 .../content}/templates/content/page.html | 0 .../content}/templates/content/page_form.html | 0 .../content}/templates/content/page_pdf.html | 0 .../content}/templatetags/__init__.py | 0 .../content}/templatetags/fieldset_extras.py | 0 {content => src/content}/tests.py | 0 {content => src/content}/urls.py | 0 {content => src/content}/views.py | 3 +- {events => src/events}/__init__.py | 0 {events => src/events}/admin.py | 0 {events => src/events}/context_processors.py | 0 {events => src/events}/forms.py | 1 + .../events}/locale/de/LC_MESSAGES/django.mo | Bin .../events}/locale/de/LC_MESSAGES/django.po | 0 {events => src/events}/models.py | 0 .../templates/events/event_archive.html | 0 .../templates/events/event_detail.html | 0 .../events}/templates/events/event_form.html | 0 .../events}/templates/events/event_list.html | 0 .../events}/templates/events/event_site.html | 0 .../events}/templates/events/page.html | 0 {events => src/events}/tests.py | 0 {events => src/events}/urls.py | 0 {events => src/events}/views.py | 0 {gallery => src/gallery}/__init__.py | 0 {gallery => src/gallery}/forms.py | 0 {gallery => src/gallery}/models.py | 0 .../templates/gallery/photo_detail.html | 0 .../templates/gallery/photo_gallery.html | 0 .../templates/gallery/photo_upload.html | 0 {gallery => src/gallery}/urls.py | 0 {gallery => src/gallery}/views.py | 0 {kasu => src/kasu}/__init__.py | 0 {kasu => src/kasu}/image_models.py | 0 src/kasu/locale/de/LC_MESSAGES/django.mo | Bin 0 -> 16460 bytes .../kasu}/locale/de/LC_MESSAGES/django.po | 23 +- {kasu => src/kasu}/logging.conf | 0 {kasu => src/kasu}/static/css/common.less | 0 {kasu => src/kasu}/static/css/desktop.less | 0 src/kasu/static/css/kasu.css | 1 + {kasu => src/kasu}/static/css/kasu.less | 0 {kasu => src/kasu}/static/css/mobile.less | 0 {kasu => src/kasu}/static/css/print.less | 0 .../kasu}/static/fonts/amerikasans.eot | Bin .../kasu}/static/fonts/amerikasans.svg | 0 .../kasu}/static/fonts/amerikasans.ttf | Bin .../kasu}/static/fonts/amerikasans.woff | Bin .../kasu}/static/fonts/philosopher.svg | 0 .../kasu}/static/fonts/philosopher.ttf | Bin .../kasu}/static/fonts/philosopher.woff | Bin {kasu => src/kasu}/static/fonts/social.ttf | Bin {kasu => src/kasu}/static/fonts/social.woff | Bin {kasu => src/kasu}/static/icons/accept.png | Bin {kasu => src/kasu}/static/icons/add.png | Bin {kasu => src/kasu}/static/icons/anchor.png | Bin .../kasu}/static/icons/application.png | Bin .../kasu}/static/icons/application_add.png | Bin .../static/icons/application_cascade.png | Bin .../kasu}/static/icons/application_delete.png | Bin .../kasu}/static/icons/application_double.png | Bin .../kasu}/static/icons/application_edit.png | Bin .../kasu}/static/icons/application_error.png | Bin .../kasu}/static/icons/application_form.png | Bin .../static/icons/application_form_add.png | Bin .../static/icons/application_form_delete.png | Bin .../static/icons/application_form_edit.png | Bin .../static/icons/application_form_magnify.png | Bin .../kasu}/static/icons/application_get.png | Bin .../kasu}/static/icons/application_go.png | Bin .../kasu}/static/icons/application_home.png | Bin .../kasu}/static/icons/application_key.png | Bin .../static/icons/application_lightning.png | Bin .../kasu}/static/icons/application_link.png | Bin .../kasu}/static/icons/application_osx.png | Bin .../static/icons/application_osx_terminal.png | Bin .../kasu}/static/icons/application_put.png | Bin .../static/icons/application_side_boxes.png | Bin .../icons/application_side_contract.png | Bin .../static/icons/application_side_expand.png | Bin .../static/icons/application_side_list.png | Bin .../static/icons/application_side_tree.png | Bin .../kasu}/static/icons/application_split.png | Bin .../icons/application_tile_horizontal.png | Bin .../icons/application_tile_vertical.png | Bin .../static/icons/application_view_columns.png | Bin .../static/icons/application_view_detail.png | Bin .../static/icons/application_view_gallery.png | Bin .../static/icons/application_view_icons.png | Bin .../static/icons/application_view_list.png | Bin .../static/icons/application_view_tile.png | Bin .../kasu}/static/icons/application_xp.png | Bin .../static/icons/application_xp_terminal.png | Bin .../kasu}/static/icons/arrow_branch.png | Bin .../kasu}/static/icons/arrow_divide.png | Bin .../kasu}/static/icons/arrow_down.png | Bin {kasu => src/kasu}/static/icons/arrow_in.png | Bin .../kasu}/static/icons/arrow_inout.png | Bin .../kasu}/static/icons/arrow_join.png | Bin .../kasu}/static/icons/arrow_left.png | Bin .../kasu}/static/icons/arrow_merge.png | Bin {kasu => src/kasu}/static/icons/arrow_out.png | Bin .../kasu}/static/icons/arrow_redo.png | Bin .../kasu}/static/icons/arrow_refresh.png | Bin .../static/icons/arrow_refresh_small.png | Bin .../kasu}/static/icons/arrow_right.png | Bin .../icons/arrow_rotate_anticlockwise.png | Bin .../static/icons/arrow_rotate_clockwise.png | Bin .../kasu}/static/icons/arrow_switch.png | Bin .../kasu}/static/icons/arrow_turn_left.png | Bin .../kasu}/static/icons/arrow_turn_right.png | Bin .../kasu}/static/icons/arrow_undo.png | Bin {kasu => src/kasu}/static/icons/arrow_up.png | Bin .../kasu}/static/icons/asterisk_orange.png | Bin .../kasu}/static/icons/asterisk_yellow.png | Bin {kasu => src/kasu}/static/icons/attach.png | Bin .../kasu}/static/icons/award_star_add.png | Bin .../static/icons/award_star_bronze_1.png | Bin .../static/icons/award_star_bronze_2.png | Bin .../static/icons/award_star_bronze_3.png | Bin .../kasu}/static/icons/award_star_delete.png | Bin .../kasu}/static/icons/award_star_gold_1.png | Bin .../kasu}/static/icons/award_star_gold_2.png | Bin .../kasu}/static/icons/award_star_gold_3.png | Bin .../static/icons/award_star_silver_1.png | Bin .../static/icons/award_star_silver_2.png | Bin .../static/icons/award_star_silver_3.png | Bin {kasu => src/kasu}/static/icons/basket.png | Bin .../kasu}/static/icons/basket_add.png | Bin .../kasu}/static/icons/basket_delete.png | Bin .../kasu}/static/icons/basket_edit.png | Bin .../kasu}/static/icons/basket_error.png | Bin {kasu => src/kasu}/static/icons/basket_go.png | Bin .../kasu}/static/icons/basket_put.png | Bin .../kasu}/static/icons/basket_remove.png | Bin {kasu => src/kasu}/static/icons/bell.png | Bin {kasu => src/kasu}/static/icons/bell_add.png | Bin .../kasu}/static/icons/bell_delete.png | Bin .../kasu}/static/icons/bell_error.png | Bin {kasu => src/kasu}/static/icons/bell_go.png | Bin {kasu => src/kasu}/static/icons/bell_link.png | Bin {kasu => src/kasu}/static/icons/bin.png | Bin .../kasu}/static/icons/bin_closed.png | Bin {kasu => src/kasu}/static/icons/bin_empty.png | Bin {kasu => src/kasu}/static/icons/bomb.png | Bin {kasu => src/kasu}/static/icons/book.png | Bin {kasu => src/kasu}/static/icons/book_add.png | Bin .../kasu}/static/icons/book_addresses.png | Bin .../kasu}/static/icons/book_delete.png | Bin {kasu => src/kasu}/static/icons/book_edit.png | Bin .../kasu}/static/icons/book_error.png | Bin {kasu => src/kasu}/static/icons/book_go.png | Bin {kasu => src/kasu}/static/icons/book_key.png | Bin {kasu => src/kasu}/static/icons/book_link.png | Bin {kasu => src/kasu}/static/icons/book_next.png | Bin {kasu => src/kasu}/static/icons/book_open.png | Bin .../kasu}/static/icons/book_previous.png | Bin {kasu => src/kasu}/static/icons/box.png | Bin {kasu => src/kasu}/static/icons/brick.png | Bin {kasu => src/kasu}/static/icons/brick_add.png | Bin .../kasu}/static/icons/brick_delete.png | Bin .../kasu}/static/icons/brick_edit.png | Bin .../kasu}/static/icons/brick_error.png | Bin {kasu => src/kasu}/static/icons/brick_go.png | Bin .../kasu}/static/icons/brick_link.png | Bin {kasu => src/kasu}/static/icons/bricks.png | Bin {kasu => src/kasu}/static/icons/briefcase.png | Bin {kasu => src/kasu}/static/icons/bug.png | Bin {kasu => src/kasu}/static/icons/bug_add.png | Bin .../kasu}/static/icons/bug_delete.png | Bin {kasu => src/kasu}/static/icons/bug_edit.png | Bin {kasu => src/kasu}/static/icons/bug_error.png | Bin {kasu => src/kasu}/static/icons/bug_go.png | Bin {kasu => src/kasu}/static/icons/bug_link.png | Bin {kasu => src/kasu}/static/icons/building.png | Bin .../kasu}/static/icons/building_add.png | Bin .../kasu}/static/icons/building_delete.png | Bin .../kasu}/static/icons/building_edit.png | Bin .../kasu}/static/icons/building_error.png | Bin .../kasu}/static/icons/building_go.png | Bin .../kasu}/static/icons/building_key.png | Bin .../kasu}/static/icons/building_link.png | Bin .../kasu}/static/icons/bullet_add.png | Bin .../static/icons/bullet_arrow_bottom.png | Bin .../kasu}/static/icons/bullet_arrow_down.png | Bin .../kasu}/static/icons/bullet_arrow_top.png | Bin .../kasu}/static/icons/bullet_arrow_up.png | Bin .../kasu}/static/icons/bullet_black.png | Bin .../kasu}/static/icons/bullet_blue.png | Bin .../kasu}/static/icons/bullet_delete.png | Bin .../kasu}/static/icons/bullet_disk.png | Bin .../kasu}/static/icons/bullet_error.png | Bin .../kasu}/static/icons/bullet_feed.png | Bin {kasu => src/kasu}/static/icons/bullet_go.png | Bin .../kasu}/static/icons/bullet_green.png | Bin .../kasu}/static/icons/bullet_key.png | Bin .../kasu}/static/icons/bullet_orange.png | Bin .../kasu}/static/icons/bullet_picture.png | Bin .../kasu}/static/icons/bullet_pink.png | Bin .../kasu}/static/icons/bullet_purple.png | Bin .../kasu}/static/icons/bullet_red.png | Bin .../kasu}/static/icons/bullet_star.png | Bin .../static/icons/bullet_toggle_minus.png | Bin .../kasu}/static/icons/bullet_toggle_plus.png | Bin .../kasu}/static/icons/bullet_white.png | Bin .../kasu}/static/icons/bullet_wrench.png | Bin .../kasu}/static/icons/bullet_yellow.png | Bin {kasu => src/kasu}/static/icons/cake.png | Bin .../kasu}/static/icons/calculator.png | Bin .../kasu}/static/icons/calculator_add.png | Bin .../kasu}/static/icons/calculator_delete.png | Bin .../kasu}/static/icons/calculator_edit.png | Bin .../kasu}/static/icons/calculator_error.png | Bin .../kasu}/static/icons/calculator_link.png | Bin {kasu => src/kasu}/static/icons/calendar.png | Bin .../kasu}/static/icons/calendar_add.png | Bin .../kasu}/static/icons/calendar_delete.png | Bin .../kasu}/static/icons/calendar_edit.png | Bin .../kasu}/static/icons/calendar_link.png | Bin .../kasu}/static/icons/calendar_view_day.png | Bin .../static/icons/calendar_view_month.png | Bin .../kasu}/static/icons/calendar_view_week.png | Bin {kasu => src/kasu}/static/icons/camera.png | Bin .../kasu}/static/icons/camera_add.png | Bin .../kasu}/static/icons/camera_delete.png | Bin .../kasu}/static/icons/camera_edit.png | Bin .../kasu}/static/icons/camera_error.png | Bin {kasu => src/kasu}/static/icons/camera_go.png | Bin .../kasu}/static/icons/camera_link.png | Bin .../kasu}/static/icons/camera_small.png | Bin {kasu => src/kasu}/static/icons/cancel.png | Bin {kasu => src/kasu}/static/icons/car.png | Bin {kasu => src/kasu}/static/icons/car_add.png | Bin .../kasu}/static/icons/car_delete.png | Bin {kasu => src/kasu}/static/icons/cart.png | Bin {kasu => src/kasu}/static/icons/cart_add.png | Bin .../kasu}/static/icons/cart_delete.png | Bin {kasu => src/kasu}/static/icons/cart_edit.png | Bin .../kasu}/static/icons/cart_error.png | Bin {kasu => src/kasu}/static/icons/cart_go.png | Bin {kasu => src/kasu}/static/icons/cart_put.png | Bin .../kasu}/static/icons/cart_remove.png | Bin {kasu => src/kasu}/static/icons/cd.png | Bin {kasu => src/kasu}/static/icons/cd_add.png | Bin {kasu => src/kasu}/static/icons/cd_burn.png | Bin {kasu => src/kasu}/static/icons/cd_delete.png | Bin {kasu => src/kasu}/static/icons/cd_edit.png | Bin {kasu => src/kasu}/static/icons/cd_eject.png | Bin {kasu => src/kasu}/static/icons/cd_go.png | Bin {kasu => src/kasu}/static/icons/chart_bar.png | Bin .../kasu}/static/icons/chart_bar_add.png | Bin .../kasu}/static/icons/chart_bar_delete.png | Bin .../kasu}/static/icons/chart_bar_edit.png | Bin .../kasu}/static/icons/chart_bar_error.png | Bin .../kasu}/static/icons/chart_bar_link.png | Bin .../kasu}/static/icons/chart_curve.png | Bin .../kasu}/static/icons/chart_curve_add.png | Bin .../kasu}/static/icons/chart_curve_delete.png | Bin .../kasu}/static/icons/chart_curve_edit.png | Bin .../kasu}/static/icons/chart_curve_error.png | Bin .../kasu}/static/icons/chart_curve_go.png | Bin .../kasu}/static/icons/chart_curve_link.png | Bin .../kasu}/static/icons/chart_line.png | Bin .../kasu}/static/icons/chart_line_add.png | Bin .../kasu}/static/icons/chart_line_delete.png | Bin .../kasu}/static/icons/chart_line_edit.png | Bin .../kasu}/static/icons/chart_line_error.png | Bin .../kasu}/static/icons/chart_line_link.png | Bin .../kasu}/static/icons/chart_organisation.png | Bin .../static/icons/chart_organisation_add.png | Bin .../icons/chart_organisation_delete.png | Bin {kasu => src/kasu}/static/icons/chart_pie.png | Bin .../kasu}/static/icons/chart_pie_add.png | Bin .../kasu}/static/icons/chart_pie_delete.png | Bin .../kasu}/static/icons/chart_pie_edit.png | Bin .../kasu}/static/icons/chart_pie_error.png | Bin .../kasu}/static/icons/chart_pie_link.png | Bin {kasu => src/kasu}/static/icons/clock.png | Bin {kasu => src/kasu}/static/icons/clock_add.png | Bin .../kasu}/static/icons/clock_delete.png | Bin .../kasu}/static/icons/clock_edit.png | Bin .../kasu}/static/icons/clock_error.png | Bin {kasu => src/kasu}/static/icons/clock_go.png | Bin .../kasu}/static/icons/clock_link.png | Bin .../kasu}/static/icons/clock_pause.png | Bin .../kasu}/static/icons/clock_play.png | Bin {kasu => src/kasu}/static/icons/clock_red.png | Bin .../kasu}/static/icons/clock_stop.png | Bin {kasu => src/kasu}/static/icons/cog.png | Bin {kasu => src/kasu}/static/icons/cog_add.png | Bin .../kasu}/static/icons/cog_delete.png | Bin {kasu => src/kasu}/static/icons/cog_edit.png | Bin {kasu => src/kasu}/static/icons/cog_error.png | Bin {kasu => src/kasu}/static/icons/cog_go.png | Bin {kasu => src/kasu}/static/icons/coins.png | Bin {kasu => src/kasu}/static/icons/coins_add.png | Bin .../kasu}/static/icons/coins_delete.png | Bin .../kasu}/static/icons/color_swatch.png | Bin .../kasu}/static/icons/color_wheel.png | Bin {kasu => src/kasu}/static/icons/comment.png | Bin .../kasu}/static/icons/comment_add.png | Bin .../kasu}/static/icons/comment_delete.png | Bin .../kasu}/static/icons/comment_edit.png | Bin {kasu => src/kasu}/static/icons/comments.png | Bin .../kasu}/static/icons/comments_add.png | Bin .../kasu}/static/icons/comments_delete.png | Bin {kasu => src/kasu}/static/icons/compress.png | Bin {kasu => src/kasu}/static/icons/computer.png | Bin .../kasu}/static/icons/computer_add.png | Bin .../kasu}/static/icons/computer_delete.png | Bin .../kasu}/static/icons/computer_edit.png | Bin .../kasu}/static/icons/computer_error.png | Bin .../kasu}/static/icons/computer_go.png | Bin .../kasu}/static/icons/computer_key.png | Bin .../kasu}/static/icons/computer_link.png | Bin {kasu => src/kasu}/static/icons/connect.png | Bin {kasu => src/kasu}/static/icons/contrast.png | Bin .../kasu}/static/icons/contrast_decrease.png | Bin .../kasu}/static/icons/contrast_high.png | Bin .../kasu}/static/icons/contrast_increase.png | Bin .../kasu}/static/icons/contrast_low.png | Bin .../kasu}/static/icons/control_eject.png | Bin .../kasu}/static/icons/control_eject_blue.png | Bin .../kasu}/static/icons/control_end.png | Bin .../kasu}/static/icons/control_end_blue.png | Bin .../kasu}/static/icons/control_equalizer.png | Bin .../static/icons/control_equalizer_blue.png | Bin .../static/icons/control_fastforward.png | Bin .../static/icons/control_fastforward_blue.png | Bin .../kasu}/static/icons/control_pause.png | Bin .../kasu}/static/icons/control_pause_blue.png | Bin .../kasu}/static/icons/control_play.png | Bin .../kasu}/static/icons/control_play_blue.png | Bin .../kasu}/static/icons/control_repeat.png | Bin .../static/icons/control_repeat_blue.png | Bin .../kasu}/static/icons/control_rewind.png | Bin .../static/icons/control_rewind_blue.png | Bin .../kasu}/static/icons/control_start.png | Bin .../kasu}/static/icons/control_start_blue.png | Bin .../kasu}/static/icons/control_stop.png | Bin .../kasu}/static/icons/control_stop_blue.png | Bin .../kasu}/static/icons/controller.png | Bin .../kasu}/static/icons/controller_add.png | Bin .../kasu}/static/icons/controller_delete.png | Bin .../kasu}/static/icons/controller_error.png | Bin .../kasu}/static/icons/creditcards.png | Bin {kasu => src/kasu}/static/icons/cross.png | Bin {kasu => src/kasu}/static/icons/css.png | Bin {kasu => src/kasu}/static/icons/css_add.png | Bin .../kasu}/static/icons/css_delete.png | Bin {kasu => src/kasu}/static/icons/css_go.png | Bin {kasu => src/kasu}/static/icons/css_valid.png | Bin {kasu => src/kasu}/static/icons/cup.png | Bin {kasu => src/kasu}/static/icons/cup_add.png | Bin .../kasu}/static/icons/cup_delete.png | Bin {kasu => src/kasu}/static/icons/cup_edit.png | Bin {kasu => src/kasu}/static/icons/cup_error.png | Bin {kasu => src/kasu}/static/icons/cup_go.png | Bin {kasu => src/kasu}/static/icons/cup_key.png | Bin {kasu => src/kasu}/static/icons/cup_link.png | Bin {kasu => src/kasu}/static/icons/cursor.png | Bin {kasu => src/kasu}/static/icons/cut.png | Bin {kasu => src/kasu}/static/icons/cut_red.png | Bin {kasu => src/kasu}/static/icons/database.png | Bin .../kasu}/static/icons/database_add.png | Bin .../kasu}/static/icons/database_connect.png | Bin .../kasu}/static/icons/database_delete.png | Bin .../kasu}/static/icons/database_edit.png | Bin .../kasu}/static/icons/database_error.png | Bin .../kasu}/static/icons/database_gear.png | Bin .../kasu}/static/icons/database_go.png | Bin .../kasu}/static/icons/database_key.png | Bin .../kasu}/static/icons/database_lightning.png | Bin .../kasu}/static/icons/database_link.png | Bin .../kasu}/static/icons/database_refresh.png | Bin .../kasu}/static/icons/database_save.png | Bin .../kasu}/static/icons/database_table.png | Bin {kasu => src/kasu}/static/icons/date.png | Bin {kasu => src/kasu}/static/icons/date_add.png | Bin .../kasu}/static/icons/date_delete.png | Bin {kasu => src/kasu}/static/icons/date_edit.png | Bin .../kasu}/static/icons/date_error.png | Bin {kasu => src/kasu}/static/icons/date_go.png | Bin {kasu => src/kasu}/static/icons/date_link.png | Bin .../kasu}/static/icons/date_magnify.png | Bin {kasu => src/kasu}/static/icons/date_next.png | Bin .../kasu}/static/icons/date_previous.png | Bin {kasu => src/kasu}/static/icons/delete.png | Bin .../kasu}/static/icons/disconnect.png | Bin {kasu => src/kasu}/static/icons/disk.png | Bin .../kasu}/static/icons/disk_multiple.png | Bin {kasu => src/kasu}/static/icons/door.png | Bin {kasu => src/kasu}/static/icons/door_in.png | Bin {kasu => src/kasu}/static/icons/door_open.png | Bin {kasu => src/kasu}/static/icons/door_out.png | Bin {kasu => src/kasu}/static/icons/drink.png | Bin .../kasu}/static/icons/drink_empty.png | Bin {kasu => src/kasu}/static/icons/drive.png | Bin {kasu => src/kasu}/static/icons/drive_add.png | Bin .../kasu}/static/icons/drive_burn.png | Bin {kasu => src/kasu}/static/icons/drive_cd.png | Bin .../kasu}/static/icons/drive_cd_empty.png | Bin .../kasu}/static/icons/drive_delete.png | Bin .../kasu}/static/icons/drive_disk.png | Bin .../kasu}/static/icons/drive_edit.png | Bin .../kasu}/static/icons/drive_error.png | Bin {kasu => src/kasu}/static/icons/drive_go.png | Bin {kasu => src/kasu}/static/icons/drive_key.png | Bin .../kasu}/static/icons/drive_link.png | Bin .../kasu}/static/icons/drive_magnify.png | Bin .../kasu}/static/icons/drive_network.png | Bin .../kasu}/static/icons/drive_rename.png | Bin .../kasu}/static/icons/drive_user.png | Bin {kasu => src/kasu}/static/icons/drive_web.png | Bin {kasu => src/kasu}/static/icons/dvd.png | Bin {kasu => src/kasu}/static/icons/dvd_add.png | Bin .../kasu}/static/icons/dvd_delete.png | Bin {kasu => src/kasu}/static/icons/dvd_edit.png | Bin {kasu => src/kasu}/static/icons/dvd_error.png | Bin {kasu => src/kasu}/static/icons/dvd_go.png | Bin {kasu => src/kasu}/static/icons/dvd_key.png | Bin {kasu => src/kasu}/static/icons/dvd_link.png | Bin {kasu => src/kasu}/static/icons/email.png | Bin {kasu => src/kasu}/static/icons/email_add.png | Bin .../kasu}/static/icons/email_attach.png | Bin .../kasu}/static/icons/email_delete.png | Bin .../kasu}/static/icons/email_edit.png | Bin .../kasu}/static/icons/email_error.png | Bin {kasu => src/kasu}/static/icons/email_go.png | Bin .../kasu}/static/icons/email_link.png | Bin .../kasu}/static/icons/email_open.png | Bin .../kasu}/static/icons/email_open_image.png | Bin .../kasu}/static/icons/emoticon_evilgrin.png | Bin .../kasu}/static/icons/emoticon_grin.png | Bin .../kasu}/static/icons/emoticon_happy.png | Bin .../kasu}/static/icons/emoticon_smile.png | Bin .../kasu}/static/icons/emoticon_surprised.png | Bin .../kasu}/static/icons/emoticon_tongue.png | Bin .../kasu}/static/icons/emoticon_unhappy.png | Bin .../kasu}/static/icons/emoticon_waii.png | Bin .../kasu}/static/icons/emoticon_wink.png | Bin {kasu => src/kasu}/static/icons/error.png | Bin {kasu => src/kasu}/static/icons/error_add.png | Bin .../kasu}/static/icons/error_delete.png | Bin {kasu => src/kasu}/static/icons/error_go.png | Bin .../kasu}/static/icons/exclamation.png | Bin {kasu => src/kasu}/static/icons/eye.png | Bin {kasu => src/kasu}/static/icons/feed.png | Bin {kasu => src/kasu}/static/icons/feed_add.png | Bin .../kasu}/static/icons/feed_delete.png | Bin {kasu => src/kasu}/static/icons/feed_disk.png | Bin {kasu => src/kasu}/static/icons/feed_edit.png | Bin .../kasu}/static/icons/feed_error.png | Bin {kasu => src/kasu}/static/icons/feed_go.png | Bin {kasu => src/kasu}/static/icons/feed_key.png | Bin {kasu => src/kasu}/static/icons/feed_link.png | Bin .../kasu}/static/icons/feed_magnify.png | Bin {kasu => src/kasu}/static/icons/female.png | Bin {kasu => src/kasu}/static/icons/film.png | Bin {kasu => src/kasu}/static/icons/film_add.png | Bin .../kasu}/static/icons/film_delete.png | Bin {kasu => src/kasu}/static/icons/film_edit.png | Bin .../kasu}/static/icons/film_error.png | Bin {kasu => src/kasu}/static/icons/film_go.png | Bin {kasu => src/kasu}/static/icons/film_key.png | Bin {kasu => src/kasu}/static/icons/film_link.png | Bin {kasu => src/kasu}/static/icons/film_save.png | Bin {kasu => src/kasu}/static/icons/find.png | Bin {kasu => src/kasu}/static/icons/flag_blue.png | Bin .../kasu}/static/icons/flag_green.png | Bin .../kasu}/static/icons/flag_orange.png | Bin {kasu => src/kasu}/static/icons/flag_pink.png | Bin .../kasu}/static/icons/flag_purple.png | Bin {kasu => src/kasu}/static/icons/flag_red.png | Bin .../kasu}/static/icons/flag_yellow.png | Bin {kasu => src/kasu}/static/icons/folder.png | Bin .../kasu}/static/icons/folder_add.png | Bin .../kasu}/static/icons/folder_bell.png | Bin .../kasu}/static/icons/folder_brick.png | Bin .../kasu}/static/icons/folder_bug.png | Bin .../kasu}/static/icons/folder_camera.png | Bin .../kasu}/static/icons/folder_database.png | Bin .../kasu}/static/icons/folder_delete.png | Bin .../kasu}/static/icons/folder_edit.png | Bin .../kasu}/static/icons/folder_error.png | Bin .../kasu}/static/icons/folder_explore.png | Bin .../kasu}/static/icons/folder_feed.png | Bin .../kasu}/static/icons/folder_find.png | Bin {kasu => src/kasu}/static/icons/folder_go.png | Bin .../kasu}/static/icons/folder_heart.png | Bin .../kasu}/static/icons/folder_image.png | Bin .../kasu}/static/icons/folder_key.png | Bin .../kasu}/static/icons/folder_lightbulb.png | Bin .../kasu}/static/icons/folder_link.png | Bin .../kasu}/static/icons/folder_magnify.png | Bin .../kasu}/static/icons/folder_page.png | Bin .../kasu}/static/icons/folder_page_white.png | Bin .../kasu}/static/icons/folder_palette.png | Bin .../kasu}/static/icons/folder_picture.png | Bin .../kasu}/static/icons/folder_star.png | Bin .../kasu}/static/icons/folder_table.png | Bin .../kasu}/static/icons/folder_user.png | Bin .../kasu}/static/icons/folder_wrench.png | Bin {kasu => src/kasu}/static/icons/font.png | Bin {kasu => src/kasu}/static/icons/font_add.png | Bin .../kasu}/static/icons/font_delete.png | Bin {kasu => src/kasu}/static/icons/font_go.png | Bin {kasu => src/kasu}/static/icons/group.png | Bin {kasu => src/kasu}/static/icons/group_add.png | Bin .../kasu}/static/icons/group_delete.png | Bin .../kasu}/static/icons/group_edit.png | Bin .../kasu}/static/icons/group_error.png | Bin .../kasu}/static/icons/group_gear.png | Bin {kasu => src/kasu}/static/icons/group_go.png | Bin {kasu => src/kasu}/static/icons/group_key.png | Bin .../kasu}/static/icons/group_link.png | Bin {kasu => src/kasu}/static/icons/heart.png | Bin {kasu => src/kasu}/static/icons/heart_add.png | Bin .../kasu}/static/icons/heart_delete.png | Bin {kasu => src/kasu}/static/icons/help.png | Bin {kasu => src/kasu}/static/icons/hourglass.png | Bin .../kasu}/static/icons/hourglass_add.png | Bin .../kasu}/static/icons/hourglass_delete.png | Bin .../kasu}/static/icons/hourglass_go.png | Bin .../kasu}/static/icons/hourglass_link.png | Bin {kasu => src/kasu}/static/icons/house.png | Bin {kasu => src/kasu}/static/icons/house_go.png | Bin .../kasu}/static/icons/house_link.png | Bin {kasu => src/kasu}/static/icons/html.png | Bin {kasu => src/kasu}/static/icons/html_add.png | Bin .../kasu}/static/icons/html_delete.png | Bin {kasu => src/kasu}/static/icons/html_go.png | Bin .../kasu}/static/icons/html_valid.png | Bin {kasu => src/kasu}/static/icons/image.png | Bin {kasu => src/kasu}/static/icons/image_add.png | Bin .../kasu}/static/icons/image_delete.png | Bin .../kasu}/static/icons/image_edit.png | Bin .../kasu}/static/icons/image_link.png | Bin {kasu => src/kasu}/static/icons/images.png | Bin .../kasu}/static/icons/information.png | Bin {kasu => src/kasu}/static/icons/ipod.png | Bin {kasu => src/kasu}/static/icons/ipod_cast.png | Bin .../kasu}/static/icons/ipod_cast_add.png | Bin .../kasu}/static/icons/ipod_cast_delete.png | Bin .../kasu}/static/icons/ipod_sound.png | Bin {kasu => src/kasu}/static/icons/joystick.png | Bin .../kasu}/static/icons/joystick_add.png | Bin .../kasu}/static/icons/joystick_delete.png | Bin .../kasu}/static/icons/joystick_error.png | Bin {kasu => src/kasu}/static/icons/key.png | Bin {kasu => src/kasu}/static/icons/key_add.png | Bin .../kasu}/static/icons/key_delete.png | Bin {kasu => src/kasu}/static/icons/key_go.png | Bin {kasu => src/kasu}/static/icons/keyboard.png | Bin .../kasu}/static/icons/keyboard_add.png | Bin .../kasu}/static/icons/keyboard_delete.png | Bin .../kasu}/static/icons/keyboard_magnify.png | Bin {kasu => src/kasu}/static/icons/layers.png | Bin {kasu => src/kasu}/static/icons/layout.png | Bin .../kasu}/static/icons/layout_add.png | Bin .../kasu}/static/icons/layout_content.png | Bin .../kasu}/static/icons/layout_delete.png | Bin .../kasu}/static/icons/layout_edit.png | Bin .../kasu}/static/icons/layout_error.png | Bin .../kasu}/static/icons/layout_header.png | Bin .../kasu}/static/icons/layout_link.png | Bin .../kasu}/static/icons/layout_sidebar.png | Bin {kasu => src/kasu}/static/icons/lightbulb.png | Bin .../kasu}/static/icons/lightbulb_add.png | Bin .../kasu}/static/icons/lightbulb_delete.png | Bin .../kasu}/static/icons/lightbulb_off.png | Bin {kasu => src/kasu}/static/icons/lightning.png | Bin .../kasu}/static/icons/lightning_add.png | Bin .../kasu}/static/icons/lightning_delete.png | Bin .../kasu}/static/icons/lightning_go.png | Bin {kasu => src/kasu}/static/icons/link.png | Bin {kasu => src/kasu}/static/icons/link_add.png | Bin .../kasu}/static/icons/link_break.png | Bin .../kasu}/static/icons/link_delete.png | Bin {kasu => src/kasu}/static/icons/link_edit.png | Bin .../kasu}/static/icons/link_error.png | Bin {kasu => src/kasu}/static/icons/link_go.png | Bin {kasu => src/kasu}/static/icons/lock.png | Bin {kasu => src/kasu}/static/icons/lock_add.png | Bin .../kasu}/static/icons/lock_break.png | Bin .../kasu}/static/icons/lock_delete.png | Bin {kasu => src/kasu}/static/icons/lock_edit.png | Bin {kasu => src/kasu}/static/icons/lock_go.png | Bin {kasu => src/kasu}/static/icons/lock_open.png | Bin {kasu => src/kasu}/static/icons/lorry.png | Bin {kasu => src/kasu}/static/icons/lorry_add.png | Bin .../kasu}/static/icons/lorry_delete.png | Bin .../kasu}/static/icons/lorry_error.png | Bin .../kasu}/static/icons/lorry_flatbed.png | Bin {kasu => src/kasu}/static/icons/lorry_go.png | Bin .../kasu}/static/icons/lorry_link.png | Bin .../kasu}/static/icons/magifier_zoom_out.png | Bin {kasu => src/kasu}/static/icons/magnifier.png | Bin .../kasu}/static/icons/magnifier_zoom_in.png | Bin {kasu => src/kasu}/static/icons/male.png | Bin {kasu => src/kasu}/static/icons/map.png | Bin {kasu => src/kasu}/static/icons/map_add.png | Bin .../kasu}/static/icons/map_delete.png | Bin {kasu => src/kasu}/static/icons/map_edit.png | Bin {kasu => src/kasu}/static/icons/map_go.png | Bin .../kasu}/static/icons/map_magnify.png | Bin .../kasu}/static/icons/medal_bronze_1.png | Bin .../kasu}/static/icons/medal_bronze_2.png | Bin .../kasu}/static/icons/medal_bronze_3.png | Bin .../kasu}/static/icons/medal_bronze_add.png | Bin .../static/icons/medal_bronze_delete.png | Bin .../kasu}/static/icons/medal_gold_1.png | Bin .../kasu}/static/icons/medal_gold_2.png | Bin .../kasu}/static/icons/medal_gold_3.png | Bin .../kasu}/static/icons/medal_gold_add.png | Bin .../kasu}/static/icons/medal_gold_delete.png | Bin .../kasu}/static/icons/medal_silver_1.png | Bin .../kasu}/static/icons/medal_silver_2.png | Bin .../kasu}/static/icons/medal_silver_3.png | Bin .../kasu}/static/icons/medal_silver_add.png | Bin .../static/icons/medal_silver_delete.png | Bin {kasu => src/kasu}/static/icons/money.png | Bin {kasu => src/kasu}/static/icons/money_add.png | Bin .../kasu}/static/icons/money_delete.png | Bin .../kasu}/static/icons/money_dollar.png | Bin .../kasu}/static/icons/money_euro.png | Bin .../kasu}/static/icons/money_pound.png | Bin {kasu => src/kasu}/static/icons/money_yen.png | Bin {kasu => src/kasu}/static/icons/monitor.png | Bin .../kasu}/static/icons/monitor_add.png | Bin .../kasu}/static/icons/monitor_delete.png | Bin .../kasu}/static/icons/monitor_edit.png | Bin .../kasu}/static/icons/monitor_error.png | Bin .../kasu}/static/icons/monitor_go.png | Bin .../kasu}/static/icons/monitor_lightning.png | Bin .../kasu}/static/icons/monitor_link.png | Bin {kasu => src/kasu}/static/icons/mouse.png | Bin {kasu => src/kasu}/static/icons/mouse_add.png | Bin .../kasu}/static/icons/mouse_delete.png | Bin .../kasu}/static/icons/mouse_error.png | Bin {kasu => src/kasu}/static/icons/music.png | Bin {kasu => src/kasu}/static/icons/new.png | Bin {kasu => src/kasu}/static/icons/newspaper.png | Bin .../kasu}/static/icons/newspaper_add.png | Bin .../kasu}/static/icons/newspaper_delete.png | Bin .../kasu}/static/icons/newspaper_go.png | Bin .../kasu}/static/icons/newspaper_link.png | Bin {kasu => src/kasu}/static/icons/note.png | Bin {kasu => src/kasu}/static/icons/note_add.png | Bin .../kasu}/static/icons/note_delete.png | Bin {kasu => src/kasu}/static/icons/note_edit.png | Bin .../kasu}/static/icons/note_error.png | Bin {kasu => src/kasu}/static/icons/note_go.png | Bin {kasu => src/kasu}/static/icons/overlays.png | Bin {kasu => src/kasu}/static/icons/package.png | Bin .../kasu}/static/icons/package_add.png | Bin .../kasu}/static/icons/package_delete.png | Bin .../kasu}/static/icons/package_go.png | Bin .../kasu}/static/icons/package_green.png | Bin .../kasu}/static/icons/package_link.png | Bin {kasu => src/kasu}/static/icons/page.png | Bin {kasu => src/kasu}/static/icons/page_add.png | Bin .../kasu}/static/icons/page_attach.png | Bin {kasu => src/kasu}/static/icons/page_code.png | Bin {kasu => src/kasu}/static/icons/page_copy.png | Bin .../kasu}/static/icons/page_delete.png | Bin {kasu => src/kasu}/static/icons/page_edit.png | Bin .../kasu}/static/icons/page_error.png | Bin .../kasu}/static/icons/page_excel.png | Bin {kasu => src/kasu}/static/icons/page_find.png | Bin {kasu => src/kasu}/static/icons/page_gear.png | Bin {kasu => src/kasu}/static/icons/page_go.png | Bin .../kasu}/static/icons/page_green.png | Bin {kasu => src/kasu}/static/icons/page_key.png | Bin .../kasu}/static/icons/page_lightning.png | Bin {kasu => src/kasu}/static/icons/page_link.png | Bin .../kasu}/static/icons/page_paintbrush.png | Bin .../kasu}/static/icons/page_paste.png | Bin {kasu => src/kasu}/static/icons/page_red.png | Bin .../kasu}/static/icons/page_refresh.png | Bin {kasu => src/kasu}/static/icons/page_save.png | Bin .../kasu}/static/icons/page_white.png | Bin .../kasu}/static/icons/page_white_acrobat.png | Bin .../static/icons/page_white_actionscript.png | Bin .../kasu}/static/icons/page_white_add.png | Bin .../kasu}/static/icons/page_white_c.png | Bin .../kasu}/static/icons/page_white_camera.png | Bin .../kasu}/static/icons/page_white_cd.png | Bin .../kasu}/static/icons/page_white_code.png | Bin .../static/icons/page_white_code_red.png | Bin .../static/icons/page_white_coldfusion.png | Bin .../static/icons/page_white_compressed.png | Bin .../kasu}/static/icons/page_white_copy.png | Bin .../static/icons/page_white_cplusplus.png | Bin .../kasu}/static/icons/page_white_csharp.png | Bin .../kasu}/static/icons/page_white_cup.png | Bin .../static/icons/page_white_database.png | Bin .../kasu}/static/icons/page_white_delete.png | Bin .../kasu}/static/icons/page_white_dvd.png | Bin .../kasu}/static/icons/page_white_edit.png | Bin .../kasu}/static/icons/page_white_error.png | Bin .../kasu}/static/icons/page_white_excel.png | Bin .../kasu}/static/icons/page_white_find.png | Bin .../kasu}/static/icons/page_white_flash.png | Bin .../static/icons/page_white_freehand.png | Bin .../kasu}/static/icons/page_white_gear.png | Bin .../kasu}/static/icons/page_white_get.png | Bin .../kasu}/static/icons/page_white_go.png | Bin .../kasu}/static/icons/page_white_h.png | Bin .../static/icons/page_white_horizontal.png | Bin .../kasu}/static/icons/page_white_key.png | Bin .../static/icons/page_white_lightning.png | Bin .../kasu}/static/icons/page_white_link.png | Bin .../kasu}/static/icons/page_white_magnify.png | Bin .../kasu}/static/icons/page_white_medal.png | Bin .../kasu}/static/icons/page_white_office.png | Bin .../kasu}/static/icons/page_white_paint.png | Bin .../static/icons/page_white_paintbrush.png | Bin .../kasu}/static/icons/page_white_paste.png | Bin .../kasu}/static/icons/page_white_php.png | Bin .../kasu}/static/icons/page_white_picture.png | Bin .../static/icons/page_white_powerpoint.png | Bin .../kasu}/static/icons/page_white_put.png | Bin .../kasu}/static/icons/page_white_ruby.png | Bin .../kasu}/static/icons/page_white_stack.png | Bin .../kasu}/static/icons/page_white_star.png | Bin .../kasu}/static/icons/page_white_swoosh.png | Bin .../kasu}/static/icons/page_white_text.png | Bin .../static/icons/page_white_text_width.png | Bin .../kasu}/static/icons/page_white_tux.png | Bin .../kasu}/static/icons/page_white_vector.png | Bin .../static/icons/page_white_visualstudio.png | Bin .../kasu}/static/icons/page_white_width.png | Bin .../kasu}/static/icons/page_white_word.png | Bin .../kasu}/static/icons/page_white_world.png | Bin .../kasu}/static/icons/page_white_wrench.png | Bin .../kasu}/static/icons/page_white_zip.png | Bin {kasu => src/kasu}/static/icons/page_word.png | Bin .../kasu}/static/icons/page_world.png | Bin .../kasu}/static/icons/paintbrush.png | Bin {kasu => src/kasu}/static/icons/paintcan.png | Bin {kasu => src/kasu}/static/icons/palette.png | Bin .../kasu}/static/icons/paste_plain.png | Bin .../kasu}/static/icons/paste_word.png | Bin {kasu => src/kasu}/static/icons/pencil.png | Bin .../kasu}/static/icons/pencil_add.png | Bin .../kasu}/static/icons/pencil_delete.png | Bin {kasu => src/kasu}/static/icons/pencil_go.png | Bin {kasu => src/kasu}/static/icons/phone.png | Bin {kasu => src/kasu}/static/icons/phone_add.png | Bin .../kasu}/static/icons/phone_delete.png | Bin .../kasu}/static/icons/phone_sound.png | Bin {kasu => src/kasu}/static/icons/photo.png | Bin {kasu => src/kasu}/static/icons/photo_add.png | Bin .../kasu}/static/icons/photo_delete.png | Bin .../kasu}/static/icons/photo_link.png | Bin {kasu => src/kasu}/static/icons/photos.png | Bin {kasu => src/kasu}/static/icons/picture.png | Bin .../kasu}/static/icons/picture_add.png | Bin .../kasu}/static/icons/picture_delete.png | Bin .../kasu}/static/icons/picture_edit.png | Bin .../kasu}/static/icons/picture_empty.png | Bin .../kasu}/static/icons/picture_error.png | Bin .../kasu}/static/icons/picture_go.png | Bin .../kasu}/static/icons/picture_key.png | Bin .../kasu}/static/icons/picture_link.png | Bin .../kasu}/static/icons/picture_save.png | Bin {kasu => src/kasu}/static/icons/pictures.png | Bin {kasu => src/kasu}/static/icons/pilcrow.png | Bin {kasu => src/kasu}/static/icons/pill.png | Bin {kasu => src/kasu}/static/icons/pill_add.png | Bin .../kasu}/static/icons/pill_delete.png | Bin {kasu => src/kasu}/static/icons/pill_go.png | Bin {kasu => src/kasu}/static/icons/plugin.png | Bin .../kasu}/static/icons/plugin_add.png | Bin .../kasu}/static/icons/plugin_delete.png | Bin .../kasu}/static/icons/plugin_disabled.png | Bin .../kasu}/static/icons/plugin_edit.png | Bin .../kasu}/static/icons/plugin_error.png | Bin {kasu => src/kasu}/static/icons/plugin_go.png | Bin .../kasu}/static/icons/plugin_link.png | Bin {kasu => src/kasu}/static/icons/printer.png | Bin .../kasu}/static/icons/printer_add.png | Bin .../kasu}/static/icons/printer_delete.png | Bin .../kasu}/static/icons/printer_empty.png | Bin .../kasu}/static/icons/printer_error.png | Bin {kasu => src/kasu}/static/icons/rainbow.png | Bin {kasu => src/kasu}/static/icons/report.png | Bin .../kasu}/static/icons/report_add.png | Bin .../kasu}/static/icons/report_delete.png | Bin .../kasu}/static/icons/report_disk.png | Bin .../kasu}/static/icons/report_edit.png | Bin {kasu => src/kasu}/static/icons/report_go.png | Bin .../kasu}/static/icons/report_key.png | Bin .../kasu}/static/icons/report_link.png | Bin .../kasu}/static/icons/report_magnify.png | Bin .../kasu}/static/icons/report_picture.png | Bin .../kasu}/static/icons/report_user.png | Bin .../kasu}/static/icons/report_word.png | Bin .../kasu}/static/icons/resultset_first.png | Bin .../kasu}/static/icons/resultset_last.png | Bin .../kasu}/static/icons/resultset_next.png | Bin .../kasu}/static/icons/resultset_previous.png | Bin {kasu => src/kasu}/static/icons/rosette.png | Bin {kasu => src/kasu}/static/icons/rss.png | Bin {kasu => src/kasu}/static/icons/rss_add.png | Bin .../kasu}/static/icons/rss_delete.png | Bin {kasu => src/kasu}/static/icons/rss_go.png | Bin {kasu => src/kasu}/static/icons/rss_valid.png | Bin {kasu => src/kasu}/static/icons/ruby.png | Bin {kasu => src/kasu}/static/icons/ruby_add.png | Bin .../kasu}/static/icons/ruby_delete.png | Bin {kasu => src/kasu}/static/icons/ruby_gear.png | Bin {kasu => src/kasu}/static/icons/ruby_get.png | Bin {kasu => src/kasu}/static/icons/ruby_go.png | Bin {kasu => src/kasu}/static/icons/ruby_key.png | Bin {kasu => src/kasu}/static/icons/ruby_link.png | Bin {kasu => src/kasu}/static/icons/ruby_put.png | Bin {kasu => src/kasu}/static/icons/script.png | Bin .../kasu}/static/icons/script_add.png | Bin .../kasu}/static/icons/script_code.png | Bin .../kasu}/static/icons/script_code_red.png | Bin .../kasu}/static/icons/script_delete.png | Bin .../kasu}/static/icons/script_edit.png | Bin .../kasu}/static/icons/script_error.png | Bin .../kasu}/static/icons/script_gear.png | Bin {kasu => src/kasu}/static/icons/script_go.png | Bin .../kasu}/static/icons/script_key.png | Bin .../kasu}/static/icons/script_lightning.png | Bin .../kasu}/static/icons/script_link.png | Bin .../kasu}/static/icons/script_palette.png | Bin .../kasu}/static/icons/script_save.png | Bin {kasu => src/kasu}/static/icons/server.png | Bin .../kasu}/static/icons/server_add.png | Bin .../kasu}/static/icons/server_chart.png | Bin .../kasu}/static/icons/server_compressed.png | Bin .../kasu}/static/icons/server_connect.png | Bin .../kasu}/static/icons/server_database.png | Bin .../kasu}/static/icons/server_delete.png | Bin .../kasu}/static/icons/server_edit.png | Bin .../kasu}/static/icons/server_error.png | Bin {kasu => src/kasu}/static/icons/server_go.png | Bin .../kasu}/static/icons/server_key.png | Bin .../kasu}/static/icons/server_lightning.png | Bin .../kasu}/static/icons/server_link.png | Bin .../static/icons/server_uncompressed.png | Bin {kasu => src/kasu}/static/icons/shading.png | Bin .../kasu}/static/icons/shape_align_bottom.png | Bin .../kasu}/static/icons/shape_align_center.png | Bin .../kasu}/static/icons/shape_align_left.png | Bin .../kasu}/static/icons/shape_align_middle.png | Bin .../kasu}/static/icons/shape_align_right.png | Bin .../kasu}/static/icons/shape_align_top.png | Bin .../static/icons/shape_flip_horizontal.png | Bin .../static/icons/shape_flip_vertical.png | Bin .../kasu}/static/icons/shape_group.png | Bin .../kasu}/static/icons/shape_handles.png | Bin .../kasu}/static/icons/shape_move_back.png | Bin .../static/icons/shape_move_backwards.png | Bin .../static/icons/shape_move_forwards.png | Bin .../kasu}/static/icons/shape_move_front.png | Bin .../icons/shape_rotate_anticlockwise.png | Bin .../static/icons/shape_rotate_clockwise.png | Bin .../kasu}/static/icons/shape_square.png | Bin .../kasu}/static/icons/shape_square_add.png | Bin .../static/icons/shape_square_delete.png | Bin .../kasu}/static/icons/shape_square_edit.png | Bin .../kasu}/static/icons/shape_square_error.png | Bin .../kasu}/static/icons/shape_square_go.png | Bin .../kasu}/static/icons/shape_square_key.png | Bin .../kasu}/static/icons/shape_square_link.png | Bin .../kasu}/static/icons/shape_ungroup.png | Bin {kasu => src/kasu}/static/icons/shield.png | Bin .../kasu}/static/icons/shield_add.png | Bin .../kasu}/static/icons/shield_delete.png | Bin {kasu => src/kasu}/static/icons/shield_go.png | Bin {kasu => src/kasu}/static/icons/sitemap.png | Bin .../kasu}/static/icons/sitemap_color.png | Bin {kasu => src/kasu}/static/icons/sound.png | Bin {kasu => src/kasu}/static/icons/sound_add.png | Bin .../kasu}/static/icons/sound_delete.png | Bin {kasu => src/kasu}/static/icons/sound_low.png | Bin .../kasu}/static/icons/sound_mute.png | Bin .../kasu}/static/icons/sound_none.png | Bin .../kasu}/static/icons/spellcheck.png | Bin .../kasu}/static/icons/sport_8ball.png | Bin .../kasu}/static/icons/sport_basketball.png | Bin .../kasu}/static/icons/sport_football.png | Bin .../kasu}/static/icons/sport_golf.png | Bin .../kasu}/static/icons/sport_raquet.png | Bin .../kasu}/static/icons/sport_shuttlecock.png | Bin .../kasu}/static/icons/sport_soccer.png | Bin .../kasu}/static/icons/sport_tennis.png | Bin {kasu => src/kasu}/static/icons/star.png | Bin .../kasu}/static/icons/status_away.png | Bin .../kasu}/static/icons/status_busy.png | Bin .../kasu}/static/icons/status_offline.png | Bin .../kasu}/static/icons/status_online.png | Bin {kasu => src/kasu}/static/icons/stop.png | Bin {kasu => src/kasu}/static/icons/style.png | Bin {kasu => src/kasu}/static/icons/style_add.png | Bin .../kasu}/static/icons/style_delete.png | Bin .../kasu}/static/icons/style_edit.png | Bin {kasu => src/kasu}/static/icons/style_go.png | Bin {kasu => src/kasu}/static/icons/sum.png | Bin {kasu => src/kasu}/static/icons/tab.png | Bin {kasu => src/kasu}/static/icons/tab_add.png | Bin .../kasu}/static/icons/tab_delete.png | Bin {kasu => src/kasu}/static/icons/tab_edit.png | Bin {kasu => src/kasu}/static/icons/tab_go.png | Bin {kasu => src/kasu}/static/icons/table.png | Bin {kasu => src/kasu}/static/icons/table_add.png | Bin .../kasu}/static/icons/table_delete.png | Bin .../kasu}/static/icons/table_edit.png | Bin .../kasu}/static/icons/table_error.png | Bin .../kasu}/static/icons/table_gear.png | Bin {kasu => src/kasu}/static/icons/table_go.png | Bin {kasu => src/kasu}/static/icons/table_key.png | Bin .../kasu}/static/icons/table_lightning.png | Bin .../kasu}/static/icons/table_link.png | Bin .../kasu}/static/icons/table_multiple.png | Bin .../kasu}/static/icons/table_refresh.png | Bin .../kasu}/static/icons/table_relationship.png | Bin .../kasu}/static/icons/table_row_delete.png | Bin .../kasu}/static/icons/table_row_insert.png | Bin .../kasu}/static/icons/table_save.png | Bin .../kasu}/static/icons/table_sort.png | Bin {kasu => src/kasu}/static/icons/tag.png | Bin {kasu => src/kasu}/static/icons/tag_blue.png | Bin .../kasu}/static/icons/tag_blue_add.png | Bin .../kasu}/static/icons/tag_blue_delete.png | Bin .../kasu}/static/icons/tag_blue_edit.png | Bin {kasu => src/kasu}/static/icons/tag_green.png | Bin .../kasu}/static/icons/tag_orange.png | Bin {kasu => src/kasu}/static/icons/tag_pink.png | Bin .../kasu}/static/icons/tag_purple.png | Bin {kasu => src/kasu}/static/icons/tag_red.png | Bin .../kasu}/static/icons/tag_yellow.png | Bin {kasu => src/kasu}/static/icons/telephone.png | Bin .../kasu}/static/icons/telephone_add.png | Bin .../kasu}/static/icons/telephone_delete.png | Bin .../kasu}/static/icons/telephone_edit.png | Bin .../kasu}/static/icons/telephone_error.png | Bin .../kasu}/static/icons/telephone_go.png | Bin .../kasu}/static/icons/telephone_key.png | Bin .../kasu}/static/icons/telephone_link.png | Bin .../kasu}/static/icons/television.png | Bin .../kasu}/static/icons/television_add.png | Bin .../kasu}/static/icons/television_delete.png | Bin .../kasu}/static/icons/text_align_center.png | Bin .../kasu}/static/icons/text_align_justify.png | Bin .../kasu}/static/icons/text_align_left.png | Bin .../kasu}/static/icons/text_align_right.png | Bin .../kasu}/static/icons/text_allcaps.png | Bin {kasu => src/kasu}/static/icons/text_bold.png | Bin .../kasu}/static/icons/text_columns.png | Bin .../kasu}/static/icons/text_dropcaps.png | Bin .../kasu}/static/icons/text_heading_1.png | Bin .../kasu}/static/icons/text_heading_2.png | Bin .../kasu}/static/icons/text_heading_3.png | Bin .../kasu}/static/icons/text_heading_4.png | Bin .../kasu}/static/icons/text_heading_5.png | Bin .../kasu}/static/icons/text_heading_6.png | Bin .../static/icons/text_horizontalrule.png | Bin .../kasu}/static/icons/text_indent.png | Bin .../kasu}/static/icons/text_indent_remove.png | Bin .../kasu}/static/icons/text_italic.png | Bin .../kasu}/static/icons/text_kerning.png | Bin .../kasu}/static/icons/text_letter_omega.png | Bin .../kasu}/static/icons/text_letterspacing.png | Bin .../kasu}/static/icons/text_linespacing.png | Bin .../kasu}/static/icons/text_list_bullets.png | Bin .../kasu}/static/icons/text_list_numbers.png | Bin .../kasu}/static/icons/text_lowercase.png | Bin .../static/icons/text_padding_bottom.png | Bin .../kasu}/static/icons/text_padding_left.png | Bin .../kasu}/static/icons/text_padding_right.png | Bin .../kasu}/static/icons/text_padding_top.png | Bin .../kasu}/static/icons/text_replace.png | Bin .../kasu}/static/icons/text_signature.png | Bin .../kasu}/static/icons/text_smallcaps.png | Bin .../kasu}/static/icons/text_strikethrough.png | Bin .../kasu}/static/icons/text_subscript.png | Bin .../kasu}/static/icons/text_superscript.png | Bin .../kasu}/static/icons/text_underline.png | Bin .../kasu}/static/icons/text_uppercase.png | Bin {kasu => src/kasu}/static/icons/textfield.png | Bin .../kasu}/static/icons/textfield_add.png | Bin .../kasu}/static/icons/textfield_delete.png | Bin .../kasu}/static/icons/textfield_key.png | Bin .../kasu}/static/icons/textfield_rename.png | Bin .../kasu}/static/icons/thumb_down.png | Bin {kasu => src/kasu}/static/icons/thumb_up.png | Bin {kasu => src/kasu}/static/icons/tick.png | Bin {kasu => src/kasu}/static/icons/time.png | Bin {kasu => src/kasu}/static/icons/time_add.png | Bin .../kasu}/static/icons/time_delete.png | Bin {kasu => src/kasu}/static/icons/time_go.png | Bin .../kasu}/static/icons/timeline_marker.png | Bin {kasu => src/kasu}/static/icons/transmit.png | Bin .../kasu}/static/icons/transmit_add.png | Bin .../kasu}/static/icons/transmit_blue.png | Bin .../kasu}/static/icons/transmit_delete.png | Bin .../kasu}/static/icons/transmit_edit.png | Bin .../kasu}/static/icons/transmit_error.png | Bin .../kasu}/static/icons/transmit_go.png | Bin {kasu => src/kasu}/static/icons/tux.png | Bin {kasu => src/kasu}/static/icons/user.png | Bin {kasu => src/kasu}/static/icons/user_add.png | Bin .../kasu}/static/icons/user_comment.png | Bin .../kasu}/static/icons/user_delete.png | Bin {kasu => src/kasu}/static/icons/user_edit.png | Bin .../kasu}/static/icons/user_female.png | Bin {kasu => src/kasu}/static/icons/user_go.png | Bin {kasu => src/kasu}/static/icons/user_gray.png | Bin .../kasu}/static/icons/user_green.png | Bin .../kasu}/static/icons/user_orange.png | Bin {kasu => src/kasu}/static/icons/user_red.png | Bin {kasu => src/kasu}/static/icons/user_suit.png | Bin {kasu => src/kasu}/static/icons/vcard.png | Bin {kasu => src/kasu}/static/icons/vcard_add.png | Bin .../kasu}/static/icons/vcard_delete.png | Bin .../kasu}/static/icons/vcard_edit.png | Bin {kasu => src/kasu}/static/icons/vector.png | Bin .../kasu}/static/icons/vector_add.png | Bin .../kasu}/static/icons/vector_delete.png | Bin {kasu => src/kasu}/static/icons/wand.png | Bin .../kasu}/static/icons/weather_clouds.png | Bin .../kasu}/static/icons/weather_cloudy.png | Bin .../kasu}/static/icons/weather_lightning.png | Bin .../kasu}/static/icons/weather_rain.png | Bin .../kasu}/static/icons/weather_snow.png | Bin .../kasu}/static/icons/weather_sun.png | Bin {kasu => src/kasu}/static/icons/webcam.png | Bin .../kasu}/static/icons/webcam_add.png | Bin .../kasu}/static/icons/webcam_delete.png | Bin .../kasu}/static/icons/webcam_error.png | Bin {kasu => src/kasu}/static/icons/world.png | Bin {kasu => src/kasu}/static/icons/world_add.png | Bin .../kasu}/static/icons/world_delete.png | Bin .../kasu}/static/icons/world_edit.png | Bin {kasu => src/kasu}/static/icons/world_go.png | Bin .../kasu}/static/icons/world_link.png | Bin {kasu => src/kasu}/static/icons/wrench.png | Bin .../kasu}/static/icons/wrench_orange.png | Bin {kasu => src/kasu}/static/icons/xhtml.png | Bin {kasu => src/kasu}/static/icons/xhtml_add.png | Bin .../kasu}/static/icons/xhtml_delete.png | Bin {kasu => src/kasu}/static/icons/xhtml_go.png | Bin .../kasu}/static/icons/xhtml_valid.png | Bin {kasu => src/kasu}/static/icons/zoom.png | Bin {kasu => src/kasu}/static/icons/zoom_in.png | Bin {kasu => src/kasu}/static/icons/zoom_out.png | Bin {kasu => src/kasu}/static/img/background.gif | Bin {kasu => src/kasu}/static/img/background.png | Bin .../kasu}/static/img/background_mobile.png | Bin {kasu => src/kasu}/static/img/buttonbar.gif | Bin {kasu => src/kasu}/static/img/facebook.png | Bin {kasu => src/kasu}/static/img/favicon.ico | Bin {kasu => src/kasu}/static/img/footer-bg.png | Bin {kasu => src/kasu}/static/img/footer-bg.xcf | Bin {kasu => src/kasu}/static/img/footer_bg.png | Bin {kasu => src/kasu}/static/img/google.png | Bin {kasu => src/kasu}/static/img/google_maps.png | Bin {kasu => src/kasu}/static/img/google_plus.png | Bin {kasu => src/kasu}/static/img/gray-swoop.png | Bin {kasu => src/kasu}/static/img/header_bg.png | Bin {kasu => src/kasu}/static/img/ical_feed.gif | Bin .../kasu}/static/img/input-submit.png | Bin {kasu => src/kasu}/static/img/left-arrow.png | Bin {kasu => src/kasu}/static/img/li.gif | Bin .../kasu}/static/img/login_buttons.png | Bin {kasu => src/kasu}/static/img/logo.png | Bin {kasu => src/kasu}/static/img/logo_mobile.png | Bin {kasu => src/kasu}/static/img/nachtigal.png | Bin .../kasu}/static/img/navigation-bg.jpg | Bin .../kasu}/static/img/navigation-bg.png | Bin .../kasu}/static/img/navigation-hover.png | Bin .../kasu}/static/img/navigation-mobile.png | Bin .../kasu}/static/img/navigation-separator.png | Bin {kasu => src/kasu}/static/img/news_teaser.jpg | Bin {kasu => src/kasu}/static/img/red-swoop.png | Bin {kasu => src/kasu}/static/img/right-arrow.png | Bin {kasu => src/kasu}/static/img/rss_feed.gif | Bin .../kasu}/static/img/teaser/default.jpg | Bin .../kasu}/static/img/teaser/edit_page.jpg | Bin .../kasu}/static/img/teaser/events.jpg | Bin .../kasu}/static/img/teaser/gallery.jpg | Bin .../kasu}/static/img/teaser/mahjong.jpg | Bin .../kasu}/static/img/teaser/maistar.jpg | Bin {kasu => src/kasu}/static/img/teaser/news.jpg | Bin .../kasu}/static/img/teaser/ranking.jpg | Bin .../kasu}/static/img/teaser/spiele.jpg | Bin .../kasu}/static/img/teaser/verein.jpg | Bin {kasu => src/kasu}/static/img/teaser_bg.png | Bin .../kasu}/static/img/thumbnail-bg.png | Bin {kasu => src/kasu}/static/img/top-bg.png | Bin {kasu => src/kasu}/static/img/twitter.png | Bin .../kasu}/static/img/unknown_thumbnail.png | Bin {kasu => src/kasu}/static/img/usernav-bg.png | Bin .../kasu}/static/js/ckeditor/CHANGES.md | 240 +- .../kasu}/static/js/ckeditor/LICENSE.md | 2528 ++++++++--------- .../kasu}/static/js/ckeditor/README.md | 0 .../kasu}/static/js/ckeditor/build-config.js | 50 +- .../kasu}/static/js/ckeditor/ckeditor.js | 0 .../kasu}/static/js/ckeditor/config.js | 0 .../kasu}/static/js/ckeditor/contents.css | 206 +- .../kasu}/static/js/ckeditor/lang/de.js | 6 +- .../kasu}/static/js/ckeditor/lang/en.js | 6 +- .../plugins/clipboard/dialogs/paste.js | 0 .../plugins/dialog/dialogDefinition.js | 0 .../plugins/fakeobjects/images/spacer.gif | Bin .../static/js/ckeditor/plugins/icons.png | Bin .../ckeditor/plugins/image/dialogs/image.js | 0 .../ckeditor/plugins/image/images/noimage.png | Bin .../ckeditor/plugins/link/dialogs/anchor.js | 0 .../js/ckeditor/plugins/link/dialogs/link.js | 0 .../ckeditor/plugins/link/images/anchor.png | Bin .../plugins/magicline/images/icon.png | Bin .../js/ckeditor/plugins/scayt/LICENSE.md | 56 +- .../js/ckeditor/plugins/scayt/README.md | 50 +- .../ckeditor/plugins/scayt/dialogs/options.js | 0 .../plugins/scayt/dialogs/toolbar.css | 142 +- .../ckeditor/plugins/table/dialogs/table.js | 0 .../plugins/tabletools/dialogs/tableCell.js | 0 .../static/js/ckeditor/plugins/wsc/LICENSE.md | 56 +- .../static/js/ckeditor/plugins/wsc/README.md | 50 +- .../ckeditor/plugins/wsc/dialogs/ciframe.html | 98 +- .../plugins/wsc/dialogs/tmpFrameset.html | 104 +- .../js/ckeditor/plugins/wsc/dialogs/wsc.css | 164 +- .../js/ckeditor/plugins/wsc/dialogs/wsc.js | 0 .../static/js/ckeditor/samples/ajax.html | 164 +- .../kasu}/static/js/ckeditor/samples/api.html | 414 +-- .../static/js/ckeditor/samples/appendto.html | 114 +- .../samples/assets/inlineall/logo.png | Bin .../assets/outputxhtml/outputxhtml.css | 408 +-- .../js/ckeditor/samples/assets/posteddata.php | 118 +- .../js/ckeditor/samples/assets/sample.css | 6 +- .../js/ckeditor/samples/assets/sample.jpg | Bin .../samples/assets/uilanguages/languages.js | 0 .../js/ckeditor/samples/datafiltering.html | 802 +++--- .../js/ckeditor/samples/divreplace.html | 282 +- .../static/js/ckeditor/samples/index.html | 200 +- .../static/js/ckeditor/samples/inlineall.html | 622 ++-- .../js/ckeditor/samples/inlinebycode.html | 244 +- .../samples/plugins/autogrow/autogrow.html | 198 +- .../plugins/dialog/assets/my_dialog.js | 96 +- .../samples/plugins/dialog/dialog.html | 374 +-- .../samples/plugins/enterkey/enterkey.html | 206 +- .../assets/outputforflash/outputforflash.fla | Bin .../assets/outputforflash/outputforflash.swf | Bin .../assets/outputforflash/swfobject.js | 0 .../plugins/htmlwriter/outputforflash.html | 560 ++-- .../plugins/htmlwriter/outputhtml.html | 474 ++-- .../samples/plugins/magicline/magicline.html | 414 +-- .../samples/plugins/toolbar/toolbar.html | 464 +-- .../samples/plugins/wysiwygarea/fullpage.html | 154 +- .../static/js/ckeditor/samples/readonly.html | 146 +- .../js/ckeditor/samples/replacebyclass.html | 114 +- .../js/ckeditor/samples/replacebycode.html | 112 +- .../static/js/ckeditor/samples/sample.css | 678 ++--- .../static/js/ckeditor/samples/sample.js | 66 +- .../js/ckeditor/samples/sample_posteddata.php | 32 +- .../static/js/ckeditor/samples/tabindex.html | 150 +- .../static/js/ckeditor/samples/uicolor.html | 138 +- .../js/ckeditor/samples/uilanguages.html | 238 +- .../js/ckeditor/samples/xhtmlstyle.html | 462 +-- .../static/js/ckeditor/skins/moono/dialog.css | 8 +- .../js/ckeditor/skins/moono/dialog_ie.css | 8 +- .../js/ckeditor/skins/moono/dialog_ie7.css | 8 +- .../js/ckeditor/skins/moono/dialog_ie8.css | 8 +- .../ckeditor/skins/moono/dialog_iequirks.css | 8 +- .../js/ckeditor/skins/moono/dialog_opera.css | 8 +- .../static/js/ckeditor/skins/moono/editor.css | 8 +- .../js/ckeditor/skins/moono/editor_gecko.css | 8 +- .../js/ckeditor/skins/moono/editor_ie.css | 8 +- .../js/ckeditor/skins/moono/editor_ie7.css | 8 +- .../js/ckeditor/skins/moono/editor_ie8.css | 8 +- .../ckeditor/skins/moono/editor_iequirks.css | 8 +- .../static/js/ckeditor/skins/moono/icons.png | Bin .../js/ckeditor/skins/moono/images/arrow.png | Bin .../js/ckeditor/skins/moono/images/close.png | Bin .../js/ckeditor/skins/moono/images/mini.png | Bin .../static/js/ckeditor/skins/moono/readme.md | 102 +- .../kasu}/static/js/ckeditor/styles.js | 222 +- .../kasu}/static/js/jquery-2.1.3.min.js | 0 {kasu => src/kasu}/static/js/language_tabs.js | 0 {kasu => src/kasu}/static/js/tinymce_setup.js | 0 {kasu => src/kasu}/templates/404.html | 0 {kasu => src/kasu}/templates/base.html | 1 - .../kasu}/templates/comments/form.html | 0 .../kasu}/templates/comments/list.html | 0 .../kasu}/templates/comments/posted.html | 0 .../kasu}/templates/comments/preview.html | 0 {kasu => src/kasu}/templates/form.html | 0 .../templates/google25dabc1a49a9ef03.html | 0 {kasu => src/kasu}/templates/index.html | 5 +- {kasu => src/kasu}/templates/paginator.html | 0 .../kasu}/templates/registration/login.html | 0 .../registration/password_change_done.html | 0 .../registration/password_change_form.html | 0 .../registration/password_reset_complete.html | 0 .../registration/password_reset_confirm.html | 0 .../registration/password_reset_done.html | 0 .../registration/password_reset_form.html | 0 {kasu => src/kasu}/templates/robots.txt | 0 {kasu => src/kasu}/urls.py | 19 +- {kasu => src/kasu}/utils.py | 0 {kasu => src/kasu}/wsgi.py | 0 .../mahjong_ranking}/__init__.py | 0 .../mahjong_ranking}/admin.py | 0 .../mahjong_ranking}/forms.py | 0 .../locale/de/LC_MESSAGES/django.mo | Bin .../locale/de/LC_MESSAGES/django.po | 0 .../mahjong_ranking}/management/__init__.py | 0 .../management/commands/__init__.py | 0 .../management/commands/random-ranking.py | 0 .../mahjong_ranking}/middleware.py | 11 +- .../mahjong_ranking}/models.py | 0 .../mahjong_ranking/eventranking_list.html | 0 .../hanchan_confirm_delete.html | 0 .../mahjong_ranking/hanchan_form.html | 0 .../mahjong_ranking/hanchan_list.html | 0 .../mahjong_ranking/kyudanranking_list.html | 0 .../mahjong_ranking/ladderranking_list.html | 0 .../templates/mahjong_ranking/page.html | 0 .../mahjong_ranking/player_dan_score.html | 0 .../mahjong_ranking/player_invalid_score.html | 0 .../mahjong_ranking/player_kyu_score.html | 0 .../mahjong_ranking/player_ladder_score.html | 0 .../mahjong_ranking}/tests.py | 0 .../mahjong_ranking}/urls.py | 2 +- .../mahjong_ranking}/views.py | 5 +- .../maistar_ranking}/__init__.py | 0 .../maistar_ranking}/admin.py | 0 .../maistar_ranking}/forms.py | 0 .../locale/de/LC_MESSAGES/django.mo | Bin .../locale/de/LC_MESSAGES/django.po | 0 .../maistar_ranking}/managers.py | 0 .../maistar_ranking}/models.py | 0 .../maistar_ranking}/settings.py | 0 .../templates/maistar_ranking/game_form.html | 0 .../templates/maistar_ranking/game_list.html | 0 .../hanchan_confirm_delete.html | 0 .../templates/maistar_ranking/page.html | 0 .../maistar_ranking/player_game_list.html | 0 .../maistar_ranking/ranking_list.html | 0 .../maistar_ranking}/urls.py | 2 +- .../maistar_ranking}/views.py | 0 src/manage.py | 11 + {membership => src/membership}/__init__.py | 0 {membership => src/membership}/admin.py | 0 {membership => src/membership}/forms.py | 0 .../locale/de/LC_MESSAGES/django.mo | Bin .../locale/de/LC_MESSAGES/django.po | 0 .../membership}/management/__init__.py | 0 .../management/commands/__init__.py | 0 .../commands/cleanup-registration.py | 0 .../management/commands/get-user.py | 0 {membership => src/membership}/models.py | 19 +- {membership => src/membership}/specs.py | 0 .../membership/activation_error.html | 0 .../templates/membership/activation_sent.html | 0 .../membership/activation_successful.html | 0 .../membership/email/activation_email.html | 0 .../membership/email/activation_email.txt | 0 .../email/password_reset_email.html | 0 .../email/password_reset_subject.txt | 0 .../templates/membership/hanchan_table.html | 0 .../membership/membership_detail.html | 0 .../templates/membership/membership_form.html | 0 .../templates/membership/register_form.html | 0 .../membership/register_successful.html | 0 {membership => src/membership}/urls.py | 0 {membership => src/membership}/views.py | 17 +- {utils => src/utils}/__init__.py | 0 {utils => src/utils}/countries.py | 0 {utils => src/utils}/forms.py | 0 {utils => src/utils}/html5/__init__.py | 0 {utils => src/utils}/html5/base.py | 0 {utils => src/utils}/html5/forms.py | 2 +- {utils => src/utils}/html5/models.py | 0 {utils => src/utils}/html5/views.py | 0 {utils => src/utils}/html5/widgets.py | 2 +- {utils => src/utils}/html_cleaner.py | 0 .../utils}/locale/de/LC_MESSAGES/django.mo | Bin .../utils}/locale/de/LC_MESSAGES/django.po | 0 {utils => src/utils}/management/__init__.py | 0 .../utils}/management/commands/__init__.py | 0 .../utils}/management/commands/compresscss.py | 0 .../utils}/management/commands/compressjs.py | 0 .../management/commands/scss-compiler.py | 0 {utils => src/utils}/massmailer.py | 0 {utils => src/utils}/middleware.py | 0 {utils => src/utils}/mixins.py | 0 .../utils/templatetags}/__init__.py | 0 {utils => src/utils}/templatetags/markup.py | 0 templates/debug_toolbar/base.html | 68 + templates/debug_toolbar/panels/cache.html | 69 + templates/debug_toolbar/panels/headers.html | 60 + templates/debug_toolbar/panels/logging.html | 28 + templates/debug_toolbar/panels/profiling.html | 36 + templates/debug_toolbar/panels/request.html | 124 + templates/debug_toolbar/panels/settings.html | 17 + templates/debug_toolbar/panels/signals.html | 19 + templates/debug_toolbar/panels/sql.html | 102 + .../debug_toolbar/panels/sql_explain.html | 37 + .../debug_toolbar/panels/sql_profile.html | 44 + .../debug_toolbar/panels/sql_select.html | 41 + .../debug_toolbar/panels/staticfiles.html | 57 + .../debug_toolbar/panels/template_source.html | 14 + templates/debug_toolbar/panels/templates.html | 46 + templates/debug_toolbar/panels/timer.html | 44 + templates/debug_toolbar/panels/versions.html | 17 + templates/debug_toolbar/redirect.html | 16 + utils/templatetags/__init__.py | 0 1355 files changed, 7289 insertions(+), 6858 deletions(-) delete mode 100644 gallery/templates/gallery/photo_confirm_delete.html delete mode 100644 gallery/templates/gallery/photo_list.html delete mode 100644 kasu/locale/de/LC_MESSAGES/django.mo delete mode 100644 kasu/settings/base.py delete mode 100644 kasu/settings/dev.py delete mode 100644 kasu/settings/production.py delete mode 100644 kasu/settings/staging.py mode change 100755 => 120000 manage.py rename {aggregator => src/aggregator}/__init__.py (100%) rename {aggregator => src/aggregator}/admin.py (100%) rename {aggregator => src/aggregator}/feeds.py (100%) rename {aggregator => src/aggregator}/management/__init__.py (100%) rename {aggregator => src/aggregator}/management/commands/__init__.py (100%) mode change 100644 => 100755 rename {aggregator => src/aggregator}/management/commands/update-feeds.py (100%) rename {aggregator => src/aggregator}/models.py (100%) rename {aggregator => src/aggregator}/sitemaps.py (100%) rename {aggregator => src/aggregator}/templatetags/aggregator.py (100%) rename {content => src/content}/__init__.py (100%) rename {content => src/content}/admin.py (100%) rename {content => src/content}/context_processors.py (100%) rename {content => src/content}/feeds.py (98%) rename {content => src/content}/forms.py (100%) rename {content => src/content}/locale/de/LC_MESSAGES/django.mo (100%) rename {content => src/content}/locale/de/LC_MESSAGES/django.po (100%) rename {content => src/content}/management/__init__.py (100%) mode change 100644 => 100755 rename {content => src/content}/management/commands/__init__.py (100%) rename {content => src/content}/management/commands/importarticles.py (100%) rename {content => src/content}/management/commands/importgalleries.py (100%) rename {content => src/content}/models.py (100%) rename {content => src/content}/news_urls.py (100%) rename {content => src/content}/templates/content/article_archive.html (100%) rename {content => src/content}/templates/content/article_archive_month.html (100%) rename {content => src/content}/templates/content/article_archive_year.html (100%) rename {content => src/content}/templates/content/article_detail.html (100%) rename {content => src/content}/templates/content/article_form.html (100%) rename {content => src/content}/templates/content/clear_page.html (100%) rename {content => src/content}/templates/content/page.html (100%) rename {content => src/content}/templates/content/page_form.html (100%) rename {content => src/content}/templates/content/page_pdf.html (100%) rename {content => src/content}/templatetags/__init__.py (100%) rename {content => src/content}/templatetags/fieldset_extras.py (100%) rename {content => src/content}/tests.py (100%) rename {content => src/content}/urls.py (100%) rename {content => src/content}/views.py (99%) rename {events => src/events}/__init__.py (100%) rename {events => src/events}/admin.py (100%) rename {events => src/events}/context_processors.py (100%) rename {events => src/events}/forms.py (96%) rename {events => src/events}/locale/de/LC_MESSAGES/django.mo (100%) rename {events => src/events}/locale/de/LC_MESSAGES/django.po (100%) rename {events => src/events}/models.py (100%) rename {events => src/events}/templates/events/event_archive.html (100%) rename {events => src/events}/templates/events/event_detail.html (100%) rename {events => src/events}/templates/events/event_form.html (100%) rename {events => src/events}/templates/events/event_list.html (100%) rename {events => src/events}/templates/events/event_site.html (100%) rename {events => src/events}/templates/events/page.html (100%) rename {events => src/events}/tests.py (100%) rename {events => src/events}/urls.py (100%) rename {events => src/events}/views.py (100%) rename {gallery => src/gallery}/__init__.py (100%) rename {gallery => src/gallery}/forms.py (100%) rename {gallery => src/gallery}/models.py (100%) rename {gallery => src/gallery}/templates/gallery/photo_detail.html (100%) rename {gallery => src/gallery}/templates/gallery/photo_gallery.html (100%) rename {gallery => src/gallery}/templates/gallery/photo_upload.html (100%) rename {gallery => src/gallery}/urls.py (100%) rename {gallery => src/gallery}/views.py (100%) rename {kasu => src/kasu}/__init__.py (100%) rename {kasu => src/kasu}/image_models.py (100%) create mode 100644 src/kasu/locale/de/LC_MESSAGES/django.mo rename {kasu => src/kasu}/locale/de/LC_MESSAGES/django.po (98%) rename {kasu => src/kasu}/logging.conf (100%) rename {kasu => src/kasu}/static/css/common.less (100%) rename {kasu => src/kasu}/static/css/desktop.less (100%) create mode 100644 src/kasu/static/css/kasu.css rename {kasu => src/kasu}/static/css/kasu.less (100%) rename {kasu => src/kasu}/static/css/mobile.less (100%) rename {kasu => src/kasu}/static/css/print.less (100%) rename {kasu => src/kasu}/static/fonts/amerikasans.eot (100%) rename {kasu => src/kasu}/static/fonts/amerikasans.svg (100%) rename {kasu => src/kasu}/static/fonts/amerikasans.ttf (100%) rename {kasu => src/kasu}/static/fonts/amerikasans.woff (100%) rename {kasu => src/kasu}/static/fonts/philosopher.svg (100%) rename {kasu => src/kasu}/static/fonts/philosopher.ttf (100%) rename {kasu => src/kasu}/static/fonts/philosopher.woff (100%) rename {kasu => src/kasu}/static/fonts/social.ttf (100%) rename {kasu => src/kasu}/static/fonts/social.woff (100%) rename {kasu => src/kasu}/static/icons/accept.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/add.png (100%) rename {kasu => src/kasu}/static/icons/anchor.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/application.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/application_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/application_cascade.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/application_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/application_double.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/application_edit.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/application_error.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/application_form.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/application_form_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/application_form_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/application_form_edit.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/application_form_magnify.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/application_get.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/application_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/application_home.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/application_key.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/application_lightning.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/application_link.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/application_osx.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/application_osx_terminal.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/application_put.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/application_side_boxes.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/application_side_contract.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/application_side_expand.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/application_side_list.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/application_side_tree.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/application_split.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/application_tile_horizontal.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/application_tile_vertical.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/application_view_columns.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/application_view_detail.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/application_view_gallery.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/application_view_icons.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/application_view_list.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/application_view_tile.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/application_xp.png (100%) rename {kasu => src/kasu}/static/icons/application_xp_terminal.png (100%) rename {kasu => src/kasu}/static/icons/arrow_branch.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/arrow_divide.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/arrow_down.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/arrow_in.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/arrow_inout.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/arrow_join.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/arrow_left.png (100%) rename {kasu => src/kasu}/static/icons/arrow_merge.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/arrow_out.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/arrow_redo.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/arrow_refresh.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/arrow_refresh_small.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/arrow_right.png (100%) rename {kasu => src/kasu}/static/icons/arrow_rotate_anticlockwise.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/arrow_rotate_clockwise.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/arrow_switch.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/arrow_turn_left.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/arrow_turn_right.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/arrow_undo.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/arrow_up.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/asterisk_orange.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/asterisk_yellow.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/attach.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/award_star_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/award_star_bronze_1.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/award_star_bronze_2.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/award_star_bronze_3.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/award_star_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/award_star_gold_1.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/award_star_gold_2.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/award_star_gold_3.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/award_star_silver_1.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/award_star_silver_2.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/award_star_silver_3.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/basket.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/basket_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/basket_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/basket_edit.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/basket_error.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/basket_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/basket_put.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/basket_remove.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/bell.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/bell_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/bell_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/bell_error.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/bell_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/bell_link.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/bin.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/bin_closed.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/bin_empty.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/bomb.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/book.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/book_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/book_addresses.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/book_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/book_edit.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/book_error.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/book_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/book_key.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/book_link.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/book_next.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/book_open.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/book_previous.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/box.png (100%) rename {kasu => src/kasu}/static/icons/brick.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/brick_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/brick_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/brick_edit.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/brick_error.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/brick_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/brick_link.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/bricks.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/briefcase.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/bug.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/bug_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/bug_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/bug_edit.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/bug_error.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/bug_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/bug_link.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/building.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/building_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/building_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/building_edit.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/building_error.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/building_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/building_key.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/building_link.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/bullet_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/bullet_arrow_bottom.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/bullet_arrow_down.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/bullet_arrow_top.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/bullet_arrow_up.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/bullet_black.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/bullet_blue.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/bullet_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/bullet_disk.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/bullet_error.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/bullet_feed.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/bullet_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/bullet_green.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/bullet_key.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/bullet_orange.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/bullet_picture.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/bullet_pink.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/bullet_purple.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/bullet_red.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/bullet_star.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/bullet_toggle_minus.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/bullet_toggle_plus.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/bullet_white.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/bullet_wrench.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/bullet_yellow.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/cake.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/calculator.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/calculator_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/calculator_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/calculator_edit.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/calculator_error.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/calculator_link.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/calendar.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/calendar_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/calendar_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/calendar_edit.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/calendar_link.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/calendar_view_day.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/calendar_view_month.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/calendar_view_week.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/camera.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/camera_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/camera_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/camera_edit.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/camera_error.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/camera_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/camera_link.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/camera_small.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/cancel.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/car.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/car_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/car_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/cart.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/cart_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/cart_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/cart_edit.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/cart_error.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/cart_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/cart_put.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/cart_remove.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/cd.png (100%) rename {kasu => src/kasu}/static/icons/cd_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/cd_burn.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/cd_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/cd_edit.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/cd_eject.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/cd_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/chart_bar.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/chart_bar_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/chart_bar_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/chart_bar_edit.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/chart_bar_error.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/chart_bar_link.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/chart_curve.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/chart_curve_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/chart_curve_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/chart_curve_edit.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/chart_curve_error.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/chart_curve_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/chart_curve_link.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/chart_line.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/chart_line_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/chart_line_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/chart_line_edit.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/chart_line_error.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/chart_line_link.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/chart_organisation.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/chart_organisation_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/chart_organisation_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/chart_pie.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/chart_pie_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/chart_pie_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/chart_pie_edit.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/chart_pie_error.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/chart_pie_link.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/clock.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/clock_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/clock_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/clock_edit.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/clock_error.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/clock_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/clock_link.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/clock_pause.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/clock_play.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/clock_red.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/clock_stop.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/cog.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/cog_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/cog_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/cog_edit.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/cog_error.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/cog_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/coins.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/coins_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/coins_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/color_swatch.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/color_wheel.png (100%) rename {kasu => src/kasu}/static/icons/comment.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/comment_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/comment_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/comment_edit.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/comments.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/comments_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/comments_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/compress.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/computer.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/computer_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/computer_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/computer_edit.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/computer_error.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/computer_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/computer_key.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/computer_link.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/connect.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/contrast.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/contrast_decrease.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/contrast_high.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/contrast_increase.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/contrast_low.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/control_eject.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/control_eject_blue.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/control_end.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/control_end_blue.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/control_equalizer.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/control_equalizer_blue.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/control_fastforward.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/control_fastforward_blue.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/control_pause.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/control_pause_blue.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/control_play.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/control_play_blue.png (100%) rename {kasu => src/kasu}/static/icons/control_repeat.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/control_repeat_blue.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/control_rewind.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/control_rewind_blue.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/control_start.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/control_start_blue.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/control_stop.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/control_stop_blue.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/controller.png (100%) rename {kasu => src/kasu}/static/icons/controller_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/controller_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/controller_error.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/creditcards.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/cross.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/css.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/css_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/css_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/css_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/css_valid.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/cup.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/cup_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/cup_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/cup_edit.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/cup_error.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/cup_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/cup_key.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/cup_link.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/cursor.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/cut.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/cut_red.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/database.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/database_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/database_connect.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/database_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/database_edit.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/database_error.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/database_gear.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/database_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/database_key.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/database_lightning.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/database_link.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/database_refresh.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/database_save.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/database_table.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/date.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/date_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/date_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/date_edit.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/date_error.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/date_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/date_link.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/date_magnify.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/date_next.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/date_previous.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/delete.png (100%) rename {kasu => src/kasu}/static/icons/disconnect.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/disk.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/disk_multiple.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/door.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/door_in.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/door_open.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/door_out.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/drink.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/drink_empty.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/drive.png (100%) rename {kasu => src/kasu}/static/icons/drive_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/drive_burn.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/drive_cd.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/drive_cd_empty.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/drive_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/drive_disk.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/drive_edit.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/drive_error.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/drive_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/drive_key.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/drive_link.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/drive_magnify.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/drive_network.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/drive_rename.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/drive_user.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/drive_web.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/dvd.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/dvd_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/dvd_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/dvd_edit.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/dvd_error.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/dvd_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/dvd_key.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/dvd_link.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/email.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/email_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/email_attach.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/email_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/email_edit.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/email_error.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/email_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/email_link.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/email_open.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/email_open_image.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/emoticon_evilgrin.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/emoticon_grin.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/emoticon_happy.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/emoticon_smile.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/emoticon_surprised.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/emoticon_tongue.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/emoticon_unhappy.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/emoticon_waii.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/emoticon_wink.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/error.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/error_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/error_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/error_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/exclamation.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/eye.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/feed.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/feed_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/feed_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/feed_disk.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/feed_edit.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/feed_error.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/feed_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/feed_key.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/feed_link.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/feed_magnify.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/female.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/film.png (100%) rename {kasu => src/kasu}/static/icons/film_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/film_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/film_edit.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/film_error.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/film_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/film_key.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/film_link.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/film_save.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/find.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/flag_blue.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/flag_green.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/flag_orange.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/flag_pink.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/flag_purple.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/flag_red.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/flag_yellow.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/folder.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/folder_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/folder_bell.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/folder_brick.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/folder_bug.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/folder_camera.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/folder_database.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/folder_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/folder_edit.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/folder_error.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/folder_explore.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/folder_feed.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/folder_find.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/folder_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/folder_heart.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/folder_image.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/folder_key.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/folder_lightbulb.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/folder_link.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/folder_magnify.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/folder_page.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/folder_page_white.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/folder_palette.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/folder_picture.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/folder_star.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/folder_table.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/folder_user.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/folder_wrench.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/font.png (100%) rename {kasu => src/kasu}/static/icons/font_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/font_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/font_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/group.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/group_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/group_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/group_edit.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/group_error.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/group_gear.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/group_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/group_key.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/group_link.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/heart.png (100%) rename {kasu => src/kasu}/static/icons/heart_add.png (100%) rename {kasu => src/kasu}/static/icons/heart_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/help.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/hourglass.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/hourglass_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/hourglass_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/hourglass_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/hourglass_link.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/house.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/house_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/house_link.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/html.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/html_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/html_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/html_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/html_valid.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/image.png (100%) rename {kasu => src/kasu}/static/icons/image_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/image_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/image_edit.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/image_link.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/images.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/information.png (100%) rename {kasu => src/kasu}/static/icons/ipod.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/ipod_cast.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/ipod_cast_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/ipod_cast_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/ipod_sound.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/joystick.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/joystick_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/joystick_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/joystick_error.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/key.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/key_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/key_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/key_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/keyboard.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/keyboard_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/keyboard_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/keyboard_magnify.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/layers.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/layout.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/layout_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/layout_content.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/layout_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/layout_edit.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/layout_error.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/layout_header.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/layout_link.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/layout_sidebar.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/lightbulb.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/lightbulb_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/lightbulb_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/lightbulb_off.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/lightning.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/lightning_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/lightning_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/lightning_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/link.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/link_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/link_break.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/link_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/link_edit.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/link_error.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/link_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/lock.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/lock_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/lock_break.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/lock_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/lock_edit.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/lock_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/lock_open.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/lorry.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/lorry_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/lorry_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/lorry_error.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/lorry_flatbed.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/lorry_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/lorry_link.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/magifier_zoom_out.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/magnifier.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/magnifier_zoom_in.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/male.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/map.png (100%) rename {kasu => src/kasu}/static/icons/map_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/map_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/map_edit.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/map_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/map_magnify.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/medal_bronze_1.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/medal_bronze_2.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/medal_bronze_3.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/medal_bronze_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/medal_bronze_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/medal_gold_1.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/medal_gold_2.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/medal_gold_3.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/medal_gold_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/medal_gold_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/medal_silver_1.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/medal_silver_2.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/medal_silver_3.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/medal_silver_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/medal_silver_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/money.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/money_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/money_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/money_dollar.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/money_euro.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/money_pound.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/money_yen.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/monitor.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/monitor_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/monitor_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/monitor_edit.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/monitor_error.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/monitor_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/monitor_lightning.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/monitor_link.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/mouse.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/mouse_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/mouse_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/mouse_error.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/music.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/new.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/newspaper.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/newspaper_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/newspaper_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/newspaper_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/newspaper_link.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/note.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/note_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/note_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/note_edit.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/note_error.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/note_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/overlays.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/package.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/package_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/package_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/package_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/package_green.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/package_link.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/page.png (100%) rename {kasu => src/kasu}/static/icons/page_add.png (100%) rename {kasu => src/kasu}/static/icons/page_attach.png (100%) rename {kasu => src/kasu}/static/icons/page_code.png (100%) rename {kasu => src/kasu}/static/icons/page_copy.png (100%) rename {kasu => src/kasu}/static/icons/page_delete.png (100%) rename {kasu => src/kasu}/static/icons/page_edit.png (100%) rename {kasu => src/kasu}/static/icons/page_error.png (100%) rename {kasu => src/kasu}/static/icons/page_excel.png (100%) rename {kasu => src/kasu}/static/icons/page_find.png (100%) rename {kasu => src/kasu}/static/icons/page_gear.png (100%) rename {kasu => src/kasu}/static/icons/page_go.png (100%) rename {kasu => src/kasu}/static/icons/page_green.png (100%) rename {kasu => src/kasu}/static/icons/page_key.png (100%) rename {kasu => src/kasu}/static/icons/page_lightning.png (100%) rename {kasu => src/kasu}/static/icons/page_link.png (100%) rename {kasu => src/kasu}/static/icons/page_paintbrush.png (100%) rename {kasu => src/kasu}/static/icons/page_paste.png (100%) rename {kasu => src/kasu}/static/icons/page_red.png (100%) rename {kasu => src/kasu}/static/icons/page_refresh.png (100%) rename {kasu => src/kasu}/static/icons/page_save.png (100%) rename {kasu => src/kasu}/static/icons/page_white.png (100%) rename {kasu => src/kasu}/static/icons/page_white_acrobat.png (100%) rename {kasu => src/kasu}/static/icons/page_white_actionscript.png (100%) rename {kasu => src/kasu}/static/icons/page_white_add.png (100%) rename {kasu => src/kasu}/static/icons/page_white_c.png (100%) rename {kasu => src/kasu}/static/icons/page_white_camera.png (100%) rename {kasu => src/kasu}/static/icons/page_white_cd.png (100%) rename {kasu => src/kasu}/static/icons/page_white_code.png (100%) rename {kasu => src/kasu}/static/icons/page_white_code_red.png (100%) rename {kasu => src/kasu}/static/icons/page_white_coldfusion.png (100%) rename {kasu => src/kasu}/static/icons/page_white_compressed.png (100%) rename {kasu => src/kasu}/static/icons/page_white_copy.png (100%) rename {kasu => src/kasu}/static/icons/page_white_cplusplus.png (100%) rename {kasu => src/kasu}/static/icons/page_white_csharp.png (100%) rename {kasu => src/kasu}/static/icons/page_white_cup.png (100%) rename {kasu => src/kasu}/static/icons/page_white_database.png (100%) rename {kasu => src/kasu}/static/icons/page_white_delete.png (100%) rename {kasu => src/kasu}/static/icons/page_white_dvd.png (100%) rename {kasu => src/kasu}/static/icons/page_white_edit.png (100%) rename {kasu => src/kasu}/static/icons/page_white_error.png (100%) rename {kasu => src/kasu}/static/icons/page_white_excel.png (100%) rename {kasu => src/kasu}/static/icons/page_white_find.png (100%) rename {kasu => src/kasu}/static/icons/page_white_flash.png (100%) rename {kasu => src/kasu}/static/icons/page_white_freehand.png (100%) rename {kasu => src/kasu}/static/icons/page_white_gear.png (100%) rename {kasu => src/kasu}/static/icons/page_white_get.png (100%) rename {kasu => src/kasu}/static/icons/page_white_go.png (100%) rename {kasu => src/kasu}/static/icons/page_white_h.png (100%) rename {kasu => src/kasu}/static/icons/page_white_horizontal.png (100%) rename {kasu => src/kasu}/static/icons/page_white_key.png (100%) rename {kasu => src/kasu}/static/icons/page_white_lightning.png (100%) rename {kasu => src/kasu}/static/icons/page_white_link.png (100%) rename {kasu => src/kasu}/static/icons/page_white_magnify.png (100%) rename {kasu => src/kasu}/static/icons/page_white_medal.png (100%) rename {kasu => src/kasu}/static/icons/page_white_office.png (100%) rename {kasu => src/kasu}/static/icons/page_white_paint.png (100%) rename {kasu => src/kasu}/static/icons/page_white_paintbrush.png (100%) rename {kasu => src/kasu}/static/icons/page_white_paste.png (100%) rename {kasu => src/kasu}/static/icons/page_white_php.png (100%) rename {kasu => src/kasu}/static/icons/page_white_picture.png (100%) rename {kasu => src/kasu}/static/icons/page_white_powerpoint.png (100%) rename {kasu => src/kasu}/static/icons/page_white_put.png (100%) rename {kasu => src/kasu}/static/icons/page_white_ruby.png (100%) rename {kasu => src/kasu}/static/icons/page_white_stack.png (100%) rename {kasu => src/kasu}/static/icons/page_white_star.png (100%) rename {kasu => src/kasu}/static/icons/page_white_swoosh.png (100%) rename {kasu => src/kasu}/static/icons/page_white_text.png (100%) rename {kasu => src/kasu}/static/icons/page_white_text_width.png (100%) rename {kasu => src/kasu}/static/icons/page_white_tux.png (100%) rename {kasu => src/kasu}/static/icons/page_white_vector.png (100%) rename {kasu => src/kasu}/static/icons/page_white_visualstudio.png (100%) rename {kasu => src/kasu}/static/icons/page_white_width.png (100%) rename {kasu => src/kasu}/static/icons/page_white_word.png (100%) rename {kasu => src/kasu}/static/icons/page_white_world.png (100%) rename {kasu => src/kasu}/static/icons/page_white_wrench.png (100%) rename {kasu => src/kasu}/static/icons/page_white_zip.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/page_word.png (100%) rename {kasu => src/kasu}/static/icons/page_world.png (100%) rename {kasu => src/kasu}/static/icons/paintbrush.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/paintcan.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/palette.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/paste_plain.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/paste_word.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/pencil.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/pencil_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/pencil_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/pencil_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/phone.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/phone_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/phone_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/phone_sound.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/photo.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/photo_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/photo_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/photo_link.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/photos.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/picture.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/picture_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/picture_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/picture_edit.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/picture_empty.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/picture_error.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/picture_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/picture_key.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/picture_link.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/picture_save.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/pictures.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/pilcrow.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/pill.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/pill_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/pill_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/pill_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/plugin.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/plugin_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/plugin_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/plugin_disabled.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/plugin_edit.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/plugin_error.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/plugin_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/plugin_link.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/printer.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/printer_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/printer_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/printer_empty.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/printer_error.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/rainbow.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/report.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/report_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/report_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/report_disk.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/report_edit.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/report_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/report_key.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/report_link.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/report_magnify.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/report_picture.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/report_user.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/report_word.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/resultset_first.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/resultset_last.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/resultset_next.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/resultset_previous.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/rosette.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/rss.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/rss_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/rss_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/rss_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/rss_valid.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/ruby.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/ruby_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/ruby_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/ruby_gear.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/ruby_get.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/ruby_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/ruby_key.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/ruby_link.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/ruby_put.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/script.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/script_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/script_code.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/script_code_red.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/script_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/script_edit.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/script_error.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/script_gear.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/script_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/script_key.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/script_lightning.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/script_link.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/script_palette.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/script_save.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/server.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/server_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/server_chart.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/server_compressed.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/server_connect.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/server_database.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/server_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/server_edit.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/server_error.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/server_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/server_key.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/server_lightning.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/server_link.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/server_uncompressed.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/shading.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/shape_align_bottom.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/shape_align_center.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/shape_align_left.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/shape_align_middle.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/shape_align_right.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/shape_align_top.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/shape_flip_horizontal.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/shape_flip_vertical.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/shape_group.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/shape_handles.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/shape_move_back.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/shape_move_backwards.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/shape_move_forwards.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/shape_move_front.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/shape_rotate_anticlockwise.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/shape_rotate_clockwise.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/shape_square.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/shape_square_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/shape_square_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/shape_square_edit.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/shape_square_error.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/shape_square_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/shape_square_key.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/shape_square_link.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/shape_ungroup.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/shield.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/shield_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/shield_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/shield_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/sitemap.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/sitemap_color.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/sound.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/sound_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/sound_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/sound_low.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/sound_mute.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/sound_none.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/spellcheck.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/sport_8ball.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/sport_basketball.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/sport_football.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/sport_golf.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/sport_raquet.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/sport_shuttlecock.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/sport_soccer.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/sport_tennis.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/star.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/status_away.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/status_busy.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/status_offline.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/status_online.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/stop.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/style.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/style_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/style_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/style_edit.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/style_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/sum.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/tab.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/tab_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/tab_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/tab_edit.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/tab_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/table.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/table_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/table_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/table_edit.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/table_error.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/table_gear.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/table_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/table_key.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/table_lightning.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/table_link.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/table_multiple.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/table_refresh.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/table_relationship.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/table_row_delete.png (100%) rename {kasu => src/kasu}/static/icons/table_row_insert.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/table_save.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/table_sort.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/tag.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/tag_blue.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/tag_blue_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/tag_blue_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/tag_blue_edit.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/tag_green.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/tag_orange.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/tag_pink.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/tag_purple.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/tag_red.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/tag_yellow.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/telephone.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/telephone_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/telephone_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/telephone_edit.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/telephone_error.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/telephone_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/telephone_key.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/telephone_link.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/television.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/television_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/television_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/text_align_center.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/text_align_justify.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/text_align_left.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/text_align_right.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/text_allcaps.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/text_bold.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/text_columns.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/text_dropcaps.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/text_heading_1.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/text_heading_2.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/text_heading_3.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/text_heading_4.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/text_heading_5.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/text_heading_6.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/text_horizontalrule.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/text_indent.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/text_indent_remove.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/text_italic.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/text_kerning.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/text_letter_omega.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/text_letterspacing.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/text_linespacing.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/text_list_bullets.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/text_list_numbers.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/text_lowercase.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/text_padding_bottom.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/text_padding_left.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/text_padding_right.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/text_padding_top.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/text_replace.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/text_signature.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/text_smallcaps.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/text_strikethrough.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/text_subscript.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/text_superscript.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/text_underline.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/text_uppercase.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/textfield.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/textfield_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/textfield_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/textfield_key.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/textfield_rename.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/thumb_down.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/thumb_up.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/tick.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/time.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/time_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/time_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/time_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/timeline_marker.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/transmit.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/transmit_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/transmit_blue.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/transmit_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/transmit_edit.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/transmit_error.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/transmit_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/tux.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/user.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/user_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/user_comment.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/user_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/user_edit.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/user_female.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/user_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/user_gray.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/user_green.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/user_orange.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/user_red.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/user_suit.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/vcard.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/vcard_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/vcard_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/vcard_edit.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/vector.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/vector_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/vector_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/wand.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/weather_clouds.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/weather_cloudy.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/weather_lightning.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/weather_rain.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/weather_snow.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/weather_sun.png (100%) rename {kasu => src/kasu}/static/icons/webcam.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/webcam_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/webcam_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/webcam_error.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/world.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/world_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/world_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/world_edit.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/world_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/world_link.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/wrench.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/wrench_orange.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/xhtml.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/xhtml_add.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/xhtml_delete.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/xhtml_go.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/xhtml_valid.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/zoom.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/zoom_in.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/icons/zoom_out.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/img/background.gif (100%) rename {kasu => src/kasu}/static/img/background.png (100%) rename {kasu => src/kasu}/static/img/background_mobile.png (100%) rename {kasu => src/kasu}/static/img/buttonbar.gif (100%) rename {kasu => src/kasu}/static/img/facebook.png (100%) rename {kasu => src/kasu}/static/img/favicon.ico (100%) rename {kasu => src/kasu}/static/img/footer-bg.png (100%) rename {kasu => src/kasu}/static/img/footer-bg.xcf (100%) rename {kasu => src/kasu}/static/img/footer_bg.png (100%) rename {kasu => src/kasu}/static/img/google.png (100%) rename {kasu => src/kasu}/static/img/google_maps.png (100%) rename {kasu => src/kasu}/static/img/google_plus.png (100%) rename {kasu => src/kasu}/static/img/gray-swoop.png (100%) rename {kasu => src/kasu}/static/img/header_bg.png (100%) rename {kasu => src/kasu}/static/img/ical_feed.gif (100%) rename {kasu => src/kasu}/static/img/input-submit.png (100%) rename {kasu => src/kasu}/static/img/left-arrow.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/img/li.gif (100%) rename {kasu => src/kasu}/static/img/login_buttons.png (100%) rename {kasu => src/kasu}/static/img/logo.png (100%) rename {kasu => src/kasu}/static/img/logo_mobile.png (100%) rename {kasu => src/kasu}/static/img/nachtigal.png (100%) rename {kasu => src/kasu}/static/img/navigation-bg.jpg (100%) rename {kasu => src/kasu}/static/img/navigation-bg.png (100%) rename {kasu => src/kasu}/static/img/navigation-hover.png (100%) rename {kasu => src/kasu}/static/img/navigation-mobile.png (100%) rename {kasu => src/kasu}/static/img/navigation-separator.png (100%) rename {kasu => src/kasu}/static/img/news_teaser.jpg (100%) rename {kasu => src/kasu}/static/img/red-swoop.png (100%) rename {kasu => src/kasu}/static/img/right-arrow.png (100%) mode change 100644 => 100755 rename {kasu => src/kasu}/static/img/rss_feed.gif (100%) rename {kasu => src/kasu}/static/img/teaser/default.jpg (100%) rename {kasu => src/kasu}/static/img/teaser/edit_page.jpg (100%) rename {kasu => src/kasu}/static/img/teaser/events.jpg (100%) rename {kasu => src/kasu}/static/img/teaser/gallery.jpg (100%) rename {kasu => src/kasu}/static/img/teaser/mahjong.jpg (100%) rename {kasu => src/kasu}/static/img/teaser/maistar.jpg (100%) rename {kasu => src/kasu}/static/img/teaser/news.jpg (100%) rename {kasu => src/kasu}/static/img/teaser/ranking.jpg (100%) rename {kasu => src/kasu}/static/img/teaser/spiele.jpg (100%) rename {kasu => src/kasu}/static/img/teaser/verein.jpg (100%) rename {kasu => src/kasu}/static/img/teaser_bg.png (100%) rename {kasu => src/kasu}/static/img/thumbnail-bg.png (100%) rename {kasu => src/kasu}/static/img/top-bg.png (100%) rename {kasu => src/kasu}/static/img/twitter.png (100%) rename {kasu => src/kasu}/static/img/unknown_thumbnail.png (100%) rename {kasu => src/kasu}/static/img/usernav-bg.png (100%) rename {kasu => src/kasu}/static/js/ckeditor/CHANGES.md (98%) rename {kasu => src/kasu}/static/js/ckeditor/LICENSE.md (98%) rename {kasu => src/kasu}/static/js/ckeditor/README.md (100%) rename {kasu => src/kasu}/static/js/ckeditor/build-config.js (98%) rename {kasu => src/kasu}/static/js/ckeditor/ckeditor.js (100%) rename {kasu => src/kasu}/static/js/ckeditor/config.js (100%) rename {kasu => src/kasu}/static/js/ckeditor/contents.css (93%) rename {kasu => src/kasu}/static/js/ckeditor/lang/de.js (99%) rename {kasu => src/kasu}/static/js/ckeditor/lang/en.js (99%) rename {kasu => src/kasu}/static/js/ckeditor/plugins/clipboard/dialogs/paste.js (100%) rename {kasu => src/kasu}/static/js/ckeditor/plugins/dialog/dialogDefinition.js (100%) rename {kasu => src/kasu}/static/js/ckeditor/plugins/fakeobjects/images/spacer.gif (100%) rename {kasu => src/kasu}/static/js/ckeditor/plugins/icons.png (100%) rename {kasu => src/kasu}/static/js/ckeditor/plugins/image/dialogs/image.js (100%) rename {kasu => src/kasu}/static/js/ckeditor/plugins/image/images/noimage.png (100%) rename {kasu => src/kasu}/static/js/ckeditor/plugins/link/dialogs/anchor.js (100%) rename {kasu => src/kasu}/static/js/ckeditor/plugins/link/dialogs/link.js (100%) rename {kasu => src/kasu}/static/js/ckeditor/plugins/link/images/anchor.png (100%) rename {kasu => src/kasu}/static/js/ckeditor/plugins/magicline/images/icon.png (100%) rename {kasu => src/kasu}/static/js/ckeditor/plugins/scayt/LICENSE.md (98%) rename {kasu => src/kasu}/static/js/ckeditor/plugins/scayt/README.md (97%) rename {kasu => src/kasu}/static/js/ckeditor/plugins/scayt/dialogs/options.js (100%) rename {kasu => src/kasu}/static/js/ckeditor/plugins/scayt/dialogs/toolbar.css (94%) rename {kasu => src/kasu}/static/js/ckeditor/plugins/table/dialogs/table.js (100%) rename {kasu => src/kasu}/static/js/ckeditor/plugins/tabletools/dialogs/tableCell.js (100%) rename {kasu => src/kasu}/static/js/ckeditor/plugins/wsc/LICENSE.md (98%) rename {kasu => src/kasu}/static/js/ckeditor/plugins/wsc/README.md (97%) rename {kasu => src/kasu}/static/js/ckeditor/plugins/wsc/dialogs/ciframe.html (95%) rename {kasu => src/kasu}/static/js/ckeditor/plugins/wsc/dialogs/tmpFrameset.html (97%) rename {kasu => src/kasu}/static/js/ckeditor/plugins/wsc/dialogs/wsc.css (93%) rename {kasu => src/kasu}/static/js/ckeditor/plugins/wsc/dialogs/wsc.js (100%) rename {kasu => src/kasu}/static/js/ckeditor/samples/ajax.html (96%) rename {kasu => src/kasu}/static/js/ckeditor/samples/api.html (97%) rename {kasu => src/kasu}/static/js/ckeditor/samples/appendto.html (96%) rename {kasu => src/kasu}/static/js/ckeditor/samples/assets/inlineall/logo.png (100%) rename {kasu => src/kasu}/static/js/ckeditor/samples/assets/outputxhtml/outputxhtml.css (90%) rename {kasu => src/kasu}/static/js/ckeditor/samples/assets/posteddata.php (95%) rename {kasu => src/kasu}/static/js/ckeditor/samples/assets/sample.css (94%) rename {kasu => src/kasu}/static/js/ckeditor/samples/assets/sample.jpg (100%) rename {kasu => src/kasu}/static/js/ckeditor/samples/assets/uilanguages/languages.js (100%) rename {kasu => src/kasu}/static/js/ckeditor/samples/datafiltering.html (98%) rename {kasu => src/kasu}/static/js/ckeditor/samples/divreplace.html (96%) rename {kasu => src/kasu}/static/js/ckeditor/samples/index.html (98%) rename {kasu => src/kasu}/static/js/ckeditor/samples/inlineall.html (96%) rename {kasu => src/kasu}/static/js/ckeditor/samples/inlinebycode.html (97%) rename {kasu => src/kasu}/static/js/ckeditor/samples/plugins/autogrow/autogrow.html (97%) rename {kasu => src/kasu}/static/js/ckeditor/samples/plugins/dialog/assets/my_dialog.js (94%) rename {kasu => src/kasu}/static/js/ckeditor/samples/plugins/dialog/dialog.html (97%) rename {kasu => src/kasu}/static/js/ckeditor/samples/plugins/enterkey/enterkey.html (97%) rename {kasu => src/kasu}/static/js/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.fla (100%) rename {kasu => src/kasu}/static/js/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.swf (100%) rename {kasu => src/kasu}/static/js/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/swfobject.js (100%) rename {kasu => src/kasu}/static/js/ckeditor/samples/plugins/htmlwriter/outputforflash.html (97%) rename {kasu => src/kasu}/static/js/ckeditor/samples/plugins/htmlwriter/outputhtml.html (96%) rename {kasu => src/kasu}/static/js/ckeditor/samples/plugins/magicline/magicline.html (97%) rename {kasu => src/kasu}/static/js/ckeditor/samples/plugins/toolbar/toolbar.html (97%) rename {kasu => src/kasu}/static/js/ckeditor/samples/plugins/wysiwygarea/fullpage.html (99%) rename {kasu => src/kasu}/static/js/ckeditor/samples/readonly.html (97%) rename {kasu => src/kasu}/static/js/ckeditor/samples/replacebyclass.html (99%) rename {kasu => src/kasu}/static/js/ckeditor/samples/replacebycode.html (99%) rename {kasu => src/kasu}/static/js/ckeditor/samples/sample.css (93%) rename {kasu => src/kasu}/static/js/ckeditor/samples/sample.js (97%) rename {kasu => src/kasu}/static/js/ckeditor/samples/sample_posteddata.php (98%) rename {kasu => src/kasu}/static/js/ckeditor/samples/tabindex.html (96%) rename {kasu => src/kasu}/static/js/ckeditor/samples/uicolor.html (97%) rename {kasu => src/kasu}/static/js/ckeditor/samples/uilanguages.html (97%) rename {kasu => src/kasu}/static/js/ckeditor/samples/xhtmlstyle.html (96%) rename {kasu => src/kasu}/static/js/ckeditor/skins/moono/dialog.css (99%) rename {kasu => src/kasu}/static/js/ckeditor/skins/moono/dialog_ie.css (99%) rename {kasu => src/kasu}/static/js/ckeditor/skins/moono/dialog_ie7.css (99%) rename {kasu => src/kasu}/static/js/ckeditor/skins/moono/dialog_ie8.css (99%) rename {kasu => src/kasu}/static/js/ckeditor/skins/moono/dialog_iequirks.css (99%) rename {kasu => src/kasu}/static/js/ckeditor/skins/moono/dialog_opera.css (99%) rename {kasu => src/kasu}/static/js/ckeditor/skins/moono/editor.css (99%) rename {kasu => src/kasu}/static/js/ckeditor/skins/moono/editor_gecko.css (99%) rename {kasu => src/kasu}/static/js/ckeditor/skins/moono/editor_ie.css (99%) rename {kasu => src/kasu}/static/js/ckeditor/skins/moono/editor_ie7.css (99%) rename {kasu => src/kasu}/static/js/ckeditor/skins/moono/editor_ie8.css (99%) rename {kasu => src/kasu}/static/js/ckeditor/skins/moono/editor_iequirks.css (99%) rename {kasu => src/kasu}/static/js/ckeditor/skins/moono/icons.png (100%) rename {kasu => src/kasu}/static/js/ckeditor/skins/moono/images/arrow.png (100%) rename {kasu => src/kasu}/static/js/ckeditor/skins/moono/images/close.png (100%) rename {kasu => src/kasu}/static/js/ckeditor/skins/moono/images/mini.png (100%) rename {kasu => src/kasu}/static/js/ckeditor/skins/moono/readme.md (97%) rename {kasu => src/kasu}/static/js/ckeditor/styles.js (96%) rename {kasu => src/kasu}/static/js/jquery-2.1.3.min.js (100%) rename {kasu => src/kasu}/static/js/language_tabs.js (100%) rename {kasu => src/kasu}/static/js/tinymce_setup.js (100%) rename {kasu => src/kasu}/templates/404.html (100%) rename {kasu => src/kasu}/templates/base.html (99%) rename {kasu => src/kasu}/templates/comments/form.html (100%) rename {kasu => src/kasu}/templates/comments/list.html (100%) rename {kasu => src/kasu}/templates/comments/posted.html (100%) rename {kasu => src/kasu}/templates/comments/preview.html (100%) rename {kasu => src/kasu}/templates/form.html (100%) rename {kasu => src/kasu}/templates/google25dabc1a49a9ef03.html (100%) rename {kasu => src/kasu}/templates/index.html (97%) rename {kasu => src/kasu}/templates/paginator.html (100%) rename {kasu => src/kasu}/templates/registration/login.html (100%) rename {kasu => src/kasu}/templates/registration/password_change_done.html (100%) rename {kasu => src/kasu}/templates/registration/password_change_form.html (100%) rename {kasu => src/kasu}/templates/registration/password_reset_complete.html (100%) rename {kasu => src/kasu}/templates/registration/password_reset_confirm.html (100%) rename {kasu => src/kasu}/templates/registration/password_reset_done.html (100%) rename {kasu => src/kasu}/templates/registration/password_reset_form.html (100%) rename {kasu => src/kasu}/templates/robots.txt (100%) rename {kasu => src/kasu}/urls.py (81%) rename {kasu => src/kasu}/utils.py (100%) rename {kasu => src/kasu}/wsgi.py (100%) rename {mahjong_ranking => src/mahjong_ranking}/__init__.py (100%) rename {mahjong_ranking => src/mahjong_ranking}/admin.py (100%) rename {mahjong_ranking => src/mahjong_ranking}/forms.py (100%) rename {mahjong_ranking => src/mahjong_ranking}/locale/de/LC_MESSAGES/django.mo (100%) rename {mahjong_ranking => src/mahjong_ranking}/locale/de/LC_MESSAGES/django.po (100%) rename {mahjong_ranking => src/mahjong_ranking}/management/__init__.py (100%) rename {mahjong_ranking => src/mahjong_ranking}/management/commands/__init__.py (100%) rename {mahjong_ranking => src/mahjong_ranking}/management/commands/random-ranking.py (100%) rename {mahjong_ranking => src/mahjong_ranking}/middleware.py (91%) rename {mahjong_ranking => src/mahjong_ranking}/models.py (100%) rename {mahjong_ranking => src/mahjong_ranking}/templates/mahjong_ranking/eventranking_list.html (100%) rename {mahjong_ranking => src/mahjong_ranking}/templates/mahjong_ranking/hanchan_confirm_delete.html (100%) rename {mahjong_ranking => src/mahjong_ranking}/templates/mahjong_ranking/hanchan_form.html (100%) rename {mahjong_ranking => src/mahjong_ranking}/templates/mahjong_ranking/hanchan_list.html (100%) rename {mahjong_ranking => src/mahjong_ranking}/templates/mahjong_ranking/kyudanranking_list.html (100%) rename {mahjong_ranking => src/mahjong_ranking}/templates/mahjong_ranking/ladderranking_list.html (100%) rename {mahjong_ranking => src/mahjong_ranking}/templates/mahjong_ranking/page.html (100%) rename {mahjong_ranking => src/mahjong_ranking}/templates/mahjong_ranking/player_dan_score.html (100%) rename {mahjong_ranking => src/mahjong_ranking}/templates/mahjong_ranking/player_invalid_score.html (100%) rename {mahjong_ranking => src/mahjong_ranking}/templates/mahjong_ranking/player_kyu_score.html (100%) rename {mahjong_ranking => src/mahjong_ranking}/templates/mahjong_ranking/player_ladder_score.html (100%) rename {mahjong_ranking => src/mahjong_ranking}/tests.py (100%) rename {mahjong_ranking => src/mahjong_ranking}/urls.py (98%) rename {mahjong_ranking => src/mahjong_ranking}/views.py (99%) rename {kasu/settings => src/maistar_ranking}/__init__.py (100%) rename {maistar_ranking => src/maistar_ranking}/admin.py (100%) rename {maistar_ranking => src/maistar_ranking}/forms.py (100%) rename {maistar_ranking => src/maistar_ranking}/locale/de/LC_MESSAGES/django.mo (100%) rename {maistar_ranking => src/maistar_ranking}/locale/de/LC_MESSAGES/django.po (100%) rename {maistar_ranking => src/maistar_ranking}/managers.py (100%) rename {maistar_ranking => src/maistar_ranking}/models.py (100%) rename {maistar_ranking => src/maistar_ranking}/settings.py (100%) rename {maistar_ranking => src/maistar_ranking}/templates/maistar_ranking/game_form.html (100%) rename {maistar_ranking => src/maistar_ranking}/templates/maistar_ranking/game_list.html (100%) rename {maistar_ranking => src/maistar_ranking}/templates/maistar_ranking/hanchan_confirm_delete.html (100%) rename {maistar_ranking => src/maistar_ranking}/templates/maistar_ranking/page.html (100%) rename {maistar_ranking => src/maistar_ranking}/templates/maistar_ranking/player_game_list.html (100%) rename {maistar_ranking => src/maistar_ranking}/templates/maistar_ranking/ranking_list.html (100%) rename {maistar_ranking => src/maistar_ranking}/urls.py (98%) rename {maistar_ranking => src/maistar_ranking}/views.py (100%) create mode 100755 src/manage.py rename {membership => src/membership}/__init__.py (100%) rename {membership => src/membership}/admin.py (100%) rename {membership => src/membership}/forms.py (100%) rename {membership => src/membership}/locale/de/LC_MESSAGES/django.mo (100%) rename {membership => src/membership}/locale/de/LC_MESSAGES/django.po (100%) rename {membership => src/membership}/management/__init__.py (100%) rename {membership => src/membership}/management/commands/__init__.py (100%) rename {membership => src/membership}/management/commands/cleanup-registration.py (100%) rename {membership => src/membership}/management/commands/get-user.py (100%) rename {membership => src/membership}/models.py (95%) rename {membership => src/membership}/specs.py (100%) rename {membership => src/membership}/templates/membership/activation_error.html (100%) rename {membership => src/membership}/templates/membership/activation_sent.html (100%) rename {membership => src/membership}/templates/membership/activation_successful.html (100%) rename {membership => src/membership}/templates/membership/email/activation_email.html (100%) rename {membership => src/membership}/templates/membership/email/activation_email.txt (100%) rename {membership => src/membership}/templates/membership/email/password_reset_email.html (100%) rename {membership => src/membership}/templates/membership/email/password_reset_subject.txt (100%) rename {membership => src/membership}/templates/membership/hanchan_table.html (100%) rename {membership => src/membership}/templates/membership/membership_detail.html (100%) rename {membership => src/membership}/templates/membership/membership_form.html (100%) rename {membership => src/membership}/templates/membership/register_form.html (100%) rename {membership => src/membership}/templates/membership/register_successful.html (100%) rename {membership => src/membership}/urls.py (100%) rename {membership => src/membership}/views.py (87%) rename {utils => src/utils}/__init__.py (100%) rename {utils => src/utils}/countries.py (100%) rename {utils => src/utils}/forms.py (100%) rename {utils => src/utils}/html5/__init__.py (100%) rename {utils => src/utils}/html5/base.py (100%) rename {utils => src/utils}/html5/forms.py (99%) rename {utils => src/utils}/html5/models.py (100%) rename {utils => src/utils}/html5/views.py (100%) rename {utils => src/utils}/html5/widgets.py (99%) rename {utils => src/utils}/html_cleaner.py (100%) rename {utils => src/utils}/locale/de/LC_MESSAGES/django.mo (100%) rename {utils => src/utils}/locale/de/LC_MESSAGES/django.po (100%) rename {utils => src/utils}/management/__init__.py (100%) rename {utils => src/utils}/management/commands/__init__.py (100%) rename {utils => src/utils}/management/commands/compresscss.py (100%) rename {utils => src/utils}/management/commands/compressjs.py (100%) rename {utils => src/utils}/management/commands/scss-compiler.py (100%) rename {utils => src/utils}/massmailer.py (100%) rename {utils => src/utils}/middleware.py (100%) rename {utils => src/utils}/mixins.py (100%) rename {maistar_ranking => src/utils/templatetags}/__init__.py (100%) rename {utils => src/utils}/templatetags/markup.py (100%) create mode 100644 templates/debug_toolbar/base.html create mode 100644 templates/debug_toolbar/panels/cache.html create mode 100644 templates/debug_toolbar/panels/headers.html create mode 100644 templates/debug_toolbar/panels/logging.html create mode 100644 templates/debug_toolbar/panels/profiling.html create mode 100644 templates/debug_toolbar/panels/request.html create mode 100644 templates/debug_toolbar/panels/settings.html create mode 100644 templates/debug_toolbar/panels/signals.html create mode 100644 templates/debug_toolbar/panels/sql.html create mode 100644 templates/debug_toolbar/panels/sql_explain.html create mode 100644 templates/debug_toolbar/panels/sql_profile.html create mode 100644 templates/debug_toolbar/panels/sql_select.html create mode 100644 templates/debug_toolbar/panels/staticfiles.html create mode 100644 templates/debug_toolbar/panels/template_source.html create mode 100644 templates/debug_toolbar/panels/templates.html create mode 100644 templates/debug_toolbar/panels/timer.html create mode 100644 templates/debug_toolbar/panels/versions.html create mode 100644 templates/debug_toolbar/redirect.html delete mode 100644 utils/templatetags/__init__.py diff --git a/.gitignore b/.gitignore index 376d3b6..ae3ab96 100644 --- a/.gitignore +++ b/.gitignore @@ -1,12 +1,67 @@ -*.pyc -htdocs/ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +env/ +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +*.egg-info/ +.installed.cfg +*.egg + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*,cover + +# Translations +*.mo +*.pot + +# Django stuff: +*.log + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +#Django Development /static/ -media/ -virtenv/ +/media/ .idea/ .gitignore .project .pydevproject .settings/ -*~ -/kasu/static/css/kasu.css diff --git a/cleanup.sh b/cleanup.sh index da2f52e..4a14484 100755 --- a/cleanup.sh +++ b/cleanup.sh @@ -1,6 +1,8 @@ -#!/bin/sh -source ./virtenv/bin/activate +#!/bin/bash +. /usr/share/virtualenvwrapper/virtualenvwrapper_lazy.sh +workon kasu echo "aktualisiere Übersetzungen..." +exit unset DJANGO_SETTINGS_MODULE for dir in * do diff --git a/gallery/templates/gallery/photo_confirm_delete.html b/gallery/templates/gallery/photo_confirm_delete.html deleted file mode 100644 index ba444c1..0000000 --- a/gallery/templates/gallery/photo_confirm_delete.html +++ /dev/null @@ -1,25 +0,0 @@ -{% extends "events/event_detail.html" %} -{% load i18n comments %} - -{% block maincontent %} -
- {% csrf_token %} -
-

Dieses Photo wirklich löschen?

-
-

Sind Sie sicher, dass Sie das Bild “{{photo.name}}” löschen wollen?

- {{photo.name}} -
-

 

-

- {% trans 'Cancel' %} {% trans 'Cancel' %} - -

-
-{% endblock %} -{% block buttonbar %}{% endblock %} - - diff --git a/gallery/templates/gallery/photo_list.html b/gallery/templates/gallery/photo_list.html deleted file mode 100644 index 6a8c611..0000000 --- a/gallery/templates/gallery/photo_list.html +++ /dev/null @@ -1,47 +0,0 @@ -{% extends "events/event_detail.html" %} - -{% load i18n %} - -{% block title %}{{event.name}}{% endblock %} - -{% block opengraph %} - - - - -{% if event.description %}{% endif %} -{% endblock %} - -{% block maincontent %} - {% if perms.events.delete_photo %} - {% for photo in photo_list %} -
- - -
- {% endfor %} - {% else %} - {% for photo in photo_list %} - - {% endfor %} - {% endif %} - -{% if perms.events.add_photo %} -
-
- {% csrf_token %} -
- Photos hochladen - {% include "form.html"%} -

- - -

-
-
-{% endif %} -{% endblock %} - -{% block buttonbar %}{% endblock %} - - diff --git a/kasu/locale/de/LC_MESSAGES/django.mo b/kasu/locale/de/LC_MESSAGES/django.mo deleted file mode 100644 index f04534208698d18923ad0b5bbfd77001c3d1e6e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18063 zcmchd3z%JHdG8mOa0xd7AtJXGOh^K=Cz)_hCV{ypnVB$VW&-3WbnU&@?7g!0UTd;0 zGueY;DR?P}q9`q1z)GyP(4$2SQevSUibX2*T5CZpRjEfTDy@i8&pE&UTHoHYGf9-5 z30**qOV7&pJ2utut zcr8>pZ-uJo788D(3I8xuIUj?{f3FF@-|!(5{spLdzG}jsH2f}9{^y{|f5C*mWWud8 zv-%H*Clh}hR5@ou^>Zau{&kQnRxdmr7NF84@Mw4)R6lMu;kOxn2&V0aY5SqZ>3;Yc z_$WLSeg_^0zXwl%{{hwB!|ja6z*pfv5iWvDpz7~5?1QR*GgQ8m5+-+6C3l`=IK%AD#psf@gJ?=`#wzLs-4&w+{`glg9o!)=CnsC~E{YP_z8>esuW%DDq-U49g*9iN2KC!d8{ zM~^|Z<4LG`o`-7p&!Ez4Q=9`1g9`6}O4kWhevjc0JQV*pTmZL0t*76C%D2PtO;GK7 zJ5+z(1C{R%sB-UwY-Q_XCjM_s_?MvS`#My4-!}XKRR8`Rsyq#@;*WsxpJ;e0T!8;| zhAW`vcO{gHUkf#UBPRT6!|hP*n}RC$TB!EF4XV6bq3XFED&3t>`~GeyeRUr^3_cDO z|5d1dd=o1FKSTBRS$G&cY*{vL$3Ue!14_>=gIZS?L6yG+O0PLk>$eWIZ*POD=aW$V z`wUb$55x8FF*pK`Sk4^4tDx$A1}fbTpz{CJ@I`ny{+FS~>5vs!y4OIB!(ym<&V}mF zMJ9Y5RJ#Y@N_Yi40=^xpyju1gagMhFUj&0X46WL+Pu3gsSIx6aGu6ejk2L zwoevA)!z*@PaB}}jY5^AwQo z;L}j`9(8V(|9B|>sfLT8%3B7tPggKIcHCUjxhCyI`>%mow`Hhue;2C#?}y6wM^Jj{Ua0#1 z5~?3xg6rVdp!$D&J9WV}sQ#3o%J+?b+VDCP{#K~=y$c=;Z-*MMJD|$H6RMnDQ1#yf zkAa_uhrq|7&YQo7s^_Or`F?5Qwa9hfITU{GAoL7;8vj$PEbGVc!H(?Sc+cu=KHhU) zwjMqPRn8u$arkSfdY^!*=PASQL+z92q55&q`B{69gi7}+sPQ`mo(Pvfm3Og;?}e&o z7%JVUiND%}Z-=UP5~}>`4BrM-&by%M`2bY9yG{I`Lyg-5P~|^t!XGu^PeA4S2GqPi zZTv4nmGgg~*2ggyWaGC8YWy#R3f};ahFhT8bq!SeOU55U)jwmxuZPFte<#$w`Jjpa z9F$&p2%ZGL4AtIe4Sxg`{{mDy54kX_|5T{@mO|CP3M${lQ1_1YP~-CksB~qhenlqy zdZ_;20=3?5hbO}i!dJulpxXZhcoKX9s^8x;d>$(QOHl1P=%TD0r$DuLF;x6&sCKM1 z{sFiM{|MB&DMPjYTEiQl+IusUzPTM92R~)vABHOTZ=u%HSD?~=AFACyfs5dRi!F<* zmvuVSxLgL+pMI$Nh7HG|+V@7NbRJYc1E~E~hnnX%oA8^U^1lzN-VZ^I-^We-y-@Aj z4OQPmP~-ln@qZnvo+qK&`wUb+Uxb>sS6!0jZ#TRMs+`LV2cX)w+4!%7YR5J36u2F# zJvTz-`+cbX-D>-h$#eD8zm-(67Y z?}6&)XQ9%69;)0~xCDL?D&3Dw_%ER9vpTc#jx>BV)H*v8s=PL+bmtrYI>SDwdWH>0 zq1tm5JO#Q?t&zZ7acoD0?e%~17^L#1<}#?gm5kKO{+jysM2vydl;^>w%cz64dzSzHd) zzhzM6oCgPCCv@OD;9c;CQ0=(s(k$JrQ2o2Z@NN_SXYjRz?>6CIfokWIQ1v_qRnE_$ z=KEJr>+6WixI4fzpwc@~=fMuBdTxN~&n-~>-v!m*d!XiZ4^%miLDlmesPN~Y=IteD z!xOr)`p<)^{}QNty-@SI4QigshLcd~c0!eR1JpR(YIp}!`#uWO{R5T%L8yGQupK^O z!hZ#oegU0TKaPVMkCS0K-%$Nr3YD(Yg!e<0dpT5pt}xsI)$W_&>F^Gya_)zx!H3~Z z@Y_)1Qtrv-J%%c;4psm4Q2PGuQ29S-;&(yy`(CJaJpk42FB^Uns+^~x>U$PSZyeH_ zoj<3-CHUK++BXW7eh1X})Q$f}sQ$jw_-}_Q=T4||Y&X=pcnm7vx1iR?_l*BVsD2#O zhfait!!zJUI0(y7?fwi@{~m-3;3I}#gev#TQ0;pX9t^*0;-7`e_ao!~8C1JohFXWm z_Gjgt3D3p96l&aF4-bP^!$YA9m%#1tAlS*z=b^rzBcDdTio6*qBWEIN2Wrh)j_A7_ zc~9zMT*<#2=~iLpTWQ<}!PSjG_(|k*$e$utBKILrAZtzf?YM^!R8jif!f%AMA-{{f z9Z_FikA%p-A#X(VX>4Re{Sh2T?nG`!^ts4SQy2F-xY4+UI>OYY-5e~8dsUk-s`d&x6gH77M%7Uyr z;0c6XgdBqVXcIqd;va{9jkFQ|8Tba|dq|f_ccLLd)@Su&z78n;bUN`d)LyP2+Yo(c zArB)qas+97cpcLC&cUI5bT;xnWEnDxTtM2Nz*R^N`3GbI`48kc;+DdHM;hM=IIclH zft*A9WylwCOLyoSMP5VLRq)5it8qUKb*5a8{0XA(T^X9c*W#K+et|rSybbw%L|-3e z=zB4P6&OAbA2M#?NMsN4Gh{20e&k(^oQv!r;5_7FaYZ9`YFO_3(V;Lfnn7AIFE0b`wy7A4mQM`2ez% z^h=<=Q;-Kz7yFIykKukN@-^fV{9l2;ha81_1pX27OXMO%-#X+GkXB+=t;$DpVcz7yumI?2Hzk~nlh`#@Ud>>gx z_@n~(x{$v`o<#l}ISToEr!pmo5+T+ucIEB04)v160&L zaDN3&XjAL-b8lb+i}^8>`ABOws)>1L6(e` zM1|1HyLKGdK@!@V-RY?6##GUg%9)(3)|J9BwMJ!cvXP@uP4X>i<;`Vni|n!*;S>sP z6g85Ej$iToQZA~~k6M`t{TJ1$Xi{-qTLmex$36w(Il_I#$EG#t81cE zc6_GJ!CiIyqP;N^B7Auw99VKgu?Cn>d(^1~c>Q7!hGHqGrbuXw9I+D?)K)pYQsU6h zqTTI;`J_l#SW-`XxmeFCH%#*UCQ%$ZRr%#gsl8!!&A4IS@wU^xZl~ zrK(eOqcTns6$9ejsuLzDOI}iw-|iTc|eRJ|!`>JB0rk~VXL8_u|; zU`h?_4&sQ(kRzFLV>2*Tcj(M`Rp7;5RJJ$zMUO$byx{UX=7t0ZVV&s2cRjmTjftG9 zLraos$x+9;laPhxuuP&ro`e#t9;cQMC`k@C3<4jA@6gsBXVSH|x?$19S+7w^V}g1Z zNQTVrn#ks5i#wU*t6stCDLX~|_$AjKaiVBC2%G*|ovqdk@>ml+Wp%cv9I^-)-9|Ti zf6A*`PI zq^7@T#$|&wYPEV@zvhG$t9QGXXTNw>Z@}VLg$;*4m$_uWWUX3?XJ0t#$y#d>aJ4LEs5dVrNk!U30BQid!#yh7a?U|A9A;)@?&jCe70%b+E_r7FxVSwlcC2dOZT~cgKQu-GTd$H{M7bd-xe`D_%Ycz zw6y4l8N-cH=(tsDW9(Gx)+SV$7T_jllBi8?sNvYePQ^FqLnWYt|3HJ3IGX(VfGjWj5kW~i;fdRVH@ zq(u**I})w@At$h##q4K4lOUD~9dbD=SUf{+6ri@PAx>`TI>=nwU7?e=)#Ea)rO`tk z+cS23PFmFR5Qk`zo;5>3cEnjjL8-*XXAGDeJW8eC?7;0e2W)FtcK)`8jBz-#I~Bxg zw}z6PTueAAOV+Sca030h%%;bnNn5e2(7g6lNh#n2oZ4&9hS9_&Cn~VuhgrYVUW&Rl z6#k+&#qPn82FD5uqq4)<+|Y0YaOQbC5|_9Hb&&Qpb9$(&VW%F@R%_Vx6MlAj1)Ap- z!fdUz+5K+OMUgTh>B8mOG+_+~)nYJ3Wh{6lm-f~9iGz`KOJN!obKxW>q1;w_-PrM} zRENIiY654p+0$k*O{hp~vs3f5{WsIh#Mel7bQ6o+zyU2`CVS<;oY1mnS&4am(le&;hdTx<;->ErZk~@mJV3g5F)~Y%& z*+FR+(zA5FUza#tASaUQTvX^rZamMc+b$cC`E8b%COdEecH*}d?lKi4Wv}W@PI90` z)`%Au951BD+@`rE7PyJ=21xY<)6I=BkKUa=V05&1JclR?KRr%bPcl26_6kx!_B2&6 zh*NCoiF&GxUOmws2?Esx{j_jp8QCZE%!(Z)|hhWx%R#t!@G~;Nir~Vh2%sJjoc<&Ga!cp+gDh zh;g%t*cZk#;<03S43U0Vs-Q|kvVyki)kt-UqCPu2*V7f4y#YpPBV~DhK#ss33wTZ{ z@d!Z$k7Iw-Ns3;o{Z+TL5|c5?g+BGx3v@#IV^mFW>>(F@hlc}rQsX;XMZZ;)6i512 z7}e#ICu2jejxu1EnR0jxann%eHl>}eyTniHB|sQ16tn`onCD6sRF|U4PQJ!rYmGS`^Vr4! z>50MS;%1QDzsH>Ip3z=ojz6Pi&}NVOo^*aAyR`mT84a!~arl*VFY1MuZr;W+9%HU1 z8@emgG%`8xvW(cT^u;T-*^>clEYIaA?-m^M)-02tam~teo6{S#*lycK&4ez?BVs-5 zb>ZbghRSQV#yp+@IW7R`xiOAhek$C763B#FV~nL&Wb0@Q$AY}06fAq4p<}#=xcvxv z6Q)-Xd9qd9!##?!yB!j8|S5FN}3=PvG_4NB79=&JU4xwTHRBd=(p zWVX^yNHaETDSAcOGipv;D7QBjNgUQ~?n)m2o3t%^No@0Kc_%;ZT6yj`OoMa^$Gust z5e`fSh1g;rR^5r%qG32|Ua`pQ)K3i|p<0_=2nmVz@=aSzT$(4l9J1-SKmUIx;1u%Yk51b z$7-~YEy>xE8;(j|G1r}xqTE=p#$Gsb`B*M}w30s8%Nkr`uU^%0L2gw?Zq)^L$0ci4 zpLg!6j#aBjnA;-dyjQyOa~-R59p~GtI@WY_Wa);SD9(-X)IeSFs9b}#&^uk41!G3Z z?%XN8SZH_R%SyZ_s_l&G`h}>n^!lC~bDi26JAF=ca(Z*wzAWv86VD}DV;9|p!yAYD z<~rKZzG@+_d9IOE&Pl(hR_TqJR$BMNJugndwhuFI6=t$t|{oT=i zVS7ghQH?=xi@9;Ek`!OWCR7S?m>w_-I`*pei`rLXtJ})?&|){$(rp?|{~Il?E`6V8 z47Pt;2G?q2UcsE3=sA>Ej5&gnqT=|xsqA9XVs(|#buhb*J38l+3A@N^pBvvOZRCDe zz&Oow%{S&(r61>U9=bK%ijC0~bs{4MOTt)2N!5cz6?1V`^|VY>2Z*GuvO^72&e6M# zD;axpCebZ7t!7JRdbLOQZ+h)bnjO>8U8dJI^|Ef!{C?B&YTkR?ym&0l8DWhMKy}sJ zDot#+uW)^zG1ASJS2fBGOHetchbZ8g*yLwev*3x@J)uU7=Z*@%JfMs4wChurU7Ovl zhipWy=GbSwO#8;sEwgw?i^&&pQr8mflXC?$Y_#0RI4tR!Ka)@)Hd4+fv}BY{(T0}b zS7x>)e`dFpLxx*g=P}c{S75xY&=$4U>?_vhy2^y4%pX=t~Ei zu9-5oasR7WV=7Az*YsT)+q1h^gggU>8Af}bP%f7Lb@T3EP)#ri(4{$@At(271v^|hvw=ZOgRI6MiYt~?D*;VQ3I;zCnp|F{8>T;l9 zD&x*mvbq|Y_OT%tpyY-I1$l3(gtiLW?apUD>lYX2xJrH>|;4I(U28 zf@gPyv%5K4&A9fbTPZaNXBO9H)o7*?CJEQi?7@|67s@m|GrK!VHNXJ(S5_gG;FiFK zfmqFG3AaaQ_Z0b)0uwyOme!v(v@|djvzF%>ihJE8W~8yTr%Zb{-&#Dx&K{r$3T&8) zXLmPTzeS@lcO&MlaY{=4#tmb!w8ET~I9sP1ToeE%D6DHqxtf`ZSsbjsVm!}CT#=1< zTqa`KbJI@BLd=-+$0pf`8J>obSWX7BVI|&spAb_aIxAuSMq-tfnu$@z2R0MeILBr% z5vRv>Ji|FGD{;O3ccLd^|fF1Rb7-3g3wxYag1lUg%fW>06oTh<>gSR?lK%sxClPu&;` zamCrMg_x@>??=qMuh>M4rB;U+S!67mXCt27gUa9ORj}ZCmCQ)2hW5|y<~T_2gt8O! z{J>_%Yf_eCY}P8R)mH3cuHL_`*e!>1wqpJcRZ&erq~~148vb>bVlJVX{R0bb=GGaN zjg>JM`%;$`V=bmlQl6pRJZ@F>13Nwy*$HH&TgzW0ZbpRvs>@Gbf`D2CY z23Hy%qX1brCsU*DoE9wsvLXE~Pr!F1guh-ZUP^+>pcBJ%tL- zn;BZy%*7*%zpFQ5QTN2R}LDxQtoYXruK%(xm$l!;p#2xWVy=BP3wdV zxov5=<=H4Y`AjNy&Tmdt^78x>3fFBG!rURcdZ*1f+NMi-g)>4I{b?_>BOOLSHy&l; z8qd*Nkpa9CD@RH5LSjrH7^SjyD1=*iWRIq~%Q_oMjBR>_S68@Yv>xERu60as0u;*J z3}^4+vTxI%eOh^-=9L(RSJXbvT}^GnPCeRqi&!_kDQeD91glzmv2uJ9aq{e!ePD+j4e|p)U!CQ&+RmpZWQD36nxyc<`)rp23!S@uY|ls-8@o#YC3??TSe~I=v^oqv$q`H3{OJ3t(k1z9eB~R zg1Dmp8oRe%g)OGc=5~Xt9H{a>}S5|^~qutK*2@Bcb*2+CQ-3Met zchOR_?4^(?_m!K(HNtZyam)}JGWMoc!oEiFoRVioaWkd+H;K0l;oQs^+c?(h#`vO0 z(63&047G$et`M)xP~PoMp{HW$z2dyb8=YyI&7VW$2xvMtNAGQ0R1DK%Pe9c zPbM&yV-NF-Ep~H_Rg2v`%53JFQk!`%vpjd;q%%Bs47c0!%uaqHjV`-WLl0`L{kjrp zo}cIsLaFIoEoq+NnK>*whD-dBJ>sx3i^~tNam}s2w1cQr6p;RE)-mJawvZrr)2Rpm57mV^J_-Z9Jwp;%f-q6V% diff --git a/kasu/settings/base.py b/kasu/settings/base.py deleted file mode 100644 index 792612e..0000000 --- a/kasu/settings/base.py +++ /dev/null @@ -1,211 +0,0 @@ -from os import path - -gettext = lambda s: s -PROJECT_PATH = path.abspath(path.join(path.dirname(__file__), '..', '..')) - -PREREQ_APPS = [ - 'compressor', - 'grappelli', - 'django.contrib.admin', - 'django.contrib.admindocs', - 'django.contrib.auth', - 'django.contrib.comments', - 'django.contrib.contenttypes', - 'django.contrib.humanize', - 'django.contrib.messages', - 'django.contrib.sessions', - 'django.contrib.sites', - 'django.contrib.staticfiles', - 'django_markdown', - 'social.apps.django_app.default', -] -PROJECT_APPS = [ - 'aggregator', - 'content', - 'events', - 'gallery', - 'imagekit', - 'membership', - 'maistar_ranking', - 'mahjong_ranking', -] - -INSTALLED_APPS = PREREQ_APPS + PROJECT_APPS - -ALLOWED_HOSTS = ['localhost', '.kasu.at'] - -EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' -EMAIL_HOST = "smtp.googlemail.com" -EMAIL_PORT = "587" -EMAIL_HOST_USER = "webmaster@kasu.at" -EMAIL_HOST_PASSWORD = "Ees6aang" -EMAIL_USE_TLS = True -DEFAULT_FROM_EMAIL = "webmaster@kasu.at" - -LOCALE_PATHS = (path.join(PROJECT_PATH, 'kasu', 'locale/'),) -AUTH_PROFILE_MODULE = 'membership.Membership' - -AUTHENTICATION_BACKENDS = ( - 'social.backends.facebook.FacebookOAuth2', - 'social.backends.google.GoogleOAuth2', - 'social.backends.twitter.TwitterOAuth', - 'django.contrib.auth.backends.ModelBackend', -) - -ADMINS = ( - ('Christian Berg', 'xeniac.at@gmail.com'), -) - -MANAGERS = ADMINS -ACCOUNT_ACTIVATION_DAYS = 5 -DATABASES = { - 'default': { - 'ENGINE': 'django.db.backends.mysql', - 'NAME': 'kasu', - 'USER': 'kasu', - 'PASSWORD': 'F9lFbUaUvMcDA', - 'HOST': 'localhost', - }, -} - -# Local time zone for this installation. Choices can be found here: -# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name -# although not all choices may be available on all operating systems. -# On Unix systems, a value of None will cause Django to use the same -# timezone as the operating system. -# If running in a Windows environment this must be set to the same as your -# system time zone. -USE_TZ = True -TIME_ZONE = 'Europe/Vienna' - -# Language code for this installation. All choices can be found here: -# http://www.i18nguy.com/unicode/language-identifiers.html -LANGUAGE_CODE = 'de-at' -LANGUAGES = ( - ('de', gettext('German')), - ('en', gettext("English")), -) - -SITE_ID = 1 - -# If you set this to False, Django will make some optimizations so as not -# to load the internationalization machinery. -USE_I18N = True - -# If you set this to False, Django will not format dates, numbers and -# calendars according to the current locale -USE_L10N = True - -# Absolute filesystem path to the directory that will hold user-uploaded files. -# Example: "/home/media/media.lawrence.com/media/" -MEDIA_ROOT = path.join(PROJECT_PATH, 'media') - -# URL that handles the media served from MEDIA_ROOT. Make sure to use a -# trailing slash. -# Examples: "http://media.lawrence.com/media/", "http://example.com/media/" -MEDIA_URL = '/media/' - - -# Absolute path to the directory static files should be collected to. -# Don't put anything in this directory yourself; store your static files -# in apps' "static/" subdirectories and in STATICFILES_DIRS. -# Example: "/home/media/media.lawrence.com/static/" -STATIC_ROOT = path.join(PROJECT_PATH, 'static') - -# URL prefix for static files. -# Example: "http://media.lawrence.com/static/" -STATIC_URL = '/static/' -# ADMIN_MEDIA_PREFIX = path.join(STATIC_URL, "grappelli/") - -# Additional locations of static files -STATICFILES_DIRS = ( - # Put strings here, like "/home/html/static" or "C:/www/django/static". - # Always use forward slashes, even on Windows. - # Don't forget to use absolute paths, not relative paths. - path.join(PROJECT_PATH, 'kasu', 'static'), -) - -# List of finder classes that know how to find static files in -# various locations. -STATICFILES_FINDERS = ( - 'django.contrib.staticfiles.finders.AppDirectoriesFinder', - 'django.contrib.staticfiles.finders.FileSystemFinder', - 'compressor.finders.CompressorFinder', -) -# Make this unique, and don't share it with anybody. -SECRET_KEY = 'uve7*2z2+2fs!ts80e(^2kxo^960!hl)cns@fpt_e%7qg52wy0' - -MIDDLEWARE_CLASSES = [ - 'mahjong_ranking.middleware.DenormalizationUpdateMiddleware', - 'django.middleware.common.CommonMiddleware', - 'django.contrib.sessions.middleware.SessionMiddleware', - 'django.middleware.csrf.CsrfViewMiddleware', - 'django.contrib.auth.middleware.AuthenticationMiddleware', - 'django.middleware.locale.LocaleMiddleware', - 'django.contrib.messages.middleware.MessageMiddleware', -] - -ROOT_URLCONF = 'kasu.urls' - -# List of callables that know how to import templates from various sources. -TEMPLATE_LOADERS = ( - 'django.template.loaders.filesystem.Loader', - 'django.template.loaders.app_directories.Loader', -) - -TEMPLATE_DIRS = ( - path.join(PROJECT_PATH, 'kasu/templates/'), -) - -TEMPLATE_CONTEXT_PROCESSORS = ( - 'django.core.context_processors.request', - 'django.core.context_processors.csrf', - 'django.core.context_processors.debug', - 'django.core.context_processors.i18n', - 'django.core.context_processors.media', - 'django.core.context_processors.request', - 'django.core.context_processors.static', - 'django.contrib.auth.context_processors.auth', - 'django.contrib.messages.context_processors.messages', - 'content.context_processors.content_menus', - 'events.context_processors.upcoming_events', - 'social.apps.django_app.context_processors.backends', - 'social.apps.django_app.context_processors.login_redirect', -) - -# PREFIX_DEFAULT_LOCALE = True - -CACHES = { - 'default': { - 'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', - } -} - -RECAPTCHA_PUBLIC_KEY = '6LcX_dcSAAAAAKx9FCP1Nc3EZMmiFIUPeUv5CVnt' -RECAPTCHA_PRIVATE_KEY = '6LcX_dcSAAAAAHL9m05oLSl-PiU71MLdheFWJnrC' -RECAPTCHA_THEME = 'red' -INTERNAL_IPS = ('127.0.0.1', '192.168.1.8') - - -################## -# SOCIAL AUTH # -################## - -SOCIAL_AUTH_ENABLED_BACKENDS = ('facebook-oauth2', 'google-oauth2', 'twitter') -SOCIAL_AUTH_SLUGIFY_USERNAMES = True -SOCIAL_AUTH_CHANGE_SIGNAL_ONLY = False - -LOGIN_URL = '/membership/login/' -LOGIN_ERROR_URL = '/membership/login/error/' -LOGIN_REDIRECT_URL = '/users/' -SOCIAL_AUTH_NEW_USER_REDIRECT_URL = '/users/' - -SOCIAL_AUTH_FACEBOOK_KEY = '115196761917023' -SOCIAL_AUTH_FACEBOOK_SECRET = '6edf715f0506a1177b5479f8cae47566' -SOCIAL_AUTH_FACEBOOK_SCOPE = ['user_about_me', 'email'] -SOCIAL_AUTH_GOOGLE_OAUTH2_KEY = '547248583417.apps.googleusercontent.com' -SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET = '7jofzTy558SikOSV3cuTvY17' -SOCIAL_AUTH_TWITTER_KEY = 'c8UY7a5XrRlPFyuoUNJw' -SOCIAL_AUTH_TWITTER_SECRET = 'xLhz4zwAn3Lyl9MmJAiL85IurdmYzjDpoQF36du8tWg' - - diff --git a/kasu/settings/dev.py b/kasu/settings/dev.py deleted file mode 100644 index 0a01f80..0000000 --- a/kasu/settings/dev.py +++ /dev/null @@ -1,26 +0,0 @@ -########################################### -# Settings for the development enviroment # -########################################### -__author__ = 'Christian Berg' -from base import * - -DEBUG = True -TEMPLATE_DEBUG = True - -# Load the Rosetta translation tool -try: - import rosetta # @UnusedImport - - INSTALLED_APPS.append('rosetta') -except ImportError: - pass - -# Load the Django debug toolbar -try: - import debug_toolbar # @UnusedImport - - INSTALLED_APPS.append('debug_toolbar') - MIDDLEWARE_CLASSES.append( - 'debug_toolbar.middleware.DebugToolbarMiddleware') # @IgnorePep8 -except ImportError: - pass diff --git a/kasu/settings/production.py b/kasu/settings/production.py deleted file mode 100644 index f7fdf72..0000000 --- a/kasu/settings/production.py +++ /dev/null @@ -1,74 +0,0 @@ -########################################## -# Settings for the production enviroment # -########################################## -__author__ = 'Christian Berg' -from base import * - -# A sample logging configuration. The only tangible logging -# performed by this configuration is to send an email to -# the site admins on every HTTP 500 error. -# See http://docs.djangoproject.com/en/dev/topics/logging for -# more details on how to customize your logging configuration. - -DEBUG = False -SESSION_COOKIE_DOMAIN = '.kasu.at' # Die ganze Domain Kasu -SESSION_COOKIE_AGE = 4838400 # Session dauer: 4 Wochen -TEMPLATE_DEBUG = False -TEMPLATE_LOADERS = ( - ('django.template.loaders.cached.Loader', ( - 'django.template.loaders.filesystem.Loader', - 'django.template.loaders.app_directories.Loader', - )), -) - -LOGGING = { - 'version': 1, - 'disable_existing_loggers': True, - 'filters': { - 'require_debug_false': {'()': 'django.utils.log.RequireDebugFalse'} - }, - 'formatters': { - 'verbose': { - 'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s' - # @IgnorePep8 - }, - 'simple': { - 'format': '%(levelname)s %(message)s' - }, - }, - 'handlers': { - 'null': { - 'level': 'DEBUG', - 'class': 'django.utils.log.NullHandler', - }, - 'console': { - 'level': 'DEBUG', - 'class': 'logging.StreamHandler', - 'formatter': 'simple' - }, - 'mail_admins': { - 'level': 'ERROR', - 'filters': ['require_debug_false'], - 'class': 'django.utils.log.AdminEmailHandler', - } - }, - 'loggers': { - 'django': { - 'handlers': ['console'], - 'level': 'INFO', - 'propagate': True, - }, - 'django.request': { - 'handlers': ['console', 'mail_admins'], - 'level': 'ERROR', - 'propagate': False, - }, - 'kasu': { - 'handlers': ['console', 'mail_admins'], - 'level': 'DEBUG', - 'propagate': False, - }, - - } -} - diff --git a/kasu/settings/staging.py b/kasu/settings/staging.py deleted file mode 100644 index 0e42c7e..0000000 --- a/kasu/settings/staging.py +++ /dev/null @@ -1,75 +0,0 @@ -########################################## -# Settings for the production enviroment # -########################################## -__author__ = 'Christian Berg' -from base import * - -# A sample logging configuration. The only tangible logging -# performed by this configuration is to send an email to -# the site admins on every HTTP 500 error. -# See http://docs.djangoproject.com/en/dev/topics/logging for -# more details on how to customize your logging configuration. - -ALLOWED_HOSTS = ['*'] -DEBUG = False -#SESSION_COOKIE_DOMAIN = '.kasu.at' # Die ganze Domain Kasu -SESSION_COOKIE_AGE = 4838400 # Session dauer: 4 Wochen -TEMPLATE_DEBUG = False -TEMPLATE_LOADERS = ( - ('django.template.loaders.cached.Loader', ( - 'django.template.loaders.filesystem.Loader', - 'django.template.loaders.app_directories.Loader', - )), -) - -LOGGING = { - 'version': 1, - 'disable_existing_loggers': True, - 'filters': { - 'require_debug_false': {'()': 'django.utils.log.RequireDebugFalse'} - }, - 'formatters': { - 'verbose': { - 'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s' - # @IgnorePep8 - }, - 'simple': { - 'format': '%(levelname)s %(message)s' - }, - }, - 'handlers': { - 'null': { - 'level': 'DEBUG', - 'class': 'django.utils.log.NullHandler', - }, - 'console': { - 'level': 'DEBUG', - 'class': 'logging.StreamHandler', - 'formatter': 'simple' - }, - 'mail_admins': { - 'level': 'ERROR', - 'filters': ['require_debug_false'], - 'class': 'django.utils.log.AdminEmailHandler', - } - }, - 'loggers': { - 'django': { - 'handlers': ['console'], - 'level': 'INFO', - 'propagate': True, - }, - 'django.request': { - 'handlers': ['console', 'mail_admins'], - 'level': 'ERROR', - 'propagate': False, - }, - 'kasu': { - 'handlers': ['console', 'mail_admins'], - 'level': 'DEBUG', - 'propagate': False, - }, - - } -} - diff --git a/manage.py b/manage.py deleted file mode 100755 index 7d14ffc..0000000 --- a/manage.py +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/env python2 -import os -import sys - -if __name__ == "__main__": - from django.core.management import execute_from_command_line - - execute_from_command_line(sys.argv) diff --git a/manage.py b/manage.py new file mode 120000 index 0000000..3957368 --- /dev/null +++ b/manage.py @@ -0,0 +1 @@ +src/manage.py \ No newline at end of file diff --git a/requirements/base.txt b/requirements/base.txt index 54bf522..1ec379f 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -1,18 +1,24 @@ BeautifulSoup -django < 1.7 +django >= 1.7, < 1.9 django-appconf django-compressor +django-contrib-comments django-grappelli django-imagekit -# django-markdown +django-markdown django-social-auth feedparser icalendar jsmin +markdown < 2.5 MySQL-python pillow +psycopg2 +PyJWT python-social-auth pytz==2013d +requests +requests-oauthlib xlwt -markdown < 2.5 + bzr+https://code.launchpad.net/~adam.russell/pyexiv2/pyexiv2-0.3 diff --git a/requirements/development.txt b/requirements/development.txt index 7969fec..1d31f26 100644 --- a/requirements/development.txt +++ b/requirements/development.txt @@ -1,3 +1,5 @@ -r base.txt -django-debugbar +django-debug-toolbar +django-sslserver rosetta +sqlparse diff --git a/aggregator/__init__.py b/src/aggregator/__init__.py similarity index 100% rename from aggregator/__init__.py rename to src/aggregator/__init__.py diff --git a/aggregator/admin.py b/src/aggregator/admin.py similarity index 100% rename from aggregator/admin.py rename to src/aggregator/admin.py diff --git a/aggregator/feeds.py b/src/aggregator/feeds.py similarity index 100% rename from aggregator/feeds.py rename to src/aggregator/feeds.py diff --git a/aggregator/management/__init__.py b/src/aggregator/management/__init__.py similarity index 100% rename from aggregator/management/__init__.py rename to src/aggregator/management/__init__.py diff --git a/aggregator/management/commands/__init__.py b/src/aggregator/management/commands/__init__.py old mode 100644 new mode 100755 similarity index 100% rename from aggregator/management/commands/__init__.py rename to src/aggregator/management/commands/__init__.py diff --git a/aggregator/management/commands/update-feeds.py b/src/aggregator/management/commands/update-feeds.py similarity index 100% rename from aggregator/management/commands/update-feeds.py rename to src/aggregator/management/commands/update-feeds.py diff --git a/aggregator/models.py b/src/aggregator/models.py similarity index 100% rename from aggregator/models.py rename to src/aggregator/models.py diff --git a/aggregator/sitemaps.py b/src/aggregator/sitemaps.py similarity index 100% rename from aggregator/sitemaps.py rename to src/aggregator/sitemaps.py diff --git a/aggregator/templatetags/aggregator.py b/src/aggregator/templatetags/aggregator.py similarity index 100% rename from aggregator/templatetags/aggregator.py rename to src/aggregator/templatetags/aggregator.py diff --git a/content/__init__.py b/src/content/__init__.py similarity index 100% rename from content/__init__.py rename to src/content/__init__.py diff --git a/content/admin.py b/src/content/admin.py similarity index 100% rename from content/admin.py rename to src/content/admin.py diff --git a/content/context_processors.py b/src/content/context_processors.py similarity index 100% rename from content/context_processors.py rename to src/content/context_processors.py diff --git a/content/feeds.py b/src/content/feeds.py similarity index 98% rename from content/feeds.py rename to src/content/feeds.py index 0387a2e..b1fb423 100644 --- a/content/feeds.py +++ b/src/content/feeds.py @@ -2,7 +2,7 @@ from datetime import datetime, time from django.conf import settings from django.utils.translation import ugettext as _ -from django.contrib import comments +import django_comments as comments from django.contrib.syndication.views import Feed from django.utils.feedgenerator import Rss201rev2Feed diff --git a/content/forms.py b/src/content/forms.py similarity index 100% rename from content/forms.py rename to src/content/forms.py diff --git a/content/locale/de/LC_MESSAGES/django.mo b/src/content/locale/de/LC_MESSAGES/django.mo similarity index 100% rename from content/locale/de/LC_MESSAGES/django.mo rename to src/content/locale/de/LC_MESSAGES/django.mo diff --git a/content/locale/de/LC_MESSAGES/django.po b/src/content/locale/de/LC_MESSAGES/django.po similarity index 100% rename from content/locale/de/LC_MESSAGES/django.po rename to src/content/locale/de/LC_MESSAGES/django.po diff --git a/content/management/__init__.py b/src/content/management/__init__.py old mode 100644 new mode 100755 similarity index 100% rename from content/management/__init__.py rename to src/content/management/__init__.py diff --git a/content/management/commands/__init__.py b/src/content/management/commands/__init__.py similarity index 100% rename from content/management/commands/__init__.py rename to src/content/management/commands/__init__.py diff --git a/content/management/commands/importarticles.py b/src/content/management/commands/importarticles.py similarity index 100% rename from content/management/commands/importarticles.py rename to src/content/management/commands/importarticles.py diff --git a/content/management/commands/importgalleries.py b/src/content/management/commands/importgalleries.py similarity index 100% rename from content/management/commands/importgalleries.py rename to src/content/management/commands/importgalleries.py diff --git a/content/models.py b/src/content/models.py similarity index 100% rename from content/models.py rename to src/content/models.py diff --git a/content/news_urls.py b/src/content/news_urls.py similarity index 100% rename from content/news_urls.py rename to src/content/news_urls.py diff --git a/content/templates/content/article_archive.html b/src/content/templates/content/article_archive.html similarity index 100% rename from content/templates/content/article_archive.html rename to src/content/templates/content/article_archive.html diff --git a/content/templates/content/article_archive_month.html b/src/content/templates/content/article_archive_month.html similarity index 100% rename from content/templates/content/article_archive_month.html rename to src/content/templates/content/article_archive_month.html diff --git a/content/templates/content/article_archive_year.html b/src/content/templates/content/article_archive_year.html similarity index 100% rename from content/templates/content/article_archive_year.html rename to src/content/templates/content/article_archive_year.html diff --git a/content/templates/content/article_detail.html b/src/content/templates/content/article_detail.html similarity index 100% rename from content/templates/content/article_detail.html rename to src/content/templates/content/article_detail.html diff --git a/content/templates/content/article_form.html b/src/content/templates/content/article_form.html similarity index 100% rename from content/templates/content/article_form.html rename to src/content/templates/content/article_form.html diff --git a/content/templates/content/clear_page.html b/src/content/templates/content/clear_page.html similarity index 100% rename from content/templates/content/clear_page.html rename to src/content/templates/content/clear_page.html diff --git a/content/templates/content/page.html b/src/content/templates/content/page.html similarity index 100% rename from content/templates/content/page.html rename to src/content/templates/content/page.html diff --git a/content/templates/content/page_form.html b/src/content/templates/content/page_form.html similarity index 100% rename from content/templates/content/page_form.html rename to src/content/templates/content/page_form.html diff --git a/content/templates/content/page_pdf.html b/src/content/templates/content/page_pdf.html similarity index 100% rename from content/templates/content/page_pdf.html rename to src/content/templates/content/page_pdf.html diff --git a/content/templatetags/__init__.py b/src/content/templatetags/__init__.py similarity index 100% rename from content/templatetags/__init__.py rename to src/content/templatetags/__init__.py diff --git a/content/templatetags/fieldset_extras.py b/src/content/templatetags/fieldset_extras.py similarity index 100% rename from content/templatetags/fieldset_extras.py rename to src/content/templatetags/fieldset_extras.py diff --git a/content/tests.py b/src/content/tests.py similarity index 100% rename from content/tests.py rename to src/content/tests.py diff --git a/content/urls.py b/src/content/urls.py similarity index 100% rename from content/urls.py rename to src/content/urls.py diff --git a/content/views.py b/src/content/views.py similarity index 99% rename from content/views.py rename to src/content/views.py index d216d9f..332da25 100644 --- a/content/views.py +++ b/src/content/views.py @@ -2,7 +2,8 @@ import os from django.conf import settings -from django.contrib import comments +import django_comments as comments + from django.http import HttpResponse, Http404 from django.utils.translation import ugettext as _ from django.views import generic diff --git a/events/__init__.py b/src/events/__init__.py similarity index 100% rename from events/__init__.py rename to src/events/__init__.py diff --git a/events/admin.py b/src/events/admin.py similarity index 100% rename from events/admin.py rename to src/events/admin.py diff --git a/events/context_processors.py b/src/events/context_processors.py similarity index 100% rename from events/context_processors.py rename to src/events/context_processors.py diff --git a/events/forms.py b/src/events/forms.py similarity index 96% rename from events/forms.py rename to src/events/forms.py index f9f6618..931cda8 100644 --- a/events/forms.py +++ b/src/events/forms.py @@ -57,3 +57,4 @@ class EventForm(forms.ModelForm): class Meta(object): model = models.Event + exclude = ('event_count', 'event_series', ) diff --git a/events/locale/de/LC_MESSAGES/django.mo b/src/events/locale/de/LC_MESSAGES/django.mo similarity index 100% rename from events/locale/de/LC_MESSAGES/django.mo rename to src/events/locale/de/LC_MESSAGES/django.mo diff --git a/events/locale/de/LC_MESSAGES/django.po b/src/events/locale/de/LC_MESSAGES/django.po similarity index 100% rename from events/locale/de/LC_MESSAGES/django.po rename to src/events/locale/de/LC_MESSAGES/django.po diff --git a/events/models.py b/src/events/models.py similarity index 100% rename from events/models.py rename to src/events/models.py diff --git a/events/templates/events/event_archive.html b/src/events/templates/events/event_archive.html similarity index 100% rename from events/templates/events/event_archive.html rename to src/events/templates/events/event_archive.html diff --git a/events/templates/events/event_detail.html b/src/events/templates/events/event_detail.html similarity index 100% rename from events/templates/events/event_detail.html rename to src/events/templates/events/event_detail.html diff --git a/events/templates/events/event_form.html b/src/events/templates/events/event_form.html similarity index 100% rename from events/templates/events/event_form.html rename to src/events/templates/events/event_form.html diff --git a/events/templates/events/event_list.html b/src/events/templates/events/event_list.html similarity index 100% rename from events/templates/events/event_list.html rename to src/events/templates/events/event_list.html diff --git a/events/templates/events/event_site.html b/src/events/templates/events/event_site.html similarity index 100% rename from events/templates/events/event_site.html rename to src/events/templates/events/event_site.html diff --git a/events/templates/events/page.html b/src/events/templates/events/page.html similarity index 100% rename from events/templates/events/page.html rename to src/events/templates/events/page.html diff --git a/events/tests.py b/src/events/tests.py similarity index 100% rename from events/tests.py rename to src/events/tests.py diff --git a/events/urls.py b/src/events/urls.py similarity index 100% rename from events/urls.py rename to src/events/urls.py diff --git a/events/views.py b/src/events/views.py similarity index 100% rename from events/views.py rename to src/events/views.py diff --git a/gallery/__init__.py b/src/gallery/__init__.py similarity index 100% rename from gallery/__init__.py rename to src/gallery/__init__.py diff --git a/gallery/forms.py b/src/gallery/forms.py similarity index 100% rename from gallery/forms.py rename to src/gallery/forms.py diff --git a/gallery/models.py b/src/gallery/models.py similarity index 100% rename from gallery/models.py rename to src/gallery/models.py diff --git a/gallery/templates/gallery/photo_detail.html b/src/gallery/templates/gallery/photo_detail.html similarity index 100% rename from gallery/templates/gallery/photo_detail.html rename to src/gallery/templates/gallery/photo_detail.html diff --git a/gallery/templates/gallery/photo_gallery.html b/src/gallery/templates/gallery/photo_gallery.html similarity index 100% rename from gallery/templates/gallery/photo_gallery.html rename to src/gallery/templates/gallery/photo_gallery.html diff --git a/gallery/templates/gallery/photo_upload.html b/src/gallery/templates/gallery/photo_upload.html similarity index 100% rename from gallery/templates/gallery/photo_upload.html rename to src/gallery/templates/gallery/photo_upload.html diff --git a/gallery/urls.py b/src/gallery/urls.py similarity index 100% rename from gallery/urls.py rename to src/gallery/urls.py diff --git a/gallery/views.py b/src/gallery/views.py similarity index 100% rename from gallery/views.py rename to src/gallery/views.py diff --git a/kasu/__init__.py b/src/kasu/__init__.py similarity index 100% rename from kasu/__init__.py rename to src/kasu/__init__.py diff --git a/kasu/image_models.py b/src/kasu/image_models.py similarity index 100% rename from kasu/image_models.py rename to src/kasu/image_models.py diff --git a/src/kasu/locale/de/LC_MESSAGES/django.mo b/src/kasu/locale/de/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..b63f99b03e00fe03159816d53e092707071bda2b GIT binary patch literal 16460 zcmchd3zS_|dB+bA5rVvxw{idj3Cv6q-V8|~^T>mlNrucMNU#gfy?4*OC->ZQF6S|m zJFHe&RiIUovJ?uaAYiRkY1K-rP;oJ0YjIgA3N8y)K>=HmsEb=Yy}G=kt7ii1ZKP^>1*T`(b*d z;~WTA993`?d=2RhHoXZRMEY|0TIgF|2@fXSvgzyKexz@J`@@@|M7RSU0Y3o`fDb_R z^Hr#E9q1N*wHvhAh_d)eP2akhagOd9>C^=t%lH)~)>N@*SNpc3OojCKQDsne*&uh zHmG_Ax-him?}L)-Cd&_7{t47Mya#H%9)g5&y9KJ61?{+*WhK*{$7sBs^FlK=0a`uir-xZi=Q_Y~B*e-_GKy#OWuA#PEAB-A{PgKGa~ zNEPQasCpMet=lC~^-557t`4PFS3&iE6O>*1D3t#G4dh5Tk3-4vbEx_K5~`nlIV`K; zL2w+7!fWA&pvGN%Qcrnk&33Xm)q3Zn+lsvaV&F@aAb-o8`esfTAJ_#`;&T~-xyk>Es4+q0@NH2vM zd>d3hkHLN6Q&97M7QP1l6zcr{hs{6Wlw$nDpyqQll-@43`Kv95q52txl5Y}94}GX} zvjZZUa}CrweFCcfeNghx+4R?;=KUDdJiZ5|$3KGVcdt_m`HzHZcM_DH>V+EbLa2Fc zgsb2r)Va73_QOxX{or#@{r}Xae`)!W&EIcHA>SczZ|WTdwO+?U^?w3XKZ~Kp?}3`< zYPb&^g&ZAc9PSTesCHLDm0t}pVa~hY=k~%5!tavab{aCl^G`4Q$fYQc_T!M=LN88+ z>Zc!SA1{Ij!BMzB+-6yZIyV7)Eqptayw}?D>!H@~W~lz}gzE2JTmB%_I1fYBd&HJM zVe_AZ2a*31sQ&-Ua^Jq9pVvXjb2L=F6QSxYgOcN1sQy>m{2`k^3e|1`YTw^#(pvHR=O8y_(^z%^T|I+5a1P>;?2qUEPa|~4ZIZ$?H z6_lOW2qkaDa=R^WLdkhGlw7w!jdvH+`1e4yyBBh$I`>1Z^LL=?Jp(nbpV|DEpyq$z z@US-aK5c@UUl~g75UT&*hnQ~XHmG&^BGi1o z4AsxWmXAWo_fJsuo`ss{zd@a!UqJ2ii#C7%Gm7?yLydbZ)OlSD)$TMX`ObnGZxz(K z583o)sBtcXlJ^Rzd8SbNc0E-4Pg;Hss-G`fJ_I$+*KGPRC^?>l>gPEqdGTejT|0|&CZHJPt3AMg0sQvjMl$@W08t=1E<2(Re z__t8)p0oKsv;39iUS}2U4}e;)L!sKg32GlsfjU2@LG^P!)IJYD>E|{m{cYOvYoXTZ z1}M32g{YWw2h@BXfs*$LsQ#XYs{doC^?L!T-HY&0xYyZ5yThU8_eQAtOQGaE6RQ3N zQ2nlfZ-(ok>NRZs4AgkP2PMa~mN!D_*@vL|`!lF|pRwutEa#xcdD!w1D0v=-+OMaf z*6-I)`*I+cvdWKx>hDyjby^N3*E*>FE`b{NQmFY~0kz&0sCzhpYX2Tv{sEi56{`JR zQ2Ow3sQG^lYWzo`+C2@mjz5O7r@w|r!sE{^(r3bxNpFTr;WU&ScR$joy=^4wPK-GHzYMi|;DAw&@sP#I+@^~mY7enpqGN^u5L$zNE``{%u{~b{E zuY;P;jZkvk0@d&BQ1ks$sCp0B{I5dw`;Sob`i|wlL&<;e%EHba57kdU)O|PzSxV<^ z@DJgwQ0uf9=Sq680;=D0pyXH$kAOo^{k+ANdr<4(L&-M{CI5RZ-w)N#ZBXOh1&@MX zf``LzL!H}yg>Qt1t}g2LL9Np{HoXRF-WzOs0;-?Oq54Un^yC_-b~i!k%SUYbvrzN+ zB3uK%4BrIzyRgvj#ZYoz2{peRQ1!32ycVk8_d?C*kKx|%4qJW~RJ)Jc^k<;t`fDh? zeAwnc0Z%9W6x6yMd{Hs(aZu}i64ZK}3Y|sng8$aWQNvy7xwY6#tvYG(k}NUt6@eet zmnJ8zUcAK1(pnTRO;#@RR=a+I5ni!NBaBr0t;<#cIsN}Ok? zt6lm@{IG0x$z7TH4dYh4)aXOvC0VKAr&lPe5HN2j`BY=qew{@to2%C(uII+4>L;m* zO~q}PM#;o(E6Uum7xu4Q)?B@4WfstSW#F$4j5lpuJDbFfLN~4XiQDw5rf=mkDiqa_ zBq_&!$+&6cMp^7`G&4zHQikZNZmIumtkOxB(8)0$=)yX&H;8kin8iruwd*_5KF zt^uMfO#2pXn97%<5{0LxZZs3RNmj18Uf8aYH>*T$7^Uuv7p9U4RdM~)ouWgj348CC zz0{Awo<(+P-6=l^SRA@UfMN&Yyoy>iSWZ^nSyQRFYhoG)CjXwuN?L5b8-D1lnX1;j zkgfCh4!p49Zb*cLREYu)R!uB602}H~c#Vi;Sc&3TtVThO3~BU{dU08@>eH`g9`mfY z172LpD&)mg%_P(p`mBEAti<0eNnuHCN6pYcH|rIYF@)j#Mndj0WYiu zUd1FeKB-iRC^LZpVZt9VZ~=rHkA#3CrwOt6t^hOLgTwb5+?Bi4@t71 z>S5Q55nKddNEHHI2K~#1+G5tHB`c4H{%2Su%Ic zRIx9cO*1P6e%TqUc@_N$tHvGol4K@|JLyJ?qt?mt(TTyDCOcS*Q36)CJJMnTjlNzlR|CHjbBmVPio6^g$-?qtolL#7dxrI2N}Et?xnao!nJ$D=cm z2=#L}OJxS56pM7~hUv(UsTCV6Q3WHxXGBL-kg^PBam?i1;c5PMQnC=vV5_O^ADlHD zu=c3VkO>=JTz7`H`z6kc?+isKzXoi7g!7e$%NeQ^JHr)@-?)y-aJAJ;o#6o052lMU zG>_ePhC>XJ8=9HR9Q zEQ%*s1q|4{#`-34)_EmXdL5cb#dU^Ja>ghfNulMeL#-(EOK2Vk-B}ko>tbUVSSaM< zD_7lhtfL8{tVvXT9;_w#CZN?^t;#3caA6mpJR0xjSKuyJV{rk>fMyr{tu%;wTL(S&T{Hqw0?E z$623+9MhJwp^PPAu{SiDv5%JJ=UjiIVj(xM+&%gJG;wDj9suY@(V_c_b)~nZYb3J0h zmgkK4+>%Vq8Hre*p6)|8ZlY#jPE9(hjUer6?W2)rWiu?bGt!Eyt=YWmQEW#h%^&q5 zx6{pT&NCHKnb1+gWr6aHnk2$(JEPp(vUQNXbl1dQ$<>T&NQ=;;KF2dPAvY~%d6Y{u z%kP@esJP;s(WqMG;Ijs74hhxL-{QhuYcJUDyyE`t&Y9$L=5#6xZFfeq9XKZ3lvQWU zD|?at8g|oX(PXVSRajp4vaA|$15WR>Xk%F7s+W{e_%ZZ%#?R5xfg)Y;r#U@*aU?{w*%lhj6faX4v7F5b$JNj*PcIP5j937pko&&6V! zFpkfKBv6@AyxE%8DZH6V|ByBW1 z()^FL+Z$2;*h9~pjXo|$@mE9pEYrp)o{EC@9ie1luUJVLw$92@FypnHO|ntrUcGQ+ z#u+dpiELVS6tHtK_i$5}v!-tGeYW^N%@$BC~pBD)<&XtR9- z;l|J89(`f5XkI*ey!Nvve>?QiUN1KW*=({9$KKf-p~jqm&G?McT6^sCB0N#N!3q4{ z)WzFn!2;80*^KohxG{^;5zHP>GFEjXb4+aRXvRHazd1yl3!51CQ5haX)E|>62oR*` zXsce045uQ-bBlXD*TCWpFoBHp<%bb1B6l+4IjPFyWR-oc{RuCt___7h*s@A&#sm(1 zo@|wwgzU$JMDW~EgS{gmH-^7euc=j@2(WT>HQ*zEF-*t><>A=2t`jVqEMM-_Sa;Ya ztQXUnLQw^|E9f@PyM60SG+9??BKBQwzB)az(Wx`RTY+4(6+?j_(;iPE{0&X<;(Y2Y zL-~x}1LX0AnO26M@@OftS~6F~{nx&7ok`DUH+xtnJv2CC_y>g-KIv`utqq&>!dWRp zkGm!GW%=99W&0;<*l`WXM_A8Kq~3}75pFBuUXdFcwwCL*;#MM))ge#~AY^Be2 zt&Oq*@KWFDZ092|s?Qsu7w-WhImvy^pE?dy2GIj&k}dEnoI5T3WK{B0gEONGc#`K7 zu9Kh#W$wQyQ5=CmoGjik?Twzym_g=jsnU_>Y^m!VX&k%4xtB8B@O9HB?aUDru@W`f z$>RRqImNjNS^Z5}8nme08Ei|Fy-5T`hEwsJORIeVV7 z)#s_nEzAf0cSp&4T>IeMC4WmFKhbSvDN{z~PYqK=NL|m#R z#_yltEzRrwGQ*lVmnnYG*>r7WzJc6i>>q`0!)v)!qAWGpKJ7seRb~1ybbSk2OHYdX zvSN!A^U?vz8+Jyi_!R|18eUqi^|h5Gjax2`mLK*x+lpt%HosBwN;AeO;UKXMGD!Fe zR>>1Sh&Pl|hvOTVsnkI*J{x|e!qYa)qbRYYExbu`(w$N>4jY%ZDLhNgYJM!VYio+= zjnfWoIk8`@rA`_(9p2qM4zbI4=4*0OUDX83S&(L!EDp9Td+&xyFE96mdi`!4pT3W$ zXOJx7By%zKjwMyU(mRkju`S(s+%2H-Ct%#4g~bUzE>4mBu!V4bM+(Mc?v8JpJ)G z84S0e-%WA!mNf&m@dBv=FPn7LmdUlf=grrXP*W!E9S+MxJ;G|gdtS*;JHz+86|-nO z;As~0$}dm)-LRP_lT~M2;1-{&mW1w!tK1b!FIe=J-gO)x&aGxS9vQvdSM;6Jw_*iF z?G-SU-Yvv48LL7xsT%bXv>>49xy$>`?K_7k-&Sm4SHx9%+X=V+KgMbe3$Y-K?Ebbw zwLxOv&)m2eIV@L7AcI?>?uER@+)CCJuT{8qq;TXtc?j8*TOm$>uQ-8>c!p)d+C20^ z8@N^dEj;UE(~v)H!?oBFg+I^_8&jp$AhB2i&Bf3&3U2M8kg;kWBQQAE^){S24(4no z|2Q9Ja}l(4Cw3pS9m+Zr({*2C)-L0sU6}o_6SK81MSM1%S@YprYXGoY4HF<@pL?kZ zL)J(>G4F9K9WkU@$_%l-v#D*b>ow1wn!7*Nit$iV2Lu-6LeH3xzTC##y?O#CwCb#V zG0S{zT=xp7$4E@OgxkH55!syYpdH=CljEjjYT<0gfJ9fhoG_6|zD4W1vR_@mm-a=( zS04)bBAw4p_r8j-Zyi|(;M%Y+aZP!uJB59H^_mBM^N;SxFBx+;>2gA+$~D5k9A;+? z+f4Mgf&jQ;-2q?)4hGPMJOE66jYMcJ;fC|)ZdcSbcaVtxRyF7=$AMKzfna$qNNyv+ zGYXFGITD=kC{sfoH2<4mu$t~J8a$FmgEeUaK5Rm!n9wVPgSTOTv6mjvV7q0e?K9S$ zN%f^CZ|>No?%drdArHtgmeJiM7iaW04-Ah)K}IlvDb3pqed5C_OR?enZxN!x^J2w# z0L;s%m~ig~4t7AecTXYV;TRPO0v;s|XC#jatM^=w>M0Hs(KfDJZWn@VI6PHnO*?y| z$^2?vry_K=aZfROtqOst1#%3rID{z`E~eZs?IvEl>jJlf#)V}p5to$NW2m`zDtOGt zuHj>}7NIZ~oef|&ss?jMt4s&%LtUAjFI=F9W(+y443hMRGW z*thmADf64Q!_2Y@^YP_EPuCj^0KqHba#<}Xg3Krf+E+;zgqQ1zE^kqAS&`s;l8P;} z=KM^h=rYUG4lnDI#caoycRnYS)G01{*nN0eedPgW%<-NB%nk0bS%S;?b)C*~4=cW$ zc;!xfndjB+;>+`gcPlZvBrbk7ML3wTdsS%jV z+*97ws=HI$!!C6S&-UeN?i{RU^med%KtIRedMmD33)s0C-HhI0Yj}opx8v-)2(*iodlIk8 zGQ2AJxOcU+?Fjco`z_{djbi4B!O<6D5JYQ#6z`s7{>UWVwGE!a)D&K%u5Hw!EAl;( zN502&x{22^?g&qt+2VTdoIk^_nCMgcAEIDQWLokkRolk8Swkz$3_Gp#nnOxdnYAbE zQ)q70V0ARmrMWG@IiVTxCx#s!&I&je?lJIh0Zgde-4%*N1t1m zBS!OZdU4b9V?;AdA2QlgBYRH2uRffvy_pZE6U9JdCOO*Dp=)bxpNWk5?SA4 z#C?Krg8l`cVHb(6XHx{)QI)XL6?4~Gb;aD1BHn&+9&aCFm*?-Re23?6@jiD!)GEw$ zAt-FsHlxzDm+JxX!c4zGrJw6M zfp|ri@CS97UkhuhahpdGhWXQztu{C~X*(5ij6QR#T0v<7X8*Z53xBsA?2kM>w E0f{zL)Bpeg literal 0 HcmV?d00001 diff --git a/kasu/locale/de/LC_MESSAGES/django.po b/src/kasu/locale/de/LC_MESSAGES/django.po similarity index 98% rename from kasu/locale/de/LC_MESSAGES/django.po rename to src/kasu/locale/de/LC_MESSAGES/django.po index 82bad18..d902663 100644 --- a/kasu/locale/de/LC_MESSAGES/django.po +++ b/src/kasu/locale/de/LC_MESSAGES/django.po @@ -8,16 +8,16 @@ msgstr "" "Project-Id-Version: kasu.utils\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-01-05 19:23+0100\n" -"PO-Revision-Date: 2014-12-14 01:11+0100\n" -"Last-Translator: Christian Berg \n" +"PO-Revision-Date: 2015-08-04 23:47+0100\n" +"Last-Translator: Christian Berg \n" "Language-Team: Kasu \n" -"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 1.6.11\n" -"X-Translated-Using: django-rosetta 0.7.2\n" +"X-Translated-Using: django-rosetta 0.7.6\n" #: image_models.py:14 msgid "left" @@ -1049,7 +1049,7 @@ msgstr "Englisch" #: templates/404.html:8 msgid "The page your requested does not exist on this server." -msgstr "" +msgstr "Die angeforderte Seite existiert auf diesem Server nicht." #: templates/base.html:23 msgid "Current News" @@ -1068,7 +1068,6 @@ msgid "Current Event" msgstr "Aktuelle Veranstaltung" #: templates/base.html:60 -#, fuzzy msgid "Since" msgstr "seit" @@ -1291,15 +1290,11 @@ msgstr "" msgid "" "\n" "

You can register here with your Google, or Facebook account.\n" -"If you don't own such an account, or do not want to use it for " -"authentication,\n" +"If you don't own such an account, or do not want to use it for authentication,\n" "you can fill out our registration form.

\n" msgstr "" "\n" -"

Du kannst dich hier mit deinen Google, Twitter, oder Facebook Account " -"anmelden. Wenn du so etwas nicht besitzt, oder es nicht für die Anmeldung " -"verwenden möchtest, kannst du auch unser Registrierungsformular verwenden.\n" +"

Du kannst dich hier mit deinen Google, Twitter, oder Facebook Account anmelden. Wenn du so etwas nicht besitzt, oder es nicht für die Anmeldung verwenden möchtest, kannst du auch unser Registrierungsformular verwenden.

\n" #: templates/registration/login.html:43 msgid "Your username and password didn't match. Please try again." @@ -1338,8 +1333,8 @@ msgstr "Passwort ändern" #: templates/registration/password_change_form.html:10 msgid "" -"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." +"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." msgstr "" "Bitte gebe aus Sicherheitsgründen den altes Passwort an und anschließend 2x " "das neue Passwort, so können wir sicher gehen das du es korrekt eingegeben " diff --git a/kasu/logging.conf b/src/kasu/logging.conf similarity index 100% rename from kasu/logging.conf rename to src/kasu/logging.conf diff --git a/kasu/static/css/common.less b/src/kasu/static/css/common.less similarity index 100% rename from kasu/static/css/common.less rename to src/kasu/static/css/common.less diff --git a/kasu/static/css/desktop.less b/src/kasu/static/css/desktop.less similarity index 100% rename from kasu/static/css/desktop.less rename to src/kasu/static/css/desktop.less diff --git a/src/kasu/static/css/kasu.css b/src/kasu/static/css/kasu.css new file mode 100644 index 0000000..1959eba --- /dev/null +++ b/src/kasu/static/css/kasu.css @@ -0,0 +1 @@ +@font-face{font-family:'Philosopher';font-weight:normal;font-style:normal;src:url('../fonts/philosopher.woff') format('woff'),url('../fonts/philosopher.ttf') format('truetype')}@font-face{font-family:'Amerika Sans';font-weight:normal;font-style:normal;src:url('../fonts/amerikasans.woff') format('woff'),url('../fonts/amerikasans.ttf') format('truetype')}@font-face{font-family:'Social Icons';font-weight:normal;font-style:normal;src:url('../fonts/social.woff') format('woff'),url('../fonts/social.ttf') format('truetype')}.clear{clear:both;display:block;height:0;overflow:hidden;visibility:hidden;width:0}#display{position:relative;top:0;text-align:center}.clearfix{clear:both}.grid_1,.grid_2,.grid_3,.grid_4,.grid_5,.grid_6,.grid_7,.grid_8,.grid_9,.grid_10,.grid_11,.grid_12{display:inline;float:left;margin:0 10px;position:relative;box-sizing:border-box}.grid_1{width:60px}.grid_2{width:140px}.grid_3{width:220px}.grid_4{width:300px}.grid_5{width:380px}.more_link{text-align:right;clear:left}.error,ul.errorlist li{color:#a40000}a:hover{color:#a40000;text-decoration:underline}a:link{color:#204a87;font-weight:700;text-decoration:none}a:visited{color:#5c3566}button,a.button{display:inline-block;color:#2e3436;padding:.2em;font:bold 12pt Philosopher,sans-serif;margin:.2em;border:1px solid #d3d7cf;border-radius:5px;background-color:#f9f9f9;box-shadow:inset 0 1px 0 0 #fff;text-decoration:none;text-shadow:1px 1px 0 #fff;background:-webkit-gradient(linear, left top, left bottom, color-stop(.05, #f9f9f9), color-stop(1, #e9e9e9));background:-moz-linear-gradient(center top, #f9f9f9 5%, #e9e9e9 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f9f9f9', endColorstr='#e9e9e9')}a.button img,button img{vertical-align:middle}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}h1 a:link,h2 a:link,h3 a:link,h4 a:link,h5 a:link,h6 a:link,h1 a:visited,h2 a:visited,h3 a:visited,h4 a:visited,h5 a:visited,h6 a:visited{color:#bc0a19;font-weight:400;text-decoration:none}h1,h2,h3,h4,h5,h6,.player{color:#bc0a19;font-family:'Amerika Sans',sans-serif;font-variant:small-caps;font-weight:400;letter-spacing:-1px;margin:1em 0 .5em 0;text-shadow:2px 2px 2px #888;vertical-align:baseline}.player{margin:0}html,div,span,applet,object,iframe,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{border:0;margin:0;padding:0;vertical-align:baseline}p{margin-bottom:.5em}img.partner,img.posting_image{border:1px solid #babdb6;display:block;float:left;height:120px;margin:0 20px 0 0;padding:4px;width:200px}img.partner:nth-of-type(odd){float:right}input{font:normal 12pt Philosopher,sans-serif}input[type=number]{text-align:right}input[readonly="readonly"],input[readonly]{border:none;background:transparent;color:#2e3436}li{margin-bottom:.2em}li.category{background:url(../icons/newspaper.png) left center no-repeat;padding-left:20px}.thumbnail{display:block;position:relative;float:left;height:140px;width:140px;padding:5px;border:0;margin:5px;background:transparent url('../img/thumbnail-bg.png') top left no-repeat}li.comment{background:url(../icons/comment.png) left center no-repeat;padding-left:20px}li.date,li.event{background:url(../icons/date.png) left center no-repeat;padding-left:20px}li.photo{background:url(../icons/camera.png) left center no-repeat;padding-left:20px}li.hanchan{background:url(../icons/table.png) left center no-repeat;padding-left:20px}li.time{background:url(../icons/time.png) left center no-repeat;padding-left:20px}li.django_view{background:url(../icons/page_white_lightning.png) left center no-repeat;padding-left:20px}li.html{background:url(../icons/page_white_text.png) left center no-repeat;padding-left:20px}li.location{background:url(../icons/map.png) left center no-repeat;padding-left:20px}li.pdf{background:url(../icons/page_white_acrobat.png) left center no-repeat;padding-left:20px}li.season{background:url(../icons/star.png) left center no-repeat;padding-left:20px}li.user{background:url(../icons/user_red.png) left center no-repeat;padding-left:20px}ol{list-style:cjk-ideographic;padding-left:2em}table{border-collapse:collapse;border-spacing:0;margin-bottom:1em;width:100%}table td{border-bottom:1px solid #d3d7cf;border-top:1px solid #d3d7cf;padding:2px;vertical-align:middle}table th{background:#a40000;color:#fff;padding:2px;vertical-align:middle}table th a:link,table th a:visited{color:#fff}table tr:nth-child(2n+1){background-color:#eeeeec}table tr:hover{background-color:#eedcdc}ul{list-style:circle outside;padding-left:30px}ul.comment_list{font-size:small;list-style:none;padding:0}ul.event_list,ul.list{list-style:none;padding:0}ul.info{list-style:none;margin-bottom:.5em;padding-left:0}ul.info li{display:inline-block;margin-right:10px}.buttonbar{text-align:right;border-radius:10px;background:#000;background:linear-gradient(to bottom, #45484d 0, #000 100%);background:-moz-linear-gradient(top, #45484d 0, #000 100%);background:-webkit-linear-gradient(top, #45484d 0, #000 100%);background:-o-linear-gradient(top, #45484d 0, #000 100%);background:-ms-linear-gradient(top, #45484d 0, #000 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#45484d', endColorstr='#000000', GradientType=0)}.pagination{text-align:center}.pagination a,.pagination .current,.pagination .next,.pagination .previous{display:inline-block;text-decoration:none;padding:0 .5em 0 .5em}.pagination .next{float:right;background:none}.pagination .previous{float:left;background:none}.center{text-align:center}.right{text-align:right}#redbox{color:white;border-radius:10px;padding:10px 5px 5px 5px;background:#a90329;background:-moz-linear-gradient(-45deg, #a90329 0, #8f0222 44%, #6d0019 100%);background:-webkit-gradient(linear, left top, right bottom, color-stop(0, #a90329), color-stop(44%, #8f0222), color-stop(100%, #6d0019));background:-webkit-linear-gradient(-45deg, #a90329 0, #8f0222 44%, #6d0019 100%);background:-o-linear-gradient(-45deg, #a90329 0, #8f0222 44%, #6d0019 100%);background:-ms-linear-gradient(-45deg, #a90329 0, #8f0222 44%, #6d0019 100%);background:linear-gradient(135deg, #a90329 0, #8f0222 44%, #6d0019 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#a90329', endColorstr='#6d0019', GradientType=1)}#redbox h2:first-of-type{margin:-1em 10px 0 0;color:black}#redbox h2,#redbox h3{color:white}#redbox a:link,#redbox a:visited{color:white;font-weight:normal;text-decoration:underline}#redbox a.button:link,#redbox a.button:visited{color:#2e3436;font-weight:bold;text-decoration:none}ul.tabs{text-align:center}ul.tabs li{display:inline-block}ul.tabs li:after{content:" | "}ul.tabs li:last-child:after{content:""}ul.tabs li a{color:#2e3436}ul.tabs li.active a{border-bottom:3px solid #bc0a19;color:#bc0a19}.comment{display:table;margin-bottom:1em;width:100%;padding:0}.social,.social:link{display:inline-block;font-family:"Social Icons";font-style:normal;font-weight:normal}.facebook:before{content:"f"}.google:before{content:"G"}.twitter:before{content:"T"}fieldset.comment{padding:0}fieldset.comment legend{margin-left:15px}fieldset.comment .buttonbar{margin:0;width:100%}fieldset.comment .buttonbar{margin:0;width:100%}@media screen and (min-width:700px){#content{width:700px;display:inline;float:left;margin:0 10px;position:relative}#display .next,#display .previous{display:block;position:absolute;top:0;width:60px;height:100%;margin:0;padding:0;text-indent:9999px;overflow:hidden;opacity:.5}#display .next:hover,#display .previous:hover{opacity:1;transition:all .2s ease-out}#display .next{background:transparent url(../img/right-arrow.png) no-repeat center center;right:10px;z-index:3}#display .previous{background:transparent url(../img/left-arrow.png) no-repeat center center;left:10px;z-index:2}#display img{box-shadow:1px 1px 5px 1px #444}#sidebar{width:220px;display:inline;float:left;margin:0 10px;position:relative}#footer{margin:-170px auto 0;position:relative;top:0;width:920px;z-index:30}#footer p{text-align:center}#footer_bg{background:url(../img/footer_bg.png) top center no-repeat;height:477px;margin-top:-286px;position:relative;z-index:2}#siteheader{height:100px;margin:0 auto;padding:0;position:relative;width:960px;z-index:50}#header_bg{position:absolute;top:0;left:0;margin:0;padding:0;height:400px;width:100%;background:url(../img/header_bg.png) top center no-repeat;text-align:center;z-index:1}#maincontent{margin:0 auto;min-height:200px;padding:10px 0 50px 0;position:relative;width:960px;z-index:19}#mainnav{left:233px;position:absolute;top:65px}#mainnav a{color:#000;text-decoration:none;font-weight:normal}#mainnav a.active{color:#bc0a19}#mainnav a:hover{color:#fff}#mainnav li{display:inline-block;font:normal small-caps 18px 'Amerika Sans',sans-serif;min-width:50px;padding:8px;text-align:center;text-shadow:2px 2px 2px #2e3436}#mainnav li:first-child{padding-left:0}#mainnav li:last-child{padding-right:0}ul.main_menu{padding:0}#messages{clear:both;margin:0 auto;padding:8px 0 0 30px;width:920px}#navigation,.pagination{clear:both;position:relative;background:url(../img/navigation-bg.png) no-repeat left top;height:56px;list-style:none;margin:0 auto;padding:8px 35px 0 25px;width:900px;z-index:30}#navigation a{background:url(../img/navigation-separator.png) no-repeat right center;color:#fff;display:block;float:left;font-weight:bold;height:33px;padding:17px 15px 0;text-decoration:none}#navigation a:hover,#navigation a.active{background:url(../img/navigation-hover.png) repeat-x left top;color:#3b3b3b}#navigation li{display:inline;margin:0}#sitelogo{background:url(../img/logo.png) no-repeat;height:110px;left:5px;margin:0;padding:0;position:absolute;text-indent:-9999px;top:5px;width:233px;z-index:99}#sitelogo a{display:block;height:110px;left:0;position:absolute;top:0;width:233px}#jumbotron{clear:both;position:relative;margin:20px auto 10px auto;padding:0 1px 0 0;z-index:5;width:940px;min-height:300px;border:none;border-radius:10px;background-repeat:no-repeat;background-color:#333;background-position:center left}#jumbotron>h2,#jumbotron>h1{padding:10px 5px;font-size:32pt;color:#eff0ef;position:absolute;margin:0;left:10px;top:33%;max-width:600px}#teaser_text{display:block;position:absolute;width:620px;min-height:4em;left:0;bottom:0;color:#fff;background:rgba(0,0,0,0.5);font-size:10pt;padding:5px 10px 5px 15px;border-radius:0 0 0 10px}#redbox{position:absolute;top:0;right:0;height:280px;width:280px;padding:10px;border-radius:0 10px 10px 0}#toggle,.toggle{display:none}#bottom_buttonbar{position:absolute;bottom:0;left:-1px;margin:0;width:960px}#usernav{background:url(../img/usernav-bg.png) top left no-repeat;font-size:14pt;color:#fff;height:50px;padding:5px 10px 4px 20px;position:absolute;right:0;text-align:right;top:0;z-index:50}#usernav a{color:#fff}#usernav img{vertical-align:middle}.clearfix{zoom:1px}.clearfix:after{clear:both}.gallery{display:inline;float:left;height:200px;margin:10px;overflow:hidden;text-align:center;width:300px}.gallery .thumbnail{display:block;float:none;margin:5px auto}div.thumbnail a.delete_image{position:absolute;right:4px;bottom:0}body{background:#fff url(../img/background.png) repeat-y center top;font:12pt Philosopher,Georgia,serif;line-height:1;margin:0;min-width:960px;padding:0;vertical-align:baseline}fieldset{border:none;color:#2e3436;border-radius:10px;margin:10px 0 0 0;padding:0 10px 0 160px;background:linear-gradient(135deg, #f2f5f6 0, #e3eaed 37%, #c8d7dc 100%);background:-moz-linear-gradient(-45deg, #f2f5f6 0, #e3eaed 37%, #c8d7dc 100%);background:-webkit-linear-gradient(-45deg, #f2f5f6 0, #e3eaed 37%, #c8d7dc 100%);background:-o-linear-gradient(-45deg, #f2f5f6 0, #e3eaed 37%, #c8d7dc 100%);background:-ms-linear-gradient(-45deg, #f2f5f6 0, #e3eaed 37%, #c8d7dc 100%);vertical-align:top}fieldset legend{margin-top:-0.1em;margin-left:-150px;color:#a40000;font-family:'Amerika Sans',sans-serif;font-variant:small-caps;font-weight:400;font-size:16pt;text-shadow:2px 2px 2px #888}fieldset div{margin:5px 0}fieldset .required{font-weight:bold}fieldset .buttonbar{border-radius:0 0 10px 10px;margin:0 -10px 0 -160px}fieldset .help_text{font-size:small}fieldset .field_name{text-align:right;width:140px;margin:0 20px 0 -160px;padding-top:3px;display:inline-block;clear:left;vertical-align:top}fieldset input,fieldset textarea{border:1px solid #999;border-radius:5px;padding:2px;margin:0}fieldset input[maxlength="255"],fieldset textarea{box-sizing:border-box;width:100%;max-width:760px}fieldset ul{display:inline-block;padding:0}fieldset ul li{list-style:none;display:inline}fieldset table{display:inline-table;max-width:760px}img.partner,img.partner_right,img.posting_image{border:1px solid #babdb6;float:left;height:120px;margin:0 20px 0 0;padding:4px;width:200px}img.partner:nth-of-type(odd){float:right}ul.tabs{margin:10px;padding:0;border-radius:10px;background:#bc0a19 url(../img/buttonbar.gif) repeat-x;text-align:left;list-style:none}ul.tabs li{display:inline-block}ul.tabs li:after{content:''}ul.tabs li a{border:1px solid #d3d7cf;border-radius:5px;background-color:#f9f9f9;color:#2e3436;font:bold 14px Philosopher sans-serif;box-shadow:inset 0 1px 0 0 #fff;background:-webkit-gradient(linear, left top, left bottom, color-stop(.05, #f9f9f9), color-stop(1, #e9e9e9));background:-moz-linear-gradient(center top, #f9f9f9 5%, #e9e9e9 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f9f9f9', endColorstr='#e9e9e9');display:inline-block;padding:4px 10px 2px 10px;margin:3px 0 0 15px;text-decoration:none;text-shadow:1px 1px 0 #fff}ul.tabs li.active a{background-color:#fa665a;background:-webkit-gradient(linear, left top, left bottom, color-stop(.05, #fa665a), color-stop(1, #d34639));background:-moz-linear-gradient(center top, #fa665a 5%, #d34639 100%);color:#fff;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fa665a', endColorstr='#d34639');border:1px solid #d83526;box-shadow:inset 0 1px 0 0 #fff;text-shadow:1px 1px 0 #98231a}.pagination a,.pagination .current,.pagination .next,.pagination .previous{display:inline-block;padding:2px;color:#fff;font-weight:bold;height:33px;text-decoration:none;padding:17px .5em 0 .5em}.pagination .current{color:#a40000}.pagination .disabled{color:#ccc}img.avatar{border:none;box-shadow:2px 2px 2px #888;width:60px;height:60px}.comment_picture{display:table-cell;padding:0 10px;width:60px;vertical-align:top}.comment_header{display:table-cell;padding:0 10px;width:140px;vertical-align:top}.comment_header h3{margin:0}.comment_text{display:table-cell;padding:0 10px;width:auto;max-width:700px}.userinfo{width:140px}.grid_6{width:460px}.grid_7{width:540px}.grid_8{width:620px}.grid_9{width:700px}.grid_10{width:780px}.grid_11{width:860px}.grid_12{width:940px}#recaptcha_widget_div{margin-top:-20px}#google_maps{position:relative;top:0;left:0;height:280px;padding:10px;border-radius:0 10px 10px 0}}@media screen and (max-width:699px){body{background:url('../img/background_mobile.png') no-repeat top center;font:12pt "Philosopher",Georgia,serif;-webkit-animation:bugfix infinite 1s}#display .grid_10{margin:0;position:relative;z-index:1}#display .next,#display .previous{display:block;position:absolute;top:0;width:45px;height:100%;margin:0;padding:0;text-indent:9999px;overflow:hidden;opacity:.5}#display .next:hover,#display .previous:hover{opacity:.9;transition:all .2s ease-out}#display .next{background:transparent url(../img/right-arrow.png) no-repeat center center;right:0;z-index:3}#display .previous{background:transparent url(../img/left-arrow.png) no-repeat center center;left:0;z-index:2}#footer_bg{display:none}#top_bg{display:none}#footer{border-top:1px solid black;text-align:center}#header{position:relative;min-height:54px;height:100%;padding:0 20px}img.posting_image,img.partner{float:left;width:99px;height:59px;padding:2px;margin:1em .5em 0 0;border:1px solid #babdb6}img{max-width:100%;height:auto}#topnav a{display:inline-block;color:#000;font:400 small-caps 24pt 'Amerika Sans',sans-serif;min-width:80px;text-align:center;text-decoration:none;text-shadow:2px 2px 2px #2e3436;padding:5px}#topnav a.active{color:#bc0a19}#topnav a:hover{color:#fff}#sitelogo{background:url('../img/logo_mobile.png') no-repeat;width:114px;height:54px;left:5px;margin:0;padding:0;text-indent:-9999px;top:5px;z-index:20;float:left}#teaser{background:none;margin-bottom:1em}#teaser_text{background:rgba(255,255,255,0.5)}#navigation{margin:10px 0;padding:0;background:#45484d url("../img/navigation-mobile.png") top left repeat-x;background-size:contain}#navigation li{display:inline-block;padding:.5em .3em .5em .5em;text-align:center;border-left:1px solid #fff;margin:0}#navigation li:first-of-type{border:none}#navigation a{font:bold 12px Arial;color:#fff;text-decoration:none}#sitelogo a{display:block;width:114px;height:54px}#siteheader:after{content:".";clear:both;display:block;visibility:hidden;height:0}#mainnav{display:block;float:right}#toggle,.toggle{display:none}#toggle:checked~.main_menu{display:block;opacity:1}#toggle:checked~.toggle,.toggle:hover{background:#45abd6}.comment_picture{display:table-cell;padding:0 10px;width:60px;vertical-align:top}.comment_header{display:table-cell;padding:0 10px;width:140px;vertical-align:top}.comment_header h3{margin:0}.toggle{z-index:2;display:block;position:relative;cursor:pointer;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.main_menu{display:none;opacity:0;width:100%;position:absolute;z-index:999;right:0;background:black;border-top:1px solid #a40000;margin:0;padding:0;box-shadow:outset 0 1px 0 0 #fff}.main_menu>li{height:auto;list-style:none;float:left;z-index:100;background:#eeeeec;display:block;width:100%;margin:0}.main_menu>li>a{display:block;width:100%;height:auto;text-decoration:none;font:400 small-caps 18px 'Amerika Sans',sans-serif;color:black;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;float:right;padding:1em;line-height:1;-webkit-transition:all .25s linear;-moz-transition:all .25s linear;-o-transition:all .25s linear;transition:all .25s linear}#jumbotron{background:none !important}#redbox{margin-top:1em;display:block}.main_menu>li>a:hover,.menu>li>a:focus{box-shadow:inset 5px 0 #a40000;color:#a40000}.grid_6,.grid_7,.grid_8,.grid_9,.grid_10,.grid_11,.grid_12{width:100%;clear:both}.player{display:inline;float:left;margin-left:10px;margin-right:10px;position:relative;box-sizing:border-box;-moz-box-sizing:border-box;min-width:60px}.toggle{display:block;width:150px;margin:8px 0;padding:10px;background:#a40000;text-align:center;color:#fff;content:'Main Menu';border-radius:2px;box-sizing:border-box;transition:all .5s linear;-webkit-border-radius:2px;-webkit-transition:all .5s linear;-webkit-box-sizing:border-box;-moz-transition:all .5s linear;-moz-box-sizing:border-box;-o-transition:all .5s linear}.thumbnail{display:block;position:relative;float:left;height:70px;padding:0;width:70px;margin:5px;box-shadow:2px 2px 5px #888}.thumbnail img{height:70px;width:70px}.thumbnail a.delete_image{display:none}img.thumbnail{display:block;float:left;height:70px;width:70px;margin:5px;box-shadow:2px 2px 5px #888}fieldset{border:none;color:#2e3436;border-radius:10px;margin:10px 0 0 0;padding:0 10px 0 160px;background:#f2f5f6;background:linear-gradient(135deg, #f2f5f6 0, #e3eaed 37%, #c8d7dc 100%);background:-moz-linear-gradient(-45deg, #f2f5f6 0, #e3eaed 37%, #c8d7dc 100%);background:-webkit-gradient(linear, left top, right bottom, color-stop(0, #f2f5f6), color-stop(37%, #e3eaed), color-stop(100%, #c8d7dc));background:-webkit-linear-gradient(-45deg, #f2f5f6 0, #e3eaed 37%, #c8d7dc 100%);background:-o-linear-gradient(-45deg, #f2f5f6 0, #e3eaed 37%, #c8d7dc 100%);background:-ms-linear-gradient(-45deg, #f2f5f6 0, #e3eaed 37%, #c8d7dc 100%)}fieldset legend{margin-top:-0.1em;margin-left:-150px;color:#a40000;font-family:'Amerika Sans',sans-serif;font-variant:small-caps;font-weight:400;font-size:16pt;text-shadow:2px 2px 2px #888}fieldset .required{font-weight:bold}fieldset .error{color:#a40000}fieldset .buttonbar{border-radius:0 0 10px 10px;margin:0 -10px 0 -160px}fieldset .help_text{font-size:small}fieldset .field_name{text-align:right;width:140px;margin:0 20px 0 -160px;padding-top:3px;display:inline-block;clear:left}fieldset input,fieldset textarea{border:1px solid #999;border-radius:5px;padding:2px;margin:0;font-size:12pt}fieldset input[maxlength="255"],fieldset textarea{width:99%;box-sizing:border-box}fieldset ul{display:inline-block;padding:0}fieldset ul li{list-style:none;display:inline}ul.tabs{margin-top:1em}.pagination{clear:both}.pagination a,.pagination .current,.pagination .next,.pagination .previous{display:inline-block;text-decoration:none;padding:0 .5em 0 .5em}.gallery{float:left;width:150px;height:150px;margin:10px}.gallery h3{font-size:12pt}.comment{display:block}.comment_picture{display:block;float:left;vertical-align:top;width:60px}.comment_header{display:block;float:left;padding:0 10px;vertical-align:top;width:140px}.comment_header h3{margin:0}.comment_text{border-top:1px solid #45484d;display:block;margin-left:0 10px;padding-top:.5em;clear:both}}@media print{@page{size:portrait;margin:.5cm .5cm .5cm 1cm;orphans:3;widows:3}nav,aside,#comment_form,#navigation,#mainnav,#usernav,#bottom_buttonbar,#footer>form{display:none !important}#footer{width:100%;padding-top:.5em;border-top:1px solid black;text-align:center}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}a:link,a:visited{color:black;font-weight:bold}#sitelogo{background:url(../img/logo.png) top right no-repeat;background-size:contain;left:0;margin:0;padding:0;line-height:1cm;font-family:'Amerika Sans',Helvetica;font-size:8pt;top:5px;z-index:99}#jumbotron{background:none !important}body,article{width:100%;margin:0;padding:0;color:#000;background:#fff}h1{font-size:32pt}h2,h3,h4,h5,h6{text-shadow:none;page-break-after:avoid}img{max-width:100% !important}ul,img{page-break-inside:avoid}#comment_form,#comments,#footer,#navigation,#mainnav,#usernav,#bottom_buttonbar,#footer>form{display:none}.more_link{display:none}#maincontent nav{display:none}#maincontent aside{display:none}.grid_6,grid_7,.grid_8,grid_9,.grid_10,.grid_11,.grid_12{width:100%}} \ No newline at end of file diff --git a/kasu/static/css/kasu.less b/src/kasu/static/css/kasu.less similarity index 100% rename from kasu/static/css/kasu.less rename to src/kasu/static/css/kasu.less diff --git a/kasu/static/css/mobile.less b/src/kasu/static/css/mobile.less similarity index 100% rename from kasu/static/css/mobile.less rename to src/kasu/static/css/mobile.less diff --git a/kasu/static/css/print.less b/src/kasu/static/css/print.less similarity index 100% rename from kasu/static/css/print.less rename to src/kasu/static/css/print.less diff --git a/kasu/static/fonts/amerikasans.eot b/src/kasu/static/fonts/amerikasans.eot similarity index 100% rename from kasu/static/fonts/amerikasans.eot rename to src/kasu/static/fonts/amerikasans.eot diff --git a/kasu/static/fonts/amerikasans.svg b/src/kasu/static/fonts/amerikasans.svg similarity index 100% rename from kasu/static/fonts/amerikasans.svg rename to src/kasu/static/fonts/amerikasans.svg diff --git a/kasu/static/fonts/amerikasans.ttf b/src/kasu/static/fonts/amerikasans.ttf similarity index 100% rename from kasu/static/fonts/amerikasans.ttf rename to src/kasu/static/fonts/amerikasans.ttf diff --git a/kasu/static/fonts/amerikasans.woff b/src/kasu/static/fonts/amerikasans.woff similarity index 100% rename from kasu/static/fonts/amerikasans.woff rename to src/kasu/static/fonts/amerikasans.woff diff --git a/kasu/static/fonts/philosopher.svg b/src/kasu/static/fonts/philosopher.svg similarity index 100% rename from kasu/static/fonts/philosopher.svg rename to src/kasu/static/fonts/philosopher.svg diff --git a/kasu/static/fonts/philosopher.ttf b/src/kasu/static/fonts/philosopher.ttf similarity index 100% rename from kasu/static/fonts/philosopher.ttf rename to src/kasu/static/fonts/philosopher.ttf diff --git a/kasu/static/fonts/philosopher.woff b/src/kasu/static/fonts/philosopher.woff similarity index 100% rename from kasu/static/fonts/philosopher.woff rename to src/kasu/static/fonts/philosopher.woff diff --git a/kasu/static/fonts/social.ttf b/src/kasu/static/fonts/social.ttf similarity index 100% rename from kasu/static/fonts/social.ttf rename to src/kasu/static/fonts/social.ttf diff --git a/kasu/static/fonts/social.woff b/src/kasu/static/fonts/social.woff similarity index 100% rename from kasu/static/fonts/social.woff rename to src/kasu/static/fonts/social.woff diff --git a/kasu/static/icons/accept.png b/src/kasu/static/icons/accept.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/accept.png rename to src/kasu/static/icons/accept.png diff --git a/kasu/static/icons/add.png b/src/kasu/static/icons/add.png similarity index 100% rename from kasu/static/icons/add.png rename to src/kasu/static/icons/add.png diff --git a/kasu/static/icons/anchor.png b/src/kasu/static/icons/anchor.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/anchor.png rename to src/kasu/static/icons/anchor.png diff --git a/kasu/static/icons/application.png b/src/kasu/static/icons/application.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/application.png rename to src/kasu/static/icons/application.png diff --git a/kasu/static/icons/application_add.png b/src/kasu/static/icons/application_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/application_add.png rename to src/kasu/static/icons/application_add.png diff --git a/kasu/static/icons/application_cascade.png b/src/kasu/static/icons/application_cascade.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/application_cascade.png rename to src/kasu/static/icons/application_cascade.png diff --git a/kasu/static/icons/application_delete.png b/src/kasu/static/icons/application_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/application_delete.png rename to src/kasu/static/icons/application_delete.png diff --git a/kasu/static/icons/application_double.png b/src/kasu/static/icons/application_double.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/application_double.png rename to src/kasu/static/icons/application_double.png diff --git a/kasu/static/icons/application_edit.png b/src/kasu/static/icons/application_edit.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/application_edit.png rename to src/kasu/static/icons/application_edit.png diff --git a/kasu/static/icons/application_error.png b/src/kasu/static/icons/application_error.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/application_error.png rename to src/kasu/static/icons/application_error.png diff --git a/kasu/static/icons/application_form.png b/src/kasu/static/icons/application_form.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/application_form.png rename to src/kasu/static/icons/application_form.png diff --git a/kasu/static/icons/application_form_add.png b/src/kasu/static/icons/application_form_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/application_form_add.png rename to src/kasu/static/icons/application_form_add.png diff --git a/kasu/static/icons/application_form_delete.png b/src/kasu/static/icons/application_form_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/application_form_delete.png rename to src/kasu/static/icons/application_form_delete.png diff --git a/kasu/static/icons/application_form_edit.png b/src/kasu/static/icons/application_form_edit.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/application_form_edit.png rename to src/kasu/static/icons/application_form_edit.png diff --git a/kasu/static/icons/application_form_magnify.png b/src/kasu/static/icons/application_form_magnify.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/application_form_magnify.png rename to src/kasu/static/icons/application_form_magnify.png diff --git a/kasu/static/icons/application_get.png b/src/kasu/static/icons/application_get.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/application_get.png rename to src/kasu/static/icons/application_get.png diff --git a/kasu/static/icons/application_go.png b/src/kasu/static/icons/application_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/application_go.png rename to src/kasu/static/icons/application_go.png diff --git a/kasu/static/icons/application_home.png b/src/kasu/static/icons/application_home.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/application_home.png rename to src/kasu/static/icons/application_home.png diff --git a/kasu/static/icons/application_key.png b/src/kasu/static/icons/application_key.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/application_key.png rename to src/kasu/static/icons/application_key.png diff --git a/kasu/static/icons/application_lightning.png b/src/kasu/static/icons/application_lightning.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/application_lightning.png rename to src/kasu/static/icons/application_lightning.png diff --git a/kasu/static/icons/application_link.png b/src/kasu/static/icons/application_link.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/application_link.png rename to src/kasu/static/icons/application_link.png diff --git a/kasu/static/icons/application_osx.png b/src/kasu/static/icons/application_osx.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/application_osx.png rename to src/kasu/static/icons/application_osx.png diff --git a/kasu/static/icons/application_osx_terminal.png b/src/kasu/static/icons/application_osx_terminal.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/application_osx_terminal.png rename to src/kasu/static/icons/application_osx_terminal.png diff --git a/kasu/static/icons/application_put.png b/src/kasu/static/icons/application_put.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/application_put.png rename to src/kasu/static/icons/application_put.png diff --git a/kasu/static/icons/application_side_boxes.png b/src/kasu/static/icons/application_side_boxes.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/application_side_boxes.png rename to src/kasu/static/icons/application_side_boxes.png diff --git a/kasu/static/icons/application_side_contract.png b/src/kasu/static/icons/application_side_contract.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/application_side_contract.png rename to src/kasu/static/icons/application_side_contract.png diff --git a/kasu/static/icons/application_side_expand.png b/src/kasu/static/icons/application_side_expand.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/application_side_expand.png rename to src/kasu/static/icons/application_side_expand.png diff --git a/kasu/static/icons/application_side_list.png b/src/kasu/static/icons/application_side_list.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/application_side_list.png rename to src/kasu/static/icons/application_side_list.png diff --git a/kasu/static/icons/application_side_tree.png b/src/kasu/static/icons/application_side_tree.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/application_side_tree.png rename to src/kasu/static/icons/application_side_tree.png diff --git a/kasu/static/icons/application_split.png b/src/kasu/static/icons/application_split.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/application_split.png rename to src/kasu/static/icons/application_split.png diff --git a/kasu/static/icons/application_tile_horizontal.png b/src/kasu/static/icons/application_tile_horizontal.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/application_tile_horizontal.png rename to src/kasu/static/icons/application_tile_horizontal.png diff --git a/kasu/static/icons/application_tile_vertical.png b/src/kasu/static/icons/application_tile_vertical.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/application_tile_vertical.png rename to src/kasu/static/icons/application_tile_vertical.png diff --git a/kasu/static/icons/application_view_columns.png b/src/kasu/static/icons/application_view_columns.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/application_view_columns.png rename to src/kasu/static/icons/application_view_columns.png diff --git a/kasu/static/icons/application_view_detail.png b/src/kasu/static/icons/application_view_detail.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/application_view_detail.png rename to src/kasu/static/icons/application_view_detail.png diff --git a/kasu/static/icons/application_view_gallery.png b/src/kasu/static/icons/application_view_gallery.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/application_view_gallery.png rename to src/kasu/static/icons/application_view_gallery.png diff --git a/kasu/static/icons/application_view_icons.png b/src/kasu/static/icons/application_view_icons.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/application_view_icons.png rename to src/kasu/static/icons/application_view_icons.png diff --git a/kasu/static/icons/application_view_list.png b/src/kasu/static/icons/application_view_list.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/application_view_list.png rename to src/kasu/static/icons/application_view_list.png diff --git a/kasu/static/icons/application_view_tile.png b/src/kasu/static/icons/application_view_tile.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/application_view_tile.png rename to src/kasu/static/icons/application_view_tile.png diff --git a/kasu/static/icons/application_xp.png b/src/kasu/static/icons/application_xp.png similarity index 100% rename from kasu/static/icons/application_xp.png rename to src/kasu/static/icons/application_xp.png diff --git a/kasu/static/icons/application_xp_terminal.png b/src/kasu/static/icons/application_xp_terminal.png similarity index 100% rename from kasu/static/icons/application_xp_terminal.png rename to src/kasu/static/icons/application_xp_terminal.png diff --git a/kasu/static/icons/arrow_branch.png b/src/kasu/static/icons/arrow_branch.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/arrow_branch.png rename to src/kasu/static/icons/arrow_branch.png diff --git a/kasu/static/icons/arrow_divide.png b/src/kasu/static/icons/arrow_divide.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/arrow_divide.png rename to src/kasu/static/icons/arrow_divide.png diff --git a/kasu/static/icons/arrow_down.png b/src/kasu/static/icons/arrow_down.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/arrow_down.png rename to src/kasu/static/icons/arrow_down.png diff --git a/kasu/static/icons/arrow_in.png b/src/kasu/static/icons/arrow_in.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/arrow_in.png rename to src/kasu/static/icons/arrow_in.png diff --git a/kasu/static/icons/arrow_inout.png b/src/kasu/static/icons/arrow_inout.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/arrow_inout.png rename to src/kasu/static/icons/arrow_inout.png diff --git a/kasu/static/icons/arrow_join.png b/src/kasu/static/icons/arrow_join.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/arrow_join.png rename to src/kasu/static/icons/arrow_join.png diff --git a/kasu/static/icons/arrow_left.png b/src/kasu/static/icons/arrow_left.png similarity index 100% rename from kasu/static/icons/arrow_left.png rename to src/kasu/static/icons/arrow_left.png diff --git a/kasu/static/icons/arrow_merge.png b/src/kasu/static/icons/arrow_merge.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/arrow_merge.png rename to src/kasu/static/icons/arrow_merge.png diff --git a/kasu/static/icons/arrow_out.png b/src/kasu/static/icons/arrow_out.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/arrow_out.png rename to src/kasu/static/icons/arrow_out.png diff --git a/kasu/static/icons/arrow_redo.png b/src/kasu/static/icons/arrow_redo.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/arrow_redo.png rename to src/kasu/static/icons/arrow_redo.png diff --git a/kasu/static/icons/arrow_refresh.png b/src/kasu/static/icons/arrow_refresh.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/arrow_refresh.png rename to src/kasu/static/icons/arrow_refresh.png diff --git a/kasu/static/icons/arrow_refresh_small.png b/src/kasu/static/icons/arrow_refresh_small.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/arrow_refresh_small.png rename to src/kasu/static/icons/arrow_refresh_small.png diff --git a/kasu/static/icons/arrow_right.png b/src/kasu/static/icons/arrow_right.png similarity index 100% rename from kasu/static/icons/arrow_right.png rename to src/kasu/static/icons/arrow_right.png diff --git a/kasu/static/icons/arrow_rotate_anticlockwise.png b/src/kasu/static/icons/arrow_rotate_anticlockwise.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/arrow_rotate_anticlockwise.png rename to src/kasu/static/icons/arrow_rotate_anticlockwise.png diff --git a/kasu/static/icons/arrow_rotate_clockwise.png b/src/kasu/static/icons/arrow_rotate_clockwise.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/arrow_rotate_clockwise.png rename to src/kasu/static/icons/arrow_rotate_clockwise.png diff --git a/kasu/static/icons/arrow_switch.png b/src/kasu/static/icons/arrow_switch.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/arrow_switch.png rename to src/kasu/static/icons/arrow_switch.png diff --git a/kasu/static/icons/arrow_turn_left.png b/src/kasu/static/icons/arrow_turn_left.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/arrow_turn_left.png rename to src/kasu/static/icons/arrow_turn_left.png diff --git a/kasu/static/icons/arrow_turn_right.png b/src/kasu/static/icons/arrow_turn_right.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/arrow_turn_right.png rename to src/kasu/static/icons/arrow_turn_right.png diff --git a/kasu/static/icons/arrow_undo.png b/src/kasu/static/icons/arrow_undo.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/arrow_undo.png rename to src/kasu/static/icons/arrow_undo.png diff --git a/kasu/static/icons/arrow_up.png b/src/kasu/static/icons/arrow_up.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/arrow_up.png rename to src/kasu/static/icons/arrow_up.png diff --git a/kasu/static/icons/asterisk_orange.png b/src/kasu/static/icons/asterisk_orange.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/asterisk_orange.png rename to src/kasu/static/icons/asterisk_orange.png diff --git a/kasu/static/icons/asterisk_yellow.png b/src/kasu/static/icons/asterisk_yellow.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/asterisk_yellow.png rename to src/kasu/static/icons/asterisk_yellow.png diff --git a/kasu/static/icons/attach.png b/src/kasu/static/icons/attach.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/attach.png rename to src/kasu/static/icons/attach.png diff --git a/kasu/static/icons/award_star_add.png b/src/kasu/static/icons/award_star_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/award_star_add.png rename to src/kasu/static/icons/award_star_add.png diff --git a/kasu/static/icons/award_star_bronze_1.png b/src/kasu/static/icons/award_star_bronze_1.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/award_star_bronze_1.png rename to src/kasu/static/icons/award_star_bronze_1.png diff --git a/kasu/static/icons/award_star_bronze_2.png b/src/kasu/static/icons/award_star_bronze_2.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/award_star_bronze_2.png rename to src/kasu/static/icons/award_star_bronze_2.png diff --git a/kasu/static/icons/award_star_bronze_3.png b/src/kasu/static/icons/award_star_bronze_3.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/award_star_bronze_3.png rename to src/kasu/static/icons/award_star_bronze_3.png diff --git a/kasu/static/icons/award_star_delete.png b/src/kasu/static/icons/award_star_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/award_star_delete.png rename to src/kasu/static/icons/award_star_delete.png diff --git a/kasu/static/icons/award_star_gold_1.png b/src/kasu/static/icons/award_star_gold_1.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/award_star_gold_1.png rename to src/kasu/static/icons/award_star_gold_1.png diff --git a/kasu/static/icons/award_star_gold_2.png b/src/kasu/static/icons/award_star_gold_2.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/award_star_gold_2.png rename to src/kasu/static/icons/award_star_gold_2.png diff --git a/kasu/static/icons/award_star_gold_3.png b/src/kasu/static/icons/award_star_gold_3.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/award_star_gold_3.png rename to src/kasu/static/icons/award_star_gold_3.png diff --git a/kasu/static/icons/award_star_silver_1.png b/src/kasu/static/icons/award_star_silver_1.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/award_star_silver_1.png rename to src/kasu/static/icons/award_star_silver_1.png diff --git a/kasu/static/icons/award_star_silver_2.png b/src/kasu/static/icons/award_star_silver_2.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/award_star_silver_2.png rename to src/kasu/static/icons/award_star_silver_2.png diff --git a/kasu/static/icons/award_star_silver_3.png b/src/kasu/static/icons/award_star_silver_3.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/award_star_silver_3.png rename to src/kasu/static/icons/award_star_silver_3.png diff --git a/kasu/static/icons/basket.png b/src/kasu/static/icons/basket.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/basket.png rename to src/kasu/static/icons/basket.png diff --git a/kasu/static/icons/basket_add.png b/src/kasu/static/icons/basket_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/basket_add.png rename to src/kasu/static/icons/basket_add.png diff --git a/kasu/static/icons/basket_delete.png b/src/kasu/static/icons/basket_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/basket_delete.png rename to src/kasu/static/icons/basket_delete.png diff --git a/kasu/static/icons/basket_edit.png b/src/kasu/static/icons/basket_edit.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/basket_edit.png rename to src/kasu/static/icons/basket_edit.png diff --git a/kasu/static/icons/basket_error.png b/src/kasu/static/icons/basket_error.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/basket_error.png rename to src/kasu/static/icons/basket_error.png diff --git a/kasu/static/icons/basket_go.png b/src/kasu/static/icons/basket_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/basket_go.png rename to src/kasu/static/icons/basket_go.png diff --git a/kasu/static/icons/basket_put.png b/src/kasu/static/icons/basket_put.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/basket_put.png rename to src/kasu/static/icons/basket_put.png diff --git a/kasu/static/icons/basket_remove.png b/src/kasu/static/icons/basket_remove.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/basket_remove.png rename to src/kasu/static/icons/basket_remove.png diff --git a/kasu/static/icons/bell.png b/src/kasu/static/icons/bell.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/bell.png rename to src/kasu/static/icons/bell.png diff --git a/kasu/static/icons/bell_add.png b/src/kasu/static/icons/bell_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/bell_add.png rename to src/kasu/static/icons/bell_add.png diff --git a/kasu/static/icons/bell_delete.png b/src/kasu/static/icons/bell_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/bell_delete.png rename to src/kasu/static/icons/bell_delete.png diff --git a/kasu/static/icons/bell_error.png b/src/kasu/static/icons/bell_error.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/bell_error.png rename to src/kasu/static/icons/bell_error.png diff --git a/kasu/static/icons/bell_go.png b/src/kasu/static/icons/bell_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/bell_go.png rename to src/kasu/static/icons/bell_go.png diff --git a/kasu/static/icons/bell_link.png b/src/kasu/static/icons/bell_link.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/bell_link.png rename to src/kasu/static/icons/bell_link.png diff --git a/kasu/static/icons/bin.png b/src/kasu/static/icons/bin.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/bin.png rename to src/kasu/static/icons/bin.png diff --git a/kasu/static/icons/bin_closed.png b/src/kasu/static/icons/bin_closed.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/bin_closed.png rename to src/kasu/static/icons/bin_closed.png diff --git a/kasu/static/icons/bin_empty.png b/src/kasu/static/icons/bin_empty.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/bin_empty.png rename to src/kasu/static/icons/bin_empty.png diff --git a/kasu/static/icons/bomb.png b/src/kasu/static/icons/bomb.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/bomb.png rename to src/kasu/static/icons/bomb.png diff --git a/kasu/static/icons/book.png b/src/kasu/static/icons/book.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/book.png rename to src/kasu/static/icons/book.png diff --git a/kasu/static/icons/book_add.png b/src/kasu/static/icons/book_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/book_add.png rename to src/kasu/static/icons/book_add.png diff --git a/kasu/static/icons/book_addresses.png b/src/kasu/static/icons/book_addresses.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/book_addresses.png rename to src/kasu/static/icons/book_addresses.png diff --git a/kasu/static/icons/book_delete.png b/src/kasu/static/icons/book_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/book_delete.png rename to src/kasu/static/icons/book_delete.png diff --git a/kasu/static/icons/book_edit.png b/src/kasu/static/icons/book_edit.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/book_edit.png rename to src/kasu/static/icons/book_edit.png diff --git a/kasu/static/icons/book_error.png b/src/kasu/static/icons/book_error.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/book_error.png rename to src/kasu/static/icons/book_error.png diff --git a/kasu/static/icons/book_go.png b/src/kasu/static/icons/book_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/book_go.png rename to src/kasu/static/icons/book_go.png diff --git a/kasu/static/icons/book_key.png b/src/kasu/static/icons/book_key.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/book_key.png rename to src/kasu/static/icons/book_key.png diff --git a/kasu/static/icons/book_link.png b/src/kasu/static/icons/book_link.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/book_link.png rename to src/kasu/static/icons/book_link.png diff --git a/kasu/static/icons/book_next.png b/src/kasu/static/icons/book_next.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/book_next.png rename to src/kasu/static/icons/book_next.png diff --git a/kasu/static/icons/book_open.png b/src/kasu/static/icons/book_open.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/book_open.png rename to src/kasu/static/icons/book_open.png diff --git a/kasu/static/icons/book_previous.png b/src/kasu/static/icons/book_previous.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/book_previous.png rename to src/kasu/static/icons/book_previous.png diff --git a/kasu/static/icons/box.png b/src/kasu/static/icons/box.png similarity index 100% rename from kasu/static/icons/box.png rename to src/kasu/static/icons/box.png diff --git a/kasu/static/icons/brick.png b/src/kasu/static/icons/brick.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/brick.png rename to src/kasu/static/icons/brick.png diff --git a/kasu/static/icons/brick_add.png b/src/kasu/static/icons/brick_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/brick_add.png rename to src/kasu/static/icons/brick_add.png diff --git a/kasu/static/icons/brick_delete.png b/src/kasu/static/icons/brick_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/brick_delete.png rename to src/kasu/static/icons/brick_delete.png diff --git a/kasu/static/icons/brick_edit.png b/src/kasu/static/icons/brick_edit.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/brick_edit.png rename to src/kasu/static/icons/brick_edit.png diff --git a/kasu/static/icons/brick_error.png b/src/kasu/static/icons/brick_error.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/brick_error.png rename to src/kasu/static/icons/brick_error.png diff --git a/kasu/static/icons/brick_go.png b/src/kasu/static/icons/brick_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/brick_go.png rename to src/kasu/static/icons/brick_go.png diff --git a/kasu/static/icons/brick_link.png b/src/kasu/static/icons/brick_link.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/brick_link.png rename to src/kasu/static/icons/brick_link.png diff --git a/kasu/static/icons/bricks.png b/src/kasu/static/icons/bricks.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/bricks.png rename to src/kasu/static/icons/bricks.png diff --git a/kasu/static/icons/briefcase.png b/src/kasu/static/icons/briefcase.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/briefcase.png rename to src/kasu/static/icons/briefcase.png diff --git a/kasu/static/icons/bug.png b/src/kasu/static/icons/bug.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/bug.png rename to src/kasu/static/icons/bug.png diff --git a/kasu/static/icons/bug_add.png b/src/kasu/static/icons/bug_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/bug_add.png rename to src/kasu/static/icons/bug_add.png diff --git a/kasu/static/icons/bug_delete.png b/src/kasu/static/icons/bug_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/bug_delete.png rename to src/kasu/static/icons/bug_delete.png diff --git a/kasu/static/icons/bug_edit.png b/src/kasu/static/icons/bug_edit.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/bug_edit.png rename to src/kasu/static/icons/bug_edit.png diff --git a/kasu/static/icons/bug_error.png b/src/kasu/static/icons/bug_error.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/bug_error.png rename to src/kasu/static/icons/bug_error.png diff --git a/kasu/static/icons/bug_go.png b/src/kasu/static/icons/bug_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/bug_go.png rename to src/kasu/static/icons/bug_go.png diff --git a/kasu/static/icons/bug_link.png b/src/kasu/static/icons/bug_link.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/bug_link.png rename to src/kasu/static/icons/bug_link.png diff --git a/kasu/static/icons/building.png b/src/kasu/static/icons/building.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/building.png rename to src/kasu/static/icons/building.png diff --git a/kasu/static/icons/building_add.png b/src/kasu/static/icons/building_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/building_add.png rename to src/kasu/static/icons/building_add.png diff --git a/kasu/static/icons/building_delete.png b/src/kasu/static/icons/building_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/building_delete.png rename to src/kasu/static/icons/building_delete.png diff --git a/kasu/static/icons/building_edit.png b/src/kasu/static/icons/building_edit.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/building_edit.png rename to src/kasu/static/icons/building_edit.png diff --git a/kasu/static/icons/building_error.png b/src/kasu/static/icons/building_error.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/building_error.png rename to src/kasu/static/icons/building_error.png diff --git a/kasu/static/icons/building_go.png b/src/kasu/static/icons/building_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/building_go.png rename to src/kasu/static/icons/building_go.png diff --git a/kasu/static/icons/building_key.png b/src/kasu/static/icons/building_key.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/building_key.png rename to src/kasu/static/icons/building_key.png diff --git a/kasu/static/icons/building_link.png b/src/kasu/static/icons/building_link.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/building_link.png rename to src/kasu/static/icons/building_link.png diff --git a/kasu/static/icons/bullet_add.png b/src/kasu/static/icons/bullet_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/bullet_add.png rename to src/kasu/static/icons/bullet_add.png diff --git a/kasu/static/icons/bullet_arrow_bottom.png b/src/kasu/static/icons/bullet_arrow_bottom.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/bullet_arrow_bottom.png rename to src/kasu/static/icons/bullet_arrow_bottom.png diff --git a/kasu/static/icons/bullet_arrow_down.png b/src/kasu/static/icons/bullet_arrow_down.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/bullet_arrow_down.png rename to src/kasu/static/icons/bullet_arrow_down.png diff --git a/kasu/static/icons/bullet_arrow_top.png b/src/kasu/static/icons/bullet_arrow_top.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/bullet_arrow_top.png rename to src/kasu/static/icons/bullet_arrow_top.png diff --git a/kasu/static/icons/bullet_arrow_up.png b/src/kasu/static/icons/bullet_arrow_up.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/bullet_arrow_up.png rename to src/kasu/static/icons/bullet_arrow_up.png diff --git a/kasu/static/icons/bullet_black.png b/src/kasu/static/icons/bullet_black.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/bullet_black.png rename to src/kasu/static/icons/bullet_black.png diff --git a/kasu/static/icons/bullet_blue.png b/src/kasu/static/icons/bullet_blue.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/bullet_blue.png rename to src/kasu/static/icons/bullet_blue.png diff --git a/kasu/static/icons/bullet_delete.png b/src/kasu/static/icons/bullet_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/bullet_delete.png rename to src/kasu/static/icons/bullet_delete.png diff --git a/kasu/static/icons/bullet_disk.png b/src/kasu/static/icons/bullet_disk.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/bullet_disk.png rename to src/kasu/static/icons/bullet_disk.png diff --git a/kasu/static/icons/bullet_error.png b/src/kasu/static/icons/bullet_error.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/bullet_error.png rename to src/kasu/static/icons/bullet_error.png diff --git a/kasu/static/icons/bullet_feed.png b/src/kasu/static/icons/bullet_feed.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/bullet_feed.png rename to src/kasu/static/icons/bullet_feed.png diff --git a/kasu/static/icons/bullet_go.png b/src/kasu/static/icons/bullet_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/bullet_go.png rename to src/kasu/static/icons/bullet_go.png diff --git a/kasu/static/icons/bullet_green.png b/src/kasu/static/icons/bullet_green.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/bullet_green.png rename to src/kasu/static/icons/bullet_green.png diff --git a/kasu/static/icons/bullet_key.png b/src/kasu/static/icons/bullet_key.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/bullet_key.png rename to src/kasu/static/icons/bullet_key.png diff --git a/kasu/static/icons/bullet_orange.png b/src/kasu/static/icons/bullet_orange.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/bullet_orange.png rename to src/kasu/static/icons/bullet_orange.png diff --git a/kasu/static/icons/bullet_picture.png b/src/kasu/static/icons/bullet_picture.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/bullet_picture.png rename to src/kasu/static/icons/bullet_picture.png diff --git a/kasu/static/icons/bullet_pink.png b/src/kasu/static/icons/bullet_pink.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/bullet_pink.png rename to src/kasu/static/icons/bullet_pink.png diff --git a/kasu/static/icons/bullet_purple.png b/src/kasu/static/icons/bullet_purple.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/bullet_purple.png rename to src/kasu/static/icons/bullet_purple.png diff --git a/kasu/static/icons/bullet_red.png b/src/kasu/static/icons/bullet_red.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/bullet_red.png rename to src/kasu/static/icons/bullet_red.png diff --git a/kasu/static/icons/bullet_star.png b/src/kasu/static/icons/bullet_star.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/bullet_star.png rename to src/kasu/static/icons/bullet_star.png diff --git a/kasu/static/icons/bullet_toggle_minus.png b/src/kasu/static/icons/bullet_toggle_minus.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/bullet_toggle_minus.png rename to src/kasu/static/icons/bullet_toggle_minus.png diff --git a/kasu/static/icons/bullet_toggle_plus.png b/src/kasu/static/icons/bullet_toggle_plus.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/bullet_toggle_plus.png rename to src/kasu/static/icons/bullet_toggle_plus.png diff --git a/kasu/static/icons/bullet_white.png b/src/kasu/static/icons/bullet_white.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/bullet_white.png rename to src/kasu/static/icons/bullet_white.png diff --git a/kasu/static/icons/bullet_wrench.png b/src/kasu/static/icons/bullet_wrench.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/bullet_wrench.png rename to src/kasu/static/icons/bullet_wrench.png diff --git a/kasu/static/icons/bullet_yellow.png b/src/kasu/static/icons/bullet_yellow.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/bullet_yellow.png rename to src/kasu/static/icons/bullet_yellow.png diff --git a/kasu/static/icons/cake.png b/src/kasu/static/icons/cake.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/cake.png rename to src/kasu/static/icons/cake.png diff --git a/kasu/static/icons/calculator.png b/src/kasu/static/icons/calculator.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/calculator.png rename to src/kasu/static/icons/calculator.png diff --git a/kasu/static/icons/calculator_add.png b/src/kasu/static/icons/calculator_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/calculator_add.png rename to src/kasu/static/icons/calculator_add.png diff --git a/kasu/static/icons/calculator_delete.png b/src/kasu/static/icons/calculator_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/calculator_delete.png rename to src/kasu/static/icons/calculator_delete.png diff --git a/kasu/static/icons/calculator_edit.png b/src/kasu/static/icons/calculator_edit.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/calculator_edit.png rename to src/kasu/static/icons/calculator_edit.png diff --git a/kasu/static/icons/calculator_error.png b/src/kasu/static/icons/calculator_error.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/calculator_error.png rename to src/kasu/static/icons/calculator_error.png diff --git a/kasu/static/icons/calculator_link.png b/src/kasu/static/icons/calculator_link.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/calculator_link.png rename to src/kasu/static/icons/calculator_link.png diff --git a/kasu/static/icons/calendar.png b/src/kasu/static/icons/calendar.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/calendar.png rename to src/kasu/static/icons/calendar.png diff --git a/kasu/static/icons/calendar_add.png b/src/kasu/static/icons/calendar_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/calendar_add.png rename to src/kasu/static/icons/calendar_add.png diff --git a/kasu/static/icons/calendar_delete.png b/src/kasu/static/icons/calendar_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/calendar_delete.png rename to src/kasu/static/icons/calendar_delete.png diff --git a/kasu/static/icons/calendar_edit.png b/src/kasu/static/icons/calendar_edit.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/calendar_edit.png rename to src/kasu/static/icons/calendar_edit.png diff --git a/kasu/static/icons/calendar_link.png b/src/kasu/static/icons/calendar_link.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/calendar_link.png rename to src/kasu/static/icons/calendar_link.png diff --git a/kasu/static/icons/calendar_view_day.png b/src/kasu/static/icons/calendar_view_day.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/calendar_view_day.png rename to src/kasu/static/icons/calendar_view_day.png diff --git a/kasu/static/icons/calendar_view_month.png b/src/kasu/static/icons/calendar_view_month.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/calendar_view_month.png rename to src/kasu/static/icons/calendar_view_month.png diff --git a/kasu/static/icons/calendar_view_week.png b/src/kasu/static/icons/calendar_view_week.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/calendar_view_week.png rename to src/kasu/static/icons/calendar_view_week.png diff --git a/kasu/static/icons/camera.png b/src/kasu/static/icons/camera.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/camera.png rename to src/kasu/static/icons/camera.png diff --git a/kasu/static/icons/camera_add.png b/src/kasu/static/icons/camera_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/camera_add.png rename to src/kasu/static/icons/camera_add.png diff --git a/kasu/static/icons/camera_delete.png b/src/kasu/static/icons/camera_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/camera_delete.png rename to src/kasu/static/icons/camera_delete.png diff --git a/kasu/static/icons/camera_edit.png b/src/kasu/static/icons/camera_edit.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/camera_edit.png rename to src/kasu/static/icons/camera_edit.png diff --git a/kasu/static/icons/camera_error.png b/src/kasu/static/icons/camera_error.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/camera_error.png rename to src/kasu/static/icons/camera_error.png diff --git a/kasu/static/icons/camera_go.png b/src/kasu/static/icons/camera_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/camera_go.png rename to src/kasu/static/icons/camera_go.png diff --git a/kasu/static/icons/camera_link.png b/src/kasu/static/icons/camera_link.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/camera_link.png rename to src/kasu/static/icons/camera_link.png diff --git a/kasu/static/icons/camera_small.png b/src/kasu/static/icons/camera_small.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/camera_small.png rename to src/kasu/static/icons/camera_small.png diff --git a/kasu/static/icons/cancel.png b/src/kasu/static/icons/cancel.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/cancel.png rename to src/kasu/static/icons/cancel.png diff --git a/kasu/static/icons/car.png b/src/kasu/static/icons/car.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/car.png rename to src/kasu/static/icons/car.png diff --git a/kasu/static/icons/car_add.png b/src/kasu/static/icons/car_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/car_add.png rename to src/kasu/static/icons/car_add.png diff --git a/kasu/static/icons/car_delete.png b/src/kasu/static/icons/car_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/car_delete.png rename to src/kasu/static/icons/car_delete.png diff --git a/kasu/static/icons/cart.png b/src/kasu/static/icons/cart.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/cart.png rename to src/kasu/static/icons/cart.png diff --git a/kasu/static/icons/cart_add.png b/src/kasu/static/icons/cart_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/cart_add.png rename to src/kasu/static/icons/cart_add.png diff --git a/kasu/static/icons/cart_delete.png b/src/kasu/static/icons/cart_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/cart_delete.png rename to src/kasu/static/icons/cart_delete.png diff --git a/kasu/static/icons/cart_edit.png b/src/kasu/static/icons/cart_edit.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/cart_edit.png rename to src/kasu/static/icons/cart_edit.png diff --git a/kasu/static/icons/cart_error.png b/src/kasu/static/icons/cart_error.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/cart_error.png rename to src/kasu/static/icons/cart_error.png diff --git a/kasu/static/icons/cart_go.png b/src/kasu/static/icons/cart_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/cart_go.png rename to src/kasu/static/icons/cart_go.png diff --git a/kasu/static/icons/cart_put.png b/src/kasu/static/icons/cart_put.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/cart_put.png rename to src/kasu/static/icons/cart_put.png diff --git a/kasu/static/icons/cart_remove.png b/src/kasu/static/icons/cart_remove.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/cart_remove.png rename to src/kasu/static/icons/cart_remove.png diff --git a/kasu/static/icons/cd.png b/src/kasu/static/icons/cd.png similarity index 100% rename from kasu/static/icons/cd.png rename to src/kasu/static/icons/cd.png diff --git a/kasu/static/icons/cd_add.png b/src/kasu/static/icons/cd_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/cd_add.png rename to src/kasu/static/icons/cd_add.png diff --git a/kasu/static/icons/cd_burn.png b/src/kasu/static/icons/cd_burn.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/cd_burn.png rename to src/kasu/static/icons/cd_burn.png diff --git a/kasu/static/icons/cd_delete.png b/src/kasu/static/icons/cd_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/cd_delete.png rename to src/kasu/static/icons/cd_delete.png diff --git a/kasu/static/icons/cd_edit.png b/src/kasu/static/icons/cd_edit.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/cd_edit.png rename to src/kasu/static/icons/cd_edit.png diff --git a/kasu/static/icons/cd_eject.png b/src/kasu/static/icons/cd_eject.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/cd_eject.png rename to src/kasu/static/icons/cd_eject.png diff --git a/kasu/static/icons/cd_go.png b/src/kasu/static/icons/cd_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/cd_go.png rename to src/kasu/static/icons/cd_go.png diff --git a/kasu/static/icons/chart_bar.png b/src/kasu/static/icons/chart_bar.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/chart_bar.png rename to src/kasu/static/icons/chart_bar.png diff --git a/kasu/static/icons/chart_bar_add.png b/src/kasu/static/icons/chart_bar_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/chart_bar_add.png rename to src/kasu/static/icons/chart_bar_add.png diff --git a/kasu/static/icons/chart_bar_delete.png b/src/kasu/static/icons/chart_bar_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/chart_bar_delete.png rename to src/kasu/static/icons/chart_bar_delete.png diff --git a/kasu/static/icons/chart_bar_edit.png b/src/kasu/static/icons/chart_bar_edit.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/chart_bar_edit.png rename to src/kasu/static/icons/chart_bar_edit.png diff --git a/kasu/static/icons/chart_bar_error.png b/src/kasu/static/icons/chart_bar_error.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/chart_bar_error.png rename to src/kasu/static/icons/chart_bar_error.png diff --git a/kasu/static/icons/chart_bar_link.png b/src/kasu/static/icons/chart_bar_link.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/chart_bar_link.png rename to src/kasu/static/icons/chart_bar_link.png diff --git a/kasu/static/icons/chart_curve.png b/src/kasu/static/icons/chart_curve.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/chart_curve.png rename to src/kasu/static/icons/chart_curve.png diff --git a/kasu/static/icons/chart_curve_add.png b/src/kasu/static/icons/chart_curve_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/chart_curve_add.png rename to src/kasu/static/icons/chart_curve_add.png diff --git a/kasu/static/icons/chart_curve_delete.png b/src/kasu/static/icons/chart_curve_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/chart_curve_delete.png rename to src/kasu/static/icons/chart_curve_delete.png diff --git a/kasu/static/icons/chart_curve_edit.png b/src/kasu/static/icons/chart_curve_edit.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/chart_curve_edit.png rename to src/kasu/static/icons/chart_curve_edit.png diff --git a/kasu/static/icons/chart_curve_error.png b/src/kasu/static/icons/chart_curve_error.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/chart_curve_error.png rename to src/kasu/static/icons/chart_curve_error.png diff --git a/kasu/static/icons/chart_curve_go.png b/src/kasu/static/icons/chart_curve_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/chart_curve_go.png rename to src/kasu/static/icons/chart_curve_go.png diff --git a/kasu/static/icons/chart_curve_link.png b/src/kasu/static/icons/chart_curve_link.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/chart_curve_link.png rename to src/kasu/static/icons/chart_curve_link.png diff --git a/kasu/static/icons/chart_line.png b/src/kasu/static/icons/chart_line.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/chart_line.png rename to src/kasu/static/icons/chart_line.png diff --git a/kasu/static/icons/chart_line_add.png b/src/kasu/static/icons/chart_line_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/chart_line_add.png rename to src/kasu/static/icons/chart_line_add.png diff --git a/kasu/static/icons/chart_line_delete.png b/src/kasu/static/icons/chart_line_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/chart_line_delete.png rename to src/kasu/static/icons/chart_line_delete.png diff --git a/kasu/static/icons/chart_line_edit.png b/src/kasu/static/icons/chart_line_edit.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/chart_line_edit.png rename to src/kasu/static/icons/chart_line_edit.png diff --git a/kasu/static/icons/chart_line_error.png b/src/kasu/static/icons/chart_line_error.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/chart_line_error.png rename to src/kasu/static/icons/chart_line_error.png diff --git a/kasu/static/icons/chart_line_link.png b/src/kasu/static/icons/chart_line_link.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/chart_line_link.png rename to src/kasu/static/icons/chart_line_link.png diff --git a/kasu/static/icons/chart_organisation.png b/src/kasu/static/icons/chart_organisation.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/chart_organisation.png rename to src/kasu/static/icons/chart_organisation.png diff --git a/kasu/static/icons/chart_organisation_add.png b/src/kasu/static/icons/chart_organisation_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/chart_organisation_add.png rename to src/kasu/static/icons/chart_organisation_add.png diff --git a/kasu/static/icons/chart_organisation_delete.png b/src/kasu/static/icons/chart_organisation_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/chart_organisation_delete.png rename to src/kasu/static/icons/chart_organisation_delete.png diff --git a/kasu/static/icons/chart_pie.png b/src/kasu/static/icons/chart_pie.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/chart_pie.png rename to src/kasu/static/icons/chart_pie.png diff --git a/kasu/static/icons/chart_pie_add.png b/src/kasu/static/icons/chart_pie_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/chart_pie_add.png rename to src/kasu/static/icons/chart_pie_add.png diff --git a/kasu/static/icons/chart_pie_delete.png b/src/kasu/static/icons/chart_pie_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/chart_pie_delete.png rename to src/kasu/static/icons/chart_pie_delete.png diff --git a/kasu/static/icons/chart_pie_edit.png b/src/kasu/static/icons/chart_pie_edit.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/chart_pie_edit.png rename to src/kasu/static/icons/chart_pie_edit.png diff --git a/kasu/static/icons/chart_pie_error.png b/src/kasu/static/icons/chart_pie_error.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/chart_pie_error.png rename to src/kasu/static/icons/chart_pie_error.png diff --git a/kasu/static/icons/chart_pie_link.png b/src/kasu/static/icons/chart_pie_link.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/chart_pie_link.png rename to src/kasu/static/icons/chart_pie_link.png diff --git a/kasu/static/icons/clock.png b/src/kasu/static/icons/clock.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/clock.png rename to src/kasu/static/icons/clock.png diff --git a/kasu/static/icons/clock_add.png b/src/kasu/static/icons/clock_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/clock_add.png rename to src/kasu/static/icons/clock_add.png diff --git a/kasu/static/icons/clock_delete.png b/src/kasu/static/icons/clock_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/clock_delete.png rename to src/kasu/static/icons/clock_delete.png diff --git a/kasu/static/icons/clock_edit.png b/src/kasu/static/icons/clock_edit.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/clock_edit.png rename to src/kasu/static/icons/clock_edit.png diff --git a/kasu/static/icons/clock_error.png b/src/kasu/static/icons/clock_error.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/clock_error.png rename to src/kasu/static/icons/clock_error.png diff --git a/kasu/static/icons/clock_go.png b/src/kasu/static/icons/clock_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/clock_go.png rename to src/kasu/static/icons/clock_go.png diff --git a/kasu/static/icons/clock_link.png b/src/kasu/static/icons/clock_link.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/clock_link.png rename to src/kasu/static/icons/clock_link.png diff --git a/kasu/static/icons/clock_pause.png b/src/kasu/static/icons/clock_pause.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/clock_pause.png rename to src/kasu/static/icons/clock_pause.png diff --git a/kasu/static/icons/clock_play.png b/src/kasu/static/icons/clock_play.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/clock_play.png rename to src/kasu/static/icons/clock_play.png diff --git a/kasu/static/icons/clock_red.png b/src/kasu/static/icons/clock_red.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/clock_red.png rename to src/kasu/static/icons/clock_red.png diff --git a/kasu/static/icons/clock_stop.png b/src/kasu/static/icons/clock_stop.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/clock_stop.png rename to src/kasu/static/icons/clock_stop.png diff --git a/kasu/static/icons/cog.png b/src/kasu/static/icons/cog.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/cog.png rename to src/kasu/static/icons/cog.png diff --git a/kasu/static/icons/cog_add.png b/src/kasu/static/icons/cog_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/cog_add.png rename to src/kasu/static/icons/cog_add.png diff --git a/kasu/static/icons/cog_delete.png b/src/kasu/static/icons/cog_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/cog_delete.png rename to src/kasu/static/icons/cog_delete.png diff --git a/kasu/static/icons/cog_edit.png b/src/kasu/static/icons/cog_edit.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/cog_edit.png rename to src/kasu/static/icons/cog_edit.png diff --git a/kasu/static/icons/cog_error.png b/src/kasu/static/icons/cog_error.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/cog_error.png rename to src/kasu/static/icons/cog_error.png diff --git a/kasu/static/icons/cog_go.png b/src/kasu/static/icons/cog_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/cog_go.png rename to src/kasu/static/icons/cog_go.png diff --git a/kasu/static/icons/coins.png b/src/kasu/static/icons/coins.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/coins.png rename to src/kasu/static/icons/coins.png diff --git a/kasu/static/icons/coins_add.png b/src/kasu/static/icons/coins_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/coins_add.png rename to src/kasu/static/icons/coins_add.png diff --git a/kasu/static/icons/coins_delete.png b/src/kasu/static/icons/coins_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/coins_delete.png rename to src/kasu/static/icons/coins_delete.png diff --git a/kasu/static/icons/color_swatch.png b/src/kasu/static/icons/color_swatch.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/color_swatch.png rename to src/kasu/static/icons/color_swatch.png diff --git a/kasu/static/icons/color_wheel.png b/src/kasu/static/icons/color_wheel.png similarity index 100% rename from kasu/static/icons/color_wheel.png rename to src/kasu/static/icons/color_wheel.png diff --git a/kasu/static/icons/comment.png b/src/kasu/static/icons/comment.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/comment.png rename to src/kasu/static/icons/comment.png diff --git a/kasu/static/icons/comment_add.png b/src/kasu/static/icons/comment_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/comment_add.png rename to src/kasu/static/icons/comment_add.png diff --git a/kasu/static/icons/comment_delete.png b/src/kasu/static/icons/comment_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/comment_delete.png rename to src/kasu/static/icons/comment_delete.png diff --git a/kasu/static/icons/comment_edit.png b/src/kasu/static/icons/comment_edit.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/comment_edit.png rename to src/kasu/static/icons/comment_edit.png diff --git a/kasu/static/icons/comments.png b/src/kasu/static/icons/comments.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/comments.png rename to src/kasu/static/icons/comments.png diff --git a/kasu/static/icons/comments_add.png b/src/kasu/static/icons/comments_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/comments_add.png rename to src/kasu/static/icons/comments_add.png diff --git a/kasu/static/icons/comments_delete.png b/src/kasu/static/icons/comments_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/comments_delete.png rename to src/kasu/static/icons/comments_delete.png diff --git a/kasu/static/icons/compress.png b/src/kasu/static/icons/compress.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/compress.png rename to src/kasu/static/icons/compress.png diff --git a/kasu/static/icons/computer.png b/src/kasu/static/icons/computer.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/computer.png rename to src/kasu/static/icons/computer.png diff --git a/kasu/static/icons/computer_add.png b/src/kasu/static/icons/computer_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/computer_add.png rename to src/kasu/static/icons/computer_add.png diff --git a/kasu/static/icons/computer_delete.png b/src/kasu/static/icons/computer_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/computer_delete.png rename to src/kasu/static/icons/computer_delete.png diff --git a/kasu/static/icons/computer_edit.png b/src/kasu/static/icons/computer_edit.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/computer_edit.png rename to src/kasu/static/icons/computer_edit.png diff --git a/kasu/static/icons/computer_error.png b/src/kasu/static/icons/computer_error.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/computer_error.png rename to src/kasu/static/icons/computer_error.png diff --git a/kasu/static/icons/computer_go.png b/src/kasu/static/icons/computer_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/computer_go.png rename to src/kasu/static/icons/computer_go.png diff --git a/kasu/static/icons/computer_key.png b/src/kasu/static/icons/computer_key.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/computer_key.png rename to src/kasu/static/icons/computer_key.png diff --git a/kasu/static/icons/computer_link.png b/src/kasu/static/icons/computer_link.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/computer_link.png rename to src/kasu/static/icons/computer_link.png diff --git a/kasu/static/icons/connect.png b/src/kasu/static/icons/connect.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/connect.png rename to src/kasu/static/icons/connect.png diff --git a/kasu/static/icons/contrast.png b/src/kasu/static/icons/contrast.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/contrast.png rename to src/kasu/static/icons/contrast.png diff --git a/kasu/static/icons/contrast_decrease.png b/src/kasu/static/icons/contrast_decrease.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/contrast_decrease.png rename to src/kasu/static/icons/contrast_decrease.png diff --git a/kasu/static/icons/contrast_high.png b/src/kasu/static/icons/contrast_high.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/contrast_high.png rename to src/kasu/static/icons/contrast_high.png diff --git a/kasu/static/icons/contrast_increase.png b/src/kasu/static/icons/contrast_increase.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/contrast_increase.png rename to src/kasu/static/icons/contrast_increase.png diff --git a/kasu/static/icons/contrast_low.png b/src/kasu/static/icons/contrast_low.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/contrast_low.png rename to src/kasu/static/icons/contrast_low.png diff --git a/kasu/static/icons/control_eject.png b/src/kasu/static/icons/control_eject.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/control_eject.png rename to src/kasu/static/icons/control_eject.png diff --git a/kasu/static/icons/control_eject_blue.png b/src/kasu/static/icons/control_eject_blue.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/control_eject_blue.png rename to src/kasu/static/icons/control_eject_blue.png diff --git a/kasu/static/icons/control_end.png b/src/kasu/static/icons/control_end.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/control_end.png rename to src/kasu/static/icons/control_end.png diff --git a/kasu/static/icons/control_end_blue.png b/src/kasu/static/icons/control_end_blue.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/control_end_blue.png rename to src/kasu/static/icons/control_end_blue.png diff --git a/kasu/static/icons/control_equalizer.png b/src/kasu/static/icons/control_equalizer.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/control_equalizer.png rename to src/kasu/static/icons/control_equalizer.png diff --git a/kasu/static/icons/control_equalizer_blue.png b/src/kasu/static/icons/control_equalizer_blue.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/control_equalizer_blue.png rename to src/kasu/static/icons/control_equalizer_blue.png diff --git a/kasu/static/icons/control_fastforward.png b/src/kasu/static/icons/control_fastforward.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/control_fastforward.png rename to src/kasu/static/icons/control_fastforward.png diff --git a/kasu/static/icons/control_fastforward_blue.png b/src/kasu/static/icons/control_fastforward_blue.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/control_fastforward_blue.png rename to src/kasu/static/icons/control_fastforward_blue.png diff --git a/kasu/static/icons/control_pause.png b/src/kasu/static/icons/control_pause.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/control_pause.png rename to src/kasu/static/icons/control_pause.png diff --git a/kasu/static/icons/control_pause_blue.png b/src/kasu/static/icons/control_pause_blue.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/control_pause_blue.png rename to src/kasu/static/icons/control_pause_blue.png diff --git a/kasu/static/icons/control_play.png b/src/kasu/static/icons/control_play.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/control_play.png rename to src/kasu/static/icons/control_play.png diff --git a/kasu/static/icons/control_play_blue.png b/src/kasu/static/icons/control_play_blue.png similarity index 100% rename from kasu/static/icons/control_play_blue.png rename to src/kasu/static/icons/control_play_blue.png diff --git a/kasu/static/icons/control_repeat.png b/src/kasu/static/icons/control_repeat.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/control_repeat.png rename to src/kasu/static/icons/control_repeat.png diff --git a/kasu/static/icons/control_repeat_blue.png b/src/kasu/static/icons/control_repeat_blue.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/control_repeat_blue.png rename to src/kasu/static/icons/control_repeat_blue.png diff --git a/kasu/static/icons/control_rewind.png b/src/kasu/static/icons/control_rewind.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/control_rewind.png rename to src/kasu/static/icons/control_rewind.png diff --git a/kasu/static/icons/control_rewind_blue.png b/src/kasu/static/icons/control_rewind_blue.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/control_rewind_blue.png rename to src/kasu/static/icons/control_rewind_blue.png diff --git a/kasu/static/icons/control_start.png b/src/kasu/static/icons/control_start.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/control_start.png rename to src/kasu/static/icons/control_start.png diff --git a/kasu/static/icons/control_start_blue.png b/src/kasu/static/icons/control_start_blue.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/control_start_blue.png rename to src/kasu/static/icons/control_start_blue.png diff --git a/kasu/static/icons/control_stop.png b/src/kasu/static/icons/control_stop.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/control_stop.png rename to src/kasu/static/icons/control_stop.png diff --git a/kasu/static/icons/control_stop_blue.png b/src/kasu/static/icons/control_stop_blue.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/control_stop_blue.png rename to src/kasu/static/icons/control_stop_blue.png diff --git a/kasu/static/icons/controller.png b/src/kasu/static/icons/controller.png similarity index 100% rename from kasu/static/icons/controller.png rename to src/kasu/static/icons/controller.png diff --git a/kasu/static/icons/controller_add.png b/src/kasu/static/icons/controller_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/controller_add.png rename to src/kasu/static/icons/controller_add.png diff --git a/kasu/static/icons/controller_delete.png b/src/kasu/static/icons/controller_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/controller_delete.png rename to src/kasu/static/icons/controller_delete.png diff --git a/kasu/static/icons/controller_error.png b/src/kasu/static/icons/controller_error.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/controller_error.png rename to src/kasu/static/icons/controller_error.png diff --git a/kasu/static/icons/creditcards.png b/src/kasu/static/icons/creditcards.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/creditcards.png rename to src/kasu/static/icons/creditcards.png diff --git a/kasu/static/icons/cross.png b/src/kasu/static/icons/cross.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/cross.png rename to src/kasu/static/icons/cross.png diff --git a/kasu/static/icons/css.png b/src/kasu/static/icons/css.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/css.png rename to src/kasu/static/icons/css.png diff --git a/kasu/static/icons/css_add.png b/src/kasu/static/icons/css_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/css_add.png rename to src/kasu/static/icons/css_add.png diff --git a/kasu/static/icons/css_delete.png b/src/kasu/static/icons/css_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/css_delete.png rename to src/kasu/static/icons/css_delete.png diff --git a/kasu/static/icons/css_go.png b/src/kasu/static/icons/css_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/css_go.png rename to src/kasu/static/icons/css_go.png diff --git a/kasu/static/icons/css_valid.png b/src/kasu/static/icons/css_valid.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/css_valid.png rename to src/kasu/static/icons/css_valid.png diff --git a/kasu/static/icons/cup.png b/src/kasu/static/icons/cup.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/cup.png rename to src/kasu/static/icons/cup.png diff --git a/kasu/static/icons/cup_add.png b/src/kasu/static/icons/cup_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/cup_add.png rename to src/kasu/static/icons/cup_add.png diff --git a/kasu/static/icons/cup_delete.png b/src/kasu/static/icons/cup_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/cup_delete.png rename to src/kasu/static/icons/cup_delete.png diff --git a/kasu/static/icons/cup_edit.png b/src/kasu/static/icons/cup_edit.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/cup_edit.png rename to src/kasu/static/icons/cup_edit.png diff --git a/kasu/static/icons/cup_error.png b/src/kasu/static/icons/cup_error.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/cup_error.png rename to src/kasu/static/icons/cup_error.png diff --git a/kasu/static/icons/cup_go.png b/src/kasu/static/icons/cup_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/cup_go.png rename to src/kasu/static/icons/cup_go.png diff --git a/kasu/static/icons/cup_key.png b/src/kasu/static/icons/cup_key.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/cup_key.png rename to src/kasu/static/icons/cup_key.png diff --git a/kasu/static/icons/cup_link.png b/src/kasu/static/icons/cup_link.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/cup_link.png rename to src/kasu/static/icons/cup_link.png diff --git a/kasu/static/icons/cursor.png b/src/kasu/static/icons/cursor.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/cursor.png rename to src/kasu/static/icons/cursor.png diff --git a/kasu/static/icons/cut.png b/src/kasu/static/icons/cut.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/cut.png rename to src/kasu/static/icons/cut.png diff --git a/kasu/static/icons/cut_red.png b/src/kasu/static/icons/cut_red.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/cut_red.png rename to src/kasu/static/icons/cut_red.png diff --git a/kasu/static/icons/database.png b/src/kasu/static/icons/database.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/database.png rename to src/kasu/static/icons/database.png diff --git a/kasu/static/icons/database_add.png b/src/kasu/static/icons/database_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/database_add.png rename to src/kasu/static/icons/database_add.png diff --git a/kasu/static/icons/database_connect.png b/src/kasu/static/icons/database_connect.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/database_connect.png rename to src/kasu/static/icons/database_connect.png diff --git a/kasu/static/icons/database_delete.png b/src/kasu/static/icons/database_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/database_delete.png rename to src/kasu/static/icons/database_delete.png diff --git a/kasu/static/icons/database_edit.png b/src/kasu/static/icons/database_edit.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/database_edit.png rename to src/kasu/static/icons/database_edit.png diff --git a/kasu/static/icons/database_error.png b/src/kasu/static/icons/database_error.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/database_error.png rename to src/kasu/static/icons/database_error.png diff --git a/kasu/static/icons/database_gear.png b/src/kasu/static/icons/database_gear.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/database_gear.png rename to src/kasu/static/icons/database_gear.png diff --git a/kasu/static/icons/database_go.png b/src/kasu/static/icons/database_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/database_go.png rename to src/kasu/static/icons/database_go.png diff --git a/kasu/static/icons/database_key.png b/src/kasu/static/icons/database_key.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/database_key.png rename to src/kasu/static/icons/database_key.png diff --git a/kasu/static/icons/database_lightning.png b/src/kasu/static/icons/database_lightning.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/database_lightning.png rename to src/kasu/static/icons/database_lightning.png diff --git a/kasu/static/icons/database_link.png b/src/kasu/static/icons/database_link.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/database_link.png rename to src/kasu/static/icons/database_link.png diff --git a/kasu/static/icons/database_refresh.png b/src/kasu/static/icons/database_refresh.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/database_refresh.png rename to src/kasu/static/icons/database_refresh.png diff --git a/kasu/static/icons/database_save.png b/src/kasu/static/icons/database_save.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/database_save.png rename to src/kasu/static/icons/database_save.png diff --git a/kasu/static/icons/database_table.png b/src/kasu/static/icons/database_table.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/database_table.png rename to src/kasu/static/icons/database_table.png diff --git a/kasu/static/icons/date.png b/src/kasu/static/icons/date.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/date.png rename to src/kasu/static/icons/date.png diff --git a/kasu/static/icons/date_add.png b/src/kasu/static/icons/date_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/date_add.png rename to src/kasu/static/icons/date_add.png diff --git a/kasu/static/icons/date_delete.png b/src/kasu/static/icons/date_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/date_delete.png rename to src/kasu/static/icons/date_delete.png diff --git a/kasu/static/icons/date_edit.png b/src/kasu/static/icons/date_edit.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/date_edit.png rename to src/kasu/static/icons/date_edit.png diff --git a/kasu/static/icons/date_error.png b/src/kasu/static/icons/date_error.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/date_error.png rename to src/kasu/static/icons/date_error.png diff --git a/kasu/static/icons/date_go.png b/src/kasu/static/icons/date_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/date_go.png rename to src/kasu/static/icons/date_go.png diff --git a/kasu/static/icons/date_link.png b/src/kasu/static/icons/date_link.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/date_link.png rename to src/kasu/static/icons/date_link.png diff --git a/kasu/static/icons/date_magnify.png b/src/kasu/static/icons/date_magnify.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/date_magnify.png rename to src/kasu/static/icons/date_magnify.png diff --git a/kasu/static/icons/date_next.png b/src/kasu/static/icons/date_next.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/date_next.png rename to src/kasu/static/icons/date_next.png diff --git a/kasu/static/icons/date_previous.png b/src/kasu/static/icons/date_previous.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/date_previous.png rename to src/kasu/static/icons/date_previous.png diff --git a/kasu/static/icons/delete.png b/src/kasu/static/icons/delete.png similarity index 100% rename from kasu/static/icons/delete.png rename to src/kasu/static/icons/delete.png diff --git a/kasu/static/icons/disconnect.png b/src/kasu/static/icons/disconnect.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/disconnect.png rename to src/kasu/static/icons/disconnect.png diff --git a/kasu/static/icons/disk.png b/src/kasu/static/icons/disk.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/disk.png rename to src/kasu/static/icons/disk.png diff --git a/kasu/static/icons/disk_multiple.png b/src/kasu/static/icons/disk_multiple.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/disk_multiple.png rename to src/kasu/static/icons/disk_multiple.png diff --git a/kasu/static/icons/door.png b/src/kasu/static/icons/door.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/door.png rename to src/kasu/static/icons/door.png diff --git a/kasu/static/icons/door_in.png b/src/kasu/static/icons/door_in.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/door_in.png rename to src/kasu/static/icons/door_in.png diff --git a/kasu/static/icons/door_open.png b/src/kasu/static/icons/door_open.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/door_open.png rename to src/kasu/static/icons/door_open.png diff --git a/kasu/static/icons/door_out.png b/src/kasu/static/icons/door_out.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/door_out.png rename to src/kasu/static/icons/door_out.png diff --git a/kasu/static/icons/drink.png b/src/kasu/static/icons/drink.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/drink.png rename to src/kasu/static/icons/drink.png diff --git a/kasu/static/icons/drink_empty.png b/src/kasu/static/icons/drink_empty.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/drink_empty.png rename to src/kasu/static/icons/drink_empty.png diff --git a/kasu/static/icons/drive.png b/src/kasu/static/icons/drive.png similarity index 100% rename from kasu/static/icons/drive.png rename to src/kasu/static/icons/drive.png diff --git a/kasu/static/icons/drive_add.png b/src/kasu/static/icons/drive_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/drive_add.png rename to src/kasu/static/icons/drive_add.png diff --git a/kasu/static/icons/drive_burn.png b/src/kasu/static/icons/drive_burn.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/drive_burn.png rename to src/kasu/static/icons/drive_burn.png diff --git a/kasu/static/icons/drive_cd.png b/src/kasu/static/icons/drive_cd.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/drive_cd.png rename to src/kasu/static/icons/drive_cd.png diff --git a/kasu/static/icons/drive_cd_empty.png b/src/kasu/static/icons/drive_cd_empty.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/drive_cd_empty.png rename to src/kasu/static/icons/drive_cd_empty.png diff --git a/kasu/static/icons/drive_delete.png b/src/kasu/static/icons/drive_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/drive_delete.png rename to src/kasu/static/icons/drive_delete.png diff --git a/kasu/static/icons/drive_disk.png b/src/kasu/static/icons/drive_disk.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/drive_disk.png rename to src/kasu/static/icons/drive_disk.png diff --git a/kasu/static/icons/drive_edit.png b/src/kasu/static/icons/drive_edit.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/drive_edit.png rename to src/kasu/static/icons/drive_edit.png diff --git a/kasu/static/icons/drive_error.png b/src/kasu/static/icons/drive_error.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/drive_error.png rename to src/kasu/static/icons/drive_error.png diff --git a/kasu/static/icons/drive_go.png b/src/kasu/static/icons/drive_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/drive_go.png rename to src/kasu/static/icons/drive_go.png diff --git a/kasu/static/icons/drive_key.png b/src/kasu/static/icons/drive_key.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/drive_key.png rename to src/kasu/static/icons/drive_key.png diff --git a/kasu/static/icons/drive_link.png b/src/kasu/static/icons/drive_link.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/drive_link.png rename to src/kasu/static/icons/drive_link.png diff --git a/kasu/static/icons/drive_magnify.png b/src/kasu/static/icons/drive_magnify.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/drive_magnify.png rename to src/kasu/static/icons/drive_magnify.png diff --git a/kasu/static/icons/drive_network.png b/src/kasu/static/icons/drive_network.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/drive_network.png rename to src/kasu/static/icons/drive_network.png diff --git a/kasu/static/icons/drive_rename.png b/src/kasu/static/icons/drive_rename.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/drive_rename.png rename to src/kasu/static/icons/drive_rename.png diff --git a/kasu/static/icons/drive_user.png b/src/kasu/static/icons/drive_user.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/drive_user.png rename to src/kasu/static/icons/drive_user.png diff --git a/kasu/static/icons/drive_web.png b/src/kasu/static/icons/drive_web.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/drive_web.png rename to src/kasu/static/icons/drive_web.png diff --git a/kasu/static/icons/dvd.png b/src/kasu/static/icons/dvd.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/dvd.png rename to src/kasu/static/icons/dvd.png diff --git a/kasu/static/icons/dvd_add.png b/src/kasu/static/icons/dvd_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/dvd_add.png rename to src/kasu/static/icons/dvd_add.png diff --git a/kasu/static/icons/dvd_delete.png b/src/kasu/static/icons/dvd_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/dvd_delete.png rename to src/kasu/static/icons/dvd_delete.png diff --git a/kasu/static/icons/dvd_edit.png b/src/kasu/static/icons/dvd_edit.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/dvd_edit.png rename to src/kasu/static/icons/dvd_edit.png diff --git a/kasu/static/icons/dvd_error.png b/src/kasu/static/icons/dvd_error.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/dvd_error.png rename to src/kasu/static/icons/dvd_error.png diff --git a/kasu/static/icons/dvd_go.png b/src/kasu/static/icons/dvd_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/dvd_go.png rename to src/kasu/static/icons/dvd_go.png diff --git a/kasu/static/icons/dvd_key.png b/src/kasu/static/icons/dvd_key.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/dvd_key.png rename to src/kasu/static/icons/dvd_key.png diff --git a/kasu/static/icons/dvd_link.png b/src/kasu/static/icons/dvd_link.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/dvd_link.png rename to src/kasu/static/icons/dvd_link.png diff --git a/kasu/static/icons/email.png b/src/kasu/static/icons/email.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/email.png rename to src/kasu/static/icons/email.png diff --git a/kasu/static/icons/email_add.png b/src/kasu/static/icons/email_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/email_add.png rename to src/kasu/static/icons/email_add.png diff --git a/kasu/static/icons/email_attach.png b/src/kasu/static/icons/email_attach.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/email_attach.png rename to src/kasu/static/icons/email_attach.png diff --git a/kasu/static/icons/email_delete.png b/src/kasu/static/icons/email_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/email_delete.png rename to src/kasu/static/icons/email_delete.png diff --git a/kasu/static/icons/email_edit.png b/src/kasu/static/icons/email_edit.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/email_edit.png rename to src/kasu/static/icons/email_edit.png diff --git a/kasu/static/icons/email_error.png b/src/kasu/static/icons/email_error.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/email_error.png rename to src/kasu/static/icons/email_error.png diff --git a/kasu/static/icons/email_go.png b/src/kasu/static/icons/email_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/email_go.png rename to src/kasu/static/icons/email_go.png diff --git a/kasu/static/icons/email_link.png b/src/kasu/static/icons/email_link.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/email_link.png rename to src/kasu/static/icons/email_link.png diff --git a/kasu/static/icons/email_open.png b/src/kasu/static/icons/email_open.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/email_open.png rename to src/kasu/static/icons/email_open.png diff --git a/kasu/static/icons/email_open_image.png b/src/kasu/static/icons/email_open_image.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/email_open_image.png rename to src/kasu/static/icons/email_open_image.png diff --git a/kasu/static/icons/emoticon_evilgrin.png b/src/kasu/static/icons/emoticon_evilgrin.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/emoticon_evilgrin.png rename to src/kasu/static/icons/emoticon_evilgrin.png diff --git a/kasu/static/icons/emoticon_grin.png b/src/kasu/static/icons/emoticon_grin.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/emoticon_grin.png rename to src/kasu/static/icons/emoticon_grin.png diff --git a/kasu/static/icons/emoticon_happy.png b/src/kasu/static/icons/emoticon_happy.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/emoticon_happy.png rename to src/kasu/static/icons/emoticon_happy.png diff --git a/kasu/static/icons/emoticon_smile.png b/src/kasu/static/icons/emoticon_smile.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/emoticon_smile.png rename to src/kasu/static/icons/emoticon_smile.png diff --git a/kasu/static/icons/emoticon_surprised.png b/src/kasu/static/icons/emoticon_surprised.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/emoticon_surprised.png rename to src/kasu/static/icons/emoticon_surprised.png diff --git a/kasu/static/icons/emoticon_tongue.png b/src/kasu/static/icons/emoticon_tongue.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/emoticon_tongue.png rename to src/kasu/static/icons/emoticon_tongue.png diff --git a/kasu/static/icons/emoticon_unhappy.png b/src/kasu/static/icons/emoticon_unhappy.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/emoticon_unhappy.png rename to src/kasu/static/icons/emoticon_unhappy.png diff --git a/kasu/static/icons/emoticon_waii.png b/src/kasu/static/icons/emoticon_waii.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/emoticon_waii.png rename to src/kasu/static/icons/emoticon_waii.png diff --git a/kasu/static/icons/emoticon_wink.png b/src/kasu/static/icons/emoticon_wink.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/emoticon_wink.png rename to src/kasu/static/icons/emoticon_wink.png diff --git a/kasu/static/icons/error.png b/src/kasu/static/icons/error.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/error.png rename to src/kasu/static/icons/error.png diff --git a/kasu/static/icons/error_add.png b/src/kasu/static/icons/error_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/error_add.png rename to src/kasu/static/icons/error_add.png diff --git a/kasu/static/icons/error_delete.png b/src/kasu/static/icons/error_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/error_delete.png rename to src/kasu/static/icons/error_delete.png diff --git a/kasu/static/icons/error_go.png b/src/kasu/static/icons/error_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/error_go.png rename to src/kasu/static/icons/error_go.png diff --git a/kasu/static/icons/exclamation.png b/src/kasu/static/icons/exclamation.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/exclamation.png rename to src/kasu/static/icons/exclamation.png diff --git a/kasu/static/icons/eye.png b/src/kasu/static/icons/eye.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/eye.png rename to src/kasu/static/icons/eye.png diff --git a/kasu/static/icons/feed.png b/src/kasu/static/icons/feed.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/feed.png rename to src/kasu/static/icons/feed.png diff --git a/kasu/static/icons/feed_add.png b/src/kasu/static/icons/feed_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/feed_add.png rename to src/kasu/static/icons/feed_add.png diff --git a/kasu/static/icons/feed_delete.png b/src/kasu/static/icons/feed_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/feed_delete.png rename to src/kasu/static/icons/feed_delete.png diff --git a/kasu/static/icons/feed_disk.png b/src/kasu/static/icons/feed_disk.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/feed_disk.png rename to src/kasu/static/icons/feed_disk.png diff --git a/kasu/static/icons/feed_edit.png b/src/kasu/static/icons/feed_edit.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/feed_edit.png rename to src/kasu/static/icons/feed_edit.png diff --git a/kasu/static/icons/feed_error.png b/src/kasu/static/icons/feed_error.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/feed_error.png rename to src/kasu/static/icons/feed_error.png diff --git a/kasu/static/icons/feed_go.png b/src/kasu/static/icons/feed_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/feed_go.png rename to src/kasu/static/icons/feed_go.png diff --git a/kasu/static/icons/feed_key.png b/src/kasu/static/icons/feed_key.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/feed_key.png rename to src/kasu/static/icons/feed_key.png diff --git a/kasu/static/icons/feed_link.png b/src/kasu/static/icons/feed_link.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/feed_link.png rename to src/kasu/static/icons/feed_link.png diff --git a/kasu/static/icons/feed_magnify.png b/src/kasu/static/icons/feed_magnify.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/feed_magnify.png rename to src/kasu/static/icons/feed_magnify.png diff --git a/kasu/static/icons/female.png b/src/kasu/static/icons/female.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/female.png rename to src/kasu/static/icons/female.png diff --git a/kasu/static/icons/film.png b/src/kasu/static/icons/film.png similarity index 100% rename from kasu/static/icons/film.png rename to src/kasu/static/icons/film.png diff --git a/kasu/static/icons/film_add.png b/src/kasu/static/icons/film_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/film_add.png rename to src/kasu/static/icons/film_add.png diff --git a/kasu/static/icons/film_delete.png b/src/kasu/static/icons/film_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/film_delete.png rename to src/kasu/static/icons/film_delete.png diff --git a/kasu/static/icons/film_edit.png b/src/kasu/static/icons/film_edit.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/film_edit.png rename to src/kasu/static/icons/film_edit.png diff --git a/kasu/static/icons/film_error.png b/src/kasu/static/icons/film_error.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/film_error.png rename to src/kasu/static/icons/film_error.png diff --git a/kasu/static/icons/film_go.png b/src/kasu/static/icons/film_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/film_go.png rename to src/kasu/static/icons/film_go.png diff --git a/kasu/static/icons/film_key.png b/src/kasu/static/icons/film_key.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/film_key.png rename to src/kasu/static/icons/film_key.png diff --git a/kasu/static/icons/film_link.png b/src/kasu/static/icons/film_link.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/film_link.png rename to src/kasu/static/icons/film_link.png diff --git a/kasu/static/icons/film_save.png b/src/kasu/static/icons/film_save.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/film_save.png rename to src/kasu/static/icons/film_save.png diff --git a/kasu/static/icons/find.png b/src/kasu/static/icons/find.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/find.png rename to src/kasu/static/icons/find.png diff --git a/kasu/static/icons/flag_blue.png b/src/kasu/static/icons/flag_blue.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/flag_blue.png rename to src/kasu/static/icons/flag_blue.png diff --git a/kasu/static/icons/flag_green.png b/src/kasu/static/icons/flag_green.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/flag_green.png rename to src/kasu/static/icons/flag_green.png diff --git a/kasu/static/icons/flag_orange.png b/src/kasu/static/icons/flag_orange.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/flag_orange.png rename to src/kasu/static/icons/flag_orange.png diff --git a/kasu/static/icons/flag_pink.png b/src/kasu/static/icons/flag_pink.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/flag_pink.png rename to src/kasu/static/icons/flag_pink.png diff --git a/kasu/static/icons/flag_purple.png b/src/kasu/static/icons/flag_purple.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/flag_purple.png rename to src/kasu/static/icons/flag_purple.png diff --git a/kasu/static/icons/flag_red.png b/src/kasu/static/icons/flag_red.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/flag_red.png rename to src/kasu/static/icons/flag_red.png diff --git a/kasu/static/icons/flag_yellow.png b/src/kasu/static/icons/flag_yellow.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/flag_yellow.png rename to src/kasu/static/icons/flag_yellow.png diff --git a/kasu/static/icons/folder.png b/src/kasu/static/icons/folder.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/folder.png rename to src/kasu/static/icons/folder.png diff --git a/kasu/static/icons/folder_add.png b/src/kasu/static/icons/folder_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/folder_add.png rename to src/kasu/static/icons/folder_add.png diff --git a/kasu/static/icons/folder_bell.png b/src/kasu/static/icons/folder_bell.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/folder_bell.png rename to src/kasu/static/icons/folder_bell.png diff --git a/kasu/static/icons/folder_brick.png b/src/kasu/static/icons/folder_brick.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/folder_brick.png rename to src/kasu/static/icons/folder_brick.png diff --git a/kasu/static/icons/folder_bug.png b/src/kasu/static/icons/folder_bug.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/folder_bug.png rename to src/kasu/static/icons/folder_bug.png diff --git a/kasu/static/icons/folder_camera.png b/src/kasu/static/icons/folder_camera.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/folder_camera.png rename to src/kasu/static/icons/folder_camera.png diff --git a/kasu/static/icons/folder_database.png b/src/kasu/static/icons/folder_database.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/folder_database.png rename to src/kasu/static/icons/folder_database.png diff --git a/kasu/static/icons/folder_delete.png b/src/kasu/static/icons/folder_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/folder_delete.png rename to src/kasu/static/icons/folder_delete.png diff --git a/kasu/static/icons/folder_edit.png b/src/kasu/static/icons/folder_edit.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/folder_edit.png rename to src/kasu/static/icons/folder_edit.png diff --git a/kasu/static/icons/folder_error.png b/src/kasu/static/icons/folder_error.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/folder_error.png rename to src/kasu/static/icons/folder_error.png diff --git a/kasu/static/icons/folder_explore.png b/src/kasu/static/icons/folder_explore.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/folder_explore.png rename to src/kasu/static/icons/folder_explore.png diff --git a/kasu/static/icons/folder_feed.png b/src/kasu/static/icons/folder_feed.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/folder_feed.png rename to src/kasu/static/icons/folder_feed.png diff --git a/kasu/static/icons/folder_find.png b/src/kasu/static/icons/folder_find.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/folder_find.png rename to src/kasu/static/icons/folder_find.png diff --git a/kasu/static/icons/folder_go.png b/src/kasu/static/icons/folder_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/folder_go.png rename to src/kasu/static/icons/folder_go.png diff --git a/kasu/static/icons/folder_heart.png b/src/kasu/static/icons/folder_heart.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/folder_heart.png rename to src/kasu/static/icons/folder_heart.png diff --git a/kasu/static/icons/folder_image.png b/src/kasu/static/icons/folder_image.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/folder_image.png rename to src/kasu/static/icons/folder_image.png diff --git a/kasu/static/icons/folder_key.png b/src/kasu/static/icons/folder_key.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/folder_key.png rename to src/kasu/static/icons/folder_key.png diff --git a/kasu/static/icons/folder_lightbulb.png b/src/kasu/static/icons/folder_lightbulb.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/folder_lightbulb.png rename to src/kasu/static/icons/folder_lightbulb.png diff --git a/kasu/static/icons/folder_link.png b/src/kasu/static/icons/folder_link.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/folder_link.png rename to src/kasu/static/icons/folder_link.png diff --git a/kasu/static/icons/folder_magnify.png b/src/kasu/static/icons/folder_magnify.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/folder_magnify.png rename to src/kasu/static/icons/folder_magnify.png diff --git a/kasu/static/icons/folder_page.png b/src/kasu/static/icons/folder_page.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/folder_page.png rename to src/kasu/static/icons/folder_page.png diff --git a/kasu/static/icons/folder_page_white.png b/src/kasu/static/icons/folder_page_white.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/folder_page_white.png rename to src/kasu/static/icons/folder_page_white.png diff --git a/kasu/static/icons/folder_palette.png b/src/kasu/static/icons/folder_palette.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/folder_palette.png rename to src/kasu/static/icons/folder_palette.png diff --git a/kasu/static/icons/folder_picture.png b/src/kasu/static/icons/folder_picture.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/folder_picture.png rename to src/kasu/static/icons/folder_picture.png diff --git a/kasu/static/icons/folder_star.png b/src/kasu/static/icons/folder_star.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/folder_star.png rename to src/kasu/static/icons/folder_star.png diff --git a/kasu/static/icons/folder_table.png b/src/kasu/static/icons/folder_table.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/folder_table.png rename to src/kasu/static/icons/folder_table.png diff --git a/kasu/static/icons/folder_user.png b/src/kasu/static/icons/folder_user.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/folder_user.png rename to src/kasu/static/icons/folder_user.png diff --git a/kasu/static/icons/folder_wrench.png b/src/kasu/static/icons/folder_wrench.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/folder_wrench.png rename to src/kasu/static/icons/folder_wrench.png diff --git a/kasu/static/icons/font.png b/src/kasu/static/icons/font.png similarity index 100% rename from kasu/static/icons/font.png rename to src/kasu/static/icons/font.png diff --git a/kasu/static/icons/font_add.png b/src/kasu/static/icons/font_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/font_add.png rename to src/kasu/static/icons/font_add.png diff --git a/kasu/static/icons/font_delete.png b/src/kasu/static/icons/font_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/font_delete.png rename to src/kasu/static/icons/font_delete.png diff --git a/kasu/static/icons/font_go.png b/src/kasu/static/icons/font_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/font_go.png rename to src/kasu/static/icons/font_go.png diff --git a/kasu/static/icons/group.png b/src/kasu/static/icons/group.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/group.png rename to src/kasu/static/icons/group.png diff --git a/kasu/static/icons/group_add.png b/src/kasu/static/icons/group_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/group_add.png rename to src/kasu/static/icons/group_add.png diff --git a/kasu/static/icons/group_delete.png b/src/kasu/static/icons/group_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/group_delete.png rename to src/kasu/static/icons/group_delete.png diff --git a/kasu/static/icons/group_edit.png b/src/kasu/static/icons/group_edit.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/group_edit.png rename to src/kasu/static/icons/group_edit.png diff --git a/kasu/static/icons/group_error.png b/src/kasu/static/icons/group_error.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/group_error.png rename to src/kasu/static/icons/group_error.png diff --git a/kasu/static/icons/group_gear.png b/src/kasu/static/icons/group_gear.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/group_gear.png rename to src/kasu/static/icons/group_gear.png diff --git a/kasu/static/icons/group_go.png b/src/kasu/static/icons/group_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/group_go.png rename to src/kasu/static/icons/group_go.png diff --git a/kasu/static/icons/group_key.png b/src/kasu/static/icons/group_key.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/group_key.png rename to src/kasu/static/icons/group_key.png diff --git a/kasu/static/icons/group_link.png b/src/kasu/static/icons/group_link.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/group_link.png rename to src/kasu/static/icons/group_link.png diff --git a/kasu/static/icons/heart.png b/src/kasu/static/icons/heart.png similarity index 100% rename from kasu/static/icons/heart.png rename to src/kasu/static/icons/heart.png diff --git a/kasu/static/icons/heart_add.png b/src/kasu/static/icons/heart_add.png similarity index 100% rename from kasu/static/icons/heart_add.png rename to src/kasu/static/icons/heart_add.png diff --git a/kasu/static/icons/heart_delete.png b/src/kasu/static/icons/heart_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/heart_delete.png rename to src/kasu/static/icons/heart_delete.png diff --git a/kasu/static/icons/help.png b/src/kasu/static/icons/help.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/help.png rename to src/kasu/static/icons/help.png diff --git a/kasu/static/icons/hourglass.png b/src/kasu/static/icons/hourglass.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/hourglass.png rename to src/kasu/static/icons/hourglass.png diff --git a/kasu/static/icons/hourglass_add.png b/src/kasu/static/icons/hourglass_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/hourglass_add.png rename to src/kasu/static/icons/hourglass_add.png diff --git a/kasu/static/icons/hourglass_delete.png b/src/kasu/static/icons/hourglass_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/hourglass_delete.png rename to src/kasu/static/icons/hourglass_delete.png diff --git a/kasu/static/icons/hourglass_go.png b/src/kasu/static/icons/hourglass_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/hourglass_go.png rename to src/kasu/static/icons/hourglass_go.png diff --git a/kasu/static/icons/hourglass_link.png b/src/kasu/static/icons/hourglass_link.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/hourglass_link.png rename to src/kasu/static/icons/hourglass_link.png diff --git a/kasu/static/icons/house.png b/src/kasu/static/icons/house.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/house.png rename to src/kasu/static/icons/house.png diff --git a/kasu/static/icons/house_go.png b/src/kasu/static/icons/house_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/house_go.png rename to src/kasu/static/icons/house_go.png diff --git a/kasu/static/icons/house_link.png b/src/kasu/static/icons/house_link.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/house_link.png rename to src/kasu/static/icons/house_link.png diff --git a/kasu/static/icons/html.png b/src/kasu/static/icons/html.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/html.png rename to src/kasu/static/icons/html.png diff --git a/kasu/static/icons/html_add.png b/src/kasu/static/icons/html_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/html_add.png rename to src/kasu/static/icons/html_add.png diff --git a/kasu/static/icons/html_delete.png b/src/kasu/static/icons/html_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/html_delete.png rename to src/kasu/static/icons/html_delete.png diff --git a/kasu/static/icons/html_go.png b/src/kasu/static/icons/html_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/html_go.png rename to src/kasu/static/icons/html_go.png diff --git a/kasu/static/icons/html_valid.png b/src/kasu/static/icons/html_valid.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/html_valid.png rename to src/kasu/static/icons/html_valid.png diff --git a/kasu/static/icons/image.png b/src/kasu/static/icons/image.png similarity index 100% rename from kasu/static/icons/image.png rename to src/kasu/static/icons/image.png diff --git a/kasu/static/icons/image_add.png b/src/kasu/static/icons/image_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/image_add.png rename to src/kasu/static/icons/image_add.png diff --git a/kasu/static/icons/image_delete.png b/src/kasu/static/icons/image_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/image_delete.png rename to src/kasu/static/icons/image_delete.png diff --git a/kasu/static/icons/image_edit.png b/src/kasu/static/icons/image_edit.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/image_edit.png rename to src/kasu/static/icons/image_edit.png diff --git a/kasu/static/icons/image_link.png b/src/kasu/static/icons/image_link.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/image_link.png rename to src/kasu/static/icons/image_link.png diff --git a/kasu/static/icons/images.png b/src/kasu/static/icons/images.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/images.png rename to src/kasu/static/icons/images.png diff --git a/kasu/static/icons/information.png b/src/kasu/static/icons/information.png similarity index 100% rename from kasu/static/icons/information.png rename to src/kasu/static/icons/information.png diff --git a/kasu/static/icons/ipod.png b/src/kasu/static/icons/ipod.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/ipod.png rename to src/kasu/static/icons/ipod.png diff --git a/kasu/static/icons/ipod_cast.png b/src/kasu/static/icons/ipod_cast.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/ipod_cast.png rename to src/kasu/static/icons/ipod_cast.png diff --git a/kasu/static/icons/ipod_cast_add.png b/src/kasu/static/icons/ipod_cast_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/ipod_cast_add.png rename to src/kasu/static/icons/ipod_cast_add.png diff --git a/kasu/static/icons/ipod_cast_delete.png b/src/kasu/static/icons/ipod_cast_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/ipod_cast_delete.png rename to src/kasu/static/icons/ipod_cast_delete.png diff --git a/kasu/static/icons/ipod_sound.png b/src/kasu/static/icons/ipod_sound.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/ipod_sound.png rename to src/kasu/static/icons/ipod_sound.png diff --git a/kasu/static/icons/joystick.png b/src/kasu/static/icons/joystick.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/joystick.png rename to src/kasu/static/icons/joystick.png diff --git a/kasu/static/icons/joystick_add.png b/src/kasu/static/icons/joystick_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/joystick_add.png rename to src/kasu/static/icons/joystick_add.png diff --git a/kasu/static/icons/joystick_delete.png b/src/kasu/static/icons/joystick_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/joystick_delete.png rename to src/kasu/static/icons/joystick_delete.png diff --git a/kasu/static/icons/joystick_error.png b/src/kasu/static/icons/joystick_error.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/joystick_error.png rename to src/kasu/static/icons/joystick_error.png diff --git a/kasu/static/icons/key.png b/src/kasu/static/icons/key.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/key.png rename to src/kasu/static/icons/key.png diff --git a/kasu/static/icons/key_add.png b/src/kasu/static/icons/key_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/key_add.png rename to src/kasu/static/icons/key_add.png diff --git a/kasu/static/icons/key_delete.png b/src/kasu/static/icons/key_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/key_delete.png rename to src/kasu/static/icons/key_delete.png diff --git a/kasu/static/icons/key_go.png b/src/kasu/static/icons/key_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/key_go.png rename to src/kasu/static/icons/key_go.png diff --git a/kasu/static/icons/keyboard.png b/src/kasu/static/icons/keyboard.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/keyboard.png rename to src/kasu/static/icons/keyboard.png diff --git a/kasu/static/icons/keyboard_add.png b/src/kasu/static/icons/keyboard_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/keyboard_add.png rename to src/kasu/static/icons/keyboard_add.png diff --git a/kasu/static/icons/keyboard_delete.png b/src/kasu/static/icons/keyboard_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/keyboard_delete.png rename to src/kasu/static/icons/keyboard_delete.png diff --git a/kasu/static/icons/keyboard_magnify.png b/src/kasu/static/icons/keyboard_magnify.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/keyboard_magnify.png rename to src/kasu/static/icons/keyboard_magnify.png diff --git a/kasu/static/icons/layers.png b/src/kasu/static/icons/layers.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/layers.png rename to src/kasu/static/icons/layers.png diff --git a/kasu/static/icons/layout.png b/src/kasu/static/icons/layout.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/layout.png rename to src/kasu/static/icons/layout.png diff --git a/kasu/static/icons/layout_add.png b/src/kasu/static/icons/layout_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/layout_add.png rename to src/kasu/static/icons/layout_add.png diff --git a/kasu/static/icons/layout_content.png b/src/kasu/static/icons/layout_content.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/layout_content.png rename to src/kasu/static/icons/layout_content.png diff --git a/kasu/static/icons/layout_delete.png b/src/kasu/static/icons/layout_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/layout_delete.png rename to src/kasu/static/icons/layout_delete.png diff --git a/kasu/static/icons/layout_edit.png b/src/kasu/static/icons/layout_edit.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/layout_edit.png rename to src/kasu/static/icons/layout_edit.png diff --git a/kasu/static/icons/layout_error.png b/src/kasu/static/icons/layout_error.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/layout_error.png rename to src/kasu/static/icons/layout_error.png diff --git a/kasu/static/icons/layout_header.png b/src/kasu/static/icons/layout_header.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/layout_header.png rename to src/kasu/static/icons/layout_header.png diff --git a/kasu/static/icons/layout_link.png b/src/kasu/static/icons/layout_link.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/layout_link.png rename to src/kasu/static/icons/layout_link.png diff --git a/kasu/static/icons/layout_sidebar.png b/src/kasu/static/icons/layout_sidebar.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/layout_sidebar.png rename to src/kasu/static/icons/layout_sidebar.png diff --git a/kasu/static/icons/lightbulb.png b/src/kasu/static/icons/lightbulb.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/lightbulb.png rename to src/kasu/static/icons/lightbulb.png diff --git a/kasu/static/icons/lightbulb_add.png b/src/kasu/static/icons/lightbulb_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/lightbulb_add.png rename to src/kasu/static/icons/lightbulb_add.png diff --git a/kasu/static/icons/lightbulb_delete.png b/src/kasu/static/icons/lightbulb_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/lightbulb_delete.png rename to src/kasu/static/icons/lightbulb_delete.png diff --git a/kasu/static/icons/lightbulb_off.png b/src/kasu/static/icons/lightbulb_off.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/lightbulb_off.png rename to src/kasu/static/icons/lightbulb_off.png diff --git a/kasu/static/icons/lightning.png b/src/kasu/static/icons/lightning.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/lightning.png rename to src/kasu/static/icons/lightning.png diff --git a/kasu/static/icons/lightning_add.png b/src/kasu/static/icons/lightning_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/lightning_add.png rename to src/kasu/static/icons/lightning_add.png diff --git a/kasu/static/icons/lightning_delete.png b/src/kasu/static/icons/lightning_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/lightning_delete.png rename to src/kasu/static/icons/lightning_delete.png diff --git a/kasu/static/icons/lightning_go.png b/src/kasu/static/icons/lightning_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/lightning_go.png rename to src/kasu/static/icons/lightning_go.png diff --git a/kasu/static/icons/link.png b/src/kasu/static/icons/link.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/link.png rename to src/kasu/static/icons/link.png diff --git a/kasu/static/icons/link_add.png b/src/kasu/static/icons/link_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/link_add.png rename to src/kasu/static/icons/link_add.png diff --git a/kasu/static/icons/link_break.png b/src/kasu/static/icons/link_break.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/link_break.png rename to src/kasu/static/icons/link_break.png diff --git a/kasu/static/icons/link_delete.png b/src/kasu/static/icons/link_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/link_delete.png rename to src/kasu/static/icons/link_delete.png diff --git a/kasu/static/icons/link_edit.png b/src/kasu/static/icons/link_edit.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/link_edit.png rename to src/kasu/static/icons/link_edit.png diff --git a/kasu/static/icons/link_error.png b/src/kasu/static/icons/link_error.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/link_error.png rename to src/kasu/static/icons/link_error.png diff --git a/kasu/static/icons/link_go.png b/src/kasu/static/icons/link_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/link_go.png rename to src/kasu/static/icons/link_go.png diff --git a/kasu/static/icons/lock.png b/src/kasu/static/icons/lock.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/lock.png rename to src/kasu/static/icons/lock.png diff --git a/kasu/static/icons/lock_add.png b/src/kasu/static/icons/lock_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/lock_add.png rename to src/kasu/static/icons/lock_add.png diff --git a/kasu/static/icons/lock_break.png b/src/kasu/static/icons/lock_break.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/lock_break.png rename to src/kasu/static/icons/lock_break.png diff --git a/kasu/static/icons/lock_delete.png b/src/kasu/static/icons/lock_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/lock_delete.png rename to src/kasu/static/icons/lock_delete.png diff --git a/kasu/static/icons/lock_edit.png b/src/kasu/static/icons/lock_edit.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/lock_edit.png rename to src/kasu/static/icons/lock_edit.png diff --git a/kasu/static/icons/lock_go.png b/src/kasu/static/icons/lock_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/lock_go.png rename to src/kasu/static/icons/lock_go.png diff --git a/kasu/static/icons/lock_open.png b/src/kasu/static/icons/lock_open.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/lock_open.png rename to src/kasu/static/icons/lock_open.png diff --git a/kasu/static/icons/lorry.png b/src/kasu/static/icons/lorry.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/lorry.png rename to src/kasu/static/icons/lorry.png diff --git a/kasu/static/icons/lorry_add.png b/src/kasu/static/icons/lorry_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/lorry_add.png rename to src/kasu/static/icons/lorry_add.png diff --git a/kasu/static/icons/lorry_delete.png b/src/kasu/static/icons/lorry_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/lorry_delete.png rename to src/kasu/static/icons/lorry_delete.png diff --git a/kasu/static/icons/lorry_error.png b/src/kasu/static/icons/lorry_error.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/lorry_error.png rename to src/kasu/static/icons/lorry_error.png diff --git a/kasu/static/icons/lorry_flatbed.png b/src/kasu/static/icons/lorry_flatbed.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/lorry_flatbed.png rename to src/kasu/static/icons/lorry_flatbed.png diff --git a/kasu/static/icons/lorry_go.png b/src/kasu/static/icons/lorry_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/lorry_go.png rename to src/kasu/static/icons/lorry_go.png diff --git a/kasu/static/icons/lorry_link.png b/src/kasu/static/icons/lorry_link.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/lorry_link.png rename to src/kasu/static/icons/lorry_link.png diff --git a/kasu/static/icons/magifier_zoom_out.png b/src/kasu/static/icons/magifier_zoom_out.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/magifier_zoom_out.png rename to src/kasu/static/icons/magifier_zoom_out.png diff --git a/kasu/static/icons/magnifier.png b/src/kasu/static/icons/magnifier.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/magnifier.png rename to src/kasu/static/icons/magnifier.png diff --git a/kasu/static/icons/magnifier_zoom_in.png b/src/kasu/static/icons/magnifier_zoom_in.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/magnifier_zoom_in.png rename to src/kasu/static/icons/magnifier_zoom_in.png diff --git a/kasu/static/icons/male.png b/src/kasu/static/icons/male.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/male.png rename to src/kasu/static/icons/male.png diff --git a/kasu/static/icons/map.png b/src/kasu/static/icons/map.png similarity index 100% rename from kasu/static/icons/map.png rename to src/kasu/static/icons/map.png diff --git a/kasu/static/icons/map_add.png b/src/kasu/static/icons/map_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/map_add.png rename to src/kasu/static/icons/map_add.png diff --git a/kasu/static/icons/map_delete.png b/src/kasu/static/icons/map_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/map_delete.png rename to src/kasu/static/icons/map_delete.png diff --git a/kasu/static/icons/map_edit.png b/src/kasu/static/icons/map_edit.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/map_edit.png rename to src/kasu/static/icons/map_edit.png diff --git a/kasu/static/icons/map_go.png b/src/kasu/static/icons/map_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/map_go.png rename to src/kasu/static/icons/map_go.png diff --git a/kasu/static/icons/map_magnify.png b/src/kasu/static/icons/map_magnify.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/map_magnify.png rename to src/kasu/static/icons/map_magnify.png diff --git a/kasu/static/icons/medal_bronze_1.png b/src/kasu/static/icons/medal_bronze_1.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/medal_bronze_1.png rename to src/kasu/static/icons/medal_bronze_1.png diff --git a/kasu/static/icons/medal_bronze_2.png b/src/kasu/static/icons/medal_bronze_2.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/medal_bronze_2.png rename to src/kasu/static/icons/medal_bronze_2.png diff --git a/kasu/static/icons/medal_bronze_3.png b/src/kasu/static/icons/medal_bronze_3.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/medal_bronze_3.png rename to src/kasu/static/icons/medal_bronze_3.png diff --git a/kasu/static/icons/medal_bronze_add.png b/src/kasu/static/icons/medal_bronze_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/medal_bronze_add.png rename to src/kasu/static/icons/medal_bronze_add.png diff --git a/kasu/static/icons/medal_bronze_delete.png b/src/kasu/static/icons/medal_bronze_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/medal_bronze_delete.png rename to src/kasu/static/icons/medal_bronze_delete.png diff --git a/kasu/static/icons/medal_gold_1.png b/src/kasu/static/icons/medal_gold_1.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/medal_gold_1.png rename to src/kasu/static/icons/medal_gold_1.png diff --git a/kasu/static/icons/medal_gold_2.png b/src/kasu/static/icons/medal_gold_2.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/medal_gold_2.png rename to src/kasu/static/icons/medal_gold_2.png diff --git a/kasu/static/icons/medal_gold_3.png b/src/kasu/static/icons/medal_gold_3.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/medal_gold_3.png rename to src/kasu/static/icons/medal_gold_3.png diff --git a/kasu/static/icons/medal_gold_add.png b/src/kasu/static/icons/medal_gold_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/medal_gold_add.png rename to src/kasu/static/icons/medal_gold_add.png diff --git a/kasu/static/icons/medal_gold_delete.png b/src/kasu/static/icons/medal_gold_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/medal_gold_delete.png rename to src/kasu/static/icons/medal_gold_delete.png diff --git a/kasu/static/icons/medal_silver_1.png b/src/kasu/static/icons/medal_silver_1.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/medal_silver_1.png rename to src/kasu/static/icons/medal_silver_1.png diff --git a/kasu/static/icons/medal_silver_2.png b/src/kasu/static/icons/medal_silver_2.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/medal_silver_2.png rename to src/kasu/static/icons/medal_silver_2.png diff --git a/kasu/static/icons/medal_silver_3.png b/src/kasu/static/icons/medal_silver_3.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/medal_silver_3.png rename to src/kasu/static/icons/medal_silver_3.png diff --git a/kasu/static/icons/medal_silver_add.png b/src/kasu/static/icons/medal_silver_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/medal_silver_add.png rename to src/kasu/static/icons/medal_silver_add.png diff --git a/kasu/static/icons/medal_silver_delete.png b/src/kasu/static/icons/medal_silver_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/medal_silver_delete.png rename to src/kasu/static/icons/medal_silver_delete.png diff --git a/kasu/static/icons/money.png b/src/kasu/static/icons/money.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/money.png rename to src/kasu/static/icons/money.png diff --git a/kasu/static/icons/money_add.png b/src/kasu/static/icons/money_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/money_add.png rename to src/kasu/static/icons/money_add.png diff --git a/kasu/static/icons/money_delete.png b/src/kasu/static/icons/money_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/money_delete.png rename to src/kasu/static/icons/money_delete.png diff --git a/kasu/static/icons/money_dollar.png b/src/kasu/static/icons/money_dollar.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/money_dollar.png rename to src/kasu/static/icons/money_dollar.png diff --git a/kasu/static/icons/money_euro.png b/src/kasu/static/icons/money_euro.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/money_euro.png rename to src/kasu/static/icons/money_euro.png diff --git a/kasu/static/icons/money_pound.png b/src/kasu/static/icons/money_pound.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/money_pound.png rename to src/kasu/static/icons/money_pound.png diff --git a/kasu/static/icons/money_yen.png b/src/kasu/static/icons/money_yen.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/money_yen.png rename to src/kasu/static/icons/money_yen.png diff --git a/kasu/static/icons/monitor.png b/src/kasu/static/icons/monitor.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/monitor.png rename to src/kasu/static/icons/monitor.png diff --git a/kasu/static/icons/monitor_add.png b/src/kasu/static/icons/monitor_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/monitor_add.png rename to src/kasu/static/icons/monitor_add.png diff --git a/kasu/static/icons/monitor_delete.png b/src/kasu/static/icons/monitor_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/monitor_delete.png rename to src/kasu/static/icons/monitor_delete.png diff --git a/kasu/static/icons/monitor_edit.png b/src/kasu/static/icons/monitor_edit.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/monitor_edit.png rename to src/kasu/static/icons/monitor_edit.png diff --git a/kasu/static/icons/monitor_error.png b/src/kasu/static/icons/monitor_error.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/monitor_error.png rename to src/kasu/static/icons/monitor_error.png diff --git a/kasu/static/icons/monitor_go.png b/src/kasu/static/icons/monitor_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/monitor_go.png rename to src/kasu/static/icons/monitor_go.png diff --git a/kasu/static/icons/monitor_lightning.png b/src/kasu/static/icons/monitor_lightning.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/monitor_lightning.png rename to src/kasu/static/icons/monitor_lightning.png diff --git a/kasu/static/icons/monitor_link.png b/src/kasu/static/icons/monitor_link.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/monitor_link.png rename to src/kasu/static/icons/monitor_link.png diff --git a/kasu/static/icons/mouse.png b/src/kasu/static/icons/mouse.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/mouse.png rename to src/kasu/static/icons/mouse.png diff --git a/kasu/static/icons/mouse_add.png b/src/kasu/static/icons/mouse_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/mouse_add.png rename to src/kasu/static/icons/mouse_add.png diff --git a/kasu/static/icons/mouse_delete.png b/src/kasu/static/icons/mouse_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/mouse_delete.png rename to src/kasu/static/icons/mouse_delete.png diff --git a/kasu/static/icons/mouse_error.png b/src/kasu/static/icons/mouse_error.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/mouse_error.png rename to src/kasu/static/icons/mouse_error.png diff --git a/kasu/static/icons/music.png b/src/kasu/static/icons/music.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/music.png rename to src/kasu/static/icons/music.png diff --git a/kasu/static/icons/new.png b/src/kasu/static/icons/new.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/new.png rename to src/kasu/static/icons/new.png diff --git a/kasu/static/icons/newspaper.png b/src/kasu/static/icons/newspaper.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/newspaper.png rename to src/kasu/static/icons/newspaper.png diff --git a/kasu/static/icons/newspaper_add.png b/src/kasu/static/icons/newspaper_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/newspaper_add.png rename to src/kasu/static/icons/newspaper_add.png diff --git a/kasu/static/icons/newspaper_delete.png b/src/kasu/static/icons/newspaper_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/newspaper_delete.png rename to src/kasu/static/icons/newspaper_delete.png diff --git a/kasu/static/icons/newspaper_go.png b/src/kasu/static/icons/newspaper_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/newspaper_go.png rename to src/kasu/static/icons/newspaper_go.png diff --git a/kasu/static/icons/newspaper_link.png b/src/kasu/static/icons/newspaper_link.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/newspaper_link.png rename to src/kasu/static/icons/newspaper_link.png diff --git a/kasu/static/icons/note.png b/src/kasu/static/icons/note.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/note.png rename to src/kasu/static/icons/note.png diff --git a/kasu/static/icons/note_add.png b/src/kasu/static/icons/note_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/note_add.png rename to src/kasu/static/icons/note_add.png diff --git a/kasu/static/icons/note_delete.png b/src/kasu/static/icons/note_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/note_delete.png rename to src/kasu/static/icons/note_delete.png diff --git a/kasu/static/icons/note_edit.png b/src/kasu/static/icons/note_edit.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/note_edit.png rename to src/kasu/static/icons/note_edit.png diff --git a/kasu/static/icons/note_error.png b/src/kasu/static/icons/note_error.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/note_error.png rename to src/kasu/static/icons/note_error.png diff --git a/kasu/static/icons/note_go.png b/src/kasu/static/icons/note_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/note_go.png rename to src/kasu/static/icons/note_go.png diff --git a/kasu/static/icons/overlays.png b/src/kasu/static/icons/overlays.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/overlays.png rename to src/kasu/static/icons/overlays.png diff --git a/kasu/static/icons/package.png b/src/kasu/static/icons/package.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/package.png rename to src/kasu/static/icons/package.png diff --git a/kasu/static/icons/package_add.png b/src/kasu/static/icons/package_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/package_add.png rename to src/kasu/static/icons/package_add.png diff --git a/kasu/static/icons/package_delete.png b/src/kasu/static/icons/package_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/package_delete.png rename to src/kasu/static/icons/package_delete.png diff --git a/kasu/static/icons/package_go.png b/src/kasu/static/icons/package_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/package_go.png rename to src/kasu/static/icons/package_go.png diff --git a/kasu/static/icons/package_green.png b/src/kasu/static/icons/package_green.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/package_green.png rename to src/kasu/static/icons/package_green.png diff --git a/kasu/static/icons/package_link.png b/src/kasu/static/icons/package_link.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/package_link.png rename to src/kasu/static/icons/package_link.png diff --git a/kasu/static/icons/page.png b/src/kasu/static/icons/page.png similarity index 100% rename from kasu/static/icons/page.png rename to src/kasu/static/icons/page.png diff --git a/kasu/static/icons/page_add.png b/src/kasu/static/icons/page_add.png similarity index 100% rename from kasu/static/icons/page_add.png rename to src/kasu/static/icons/page_add.png diff --git a/kasu/static/icons/page_attach.png b/src/kasu/static/icons/page_attach.png similarity index 100% rename from kasu/static/icons/page_attach.png rename to src/kasu/static/icons/page_attach.png diff --git a/kasu/static/icons/page_code.png b/src/kasu/static/icons/page_code.png similarity index 100% rename from kasu/static/icons/page_code.png rename to src/kasu/static/icons/page_code.png diff --git a/kasu/static/icons/page_copy.png b/src/kasu/static/icons/page_copy.png similarity index 100% rename from kasu/static/icons/page_copy.png rename to src/kasu/static/icons/page_copy.png diff --git a/kasu/static/icons/page_delete.png b/src/kasu/static/icons/page_delete.png similarity index 100% rename from kasu/static/icons/page_delete.png rename to src/kasu/static/icons/page_delete.png diff --git a/kasu/static/icons/page_edit.png b/src/kasu/static/icons/page_edit.png similarity index 100% rename from kasu/static/icons/page_edit.png rename to src/kasu/static/icons/page_edit.png diff --git a/kasu/static/icons/page_error.png b/src/kasu/static/icons/page_error.png similarity index 100% rename from kasu/static/icons/page_error.png rename to src/kasu/static/icons/page_error.png diff --git a/kasu/static/icons/page_excel.png b/src/kasu/static/icons/page_excel.png similarity index 100% rename from kasu/static/icons/page_excel.png rename to src/kasu/static/icons/page_excel.png diff --git a/kasu/static/icons/page_find.png b/src/kasu/static/icons/page_find.png similarity index 100% rename from kasu/static/icons/page_find.png rename to src/kasu/static/icons/page_find.png diff --git a/kasu/static/icons/page_gear.png b/src/kasu/static/icons/page_gear.png similarity index 100% rename from kasu/static/icons/page_gear.png rename to src/kasu/static/icons/page_gear.png diff --git a/kasu/static/icons/page_go.png b/src/kasu/static/icons/page_go.png similarity index 100% rename from kasu/static/icons/page_go.png rename to src/kasu/static/icons/page_go.png diff --git a/kasu/static/icons/page_green.png b/src/kasu/static/icons/page_green.png similarity index 100% rename from kasu/static/icons/page_green.png rename to src/kasu/static/icons/page_green.png diff --git a/kasu/static/icons/page_key.png b/src/kasu/static/icons/page_key.png similarity index 100% rename from kasu/static/icons/page_key.png rename to src/kasu/static/icons/page_key.png diff --git a/kasu/static/icons/page_lightning.png b/src/kasu/static/icons/page_lightning.png similarity index 100% rename from kasu/static/icons/page_lightning.png rename to src/kasu/static/icons/page_lightning.png diff --git a/kasu/static/icons/page_link.png b/src/kasu/static/icons/page_link.png similarity index 100% rename from kasu/static/icons/page_link.png rename to src/kasu/static/icons/page_link.png diff --git a/kasu/static/icons/page_paintbrush.png b/src/kasu/static/icons/page_paintbrush.png similarity index 100% rename from kasu/static/icons/page_paintbrush.png rename to src/kasu/static/icons/page_paintbrush.png diff --git a/kasu/static/icons/page_paste.png b/src/kasu/static/icons/page_paste.png similarity index 100% rename from kasu/static/icons/page_paste.png rename to src/kasu/static/icons/page_paste.png diff --git a/kasu/static/icons/page_red.png b/src/kasu/static/icons/page_red.png similarity index 100% rename from kasu/static/icons/page_red.png rename to src/kasu/static/icons/page_red.png diff --git a/kasu/static/icons/page_refresh.png b/src/kasu/static/icons/page_refresh.png similarity index 100% rename from kasu/static/icons/page_refresh.png rename to src/kasu/static/icons/page_refresh.png diff --git a/kasu/static/icons/page_save.png b/src/kasu/static/icons/page_save.png similarity index 100% rename from kasu/static/icons/page_save.png rename to src/kasu/static/icons/page_save.png diff --git a/kasu/static/icons/page_white.png b/src/kasu/static/icons/page_white.png similarity index 100% rename from kasu/static/icons/page_white.png rename to src/kasu/static/icons/page_white.png diff --git a/kasu/static/icons/page_white_acrobat.png b/src/kasu/static/icons/page_white_acrobat.png similarity index 100% rename from kasu/static/icons/page_white_acrobat.png rename to src/kasu/static/icons/page_white_acrobat.png diff --git a/kasu/static/icons/page_white_actionscript.png b/src/kasu/static/icons/page_white_actionscript.png similarity index 100% rename from kasu/static/icons/page_white_actionscript.png rename to src/kasu/static/icons/page_white_actionscript.png diff --git a/kasu/static/icons/page_white_add.png b/src/kasu/static/icons/page_white_add.png similarity index 100% rename from kasu/static/icons/page_white_add.png rename to src/kasu/static/icons/page_white_add.png diff --git a/kasu/static/icons/page_white_c.png b/src/kasu/static/icons/page_white_c.png similarity index 100% rename from kasu/static/icons/page_white_c.png rename to src/kasu/static/icons/page_white_c.png diff --git a/kasu/static/icons/page_white_camera.png b/src/kasu/static/icons/page_white_camera.png similarity index 100% rename from kasu/static/icons/page_white_camera.png rename to src/kasu/static/icons/page_white_camera.png diff --git a/kasu/static/icons/page_white_cd.png b/src/kasu/static/icons/page_white_cd.png similarity index 100% rename from kasu/static/icons/page_white_cd.png rename to src/kasu/static/icons/page_white_cd.png diff --git a/kasu/static/icons/page_white_code.png b/src/kasu/static/icons/page_white_code.png similarity index 100% rename from kasu/static/icons/page_white_code.png rename to src/kasu/static/icons/page_white_code.png diff --git a/kasu/static/icons/page_white_code_red.png b/src/kasu/static/icons/page_white_code_red.png similarity index 100% rename from kasu/static/icons/page_white_code_red.png rename to src/kasu/static/icons/page_white_code_red.png diff --git a/kasu/static/icons/page_white_coldfusion.png b/src/kasu/static/icons/page_white_coldfusion.png similarity index 100% rename from kasu/static/icons/page_white_coldfusion.png rename to src/kasu/static/icons/page_white_coldfusion.png diff --git a/kasu/static/icons/page_white_compressed.png b/src/kasu/static/icons/page_white_compressed.png similarity index 100% rename from kasu/static/icons/page_white_compressed.png rename to src/kasu/static/icons/page_white_compressed.png diff --git a/kasu/static/icons/page_white_copy.png b/src/kasu/static/icons/page_white_copy.png similarity index 100% rename from kasu/static/icons/page_white_copy.png rename to src/kasu/static/icons/page_white_copy.png diff --git a/kasu/static/icons/page_white_cplusplus.png b/src/kasu/static/icons/page_white_cplusplus.png similarity index 100% rename from kasu/static/icons/page_white_cplusplus.png rename to src/kasu/static/icons/page_white_cplusplus.png diff --git a/kasu/static/icons/page_white_csharp.png b/src/kasu/static/icons/page_white_csharp.png similarity index 100% rename from kasu/static/icons/page_white_csharp.png rename to src/kasu/static/icons/page_white_csharp.png diff --git a/kasu/static/icons/page_white_cup.png b/src/kasu/static/icons/page_white_cup.png similarity index 100% rename from kasu/static/icons/page_white_cup.png rename to src/kasu/static/icons/page_white_cup.png diff --git a/kasu/static/icons/page_white_database.png b/src/kasu/static/icons/page_white_database.png similarity index 100% rename from kasu/static/icons/page_white_database.png rename to src/kasu/static/icons/page_white_database.png diff --git a/kasu/static/icons/page_white_delete.png b/src/kasu/static/icons/page_white_delete.png similarity index 100% rename from kasu/static/icons/page_white_delete.png rename to src/kasu/static/icons/page_white_delete.png diff --git a/kasu/static/icons/page_white_dvd.png b/src/kasu/static/icons/page_white_dvd.png similarity index 100% rename from kasu/static/icons/page_white_dvd.png rename to src/kasu/static/icons/page_white_dvd.png diff --git a/kasu/static/icons/page_white_edit.png b/src/kasu/static/icons/page_white_edit.png similarity index 100% rename from kasu/static/icons/page_white_edit.png rename to src/kasu/static/icons/page_white_edit.png diff --git a/kasu/static/icons/page_white_error.png b/src/kasu/static/icons/page_white_error.png similarity index 100% rename from kasu/static/icons/page_white_error.png rename to src/kasu/static/icons/page_white_error.png diff --git a/kasu/static/icons/page_white_excel.png b/src/kasu/static/icons/page_white_excel.png similarity index 100% rename from kasu/static/icons/page_white_excel.png rename to src/kasu/static/icons/page_white_excel.png diff --git a/kasu/static/icons/page_white_find.png b/src/kasu/static/icons/page_white_find.png similarity index 100% rename from kasu/static/icons/page_white_find.png rename to src/kasu/static/icons/page_white_find.png diff --git a/kasu/static/icons/page_white_flash.png b/src/kasu/static/icons/page_white_flash.png similarity index 100% rename from kasu/static/icons/page_white_flash.png rename to src/kasu/static/icons/page_white_flash.png diff --git a/kasu/static/icons/page_white_freehand.png b/src/kasu/static/icons/page_white_freehand.png similarity index 100% rename from kasu/static/icons/page_white_freehand.png rename to src/kasu/static/icons/page_white_freehand.png diff --git a/kasu/static/icons/page_white_gear.png b/src/kasu/static/icons/page_white_gear.png similarity index 100% rename from kasu/static/icons/page_white_gear.png rename to src/kasu/static/icons/page_white_gear.png diff --git a/kasu/static/icons/page_white_get.png b/src/kasu/static/icons/page_white_get.png similarity index 100% rename from kasu/static/icons/page_white_get.png rename to src/kasu/static/icons/page_white_get.png diff --git a/kasu/static/icons/page_white_go.png b/src/kasu/static/icons/page_white_go.png similarity index 100% rename from kasu/static/icons/page_white_go.png rename to src/kasu/static/icons/page_white_go.png diff --git a/kasu/static/icons/page_white_h.png b/src/kasu/static/icons/page_white_h.png similarity index 100% rename from kasu/static/icons/page_white_h.png rename to src/kasu/static/icons/page_white_h.png diff --git a/kasu/static/icons/page_white_horizontal.png b/src/kasu/static/icons/page_white_horizontal.png similarity index 100% rename from kasu/static/icons/page_white_horizontal.png rename to src/kasu/static/icons/page_white_horizontal.png diff --git a/kasu/static/icons/page_white_key.png b/src/kasu/static/icons/page_white_key.png similarity index 100% rename from kasu/static/icons/page_white_key.png rename to src/kasu/static/icons/page_white_key.png diff --git a/kasu/static/icons/page_white_lightning.png b/src/kasu/static/icons/page_white_lightning.png similarity index 100% rename from kasu/static/icons/page_white_lightning.png rename to src/kasu/static/icons/page_white_lightning.png diff --git a/kasu/static/icons/page_white_link.png b/src/kasu/static/icons/page_white_link.png similarity index 100% rename from kasu/static/icons/page_white_link.png rename to src/kasu/static/icons/page_white_link.png diff --git a/kasu/static/icons/page_white_magnify.png b/src/kasu/static/icons/page_white_magnify.png similarity index 100% rename from kasu/static/icons/page_white_magnify.png rename to src/kasu/static/icons/page_white_magnify.png diff --git a/kasu/static/icons/page_white_medal.png b/src/kasu/static/icons/page_white_medal.png similarity index 100% rename from kasu/static/icons/page_white_medal.png rename to src/kasu/static/icons/page_white_medal.png diff --git a/kasu/static/icons/page_white_office.png b/src/kasu/static/icons/page_white_office.png similarity index 100% rename from kasu/static/icons/page_white_office.png rename to src/kasu/static/icons/page_white_office.png diff --git a/kasu/static/icons/page_white_paint.png b/src/kasu/static/icons/page_white_paint.png similarity index 100% rename from kasu/static/icons/page_white_paint.png rename to src/kasu/static/icons/page_white_paint.png diff --git a/kasu/static/icons/page_white_paintbrush.png b/src/kasu/static/icons/page_white_paintbrush.png similarity index 100% rename from kasu/static/icons/page_white_paintbrush.png rename to src/kasu/static/icons/page_white_paintbrush.png diff --git a/kasu/static/icons/page_white_paste.png b/src/kasu/static/icons/page_white_paste.png similarity index 100% rename from kasu/static/icons/page_white_paste.png rename to src/kasu/static/icons/page_white_paste.png diff --git a/kasu/static/icons/page_white_php.png b/src/kasu/static/icons/page_white_php.png similarity index 100% rename from kasu/static/icons/page_white_php.png rename to src/kasu/static/icons/page_white_php.png diff --git a/kasu/static/icons/page_white_picture.png b/src/kasu/static/icons/page_white_picture.png similarity index 100% rename from kasu/static/icons/page_white_picture.png rename to src/kasu/static/icons/page_white_picture.png diff --git a/kasu/static/icons/page_white_powerpoint.png b/src/kasu/static/icons/page_white_powerpoint.png similarity index 100% rename from kasu/static/icons/page_white_powerpoint.png rename to src/kasu/static/icons/page_white_powerpoint.png diff --git a/kasu/static/icons/page_white_put.png b/src/kasu/static/icons/page_white_put.png similarity index 100% rename from kasu/static/icons/page_white_put.png rename to src/kasu/static/icons/page_white_put.png diff --git a/kasu/static/icons/page_white_ruby.png b/src/kasu/static/icons/page_white_ruby.png similarity index 100% rename from kasu/static/icons/page_white_ruby.png rename to src/kasu/static/icons/page_white_ruby.png diff --git a/kasu/static/icons/page_white_stack.png b/src/kasu/static/icons/page_white_stack.png similarity index 100% rename from kasu/static/icons/page_white_stack.png rename to src/kasu/static/icons/page_white_stack.png diff --git a/kasu/static/icons/page_white_star.png b/src/kasu/static/icons/page_white_star.png similarity index 100% rename from kasu/static/icons/page_white_star.png rename to src/kasu/static/icons/page_white_star.png diff --git a/kasu/static/icons/page_white_swoosh.png b/src/kasu/static/icons/page_white_swoosh.png similarity index 100% rename from kasu/static/icons/page_white_swoosh.png rename to src/kasu/static/icons/page_white_swoosh.png diff --git a/kasu/static/icons/page_white_text.png b/src/kasu/static/icons/page_white_text.png similarity index 100% rename from kasu/static/icons/page_white_text.png rename to src/kasu/static/icons/page_white_text.png diff --git a/kasu/static/icons/page_white_text_width.png b/src/kasu/static/icons/page_white_text_width.png similarity index 100% rename from kasu/static/icons/page_white_text_width.png rename to src/kasu/static/icons/page_white_text_width.png diff --git a/kasu/static/icons/page_white_tux.png b/src/kasu/static/icons/page_white_tux.png similarity index 100% rename from kasu/static/icons/page_white_tux.png rename to src/kasu/static/icons/page_white_tux.png diff --git a/kasu/static/icons/page_white_vector.png b/src/kasu/static/icons/page_white_vector.png similarity index 100% rename from kasu/static/icons/page_white_vector.png rename to src/kasu/static/icons/page_white_vector.png diff --git a/kasu/static/icons/page_white_visualstudio.png b/src/kasu/static/icons/page_white_visualstudio.png similarity index 100% rename from kasu/static/icons/page_white_visualstudio.png rename to src/kasu/static/icons/page_white_visualstudio.png diff --git a/kasu/static/icons/page_white_width.png b/src/kasu/static/icons/page_white_width.png similarity index 100% rename from kasu/static/icons/page_white_width.png rename to src/kasu/static/icons/page_white_width.png diff --git a/kasu/static/icons/page_white_word.png b/src/kasu/static/icons/page_white_word.png similarity index 100% rename from kasu/static/icons/page_white_word.png rename to src/kasu/static/icons/page_white_word.png diff --git a/kasu/static/icons/page_white_world.png b/src/kasu/static/icons/page_white_world.png similarity index 100% rename from kasu/static/icons/page_white_world.png rename to src/kasu/static/icons/page_white_world.png diff --git a/kasu/static/icons/page_white_wrench.png b/src/kasu/static/icons/page_white_wrench.png similarity index 100% rename from kasu/static/icons/page_white_wrench.png rename to src/kasu/static/icons/page_white_wrench.png diff --git a/kasu/static/icons/page_white_zip.png b/src/kasu/static/icons/page_white_zip.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/page_white_zip.png rename to src/kasu/static/icons/page_white_zip.png diff --git a/kasu/static/icons/page_word.png b/src/kasu/static/icons/page_word.png similarity index 100% rename from kasu/static/icons/page_word.png rename to src/kasu/static/icons/page_word.png diff --git a/kasu/static/icons/page_world.png b/src/kasu/static/icons/page_world.png similarity index 100% rename from kasu/static/icons/page_world.png rename to src/kasu/static/icons/page_world.png diff --git a/kasu/static/icons/paintbrush.png b/src/kasu/static/icons/paintbrush.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/paintbrush.png rename to src/kasu/static/icons/paintbrush.png diff --git a/kasu/static/icons/paintcan.png b/src/kasu/static/icons/paintcan.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/paintcan.png rename to src/kasu/static/icons/paintcan.png diff --git a/kasu/static/icons/palette.png b/src/kasu/static/icons/palette.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/palette.png rename to src/kasu/static/icons/palette.png diff --git a/kasu/static/icons/paste_plain.png b/src/kasu/static/icons/paste_plain.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/paste_plain.png rename to src/kasu/static/icons/paste_plain.png diff --git a/kasu/static/icons/paste_word.png b/src/kasu/static/icons/paste_word.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/paste_word.png rename to src/kasu/static/icons/paste_word.png diff --git a/kasu/static/icons/pencil.png b/src/kasu/static/icons/pencil.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/pencil.png rename to src/kasu/static/icons/pencil.png diff --git a/kasu/static/icons/pencil_add.png b/src/kasu/static/icons/pencil_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/pencil_add.png rename to src/kasu/static/icons/pencil_add.png diff --git a/kasu/static/icons/pencil_delete.png b/src/kasu/static/icons/pencil_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/pencil_delete.png rename to src/kasu/static/icons/pencil_delete.png diff --git a/kasu/static/icons/pencil_go.png b/src/kasu/static/icons/pencil_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/pencil_go.png rename to src/kasu/static/icons/pencil_go.png diff --git a/kasu/static/icons/phone.png b/src/kasu/static/icons/phone.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/phone.png rename to src/kasu/static/icons/phone.png diff --git a/kasu/static/icons/phone_add.png b/src/kasu/static/icons/phone_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/phone_add.png rename to src/kasu/static/icons/phone_add.png diff --git a/kasu/static/icons/phone_delete.png b/src/kasu/static/icons/phone_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/phone_delete.png rename to src/kasu/static/icons/phone_delete.png diff --git a/kasu/static/icons/phone_sound.png b/src/kasu/static/icons/phone_sound.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/phone_sound.png rename to src/kasu/static/icons/phone_sound.png diff --git a/kasu/static/icons/photo.png b/src/kasu/static/icons/photo.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/photo.png rename to src/kasu/static/icons/photo.png diff --git a/kasu/static/icons/photo_add.png b/src/kasu/static/icons/photo_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/photo_add.png rename to src/kasu/static/icons/photo_add.png diff --git a/kasu/static/icons/photo_delete.png b/src/kasu/static/icons/photo_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/photo_delete.png rename to src/kasu/static/icons/photo_delete.png diff --git a/kasu/static/icons/photo_link.png b/src/kasu/static/icons/photo_link.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/photo_link.png rename to src/kasu/static/icons/photo_link.png diff --git a/kasu/static/icons/photos.png b/src/kasu/static/icons/photos.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/photos.png rename to src/kasu/static/icons/photos.png diff --git a/kasu/static/icons/picture.png b/src/kasu/static/icons/picture.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/picture.png rename to src/kasu/static/icons/picture.png diff --git a/kasu/static/icons/picture_add.png b/src/kasu/static/icons/picture_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/picture_add.png rename to src/kasu/static/icons/picture_add.png diff --git a/kasu/static/icons/picture_delete.png b/src/kasu/static/icons/picture_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/picture_delete.png rename to src/kasu/static/icons/picture_delete.png diff --git a/kasu/static/icons/picture_edit.png b/src/kasu/static/icons/picture_edit.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/picture_edit.png rename to src/kasu/static/icons/picture_edit.png diff --git a/kasu/static/icons/picture_empty.png b/src/kasu/static/icons/picture_empty.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/picture_empty.png rename to src/kasu/static/icons/picture_empty.png diff --git a/kasu/static/icons/picture_error.png b/src/kasu/static/icons/picture_error.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/picture_error.png rename to src/kasu/static/icons/picture_error.png diff --git a/kasu/static/icons/picture_go.png b/src/kasu/static/icons/picture_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/picture_go.png rename to src/kasu/static/icons/picture_go.png diff --git a/kasu/static/icons/picture_key.png b/src/kasu/static/icons/picture_key.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/picture_key.png rename to src/kasu/static/icons/picture_key.png diff --git a/kasu/static/icons/picture_link.png b/src/kasu/static/icons/picture_link.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/picture_link.png rename to src/kasu/static/icons/picture_link.png diff --git a/kasu/static/icons/picture_save.png b/src/kasu/static/icons/picture_save.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/picture_save.png rename to src/kasu/static/icons/picture_save.png diff --git a/kasu/static/icons/pictures.png b/src/kasu/static/icons/pictures.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/pictures.png rename to src/kasu/static/icons/pictures.png diff --git a/kasu/static/icons/pilcrow.png b/src/kasu/static/icons/pilcrow.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/pilcrow.png rename to src/kasu/static/icons/pilcrow.png diff --git a/kasu/static/icons/pill.png b/src/kasu/static/icons/pill.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/pill.png rename to src/kasu/static/icons/pill.png diff --git a/kasu/static/icons/pill_add.png b/src/kasu/static/icons/pill_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/pill_add.png rename to src/kasu/static/icons/pill_add.png diff --git a/kasu/static/icons/pill_delete.png b/src/kasu/static/icons/pill_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/pill_delete.png rename to src/kasu/static/icons/pill_delete.png diff --git a/kasu/static/icons/pill_go.png b/src/kasu/static/icons/pill_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/pill_go.png rename to src/kasu/static/icons/pill_go.png diff --git a/kasu/static/icons/plugin.png b/src/kasu/static/icons/plugin.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/plugin.png rename to src/kasu/static/icons/plugin.png diff --git a/kasu/static/icons/plugin_add.png b/src/kasu/static/icons/plugin_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/plugin_add.png rename to src/kasu/static/icons/plugin_add.png diff --git a/kasu/static/icons/plugin_delete.png b/src/kasu/static/icons/plugin_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/plugin_delete.png rename to src/kasu/static/icons/plugin_delete.png diff --git a/kasu/static/icons/plugin_disabled.png b/src/kasu/static/icons/plugin_disabled.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/plugin_disabled.png rename to src/kasu/static/icons/plugin_disabled.png diff --git a/kasu/static/icons/plugin_edit.png b/src/kasu/static/icons/plugin_edit.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/plugin_edit.png rename to src/kasu/static/icons/plugin_edit.png diff --git a/kasu/static/icons/plugin_error.png b/src/kasu/static/icons/plugin_error.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/plugin_error.png rename to src/kasu/static/icons/plugin_error.png diff --git a/kasu/static/icons/plugin_go.png b/src/kasu/static/icons/plugin_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/plugin_go.png rename to src/kasu/static/icons/plugin_go.png diff --git a/kasu/static/icons/plugin_link.png b/src/kasu/static/icons/plugin_link.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/plugin_link.png rename to src/kasu/static/icons/plugin_link.png diff --git a/kasu/static/icons/printer.png b/src/kasu/static/icons/printer.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/printer.png rename to src/kasu/static/icons/printer.png diff --git a/kasu/static/icons/printer_add.png b/src/kasu/static/icons/printer_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/printer_add.png rename to src/kasu/static/icons/printer_add.png diff --git a/kasu/static/icons/printer_delete.png b/src/kasu/static/icons/printer_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/printer_delete.png rename to src/kasu/static/icons/printer_delete.png diff --git a/kasu/static/icons/printer_empty.png b/src/kasu/static/icons/printer_empty.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/printer_empty.png rename to src/kasu/static/icons/printer_empty.png diff --git a/kasu/static/icons/printer_error.png b/src/kasu/static/icons/printer_error.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/printer_error.png rename to src/kasu/static/icons/printer_error.png diff --git a/kasu/static/icons/rainbow.png b/src/kasu/static/icons/rainbow.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/rainbow.png rename to src/kasu/static/icons/rainbow.png diff --git a/kasu/static/icons/report.png b/src/kasu/static/icons/report.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/report.png rename to src/kasu/static/icons/report.png diff --git a/kasu/static/icons/report_add.png b/src/kasu/static/icons/report_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/report_add.png rename to src/kasu/static/icons/report_add.png diff --git a/kasu/static/icons/report_delete.png b/src/kasu/static/icons/report_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/report_delete.png rename to src/kasu/static/icons/report_delete.png diff --git a/kasu/static/icons/report_disk.png b/src/kasu/static/icons/report_disk.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/report_disk.png rename to src/kasu/static/icons/report_disk.png diff --git a/kasu/static/icons/report_edit.png b/src/kasu/static/icons/report_edit.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/report_edit.png rename to src/kasu/static/icons/report_edit.png diff --git a/kasu/static/icons/report_go.png b/src/kasu/static/icons/report_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/report_go.png rename to src/kasu/static/icons/report_go.png diff --git a/kasu/static/icons/report_key.png b/src/kasu/static/icons/report_key.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/report_key.png rename to src/kasu/static/icons/report_key.png diff --git a/kasu/static/icons/report_link.png b/src/kasu/static/icons/report_link.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/report_link.png rename to src/kasu/static/icons/report_link.png diff --git a/kasu/static/icons/report_magnify.png b/src/kasu/static/icons/report_magnify.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/report_magnify.png rename to src/kasu/static/icons/report_magnify.png diff --git a/kasu/static/icons/report_picture.png b/src/kasu/static/icons/report_picture.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/report_picture.png rename to src/kasu/static/icons/report_picture.png diff --git a/kasu/static/icons/report_user.png b/src/kasu/static/icons/report_user.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/report_user.png rename to src/kasu/static/icons/report_user.png diff --git a/kasu/static/icons/report_word.png b/src/kasu/static/icons/report_word.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/report_word.png rename to src/kasu/static/icons/report_word.png diff --git a/kasu/static/icons/resultset_first.png b/src/kasu/static/icons/resultset_first.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/resultset_first.png rename to src/kasu/static/icons/resultset_first.png diff --git a/kasu/static/icons/resultset_last.png b/src/kasu/static/icons/resultset_last.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/resultset_last.png rename to src/kasu/static/icons/resultset_last.png diff --git a/kasu/static/icons/resultset_next.png b/src/kasu/static/icons/resultset_next.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/resultset_next.png rename to src/kasu/static/icons/resultset_next.png diff --git a/kasu/static/icons/resultset_previous.png b/src/kasu/static/icons/resultset_previous.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/resultset_previous.png rename to src/kasu/static/icons/resultset_previous.png diff --git a/kasu/static/icons/rosette.png b/src/kasu/static/icons/rosette.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/rosette.png rename to src/kasu/static/icons/rosette.png diff --git a/kasu/static/icons/rss.png b/src/kasu/static/icons/rss.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/rss.png rename to src/kasu/static/icons/rss.png diff --git a/kasu/static/icons/rss_add.png b/src/kasu/static/icons/rss_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/rss_add.png rename to src/kasu/static/icons/rss_add.png diff --git a/kasu/static/icons/rss_delete.png b/src/kasu/static/icons/rss_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/rss_delete.png rename to src/kasu/static/icons/rss_delete.png diff --git a/kasu/static/icons/rss_go.png b/src/kasu/static/icons/rss_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/rss_go.png rename to src/kasu/static/icons/rss_go.png diff --git a/kasu/static/icons/rss_valid.png b/src/kasu/static/icons/rss_valid.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/rss_valid.png rename to src/kasu/static/icons/rss_valid.png diff --git a/kasu/static/icons/ruby.png b/src/kasu/static/icons/ruby.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/ruby.png rename to src/kasu/static/icons/ruby.png diff --git a/kasu/static/icons/ruby_add.png b/src/kasu/static/icons/ruby_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/ruby_add.png rename to src/kasu/static/icons/ruby_add.png diff --git a/kasu/static/icons/ruby_delete.png b/src/kasu/static/icons/ruby_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/ruby_delete.png rename to src/kasu/static/icons/ruby_delete.png diff --git a/kasu/static/icons/ruby_gear.png b/src/kasu/static/icons/ruby_gear.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/ruby_gear.png rename to src/kasu/static/icons/ruby_gear.png diff --git a/kasu/static/icons/ruby_get.png b/src/kasu/static/icons/ruby_get.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/ruby_get.png rename to src/kasu/static/icons/ruby_get.png diff --git a/kasu/static/icons/ruby_go.png b/src/kasu/static/icons/ruby_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/ruby_go.png rename to src/kasu/static/icons/ruby_go.png diff --git a/kasu/static/icons/ruby_key.png b/src/kasu/static/icons/ruby_key.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/ruby_key.png rename to src/kasu/static/icons/ruby_key.png diff --git a/kasu/static/icons/ruby_link.png b/src/kasu/static/icons/ruby_link.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/ruby_link.png rename to src/kasu/static/icons/ruby_link.png diff --git a/kasu/static/icons/ruby_put.png b/src/kasu/static/icons/ruby_put.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/ruby_put.png rename to src/kasu/static/icons/ruby_put.png diff --git a/kasu/static/icons/script.png b/src/kasu/static/icons/script.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/script.png rename to src/kasu/static/icons/script.png diff --git a/kasu/static/icons/script_add.png b/src/kasu/static/icons/script_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/script_add.png rename to src/kasu/static/icons/script_add.png diff --git a/kasu/static/icons/script_code.png b/src/kasu/static/icons/script_code.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/script_code.png rename to src/kasu/static/icons/script_code.png diff --git a/kasu/static/icons/script_code_red.png b/src/kasu/static/icons/script_code_red.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/script_code_red.png rename to src/kasu/static/icons/script_code_red.png diff --git a/kasu/static/icons/script_delete.png b/src/kasu/static/icons/script_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/script_delete.png rename to src/kasu/static/icons/script_delete.png diff --git a/kasu/static/icons/script_edit.png b/src/kasu/static/icons/script_edit.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/script_edit.png rename to src/kasu/static/icons/script_edit.png diff --git a/kasu/static/icons/script_error.png b/src/kasu/static/icons/script_error.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/script_error.png rename to src/kasu/static/icons/script_error.png diff --git a/kasu/static/icons/script_gear.png b/src/kasu/static/icons/script_gear.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/script_gear.png rename to src/kasu/static/icons/script_gear.png diff --git a/kasu/static/icons/script_go.png b/src/kasu/static/icons/script_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/script_go.png rename to src/kasu/static/icons/script_go.png diff --git a/kasu/static/icons/script_key.png b/src/kasu/static/icons/script_key.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/script_key.png rename to src/kasu/static/icons/script_key.png diff --git a/kasu/static/icons/script_lightning.png b/src/kasu/static/icons/script_lightning.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/script_lightning.png rename to src/kasu/static/icons/script_lightning.png diff --git a/kasu/static/icons/script_link.png b/src/kasu/static/icons/script_link.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/script_link.png rename to src/kasu/static/icons/script_link.png diff --git a/kasu/static/icons/script_palette.png b/src/kasu/static/icons/script_palette.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/script_palette.png rename to src/kasu/static/icons/script_palette.png diff --git a/kasu/static/icons/script_save.png b/src/kasu/static/icons/script_save.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/script_save.png rename to src/kasu/static/icons/script_save.png diff --git a/kasu/static/icons/server.png b/src/kasu/static/icons/server.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/server.png rename to src/kasu/static/icons/server.png diff --git a/kasu/static/icons/server_add.png b/src/kasu/static/icons/server_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/server_add.png rename to src/kasu/static/icons/server_add.png diff --git a/kasu/static/icons/server_chart.png b/src/kasu/static/icons/server_chart.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/server_chart.png rename to src/kasu/static/icons/server_chart.png diff --git a/kasu/static/icons/server_compressed.png b/src/kasu/static/icons/server_compressed.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/server_compressed.png rename to src/kasu/static/icons/server_compressed.png diff --git a/kasu/static/icons/server_connect.png b/src/kasu/static/icons/server_connect.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/server_connect.png rename to src/kasu/static/icons/server_connect.png diff --git a/kasu/static/icons/server_database.png b/src/kasu/static/icons/server_database.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/server_database.png rename to src/kasu/static/icons/server_database.png diff --git a/kasu/static/icons/server_delete.png b/src/kasu/static/icons/server_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/server_delete.png rename to src/kasu/static/icons/server_delete.png diff --git a/kasu/static/icons/server_edit.png b/src/kasu/static/icons/server_edit.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/server_edit.png rename to src/kasu/static/icons/server_edit.png diff --git a/kasu/static/icons/server_error.png b/src/kasu/static/icons/server_error.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/server_error.png rename to src/kasu/static/icons/server_error.png diff --git a/kasu/static/icons/server_go.png b/src/kasu/static/icons/server_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/server_go.png rename to src/kasu/static/icons/server_go.png diff --git a/kasu/static/icons/server_key.png b/src/kasu/static/icons/server_key.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/server_key.png rename to src/kasu/static/icons/server_key.png diff --git a/kasu/static/icons/server_lightning.png b/src/kasu/static/icons/server_lightning.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/server_lightning.png rename to src/kasu/static/icons/server_lightning.png diff --git a/kasu/static/icons/server_link.png b/src/kasu/static/icons/server_link.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/server_link.png rename to src/kasu/static/icons/server_link.png diff --git a/kasu/static/icons/server_uncompressed.png b/src/kasu/static/icons/server_uncompressed.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/server_uncompressed.png rename to src/kasu/static/icons/server_uncompressed.png diff --git a/kasu/static/icons/shading.png b/src/kasu/static/icons/shading.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/shading.png rename to src/kasu/static/icons/shading.png diff --git a/kasu/static/icons/shape_align_bottom.png b/src/kasu/static/icons/shape_align_bottom.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/shape_align_bottom.png rename to src/kasu/static/icons/shape_align_bottom.png diff --git a/kasu/static/icons/shape_align_center.png b/src/kasu/static/icons/shape_align_center.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/shape_align_center.png rename to src/kasu/static/icons/shape_align_center.png diff --git a/kasu/static/icons/shape_align_left.png b/src/kasu/static/icons/shape_align_left.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/shape_align_left.png rename to src/kasu/static/icons/shape_align_left.png diff --git a/kasu/static/icons/shape_align_middle.png b/src/kasu/static/icons/shape_align_middle.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/shape_align_middle.png rename to src/kasu/static/icons/shape_align_middle.png diff --git a/kasu/static/icons/shape_align_right.png b/src/kasu/static/icons/shape_align_right.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/shape_align_right.png rename to src/kasu/static/icons/shape_align_right.png diff --git a/kasu/static/icons/shape_align_top.png b/src/kasu/static/icons/shape_align_top.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/shape_align_top.png rename to src/kasu/static/icons/shape_align_top.png diff --git a/kasu/static/icons/shape_flip_horizontal.png b/src/kasu/static/icons/shape_flip_horizontal.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/shape_flip_horizontal.png rename to src/kasu/static/icons/shape_flip_horizontal.png diff --git a/kasu/static/icons/shape_flip_vertical.png b/src/kasu/static/icons/shape_flip_vertical.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/shape_flip_vertical.png rename to src/kasu/static/icons/shape_flip_vertical.png diff --git a/kasu/static/icons/shape_group.png b/src/kasu/static/icons/shape_group.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/shape_group.png rename to src/kasu/static/icons/shape_group.png diff --git a/kasu/static/icons/shape_handles.png b/src/kasu/static/icons/shape_handles.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/shape_handles.png rename to src/kasu/static/icons/shape_handles.png diff --git a/kasu/static/icons/shape_move_back.png b/src/kasu/static/icons/shape_move_back.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/shape_move_back.png rename to src/kasu/static/icons/shape_move_back.png diff --git a/kasu/static/icons/shape_move_backwards.png b/src/kasu/static/icons/shape_move_backwards.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/shape_move_backwards.png rename to src/kasu/static/icons/shape_move_backwards.png diff --git a/kasu/static/icons/shape_move_forwards.png b/src/kasu/static/icons/shape_move_forwards.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/shape_move_forwards.png rename to src/kasu/static/icons/shape_move_forwards.png diff --git a/kasu/static/icons/shape_move_front.png b/src/kasu/static/icons/shape_move_front.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/shape_move_front.png rename to src/kasu/static/icons/shape_move_front.png diff --git a/kasu/static/icons/shape_rotate_anticlockwise.png b/src/kasu/static/icons/shape_rotate_anticlockwise.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/shape_rotate_anticlockwise.png rename to src/kasu/static/icons/shape_rotate_anticlockwise.png diff --git a/kasu/static/icons/shape_rotate_clockwise.png b/src/kasu/static/icons/shape_rotate_clockwise.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/shape_rotate_clockwise.png rename to src/kasu/static/icons/shape_rotate_clockwise.png diff --git a/kasu/static/icons/shape_square.png b/src/kasu/static/icons/shape_square.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/shape_square.png rename to src/kasu/static/icons/shape_square.png diff --git a/kasu/static/icons/shape_square_add.png b/src/kasu/static/icons/shape_square_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/shape_square_add.png rename to src/kasu/static/icons/shape_square_add.png diff --git a/kasu/static/icons/shape_square_delete.png b/src/kasu/static/icons/shape_square_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/shape_square_delete.png rename to src/kasu/static/icons/shape_square_delete.png diff --git a/kasu/static/icons/shape_square_edit.png b/src/kasu/static/icons/shape_square_edit.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/shape_square_edit.png rename to src/kasu/static/icons/shape_square_edit.png diff --git a/kasu/static/icons/shape_square_error.png b/src/kasu/static/icons/shape_square_error.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/shape_square_error.png rename to src/kasu/static/icons/shape_square_error.png diff --git a/kasu/static/icons/shape_square_go.png b/src/kasu/static/icons/shape_square_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/shape_square_go.png rename to src/kasu/static/icons/shape_square_go.png diff --git a/kasu/static/icons/shape_square_key.png b/src/kasu/static/icons/shape_square_key.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/shape_square_key.png rename to src/kasu/static/icons/shape_square_key.png diff --git a/kasu/static/icons/shape_square_link.png b/src/kasu/static/icons/shape_square_link.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/shape_square_link.png rename to src/kasu/static/icons/shape_square_link.png diff --git a/kasu/static/icons/shape_ungroup.png b/src/kasu/static/icons/shape_ungroup.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/shape_ungroup.png rename to src/kasu/static/icons/shape_ungroup.png diff --git a/kasu/static/icons/shield.png b/src/kasu/static/icons/shield.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/shield.png rename to src/kasu/static/icons/shield.png diff --git a/kasu/static/icons/shield_add.png b/src/kasu/static/icons/shield_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/shield_add.png rename to src/kasu/static/icons/shield_add.png diff --git a/kasu/static/icons/shield_delete.png b/src/kasu/static/icons/shield_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/shield_delete.png rename to src/kasu/static/icons/shield_delete.png diff --git a/kasu/static/icons/shield_go.png b/src/kasu/static/icons/shield_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/shield_go.png rename to src/kasu/static/icons/shield_go.png diff --git a/kasu/static/icons/sitemap.png b/src/kasu/static/icons/sitemap.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/sitemap.png rename to src/kasu/static/icons/sitemap.png diff --git a/kasu/static/icons/sitemap_color.png b/src/kasu/static/icons/sitemap_color.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/sitemap_color.png rename to src/kasu/static/icons/sitemap_color.png diff --git a/kasu/static/icons/sound.png b/src/kasu/static/icons/sound.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/sound.png rename to src/kasu/static/icons/sound.png diff --git a/kasu/static/icons/sound_add.png b/src/kasu/static/icons/sound_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/sound_add.png rename to src/kasu/static/icons/sound_add.png diff --git a/kasu/static/icons/sound_delete.png b/src/kasu/static/icons/sound_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/sound_delete.png rename to src/kasu/static/icons/sound_delete.png diff --git a/kasu/static/icons/sound_low.png b/src/kasu/static/icons/sound_low.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/sound_low.png rename to src/kasu/static/icons/sound_low.png diff --git a/kasu/static/icons/sound_mute.png b/src/kasu/static/icons/sound_mute.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/sound_mute.png rename to src/kasu/static/icons/sound_mute.png diff --git a/kasu/static/icons/sound_none.png b/src/kasu/static/icons/sound_none.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/sound_none.png rename to src/kasu/static/icons/sound_none.png diff --git a/kasu/static/icons/spellcheck.png b/src/kasu/static/icons/spellcheck.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/spellcheck.png rename to src/kasu/static/icons/spellcheck.png diff --git a/kasu/static/icons/sport_8ball.png b/src/kasu/static/icons/sport_8ball.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/sport_8ball.png rename to src/kasu/static/icons/sport_8ball.png diff --git a/kasu/static/icons/sport_basketball.png b/src/kasu/static/icons/sport_basketball.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/sport_basketball.png rename to src/kasu/static/icons/sport_basketball.png diff --git a/kasu/static/icons/sport_football.png b/src/kasu/static/icons/sport_football.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/sport_football.png rename to src/kasu/static/icons/sport_football.png diff --git a/kasu/static/icons/sport_golf.png b/src/kasu/static/icons/sport_golf.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/sport_golf.png rename to src/kasu/static/icons/sport_golf.png diff --git a/kasu/static/icons/sport_raquet.png b/src/kasu/static/icons/sport_raquet.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/sport_raquet.png rename to src/kasu/static/icons/sport_raquet.png diff --git a/kasu/static/icons/sport_shuttlecock.png b/src/kasu/static/icons/sport_shuttlecock.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/sport_shuttlecock.png rename to src/kasu/static/icons/sport_shuttlecock.png diff --git a/kasu/static/icons/sport_soccer.png b/src/kasu/static/icons/sport_soccer.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/sport_soccer.png rename to src/kasu/static/icons/sport_soccer.png diff --git a/kasu/static/icons/sport_tennis.png b/src/kasu/static/icons/sport_tennis.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/sport_tennis.png rename to src/kasu/static/icons/sport_tennis.png diff --git a/kasu/static/icons/star.png b/src/kasu/static/icons/star.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/star.png rename to src/kasu/static/icons/star.png diff --git a/kasu/static/icons/status_away.png b/src/kasu/static/icons/status_away.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/status_away.png rename to src/kasu/static/icons/status_away.png diff --git a/kasu/static/icons/status_busy.png b/src/kasu/static/icons/status_busy.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/status_busy.png rename to src/kasu/static/icons/status_busy.png diff --git a/kasu/static/icons/status_offline.png b/src/kasu/static/icons/status_offline.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/status_offline.png rename to src/kasu/static/icons/status_offline.png diff --git a/kasu/static/icons/status_online.png b/src/kasu/static/icons/status_online.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/status_online.png rename to src/kasu/static/icons/status_online.png diff --git a/kasu/static/icons/stop.png b/src/kasu/static/icons/stop.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/stop.png rename to src/kasu/static/icons/stop.png diff --git a/kasu/static/icons/style.png b/src/kasu/static/icons/style.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/style.png rename to src/kasu/static/icons/style.png diff --git a/kasu/static/icons/style_add.png b/src/kasu/static/icons/style_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/style_add.png rename to src/kasu/static/icons/style_add.png diff --git a/kasu/static/icons/style_delete.png b/src/kasu/static/icons/style_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/style_delete.png rename to src/kasu/static/icons/style_delete.png diff --git a/kasu/static/icons/style_edit.png b/src/kasu/static/icons/style_edit.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/style_edit.png rename to src/kasu/static/icons/style_edit.png diff --git a/kasu/static/icons/style_go.png b/src/kasu/static/icons/style_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/style_go.png rename to src/kasu/static/icons/style_go.png diff --git a/kasu/static/icons/sum.png b/src/kasu/static/icons/sum.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/sum.png rename to src/kasu/static/icons/sum.png diff --git a/kasu/static/icons/tab.png b/src/kasu/static/icons/tab.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/tab.png rename to src/kasu/static/icons/tab.png diff --git a/kasu/static/icons/tab_add.png b/src/kasu/static/icons/tab_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/tab_add.png rename to src/kasu/static/icons/tab_add.png diff --git a/kasu/static/icons/tab_delete.png b/src/kasu/static/icons/tab_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/tab_delete.png rename to src/kasu/static/icons/tab_delete.png diff --git a/kasu/static/icons/tab_edit.png b/src/kasu/static/icons/tab_edit.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/tab_edit.png rename to src/kasu/static/icons/tab_edit.png diff --git a/kasu/static/icons/tab_go.png b/src/kasu/static/icons/tab_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/tab_go.png rename to src/kasu/static/icons/tab_go.png diff --git a/kasu/static/icons/table.png b/src/kasu/static/icons/table.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/table.png rename to src/kasu/static/icons/table.png diff --git a/kasu/static/icons/table_add.png b/src/kasu/static/icons/table_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/table_add.png rename to src/kasu/static/icons/table_add.png diff --git a/kasu/static/icons/table_delete.png b/src/kasu/static/icons/table_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/table_delete.png rename to src/kasu/static/icons/table_delete.png diff --git a/kasu/static/icons/table_edit.png b/src/kasu/static/icons/table_edit.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/table_edit.png rename to src/kasu/static/icons/table_edit.png diff --git a/kasu/static/icons/table_error.png b/src/kasu/static/icons/table_error.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/table_error.png rename to src/kasu/static/icons/table_error.png diff --git a/kasu/static/icons/table_gear.png b/src/kasu/static/icons/table_gear.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/table_gear.png rename to src/kasu/static/icons/table_gear.png diff --git a/kasu/static/icons/table_go.png b/src/kasu/static/icons/table_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/table_go.png rename to src/kasu/static/icons/table_go.png diff --git a/kasu/static/icons/table_key.png b/src/kasu/static/icons/table_key.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/table_key.png rename to src/kasu/static/icons/table_key.png diff --git a/kasu/static/icons/table_lightning.png b/src/kasu/static/icons/table_lightning.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/table_lightning.png rename to src/kasu/static/icons/table_lightning.png diff --git a/kasu/static/icons/table_link.png b/src/kasu/static/icons/table_link.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/table_link.png rename to src/kasu/static/icons/table_link.png diff --git a/kasu/static/icons/table_multiple.png b/src/kasu/static/icons/table_multiple.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/table_multiple.png rename to src/kasu/static/icons/table_multiple.png diff --git a/kasu/static/icons/table_refresh.png b/src/kasu/static/icons/table_refresh.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/table_refresh.png rename to src/kasu/static/icons/table_refresh.png diff --git a/kasu/static/icons/table_relationship.png b/src/kasu/static/icons/table_relationship.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/table_relationship.png rename to src/kasu/static/icons/table_relationship.png diff --git a/kasu/static/icons/table_row_delete.png b/src/kasu/static/icons/table_row_delete.png similarity index 100% rename from kasu/static/icons/table_row_delete.png rename to src/kasu/static/icons/table_row_delete.png diff --git a/kasu/static/icons/table_row_insert.png b/src/kasu/static/icons/table_row_insert.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/table_row_insert.png rename to src/kasu/static/icons/table_row_insert.png diff --git a/kasu/static/icons/table_save.png b/src/kasu/static/icons/table_save.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/table_save.png rename to src/kasu/static/icons/table_save.png diff --git a/kasu/static/icons/table_sort.png b/src/kasu/static/icons/table_sort.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/table_sort.png rename to src/kasu/static/icons/table_sort.png diff --git a/kasu/static/icons/tag.png b/src/kasu/static/icons/tag.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/tag.png rename to src/kasu/static/icons/tag.png diff --git a/kasu/static/icons/tag_blue.png b/src/kasu/static/icons/tag_blue.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/tag_blue.png rename to src/kasu/static/icons/tag_blue.png diff --git a/kasu/static/icons/tag_blue_add.png b/src/kasu/static/icons/tag_blue_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/tag_blue_add.png rename to src/kasu/static/icons/tag_blue_add.png diff --git a/kasu/static/icons/tag_blue_delete.png b/src/kasu/static/icons/tag_blue_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/tag_blue_delete.png rename to src/kasu/static/icons/tag_blue_delete.png diff --git a/kasu/static/icons/tag_blue_edit.png b/src/kasu/static/icons/tag_blue_edit.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/tag_blue_edit.png rename to src/kasu/static/icons/tag_blue_edit.png diff --git a/kasu/static/icons/tag_green.png b/src/kasu/static/icons/tag_green.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/tag_green.png rename to src/kasu/static/icons/tag_green.png diff --git a/kasu/static/icons/tag_orange.png b/src/kasu/static/icons/tag_orange.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/tag_orange.png rename to src/kasu/static/icons/tag_orange.png diff --git a/kasu/static/icons/tag_pink.png b/src/kasu/static/icons/tag_pink.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/tag_pink.png rename to src/kasu/static/icons/tag_pink.png diff --git a/kasu/static/icons/tag_purple.png b/src/kasu/static/icons/tag_purple.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/tag_purple.png rename to src/kasu/static/icons/tag_purple.png diff --git a/kasu/static/icons/tag_red.png b/src/kasu/static/icons/tag_red.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/tag_red.png rename to src/kasu/static/icons/tag_red.png diff --git a/kasu/static/icons/tag_yellow.png b/src/kasu/static/icons/tag_yellow.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/tag_yellow.png rename to src/kasu/static/icons/tag_yellow.png diff --git a/kasu/static/icons/telephone.png b/src/kasu/static/icons/telephone.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/telephone.png rename to src/kasu/static/icons/telephone.png diff --git a/kasu/static/icons/telephone_add.png b/src/kasu/static/icons/telephone_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/telephone_add.png rename to src/kasu/static/icons/telephone_add.png diff --git a/kasu/static/icons/telephone_delete.png b/src/kasu/static/icons/telephone_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/telephone_delete.png rename to src/kasu/static/icons/telephone_delete.png diff --git a/kasu/static/icons/telephone_edit.png b/src/kasu/static/icons/telephone_edit.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/telephone_edit.png rename to src/kasu/static/icons/telephone_edit.png diff --git a/kasu/static/icons/telephone_error.png b/src/kasu/static/icons/telephone_error.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/telephone_error.png rename to src/kasu/static/icons/telephone_error.png diff --git a/kasu/static/icons/telephone_go.png b/src/kasu/static/icons/telephone_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/telephone_go.png rename to src/kasu/static/icons/telephone_go.png diff --git a/kasu/static/icons/telephone_key.png b/src/kasu/static/icons/telephone_key.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/telephone_key.png rename to src/kasu/static/icons/telephone_key.png diff --git a/kasu/static/icons/telephone_link.png b/src/kasu/static/icons/telephone_link.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/telephone_link.png rename to src/kasu/static/icons/telephone_link.png diff --git a/kasu/static/icons/television.png b/src/kasu/static/icons/television.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/television.png rename to src/kasu/static/icons/television.png diff --git a/kasu/static/icons/television_add.png b/src/kasu/static/icons/television_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/television_add.png rename to src/kasu/static/icons/television_add.png diff --git a/kasu/static/icons/television_delete.png b/src/kasu/static/icons/television_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/television_delete.png rename to src/kasu/static/icons/television_delete.png diff --git a/kasu/static/icons/text_align_center.png b/src/kasu/static/icons/text_align_center.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/text_align_center.png rename to src/kasu/static/icons/text_align_center.png diff --git a/kasu/static/icons/text_align_justify.png b/src/kasu/static/icons/text_align_justify.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/text_align_justify.png rename to src/kasu/static/icons/text_align_justify.png diff --git a/kasu/static/icons/text_align_left.png b/src/kasu/static/icons/text_align_left.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/text_align_left.png rename to src/kasu/static/icons/text_align_left.png diff --git a/kasu/static/icons/text_align_right.png b/src/kasu/static/icons/text_align_right.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/text_align_right.png rename to src/kasu/static/icons/text_align_right.png diff --git a/kasu/static/icons/text_allcaps.png b/src/kasu/static/icons/text_allcaps.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/text_allcaps.png rename to src/kasu/static/icons/text_allcaps.png diff --git a/kasu/static/icons/text_bold.png b/src/kasu/static/icons/text_bold.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/text_bold.png rename to src/kasu/static/icons/text_bold.png diff --git a/kasu/static/icons/text_columns.png b/src/kasu/static/icons/text_columns.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/text_columns.png rename to src/kasu/static/icons/text_columns.png diff --git a/kasu/static/icons/text_dropcaps.png b/src/kasu/static/icons/text_dropcaps.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/text_dropcaps.png rename to src/kasu/static/icons/text_dropcaps.png diff --git a/kasu/static/icons/text_heading_1.png b/src/kasu/static/icons/text_heading_1.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/text_heading_1.png rename to src/kasu/static/icons/text_heading_1.png diff --git a/kasu/static/icons/text_heading_2.png b/src/kasu/static/icons/text_heading_2.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/text_heading_2.png rename to src/kasu/static/icons/text_heading_2.png diff --git a/kasu/static/icons/text_heading_3.png b/src/kasu/static/icons/text_heading_3.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/text_heading_3.png rename to src/kasu/static/icons/text_heading_3.png diff --git a/kasu/static/icons/text_heading_4.png b/src/kasu/static/icons/text_heading_4.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/text_heading_4.png rename to src/kasu/static/icons/text_heading_4.png diff --git a/kasu/static/icons/text_heading_5.png b/src/kasu/static/icons/text_heading_5.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/text_heading_5.png rename to src/kasu/static/icons/text_heading_5.png diff --git a/kasu/static/icons/text_heading_6.png b/src/kasu/static/icons/text_heading_6.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/text_heading_6.png rename to src/kasu/static/icons/text_heading_6.png diff --git a/kasu/static/icons/text_horizontalrule.png b/src/kasu/static/icons/text_horizontalrule.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/text_horizontalrule.png rename to src/kasu/static/icons/text_horizontalrule.png diff --git a/kasu/static/icons/text_indent.png b/src/kasu/static/icons/text_indent.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/text_indent.png rename to src/kasu/static/icons/text_indent.png diff --git a/kasu/static/icons/text_indent_remove.png b/src/kasu/static/icons/text_indent_remove.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/text_indent_remove.png rename to src/kasu/static/icons/text_indent_remove.png diff --git a/kasu/static/icons/text_italic.png b/src/kasu/static/icons/text_italic.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/text_italic.png rename to src/kasu/static/icons/text_italic.png diff --git a/kasu/static/icons/text_kerning.png b/src/kasu/static/icons/text_kerning.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/text_kerning.png rename to src/kasu/static/icons/text_kerning.png diff --git a/kasu/static/icons/text_letter_omega.png b/src/kasu/static/icons/text_letter_omega.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/text_letter_omega.png rename to src/kasu/static/icons/text_letter_omega.png diff --git a/kasu/static/icons/text_letterspacing.png b/src/kasu/static/icons/text_letterspacing.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/text_letterspacing.png rename to src/kasu/static/icons/text_letterspacing.png diff --git a/kasu/static/icons/text_linespacing.png b/src/kasu/static/icons/text_linespacing.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/text_linespacing.png rename to src/kasu/static/icons/text_linespacing.png diff --git a/kasu/static/icons/text_list_bullets.png b/src/kasu/static/icons/text_list_bullets.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/text_list_bullets.png rename to src/kasu/static/icons/text_list_bullets.png diff --git a/kasu/static/icons/text_list_numbers.png b/src/kasu/static/icons/text_list_numbers.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/text_list_numbers.png rename to src/kasu/static/icons/text_list_numbers.png diff --git a/kasu/static/icons/text_lowercase.png b/src/kasu/static/icons/text_lowercase.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/text_lowercase.png rename to src/kasu/static/icons/text_lowercase.png diff --git a/kasu/static/icons/text_padding_bottom.png b/src/kasu/static/icons/text_padding_bottom.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/text_padding_bottom.png rename to src/kasu/static/icons/text_padding_bottom.png diff --git a/kasu/static/icons/text_padding_left.png b/src/kasu/static/icons/text_padding_left.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/text_padding_left.png rename to src/kasu/static/icons/text_padding_left.png diff --git a/kasu/static/icons/text_padding_right.png b/src/kasu/static/icons/text_padding_right.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/text_padding_right.png rename to src/kasu/static/icons/text_padding_right.png diff --git a/kasu/static/icons/text_padding_top.png b/src/kasu/static/icons/text_padding_top.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/text_padding_top.png rename to src/kasu/static/icons/text_padding_top.png diff --git a/kasu/static/icons/text_replace.png b/src/kasu/static/icons/text_replace.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/text_replace.png rename to src/kasu/static/icons/text_replace.png diff --git a/kasu/static/icons/text_signature.png b/src/kasu/static/icons/text_signature.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/text_signature.png rename to src/kasu/static/icons/text_signature.png diff --git a/kasu/static/icons/text_smallcaps.png b/src/kasu/static/icons/text_smallcaps.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/text_smallcaps.png rename to src/kasu/static/icons/text_smallcaps.png diff --git a/kasu/static/icons/text_strikethrough.png b/src/kasu/static/icons/text_strikethrough.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/text_strikethrough.png rename to src/kasu/static/icons/text_strikethrough.png diff --git a/kasu/static/icons/text_subscript.png b/src/kasu/static/icons/text_subscript.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/text_subscript.png rename to src/kasu/static/icons/text_subscript.png diff --git a/kasu/static/icons/text_superscript.png b/src/kasu/static/icons/text_superscript.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/text_superscript.png rename to src/kasu/static/icons/text_superscript.png diff --git a/kasu/static/icons/text_underline.png b/src/kasu/static/icons/text_underline.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/text_underline.png rename to src/kasu/static/icons/text_underline.png diff --git a/kasu/static/icons/text_uppercase.png b/src/kasu/static/icons/text_uppercase.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/text_uppercase.png rename to src/kasu/static/icons/text_uppercase.png diff --git a/kasu/static/icons/textfield.png b/src/kasu/static/icons/textfield.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/textfield.png rename to src/kasu/static/icons/textfield.png diff --git a/kasu/static/icons/textfield_add.png b/src/kasu/static/icons/textfield_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/textfield_add.png rename to src/kasu/static/icons/textfield_add.png diff --git a/kasu/static/icons/textfield_delete.png b/src/kasu/static/icons/textfield_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/textfield_delete.png rename to src/kasu/static/icons/textfield_delete.png diff --git a/kasu/static/icons/textfield_key.png b/src/kasu/static/icons/textfield_key.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/textfield_key.png rename to src/kasu/static/icons/textfield_key.png diff --git a/kasu/static/icons/textfield_rename.png b/src/kasu/static/icons/textfield_rename.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/textfield_rename.png rename to src/kasu/static/icons/textfield_rename.png diff --git a/kasu/static/icons/thumb_down.png b/src/kasu/static/icons/thumb_down.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/thumb_down.png rename to src/kasu/static/icons/thumb_down.png diff --git a/kasu/static/icons/thumb_up.png b/src/kasu/static/icons/thumb_up.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/thumb_up.png rename to src/kasu/static/icons/thumb_up.png diff --git a/kasu/static/icons/tick.png b/src/kasu/static/icons/tick.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/tick.png rename to src/kasu/static/icons/tick.png diff --git a/kasu/static/icons/time.png b/src/kasu/static/icons/time.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/time.png rename to src/kasu/static/icons/time.png diff --git a/kasu/static/icons/time_add.png b/src/kasu/static/icons/time_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/time_add.png rename to src/kasu/static/icons/time_add.png diff --git a/kasu/static/icons/time_delete.png b/src/kasu/static/icons/time_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/time_delete.png rename to src/kasu/static/icons/time_delete.png diff --git a/kasu/static/icons/time_go.png b/src/kasu/static/icons/time_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/time_go.png rename to src/kasu/static/icons/time_go.png diff --git a/kasu/static/icons/timeline_marker.png b/src/kasu/static/icons/timeline_marker.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/timeline_marker.png rename to src/kasu/static/icons/timeline_marker.png diff --git a/kasu/static/icons/transmit.png b/src/kasu/static/icons/transmit.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/transmit.png rename to src/kasu/static/icons/transmit.png diff --git a/kasu/static/icons/transmit_add.png b/src/kasu/static/icons/transmit_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/transmit_add.png rename to src/kasu/static/icons/transmit_add.png diff --git a/kasu/static/icons/transmit_blue.png b/src/kasu/static/icons/transmit_blue.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/transmit_blue.png rename to src/kasu/static/icons/transmit_blue.png diff --git a/kasu/static/icons/transmit_delete.png b/src/kasu/static/icons/transmit_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/transmit_delete.png rename to src/kasu/static/icons/transmit_delete.png diff --git a/kasu/static/icons/transmit_edit.png b/src/kasu/static/icons/transmit_edit.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/transmit_edit.png rename to src/kasu/static/icons/transmit_edit.png diff --git a/kasu/static/icons/transmit_error.png b/src/kasu/static/icons/transmit_error.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/transmit_error.png rename to src/kasu/static/icons/transmit_error.png diff --git a/kasu/static/icons/transmit_go.png b/src/kasu/static/icons/transmit_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/transmit_go.png rename to src/kasu/static/icons/transmit_go.png diff --git a/kasu/static/icons/tux.png b/src/kasu/static/icons/tux.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/tux.png rename to src/kasu/static/icons/tux.png diff --git a/kasu/static/icons/user.png b/src/kasu/static/icons/user.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/user.png rename to src/kasu/static/icons/user.png diff --git a/kasu/static/icons/user_add.png b/src/kasu/static/icons/user_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/user_add.png rename to src/kasu/static/icons/user_add.png diff --git a/kasu/static/icons/user_comment.png b/src/kasu/static/icons/user_comment.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/user_comment.png rename to src/kasu/static/icons/user_comment.png diff --git a/kasu/static/icons/user_delete.png b/src/kasu/static/icons/user_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/user_delete.png rename to src/kasu/static/icons/user_delete.png diff --git a/kasu/static/icons/user_edit.png b/src/kasu/static/icons/user_edit.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/user_edit.png rename to src/kasu/static/icons/user_edit.png diff --git a/kasu/static/icons/user_female.png b/src/kasu/static/icons/user_female.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/user_female.png rename to src/kasu/static/icons/user_female.png diff --git a/kasu/static/icons/user_go.png b/src/kasu/static/icons/user_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/user_go.png rename to src/kasu/static/icons/user_go.png diff --git a/kasu/static/icons/user_gray.png b/src/kasu/static/icons/user_gray.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/user_gray.png rename to src/kasu/static/icons/user_gray.png diff --git a/kasu/static/icons/user_green.png b/src/kasu/static/icons/user_green.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/user_green.png rename to src/kasu/static/icons/user_green.png diff --git a/kasu/static/icons/user_orange.png b/src/kasu/static/icons/user_orange.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/user_orange.png rename to src/kasu/static/icons/user_orange.png diff --git a/kasu/static/icons/user_red.png b/src/kasu/static/icons/user_red.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/user_red.png rename to src/kasu/static/icons/user_red.png diff --git a/kasu/static/icons/user_suit.png b/src/kasu/static/icons/user_suit.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/user_suit.png rename to src/kasu/static/icons/user_suit.png diff --git a/kasu/static/icons/vcard.png b/src/kasu/static/icons/vcard.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/vcard.png rename to src/kasu/static/icons/vcard.png diff --git a/kasu/static/icons/vcard_add.png b/src/kasu/static/icons/vcard_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/vcard_add.png rename to src/kasu/static/icons/vcard_add.png diff --git a/kasu/static/icons/vcard_delete.png b/src/kasu/static/icons/vcard_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/vcard_delete.png rename to src/kasu/static/icons/vcard_delete.png diff --git a/kasu/static/icons/vcard_edit.png b/src/kasu/static/icons/vcard_edit.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/vcard_edit.png rename to src/kasu/static/icons/vcard_edit.png diff --git a/kasu/static/icons/vector.png b/src/kasu/static/icons/vector.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/vector.png rename to src/kasu/static/icons/vector.png diff --git a/kasu/static/icons/vector_add.png b/src/kasu/static/icons/vector_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/vector_add.png rename to src/kasu/static/icons/vector_add.png diff --git a/kasu/static/icons/vector_delete.png b/src/kasu/static/icons/vector_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/vector_delete.png rename to src/kasu/static/icons/vector_delete.png diff --git a/kasu/static/icons/wand.png b/src/kasu/static/icons/wand.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/wand.png rename to src/kasu/static/icons/wand.png diff --git a/kasu/static/icons/weather_clouds.png b/src/kasu/static/icons/weather_clouds.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/weather_clouds.png rename to src/kasu/static/icons/weather_clouds.png diff --git a/kasu/static/icons/weather_cloudy.png b/src/kasu/static/icons/weather_cloudy.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/weather_cloudy.png rename to src/kasu/static/icons/weather_cloudy.png diff --git a/kasu/static/icons/weather_lightning.png b/src/kasu/static/icons/weather_lightning.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/weather_lightning.png rename to src/kasu/static/icons/weather_lightning.png diff --git a/kasu/static/icons/weather_rain.png b/src/kasu/static/icons/weather_rain.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/weather_rain.png rename to src/kasu/static/icons/weather_rain.png diff --git a/kasu/static/icons/weather_snow.png b/src/kasu/static/icons/weather_snow.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/weather_snow.png rename to src/kasu/static/icons/weather_snow.png diff --git a/kasu/static/icons/weather_sun.png b/src/kasu/static/icons/weather_sun.png similarity index 100% rename from kasu/static/icons/weather_sun.png rename to src/kasu/static/icons/weather_sun.png diff --git a/kasu/static/icons/webcam.png b/src/kasu/static/icons/webcam.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/webcam.png rename to src/kasu/static/icons/webcam.png diff --git a/kasu/static/icons/webcam_add.png b/src/kasu/static/icons/webcam_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/webcam_add.png rename to src/kasu/static/icons/webcam_add.png diff --git a/kasu/static/icons/webcam_delete.png b/src/kasu/static/icons/webcam_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/webcam_delete.png rename to src/kasu/static/icons/webcam_delete.png diff --git a/kasu/static/icons/webcam_error.png b/src/kasu/static/icons/webcam_error.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/webcam_error.png rename to src/kasu/static/icons/webcam_error.png diff --git a/kasu/static/icons/world.png b/src/kasu/static/icons/world.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/world.png rename to src/kasu/static/icons/world.png diff --git a/kasu/static/icons/world_add.png b/src/kasu/static/icons/world_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/world_add.png rename to src/kasu/static/icons/world_add.png diff --git a/kasu/static/icons/world_delete.png b/src/kasu/static/icons/world_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/world_delete.png rename to src/kasu/static/icons/world_delete.png diff --git a/kasu/static/icons/world_edit.png b/src/kasu/static/icons/world_edit.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/world_edit.png rename to src/kasu/static/icons/world_edit.png diff --git a/kasu/static/icons/world_go.png b/src/kasu/static/icons/world_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/world_go.png rename to src/kasu/static/icons/world_go.png diff --git a/kasu/static/icons/world_link.png b/src/kasu/static/icons/world_link.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/world_link.png rename to src/kasu/static/icons/world_link.png diff --git a/kasu/static/icons/wrench.png b/src/kasu/static/icons/wrench.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/wrench.png rename to src/kasu/static/icons/wrench.png diff --git a/kasu/static/icons/wrench_orange.png b/src/kasu/static/icons/wrench_orange.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/wrench_orange.png rename to src/kasu/static/icons/wrench_orange.png diff --git a/kasu/static/icons/xhtml.png b/src/kasu/static/icons/xhtml.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/xhtml.png rename to src/kasu/static/icons/xhtml.png diff --git a/kasu/static/icons/xhtml_add.png b/src/kasu/static/icons/xhtml_add.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/xhtml_add.png rename to src/kasu/static/icons/xhtml_add.png diff --git a/kasu/static/icons/xhtml_delete.png b/src/kasu/static/icons/xhtml_delete.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/xhtml_delete.png rename to src/kasu/static/icons/xhtml_delete.png diff --git a/kasu/static/icons/xhtml_go.png b/src/kasu/static/icons/xhtml_go.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/xhtml_go.png rename to src/kasu/static/icons/xhtml_go.png diff --git a/kasu/static/icons/xhtml_valid.png b/src/kasu/static/icons/xhtml_valid.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/xhtml_valid.png rename to src/kasu/static/icons/xhtml_valid.png diff --git a/kasu/static/icons/zoom.png b/src/kasu/static/icons/zoom.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/zoom.png rename to src/kasu/static/icons/zoom.png diff --git a/kasu/static/icons/zoom_in.png b/src/kasu/static/icons/zoom_in.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/zoom_in.png rename to src/kasu/static/icons/zoom_in.png diff --git a/kasu/static/icons/zoom_out.png b/src/kasu/static/icons/zoom_out.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/icons/zoom_out.png rename to src/kasu/static/icons/zoom_out.png diff --git a/kasu/static/img/background.gif b/src/kasu/static/img/background.gif similarity index 100% rename from kasu/static/img/background.gif rename to src/kasu/static/img/background.gif diff --git a/kasu/static/img/background.png b/src/kasu/static/img/background.png similarity index 100% rename from kasu/static/img/background.png rename to src/kasu/static/img/background.png diff --git a/kasu/static/img/background_mobile.png b/src/kasu/static/img/background_mobile.png similarity index 100% rename from kasu/static/img/background_mobile.png rename to src/kasu/static/img/background_mobile.png diff --git a/kasu/static/img/buttonbar.gif b/src/kasu/static/img/buttonbar.gif similarity index 100% rename from kasu/static/img/buttonbar.gif rename to src/kasu/static/img/buttonbar.gif diff --git a/kasu/static/img/facebook.png b/src/kasu/static/img/facebook.png similarity index 100% rename from kasu/static/img/facebook.png rename to src/kasu/static/img/facebook.png diff --git a/kasu/static/img/favicon.ico b/src/kasu/static/img/favicon.ico similarity index 100% rename from kasu/static/img/favicon.ico rename to src/kasu/static/img/favicon.ico diff --git a/kasu/static/img/footer-bg.png b/src/kasu/static/img/footer-bg.png similarity index 100% rename from kasu/static/img/footer-bg.png rename to src/kasu/static/img/footer-bg.png diff --git a/kasu/static/img/footer-bg.xcf b/src/kasu/static/img/footer-bg.xcf similarity index 100% rename from kasu/static/img/footer-bg.xcf rename to src/kasu/static/img/footer-bg.xcf diff --git a/kasu/static/img/footer_bg.png b/src/kasu/static/img/footer_bg.png similarity index 100% rename from kasu/static/img/footer_bg.png rename to src/kasu/static/img/footer_bg.png diff --git a/kasu/static/img/google.png b/src/kasu/static/img/google.png similarity index 100% rename from kasu/static/img/google.png rename to src/kasu/static/img/google.png diff --git a/kasu/static/img/google_maps.png b/src/kasu/static/img/google_maps.png similarity index 100% rename from kasu/static/img/google_maps.png rename to src/kasu/static/img/google_maps.png diff --git a/kasu/static/img/google_plus.png b/src/kasu/static/img/google_plus.png similarity index 100% rename from kasu/static/img/google_plus.png rename to src/kasu/static/img/google_plus.png diff --git a/kasu/static/img/gray-swoop.png b/src/kasu/static/img/gray-swoop.png similarity index 100% rename from kasu/static/img/gray-swoop.png rename to src/kasu/static/img/gray-swoop.png diff --git a/kasu/static/img/header_bg.png b/src/kasu/static/img/header_bg.png similarity index 100% rename from kasu/static/img/header_bg.png rename to src/kasu/static/img/header_bg.png diff --git a/kasu/static/img/ical_feed.gif b/src/kasu/static/img/ical_feed.gif similarity index 100% rename from kasu/static/img/ical_feed.gif rename to src/kasu/static/img/ical_feed.gif diff --git a/kasu/static/img/input-submit.png b/src/kasu/static/img/input-submit.png similarity index 100% rename from kasu/static/img/input-submit.png rename to src/kasu/static/img/input-submit.png diff --git a/kasu/static/img/left-arrow.png b/src/kasu/static/img/left-arrow.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/img/left-arrow.png rename to src/kasu/static/img/left-arrow.png diff --git a/kasu/static/img/li.gif b/src/kasu/static/img/li.gif similarity index 100% rename from kasu/static/img/li.gif rename to src/kasu/static/img/li.gif diff --git a/kasu/static/img/login_buttons.png b/src/kasu/static/img/login_buttons.png similarity index 100% rename from kasu/static/img/login_buttons.png rename to src/kasu/static/img/login_buttons.png diff --git a/kasu/static/img/logo.png b/src/kasu/static/img/logo.png similarity index 100% rename from kasu/static/img/logo.png rename to src/kasu/static/img/logo.png diff --git a/kasu/static/img/logo_mobile.png b/src/kasu/static/img/logo_mobile.png similarity index 100% rename from kasu/static/img/logo_mobile.png rename to src/kasu/static/img/logo_mobile.png diff --git a/kasu/static/img/nachtigal.png b/src/kasu/static/img/nachtigal.png similarity index 100% rename from kasu/static/img/nachtigal.png rename to src/kasu/static/img/nachtigal.png diff --git a/kasu/static/img/navigation-bg.jpg b/src/kasu/static/img/navigation-bg.jpg similarity index 100% rename from kasu/static/img/navigation-bg.jpg rename to src/kasu/static/img/navigation-bg.jpg diff --git a/kasu/static/img/navigation-bg.png b/src/kasu/static/img/navigation-bg.png similarity index 100% rename from kasu/static/img/navigation-bg.png rename to src/kasu/static/img/navigation-bg.png diff --git a/kasu/static/img/navigation-hover.png b/src/kasu/static/img/navigation-hover.png similarity index 100% rename from kasu/static/img/navigation-hover.png rename to src/kasu/static/img/navigation-hover.png diff --git a/kasu/static/img/navigation-mobile.png b/src/kasu/static/img/navigation-mobile.png similarity index 100% rename from kasu/static/img/navigation-mobile.png rename to src/kasu/static/img/navigation-mobile.png diff --git a/kasu/static/img/navigation-separator.png b/src/kasu/static/img/navigation-separator.png similarity index 100% rename from kasu/static/img/navigation-separator.png rename to src/kasu/static/img/navigation-separator.png diff --git a/kasu/static/img/news_teaser.jpg b/src/kasu/static/img/news_teaser.jpg similarity index 100% rename from kasu/static/img/news_teaser.jpg rename to src/kasu/static/img/news_teaser.jpg diff --git a/kasu/static/img/red-swoop.png b/src/kasu/static/img/red-swoop.png similarity index 100% rename from kasu/static/img/red-swoop.png rename to src/kasu/static/img/red-swoop.png diff --git a/kasu/static/img/right-arrow.png b/src/kasu/static/img/right-arrow.png old mode 100644 new mode 100755 similarity index 100% rename from kasu/static/img/right-arrow.png rename to src/kasu/static/img/right-arrow.png diff --git a/kasu/static/img/rss_feed.gif b/src/kasu/static/img/rss_feed.gif similarity index 100% rename from kasu/static/img/rss_feed.gif rename to src/kasu/static/img/rss_feed.gif diff --git a/kasu/static/img/teaser/default.jpg b/src/kasu/static/img/teaser/default.jpg similarity index 100% rename from kasu/static/img/teaser/default.jpg rename to src/kasu/static/img/teaser/default.jpg diff --git a/kasu/static/img/teaser/edit_page.jpg b/src/kasu/static/img/teaser/edit_page.jpg similarity index 100% rename from kasu/static/img/teaser/edit_page.jpg rename to src/kasu/static/img/teaser/edit_page.jpg diff --git a/kasu/static/img/teaser/events.jpg b/src/kasu/static/img/teaser/events.jpg similarity index 100% rename from kasu/static/img/teaser/events.jpg rename to src/kasu/static/img/teaser/events.jpg diff --git a/kasu/static/img/teaser/gallery.jpg b/src/kasu/static/img/teaser/gallery.jpg similarity index 100% rename from kasu/static/img/teaser/gallery.jpg rename to src/kasu/static/img/teaser/gallery.jpg diff --git a/kasu/static/img/teaser/mahjong.jpg b/src/kasu/static/img/teaser/mahjong.jpg similarity index 100% rename from kasu/static/img/teaser/mahjong.jpg rename to src/kasu/static/img/teaser/mahjong.jpg diff --git a/kasu/static/img/teaser/maistar.jpg b/src/kasu/static/img/teaser/maistar.jpg similarity index 100% rename from kasu/static/img/teaser/maistar.jpg rename to src/kasu/static/img/teaser/maistar.jpg diff --git a/kasu/static/img/teaser/news.jpg b/src/kasu/static/img/teaser/news.jpg similarity index 100% rename from kasu/static/img/teaser/news.jpg rename to src/kasu/static/img/teaser/news.jpg diff --git a/kasu/static/img/teaser/ranking.jpg b/src/kasu/static/img/teaser/ranking.jpg similarity index 100% rename from kasu/static/img/teaser/ranking.jpg rename to src/kasu/static/img/teaser/ranking.jpg diff --git a/kasu/static/img/teaser/spiele.jpg b/src/kasu/static/img/teaser/spiele.jpg similarity index 100% rename from kasu/static/img/teaser/spiele.jpg rename to src/kasu/static/img/teaser/spiele.jpg diff --git a/kasu/static/img/teaser/verein.jpg b/src/kasu/static/img/teaser/verein.jpg similarity index 100% rename from kasu/static/img/teaser/verein.jpg rename to src/kasu/static/img/teaser/verein.jpg diff --git a/kasu/static/img/teaser_bg.png b/src/kasu/static/img/teaser_bg.png similarity index 100% rename from kasu/static/img/teaser_bg.png rename to src/kasu/static/img/teaser_bg.png diff --git a/kasu/static/img/thumbnail-bg.png b/src/kasu/static/img/thumbnail-bg.png similarity index 100% rename from kasu/static/img/thumbnail-bg.png rename to src/kasu/static/img/thumbnail-bg.png diff --git a/kasu/static/img/top-bg.png b/src/kasu/static/img/top-bg.png similarity index 100% rename from kasu/static/img/top-bg.png rename to src/kasu/static/img/top-bg.png diff --git a/kasu/static/img/twitter.png b/src/kasu/static/img/twitter.png similarity index 100% rename from kasu/static/img/twitter.png rename to src/kasu/static/img/twitter.png diff --git a/kasu/static/img/unknown_thumbnail.png b/src/kasu/static/img/unknown_thumbnail.png similarity index 100% rename from kasu/static/img/unknown_thumbnail.png rename to src/kasu/static/img/unknown_thumbnail.png diff --git a/kasu/static/img/usernav-bg.png b/src/kasu/static/img/usernav-bg.png similarity index 100% rename from kasu/static/img/usernav-bg.png rename to src/kasu/static/img/usernav-bg.png diff --git a/kasu/static/js/ckeditor/CHANGES.md b/src/kasu/static/js/ckeditor/CHANGES.md similarity index 98% rename from kasu/static/js/ckeditor/CHANGES.md rename to src/kasu/static/js/ckeditor/CHANGES.md index 477f59a..ae3469f 100644 --- a/kasu/static/js/ckeditor/CHANGES.md +++ b/src/kasu/static/js/ckeditor/CHANGES.md @@ -1,120 +1,120 @@ -CKEditor 4 Changelog -==================== - -## CKEditor 4.1 - -* [#10192](http://dev.ckeditor.com/ticket/10192): Closing lists with Enter key does not work with Advanced Content Filter in several cases. -* [#10191](http://dev.ckeditor.com/ticket/10191): Fixed allowed content rules unification, so the `filter.allowedContent` property always contains rules in the same format. -* [#10224](http://dev.ckeditor.com/ticket/10224): Advanced Content Filter does not remove non-empty `` elements anymore. -* Minor issues in plugin integration with Advanced Content Filter: - * [#10166](http://dev.ckeditor.com/ticket/10166): Added transformation from the `align` attribute to `float` style to preserve backward compatibility after the introduction of Advanced Content Filter. - * [#10195](http://dev.ckeditor.com/ticket/10195): Image plugin no longer registers rules for links to Advanced Content Filter. - * [#10213](http://dev.ckeditor.com/ticket/10213): Justify plugin is now correctly registering rules to Advanced Content Filter when `config.justifyClasses` is defined. - -## CKEditor 4.1 RC - -* [#9829](http://dev.ckeditor.com/ticket/9829): Data and features activation based on editor configuration. - - Brand new data filtering system that works in 2 modes: - - * based on loaded features (toolbar items, plugins) - the data will be filtered according to what the editor in its - current configuration can handle, - * based on `config.allowedContent` rules - the data will be filtered and the editor features (toolbar items, commands, - keystrokes) will be enabled if they are allowed. - - See the `datafiltering.html` sample, [guides](http://docs.ckeditor.com/#!/guide/dev_advanced_content_filter) and [`CKEDITOR.filter` API documentation](http://docs.ckeditor.com/#!/api/CKEDITOR.filter). -* [#9387](http://dev.ckeditor.com/ticket/9387): Reintroduced "Shared Spaces" - the ability to display toolbar and bottom editor space in selected locations and to share them by different editor instances. -* [#9907](http://dev.ckeditor.com/ticket/9907): Added the `contentPreview` event for preview data manipulation. -* [#9713](http://dev.ckeditor.com/ticket/9713): Introduced the `sourcedialog` plugin that brings raw HTML editing for inline editor instances. -* Included in [#9829](http://dev.ckeditor.com/ticket/9829): Introduced new events, `toHtml` and `toDataFormat`, allowing for better integration with data processing. See API documentation: [`toHtml`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-toHtml), [`toDataFormat`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-toDataFormat). -* [#9981](http://dev.ckeditor.com/ticket/9981): Added ability to filter `htmlParser.fragment`, `htmlParser.element` etc. by many `htmlParser.filter`s before writing structure to an HTML string. -* Included in [#10103](http://dev.ckeditor.com/ticket/10103): - * Introduced the `editor.status` property to make it easier to check the current status of the editor. See [API documentation](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-property-status). - * Default `command` state is now `CKEDITOR.TRISTATE_DISABLE`. It will be activated on `editor.instanceReady` or immediately after being added if the editor is already initialized. -* [#9796](http://dev.ckeditor.com/ticket/9796): Introduced `` as a default tag for strikethrough, which replaces obsolete `` in HTML5. - -## CKEditor 4.0.3 - -* [#10196](http://dev.ckeditor.com/ticket/10196): Fixed context menus not opening with keyboard shortcuts when Autogrow is enabled. -* [#10212](http://dev.ckeditor.com/ticket/10212): [IE7-10] Undo command throws errors after multiple switches between Source and WYSIWYG view. -* [#10219](http://dev.ckeditor.com/ticket/10219): [Inline editor] Error thrown after calling editor.destroy(). - -## CKEditor 4.0.2 - -* [#9779](http://dev.ckeditor.com/ticket/9779): Fixed overriding `CKEDITOR.getUrl` with `CKEDITOR_GETURL`. -* [#9772](http://dev.ckeditor.com/ticket/9772): Custom buttons in dialog window footer have different look and size (Moono, Kama). -* [#9029](http://dev.ckeditor.com/ticket/9029): Custom styles added with `styleSet.add()` are displayed in wrong order. -* [#9887](http://dev.ckeditor.com/ticket/9887): Disable magicline when `editor.readOnly` is set. -* [#9882](http://dev.ckeditor.com/ticket/9882): Fixed empty document title on `getData()` if set via the Document Properties dialog window. -* [#9773](http://dev.ckeditor.com/ticket/9773): Fixed rendering problems with selection fields in the Kama skin. -* [#9851](http://dev.ckeditor.com/ticket/9851): The `selectionChange` event is not fired when mouse selection ended outside editable. -* [#9903](http://dev.ckeditor.com/ticket/9903): [Inline editor] Bad positioning of floating space with page horizontal scroll. -* [#9872](http://dev.ckeditor.com/ticket/9872): `editor.checkDirty()` returns `true` when called onload. Removed the obsolete `editor.mayBeDirty` flag. -* [#9893](http://dev.ckeditor.com/ticket/9893): Fixed broken toolbar when editing mixed direction content in Quirks mode. -* [#9845](http://dev.ckeditor.com/ticket/9845): Fixed TAB navigation in the Link dialog window when the Anchor option is used and no anchors are available. -* [#9883](http://dev.ckeditor.com/ticket/9883): Maximizing was making the entire page editable with divarea-based editors. -* [#9940](http://dev.ckeditor.com/ticket/9940): [Firefox] Navigating back to a page with the editor was making the entire page editable. -* [#9966](http://dev.ckeditor.com/ticket/9966): Fixed: Unable to type square brackets with French keyboard layout. Changed magicline keystrokes. -* [#9507](http://dev.ckeditor.com/ticket/9507): [Firefox] Selection is moved before editable position when the editor is focused for the first time. -* [#9947](http://dev.ckeditor.com/ticket/9947): [Webkit] Editor overflows parent container in some edge cases. -* [#10105](http://dev.ckeditor.com/ticket/10105): Fixed: Broken sourcearea view when an RTL language is set. -* [#10123](http://dev.ckeditor.com/ticket/10123): [Webkit] Fixed: Several dialog windows have broken layout since the latest Webkit release. -* [#10152](http://dev.ckeditor.com/ticket/10152): Fixed: Invalid ARIA property used on menu items. - -## CKEditor 4.0.1.1 - -* Security update: Added protection against XSS attack and possible path disclosure in PHP sample. - -## CKEditor 4.0.1 - -Fixed issues: - -* [#9655](http://dev.ckeditor.com/ticket/9655): Support for IE Quirks Mode in new Moono skin. -* Accessibility issues (mainly on inline editor): [#9364](http://dev.ckeditor.com/ticket/9364), [#9368](http://dev.ckeditor.com/ticket/9368), [#9369](http://dev.ckeditor.com/ticket/9369), [#9370](http://dev.ckeditor.com/ticket/9370), [#9541](http://dev.ckeditor.com/ticket/9541), [#9543](http://dev.ckeditor.com/ticket/9543), [#9841](http://dev.ckeditor.com/ticket/9841), [#9844](http://dev.ckeditor.com/ticket/9844). -* Magic-line: - * [#9481](http://dev.ckeditor.com/ticket/9481): Added accessibility support for Magic-line. - * [#9509](http://dev.ckeditor.com/ticket/9509): Added Magic-line support for forms. - * [#9573](http://dev.ckeditor.com/ticket/9573): Magic-line doesn't disappear on `mouseout` in the specific case. -* [#9754](http://dev.ckeditor.com/ticket/9754): [Webkit] Cut & paste simple unformatted text generates inline wrapper in Webkits. -* [#9456](http://dev.ckeditor.com/ticket/9456): [Chrome] Properly paste bullet list style from MS-Word. -* [#9699](http://dev.ckeditor.com/ticket/9699), [#9758](http://dev.ckeditor.com/ticket/9758): Improved selection locking when selecting by dragging. -* Context menu: - * [#9712](http://dev.ckeditor.com/ticket/9712): Context menu open destroys editor focus. - * [#9366](http://dev.ckeditor.com/ticket/9366): Context menu should be displayed over floating toolbar. - * [#9706](http://dev.ckeditor.com/ticket/9706): Context menu generates JS error in inline mode when editor attached to header element. -* [#9800](http://dev.ckeditor.com/ticket/9800): Hide float panel when resizing window. -* [#9721](http://dev.ckeditor.com/ticket/9721): Padding in content of div based editor puts editing area under bottom UI space. -* [#9528](http://dev.ckeditor.com/ticket/9528): Host page's `box-sizing` style shouldn't influence editor UI elements. -* [#9503](http://dev.ckeditor.com/ticket/9503): Forms plugin adds context menu listeners only on supported input types. Added support for `tel, email, search` and `url` input types. -* [#9769](http://dev.ckeditor.com/ticket/9769): Improved floating toolbar positioning in narrow window. -* [#9875](http://dev.ckeditor.com/ticket/9875): Table dialog doesn't populate width correctly. -* [#8675](http://dev.ckeditor.com/ticket/8675): Deleting cells in nested table removes outer table cell. -* [#9815](http://dev.ckeditor.com/ticket/9815): Can't edit dialog fields on editor initialized in jQuery UI modal dialog. -* [#8888](http://dev.ckeditor.com/ticket/8888): CKEditor dialogs do not show completely in small window. -* [#9360](http://dev.ckeditor.com/ticket/9360): [Inline editor] Blocks shown for a div stay permanently even after user exists editing the div. -* [#9531](http://dev.ckeditor.com/ticket/9531): [Firefox & Inline editor] Toolbar is lost when closing format combo by clicking on its button. -* [#9553](http://dev.ckeditor.com/ticket/9553): Table width incorrectly set when `border-width` style is specified. -* [#9594](http://dev.ckeditor.com/ticket/9594): Cannot tab past CKEditor when it is in read only mode. -* [#9658](http://dev.ckeditor.com/ticket/9658): [IE9] Justify not working on selected image. -* [#9686](http://dev.ckeditor.com/ticket/9686): Added missing contents styles for `
`.
-* [#9709](http://dev.ckeditor.com/ticket/9709): PasteFromWord should not depend on configuration from other styles.
-* [#9726](http://dev.ckeditor.com/ticket/9726): Removed color dialog dependency from table tools.
-* [#9765](http://dev.ckeditor.com/ticket/9765): Toolbar Collapse command documented incorrectly on Accessibility Instructions dialog.
-* [#9771](http://dev.ckeditor.com/ticket/9771): [Webkit & Opera] Fixed scrolling issues when pasting.
-* [#9787](http://dev.ckeditor.com/ticket/9787): [IE9] onChange isn't fired for checkboxes in dialogs.
-* [#9842](http://dev.ckeditor.com/ticket/9842): [Firefox 17] When we open toolbar menu for the first time & press down arrow key, focus goes to next toolbar button instead of menu options.
-* [#9847](http://dev.ckeditor.com/ticket/9847): Elements path shouldn't be initialized on inline editor.
-* [#9853](http://dev.ckeditor.com/ticket/9853): `Editor#addRemoveFormatFilter` is exposed before it really works.
-* [#8893](http://dev.ckeditor.com/ticket/8893): Value of `pasteFromWordCleanupFile` config is now taken from instance configuration.
-* [#9693](http://dev.ckeditor.com/ticket/9693): Removed "live preview" checkbox from UI color picker.
-
-
-## CKEditor 4.0
-
-The first stable release of the new CKEditor 4 code line.
-
-The CKEditor JavaScript API has been kept compatible with CKEditor 4, whenever
-possible. The list of relevant changes can be found in the [API Changes page of
-the CKEditor 4 documentation][1].
-
-[1]: http://docs.ckeditor.com/#!/guide/dev_api_changes "API Changes"
+CKEditor 4 Changelog
+====================
+
+## CKEditor 4.1
+
+* [#10192](http://dev.ckeditor.com/ticket/10192): Closing lists with Enter key does not work with Advanced Content Filter in several cases.
+* [#10191](http://dev.ckeditor.com/ticket/10191): Fixed allowed content rules unification, so the `filter.allowedContent` property always contains rules in the same format.
+* [#10224](http://dev.ckeditor.com/ticket/10224): Advanced Content Filter does not remove non-empty `` elements anymore.
+* Minor issues in plugin integration with Advanced Content Filter:
+  * [#10166](http://dev.ckeditor.com/ticket/10166): Added transformation from the `align` attribute to `float` style to preserve backward compatibility after the introduction of Advanced Content Filter.
+  * [#10195](http://dev.ckeditor.com/ticket/10195): Image plugin no longer registers rules for links to Advanced Content Filter.
+  * [#10213](http://dev.ckeditor.com/ticket/10213): Justify plugin is now correctly registering rules to Advanced Content Filter when `config.justifyClasses` is defined.
+
+## CKEditor 4.1 RC
+
+* [#9829](http://dev.ckeditor.com/ticket/9829): Data and features activation based on editor configuration.
+
+  Brand new data filtering system that works in 2 modes:
+
+  * based on loaded features (toolbar items, plugins) - the data will be filtered according to what the editor in its
+  current configuration can handle,
+  * based on `config.allowedContent` rules - the data will be filtered and the editor features (toolbar items, commands,
+  keystrokes) will be enabled if they are allowed.
+
+  See the `datafiltering.html` sample, [guides](http://docs.ckeditor.com/#!/guide/dev_advanced_content_filter) and [`CKEDITOR.filter` API documentation](http://docs.ckeditor.com/#!/api/CKEDITOR.filter).
+* [#9387](http://dev.ckeditor.com/ticket/9387): Reintroduced "Shared Spaces" - the ability to display toolbar and bottom editor space in selected locations and to share them by different editor instances.
+* [#9907](http://dev.ckeditor.com/ticket/9907): Added the `contentPreview` event for preview data manipulation.
+* [#9713](http://dev.ckeditor.com/ticket/9713): Introduced the `sourcedialog` plugin that brings raw HTML editing for inline editor instances.
+* Included in [#9829](http://dev.ckeditor.com/ticket/9829): Introduced new events, `toHtml` and `toDataFormat`, allowing for better integration with data processing. See API documentation: [`toHtml`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-toHtml), [`toDataFormat`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-toDataFormat).
+* [#9981](http://dev.ckeditor.com/ticket/9981): Added ability to filter `htmlParser.fragment`, `htmlParser.element` etc. by many `htmlParser.filter`s before writing structure to an HTML string.
+* Included in [#10103](http://dev.ckeditor.com/ticket/10103):
+  * Introduced the `editor.status` property to make it easier to check the current status of the editor. See [API documentation](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-property-status).
+  * Default `command` state is now `CKEDITOR.TRISTATE_DISABLE`. It will be activated on `editor.instanceReady` or immediately after being added if the editor is already initialized.
+* [#9796](http://dev.ckeditor.com/ticket/9796): Introduced `` as a default tag for strikethrough, which replaces obsolete `` in HTML5.
+
+## CKEditor 4.0.3
+
+* [#10196](http://dev.ckeditor.com/ticket/10196): Fixed context menus not opening with keyboard shortcuts when Autogrow is enabled.
+* [#10212](http://dev.ckeditor.com/ticket/10212): [IE7-10] Undo command throws errors after multiple switches between Source and WYSIWYG view.
+* [#10219](http://dev.ckeditor.com/ticket/10219): [Inline editor] Error thrown after calling editor.destroy().
+
+## CKEditor 4.0.2
+
+* [#9779](http://dev.ckeditor.com/ticket/9779): Fixed overriding `CKEDITOR.getUrl` with `CKEDITOR_GETURL`.
+* [#9772](http://dev.ckeditor.com/ticket/9772): Custom buttons in dialog window footer have different look and size (Moono, Kama).
+* [#9029](http://dev.ckeditor.com/ticket/9029): Custom styles added with `styleSet.add()` are displayed in wrong order.
+* [#9887](http://dev.ckeditor.com/ticket/9887): Disable magicline when `editor.readOnly` is set.
+* [#9882](http://dev.ckeditor.com/ticket/9882): Fixed empty document title on `getData()` if set via the Document Properties dialog window.
+* [#9773](http://dev.ckeditor.com/ticket/9773): Fixed rendering problems with selection fields in the Kama skin.
+* [#9851](http://dev.ckeditor.com/ticket/9851): The `selectionChange` event is not fired when mouse selection ended outside editable.
+* [#9903](http://dev.ckeditor.com/ticket/9903): [Inline editor] Bad positioning of floating space with page horizontal scroll.
+* [#9872](http://dev.ckeditor.com/ticket/9872): `editor.checkDirty()` returns `true` when called onload. Removed the obsolete `editor.mayBeDirty` flag.
+* [#9893](http://dev.ckeditor.com/ticket/9893): Fixed broken toolbar when editing mixed direction content in Quirks mode.
+* [#9845](http://dev.ckeditor.com/ticket/9845): Fixed TAB navigation in the Link dialog window when the Anchor option is used and no anchors are available.
+* [#9883](http://dev.ckeditor.com/ticket/9883): Maximizing was making the entire page editable with divarea-based editors.
+* [#9940](http://dev.ckeditor.com/ticket/9940): [Firefox] Navigating back to a page with the editor was making the entire page editable.
+* [#9966](http://dev.ckeditor.com/ticket/9966): Fixed: Unable to type square brackets with French keyboard layout. Changed magicline keystrokes.
+* [#9507](http://dev.ckeditor.com/ticket/9507): [Firefox] Selection is moved before editable position when the editor is focused for the first time.
+* [#9947](http://dev.ckeditor.com/ticket/9947): [Webkit] Editor overflows parent container in some edge cases.
+* [#10105](http://dev.ckeditor.com/ticket/10105): Fixed: Broken sourcearea view when an RTL language is set.
+* [#10123](http://dev.ckeditor.com/ticket/10123): [Webkit] Fixed: Several dialog windows have broken layout since the latest Webkit release.
+* [#10152](http://dev.ckeditor.com/ticket/10152): Fixed: Invalid ARIA property used on menu items.
+
+## CKEditor 4.0.1.1
+
+* Security update: Added protection against XSS attack and possible path disclosure in PHP sample.
+
+## CKEditor 4.0.1
+
+Fixed issues:
+
+* [#9655](http://dev.ckeditor.com/ticket/9655): Support for IE Quirks Mode in new Moono skin.
+* Accessibility issues (mainly on inline editor): [#9364](http://dev.ckeditor.com/ticket/9364), [#9368](http://dev.ckeditor.com/ticket/9368), [#9369](http://dev.ckeditor.com/ticket/9369), [#9370](http://dev.ckeditor.com/ticket/9370), [#9541](http://dev.ckeditor.com/ticket/9541), [#9543](http://dev.ckeditor.com/ticket/9543), [#9841](http://dev.ckeditor.com/ticket/9841), [#9844](http://dev.ckeditor.com/ticket/9844).
+* Magic-line:
+    * [#9481](http://dev.ckeditor.com/ticket/9481): Added accessibility support for Magic-line.
+    * [#9509](http://dev.ckeditor.com/ticket/9509): Added Magic-line support for forms.
+    * [#9573](http://dev.ckeditor.com/ticket/9573): Magic-line doesn't disappear on `mouseout` in the specific case.
+* [#9754](http://dev.ckeditor.com/ticket/9754): [Webkit] Cut & paste simple unformatted text generates inline wrapper in Webkits.
+* [#9456](http://dev.ckeditor.com/ticket/9456): [Chrome] Properly paste bullet list style from MS-Word.
+* [#9699](http://dev.ckeditor.com/ticket/9699), [#9758](http://dev.ckeditor.com/ticket/9758): Improved selection locking when selecting by dragging.
+* Context menu:
+    * [#9712](http://dev.ckeditor.com/ticket/9712): Context menu open destroys editor focus.
+    * [#9366](http://dev.ckeditor.com/ticket/9366): Context menu should be displayed over floating toolbar.
+    * [#9706](http://dev.ckeditor.com/ticket/9706): Context menu generates JS error in inline mode when editor attached to header element.
+* [#9800](http://dev.ckeditor.com/ticket/9800): Hide float panel when resizing window.
+* [#9721](http://dev.ckeditor.com/ticket/9721): Padding in content of div based editor puts editing area under bottom UI space.
+* [#9528](http://dev.ckeditor.com/ticket/9528): Host page's `box-sizing` style shouldn't influence editor UI elements.
+* [#9503](http://dev.ckeditor.com/ticket/9503): Forms plugin adds context menu listeners only on supported input types. Added support for `tel, email, search` and `url` input types.
+* [#9769](http://dev.ckeditor.com/ticket/9769): Improved floating toolbar positioning in narrow window.
+* [#9875](http://dev.ckeditor.com/ticket/9875): Table dialog doesn't populate width correctly.
+* [#8675](http://dev.ckeditor.com/ticket/8675): Deleting cells in nested table removes outer table cell.
+* [#9815](http://dev.ckeditor.com/ticket/9815): Can't edit dialog fields on editor initialized in jQuery UI modal dialog.
+* [#8888](http://dev.ckeditor.com/ticket/8888): CKEditor dialogs do not show completely in small window.
+* [#9360](http://dev.ckeditor.com/ticket/9360): [Inline editor] Blocks shown for a div stay permanently even after user exists editing the div.
+* [#9531](http://dev.ckeditor.com/ticket/9531): [Firefox & Inline editor] Toolbar is lost when closing format combo by clicking on its button.
+* [#9553](http://dev.ckeditor.com/ticket/9553): Table width incorrectly set when `border-width` style is specified.
+* [#9594](http://dev.ckeditor.com/ticket/9594): Cannot tab past CKEditor when it is in read only mode.
+* [#9658](http://dev.ckeditor.com/ticket/9658): [IE9] Justify not working on selected image.
+* [#9686](http://dev.ckeditor.com/ticket/9686): Added missing contents styles for `
`.
+* [#9709](http://dev.ckeditor.com/ticket/9709): PasteFromWord should not depend on configuration from other styles.
+* [#9726](http://dev.ckeditor.com/ticket/9726): Removed color dialog dependency from table tools.
+* [#9765](http://dev.ckeditor.com/ticket/9765): Toolbar Collapse command documented incorrectly on Accessibility Instructions dialog.
+* [#9771](http://dev.ckeditor.com/ticket/9771): [Webkit & Opera] Fixed scrolling issues when pasting.
+* [#9787](http://dev.ckeditor.com/ticket/9787): [IE9] onChange isn't fired for checkboxes in dialogs.
+* [#9842](http://dev.ckeditor.com/ticket/9842): [Firefox 17] When we open toolbar menu for the first time & press down arrow key, focus goes to next toolbar button instead of menu options.
+* [#9847](http://dev.ckeditor.com/ticket/9847): Elements path shouldn't be initialized on inline editor.
+* [#9853](http://dev.ckeditor.com/ticket/9853): `Editor#addRemoveFormatFilter` is exposed before it really works.
+* [#8893](http://dev.ckeditor.com/ticket/8893): Value of `pasteFromWordCleanupFile` config is now taken from instance configuration.
+* [#9693](http://dev.ckeditor.com/ticket/9693): Removed "live preview" checkbox from UI color picker.
+
+
+## CKEditor 4.0
+
+The first stable release of the new CKEditor 4 code line.
+
+The CKEditor JavaScript API has been kept compatible with CKEditor 4, whenever
+possible. The list of relevant changes can be found in the [API Changes page of
+the CKEditor 4 documentation][1].
+
+[1]: http://docs.ckeditor.com/#!/guide/dev_api_changes "API Changes"
diff --git a/kasu/static/js/ckeditor/LICENSE.md b/src/kasu/static/js/ckeditor/LICENSE.md
similarity index 98%
rename from kasu/static/js/ckeditor/LICENSE.md
rename to src/kasu/static/js/ckeditor/LICENSE.md
index d447c67..cf70e61 100644
--- a/kasu/static/js/ckeditor/LICENSE.md
+++ b/src/kasu/static/js/ckeditor/LICENSE.md
@@ -1,1264 +1,1264 @@
-Software License Agreement
-==========================
-
-CKEditor - The text editor for Internet - http://ckeditor.com
-Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
-
-Licensed under the terms of any of the following licenses at your
-choice:
-
- - GNU General Public License Version 2 or later (the "GPL")
-   http://www.gnu.org/licenses/gpl.html
-   (See Appendix A)
-
- - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
-   http://www.gnu.org/licenses/lgpl.html
-   (See Appendix B)
-
- - Mozilla Public License Version 1.1 or later (the "MPL")
-   http://www.mozilla.org/MPL/MPL-1.1.html
-   (See Appendix C)
-
-You are not required to, but if you want to explicitly declare the
-license you have chosen to be bound to when using, reproducing,
-modifying and distributing this software, just include a text file
-titled "legal.txt" in your version of this software, indicating your
-license choice. In any case, your choice will not restrict any
-recipient of your version of this software to use, reproduce, modify
-and distribute this software under any of the above licenses.
-
-Sources of Intellectual Property Included in CKEditor
------------------------------------------------------
-
-Where not otherwise indicated, all CKEditor content is authored by
-CKSource engineers and consists of CKSource-owned intellectual
-property. In some specific instances, CKEditor will incorporate work
-done by developers outside of CKSource with their express permission.
-
-Trademarks
-----------
-
-CKEditor is a trademark of CKSource - Frederico Knabben. All other brand
-and product names are trademarks, registered trademarks or service
-marks of their respective holders.
-
----
-
-Appendix A: The GPL License
----------------------------
-
-GNU GENERAL PUBLIC LICENSE
-Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software-to make sure the software is free for all its users.  This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it.  (Some other Free Software Foundation software is covered by
-the GNU Lesser General Public License instead.)  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have.  You must make sure that they, too, receive or can get the
-source code.  And you must show them these terms so they know their
-rights.
-
-  We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
-  Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software.  If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary.  To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-
-GNU GENERAL PUBLIC LICENSE
-TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License.  The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language.  (Hereinafter, translation is included without limitation in
-the term "modification".)  Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
-  1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
-  2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) You must cause the modified files to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    b) You must cause any work that you distribute or publish, that in
-    whole or in part contains or is derived from the Program or any
-    part thereof, to be licensed as a whole at no charge to all third
-    parties under the terms of this License.
-
-    c) If the modified program normally reads commands interactively
-    when run, you must cause it, when started running for such
-    interactive use in the most ordinary way, to print or display an
-    announcement including an appropriate copyright notice and a
-    notice that there is no warranty (or else, saying that you provide
-    a warranty) and that users may redistribute the program under
-    these conditions, and telling the user how to view a copy of this
-    License.  (Exception: if the Program itself is interactive but
-    does not normally print such an announcement, your work based on
-    the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
-    a) Accompany it with the complete corresponding machine-readable
-    source code, which must be distributed under the terms of Sections
-    1 and 2 above on a medium customarily used for software interchange; or,
-
-    b) Accompany it with a written offer, valid for at least three
-    years, to give any third party, for a charge no more than your
-    cost of physically performing source distribution, a complete
-    machine-readable copy of the corresponding source code, to be
-    distributed under the terms of Sections 1 and 2 above on a medium
-    customarily used for software interchange; or,
-
-    c) Accompany it with the information you received as to the offer
-    to distribute corresponding source code.  (This alternative is
-    allowed only for noncommercial distribution and only if you
-    received the program in object code or executable form with such
-    an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it.  For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable.  However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License.  Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-  5. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Program or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
-  6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
-  7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-  9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation.  If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
-  10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission.  For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this.  Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
-NO WARRANTY
-
-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
-END OF TERMS AND CONDITIONS
-
-
-Appendix B: The LGPL License
-----------------------------
-
-GNU LESSER GENERAL PUBLIC LICENSE
-Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
-     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the Lesser GPL.  It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-
-Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software-to make sure the software is free for all its users.
-
-  This license, the Lesser General Public License, applies to some
-specially designated software packages-typically libraries-of the
-Free Software Foundation and other authors who decide to use it.  You
-can use it too, but we suggest you first think carefully about whether
-this license or the ordinary General Public License is the better
-strategy to use in any particular case, based on the explanations below.
-
-  When we speak of free software, we are referring to freedom of use,
-not price.  Our General Public Licenses are designed to make sure that
-you have the freedom to distribute copies of free software (and charge
-for this service if you wish); that you receive source code or can get
-it if you want it; that you can change the software and use pieces of
-it in new free programs; and that you are informed that you can do
-these things.
-
-  To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights.  These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
-  For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you.  You must make sure that they, too, receive or can get the source
-code.  If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it.  And you must show them these terms so they know their rights.
-
-  We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
-  To protect each distributor, we want to make it very clear that
-there is no warranty for the free library.  Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-
-  Finally, software patents pose a constant threat to the existence of
-any free program.  We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder.  Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
-  Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License.  This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License.  We use
-this license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
-  When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library.  The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom.  The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
-  We call this license the "Lesser" General Public License because it
-does Less to protect the user's freedom than the ordinary General
-Public License.  It also provides other free software developers Less
-of an advantage over competing non-free programs.  These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries.  However, the Lesser license provides advantages in certain
-special circumstances.
-
-  For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it becomes
-a de-facto standard.  To achieve this, non-free programs must be
-allowed to use the library.  A more frequent case is that a free
-library does the same job as widely used non-free libraries.  In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
-  In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software.  For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
-  Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.  Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library".  The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-
-GNU LESSER GENERAL PUBLIC LICENSE
-TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or
-other authorized party saying it may be distributed under the terms of
-this Lesser General Public License (also called "this License").
-Each licensee is addressed as "you".
-
-  A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
-  The "Library", below, refers to any such software library or work
-which has been distributed under these terms.  A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language.  (Hereinafter, translation is
-included without limitation in the term "modification".)
-
-  "Source code" for a work means the preferred form of the work for
-making modifications to it.  For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation
-and installation of the library.
-
-  Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it).  Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-
-  1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
-  You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-
-  2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) The modified work must itself be a software library.
-
-    b) You must cause the files modified to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    c) You must cause the whole of the work to be licensed at no
-    charge to all third parties under the terms of this License.
-
-    d) If a facility in the modified Library refers to a function or a
-    table of data to be supplied by an application program that uses
-    the facility, other than as an argument passed when the facility
-    is invoked, then you must make a good faith effort to ensure that,
-    in the event an application does not supply such function or
-    table, the facility still operates, and performs whatever part of
-    its purpose remains meaningful.
-
-    (For example, a function in a library to compute square roots has
-    a purpose that is entirely well-defined independent of the
-    application.  Therefore, Subsection 2d requires that any
-    application-supplied function or table used by this function must
-    be optional: if the application does not supply it, the square
-    root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library.  To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License.  (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.)  Do not make any other change in
-these notices.
-
-  Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
-  This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
-  4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
-  If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library".  Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
-  However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library".  The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
-  When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library.  The
-threshold for this to be true is not precisely defined by law.
-
-  If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work.  (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
-  Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-
-  6. As an exception to the Sections above, you may also combine or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
-  You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License.  You must supply a copy of this License.  If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License.  Also, you must do one
-of these things:
-
-    a) Accompany the work with the complete corresponding
-    machine-readable source code for the Library including whatever
-    changes were used in the work (which must be distributed under
-    Sections 1 and 2 above); and, if the work is an executable linked
-    with the Library, with the complete machine-readable "work that
-    uses the Library", as object code and/or source code, so that the
-    user can modify the Library and then relink to produce a modified
-    executable containing the modified Library.  (It is understood
-    that the user who changes the contents of definitions files in the
-    Library will not necessarily be able to recompile the application
-    to use the modified definitions.)
-
-    b) Use a suitable shared library mechanism for linking with the
-    Library.  A suitable mechanism is one that (1) uses at run time a
-    copy of the library already present on the user's computer system,
-    rather than copying library functions into the executable, and (2)
-    will operate properly with a modified version of the library, if
-    the user installs one, as long as the modified version is
-    interface-compatible with the version that the work was made with.
-
-    c) Accompany the work with a written offer, valid for at
-    least three years, to give the same user the materials
-    specified in Subsection 6a, above, for a charge no more
-    than the cost of performing this distribution.
-
-    d) If distribution of the work is made by offering access to copy
-    from a designated place, offer equivalent access to copy the above
-    specified materials from the same place.
-
-    e) Verify that the user has already received a copy of these
-    materials or that you have already sent this user a copy.
-
-  For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it.  However, as a special exception,
-the materials to be distributed need not include anything that is
-normally distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
-  It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system.  Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-
-  7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
-    a) Accompany the combined library with a copy of the same work
-    based on the Library, uncombined with any other library
-    facilities.  This must be distributed under the terms of the
-    Sections above.
-
-    b) Give prominent notice with the combined library of the fact
-    that part of it is a work based on the Library, and explaining
-    where to find the accompanying uncombined form of the same work.
-
-  8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License.  Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License.  However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
-  9. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Library or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
-  10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties with
-this License.
-
-  11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply,
-and the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License may add
-an explicit geographical distribution limitation excluding those countries,
-so that distribution is permitted only in or among countries not thus
-excluded.  In such case, this License incorporates the limitation as if
-written in the body of this License.
-
-  13. The Free Software Foundation may publish revised and/or new
-versions of the Lesser General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation.  If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-
-  14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission.  For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this.  Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
-NO WARRANTY
-
-  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
-END OF TERMS AND CONDITIONS
-
-
-Appendix C: The MPL License
----------------------------
-
-MOZILLA PUBLIC LICENSE
-Version 1.1
-
-1. Definitions.
-
-     1.0.1. "Commercial Use" means distribution or otherwise making the
-     Covered Code available to a third party.
-
-     1.1. "Contributor" means each entity that creates or contributes to
-     the creation of Modifications.
-
-     1.2. "Contributor Version" means the combination of the Original
-     Code, prior Modifications used by a Contributor, and the Modifications
-     made by that particular Contributor.
-
-     1.3. "Covered Code" means the Original Code or Modifications or the
-     combination of the Original Code and Modifications, in each case
-     including portions thereof.
-
-     1.4. "Electronic Distribution Mechanism" means a mechanism generally
-     accepted in the software development community for the electronic
-     transfer of data.
-
-     1.5. "Executable" means Covered Code in any form other than Source
-     Code.
-
-     1.6. "Initial Developer" means the individual or entity identified
-     as the Initial Developer in the Source Code notice required by Exhibit
-     A.
-
-     1.7. "Larger Work" means a work which combines Covered Code or
-     portions thereof with code not governed by the terms of this License.
-
-     1.8. "License" means this document.
-
-     1.8.1. "Licensable" means having the right to grant, to the maximum
-     extent possible, whether at the time of the initial grant or
-     subsequently acquired, any and all of the rights conveyed herein.
-
-     1.9. "Modifications" means any addition to or deletion from the
-     substance or structure of either the Original Code or any previous
-     Modifications. When Covered Code is released as a series of files, a
-     Modification is:
-          A. Any addition to or deletion from the contents of a file
-          containing Original Code or previous Modifications.
-
-          B. Any new file that contains any part of the Original Code or
-          previous Modifications.
-
-     1.10. "Original Code" means Source Code of computer software code
-     which is described in the Source Code notice required by Exhibit A as
-     Original Code, and which, at the time of its release under this
-     License is not already Covered Code governed by this License.
-
-     1.10.1. "Patent Claims" means any patent claim(s), now owned or
-     hereafter acquired, including without limitation,  method, process,
-     and apparatus claims, in any patent Licensable by grantor.
-
-     1.11. "Source Code" means the preferred form of the Covered Code for
-     making modifications to it, including all modules it contains, plus
-     any associated interface definition files, scripts used to control
-     compilation and installation of an Executable, or source code
-     differential comparisons against either the Original Code or another
-     well known, available Covered Code of the Contributor's choice. The
-     Source Code can be in a compressed or archival form, provided the
-     appropriate decompression or de-archiving software is widely available
-     for no charge.
-
-     1.12. "You" (or "Your")  means an individual or a legal entity
-     exercising rights under, and complying with all of the terms of, this
-     License or a future version of this License issued under Section 6.1.
-     For legal entities, "You" includes any entity which controls, is
-     controlled by, or is under common control with You. For purposes of
-     this definition, "control" means (a) the power, direct or indirect,
-     to cause the direction or management of such entity, whether by
-     contract or otherwise, or (b) ownership of more than fifty percent
-     (50%) of the outstanding shares or beneficial ownership of such
-     entity.
-
-2. Source Code License.
-
-     2.1. The Initial Developer Grant.
-     The Initial Developer hereby grants You a world-wide, royalty-free,
-     non-exclusive license, subject to third party intellectual property
-     claims:
-          (a)  under intellectual property rights (other than patent or
-          trademark) Licensable by Initial Developer to use, reproduce,
-          modify, display, perform, sublicense and distribute the Original
-          Code (or portions thereof) with or without Modifications, and/or
-          as part of a Larger Work; and
-
-          (b) under Patents Claims infringed by the making, using or
-          selling of Original Code, to make, have made, use, practice,
-          sell, and offer for sale, and/or otherwise dispose of the
-          Original Code (or portions thereof).
-
-          (c) the licenses granted in this Section 2.1(a) and (b) are
-          effective on the date Initial Developer first distributes
-          Original Code under the terms of this License.
-
-          (d) Notwithstanding Section 2.1(b) above, no patent license is
-          granted: 1) for code that You delete from the Original Code; 2)
-          separate from the Original Code;  or 3) for infringements caused
-          by: i) the modification of the Original Code or ii) the
-          combination of the Original Code with other software or devices.
-
-     2.2. Contributor Grant.
-     Subject to third party intellectual property claims, each Contributor
-     hereby grants You a world-wide, royalty-free, non-exclusive license
-
-          (a)  under intellectual property rights (other than patent or
-          trademark) Licensable by Contributor, to use, reproduce, modify,
-          display, perform, sublicense and distribute the Modifications
-          created by such Contributor (or portions thereof) either on an
-          unmodified basis, with other Modifications, as Covered Code
-          and/or as part of a Larger Work; and
-
-          (b) under Patent Claims infringed by the making, using, or
-          selling of  Modifications made by that Contributor either alone
-          and/or in combination with its Contributor Version (or portions
-          of such combination), to make, use, sell, offer for sale, have
-          made, and/or otherwise dispose of: 1) Modifications made by that
-          Contributor (or portions thereof); and 2) the combination of
-          Modifications made by that Contributor with its Contributor
-          Version (or portions of such combination).
-
-          (c) the licenses granted in Sections 2.2(a) and 2.2(b) are
-          effective on the date Contributor first makes Commercial Use of
-          the Covered Code.
-
-          (d)    Notwithstanding Section 2.2(b) above, no patent license is
-          granted: 1) for any code that Contributor has deleted from the
-          Contributor Version; 2)  separate from the Contributor Version;
-          3)  for infringements caused by: i) third party modifications of
-          Contributor Version or ii)  the combination of Modifications made
-          by that Contributor with other software  (except as part of the
-          Contributor Version) or other devices; or 4) under Patent Claims
-          infringed by Covered Code in the absence of Modifications made by
-          that Contributor.
-
-3. Distribution Obligations.
-
-     3.1. Application of License.
-     The Modifications which You create or to which You contribute are
-     governed by the terms of this License, including without limitation
-     Section 2.2. The Source Code version of Covered Code may be
-     distributed only under the terms of this License or a future version
-     of this License released under Section 6.1, and You must include a
-     copy of this License with every copy of the Source Code You
-     distribute. You may not offer or impose any terms on any Source Code
-     version that alters or restricts the applicable version of this
-     License or the recipients' rights hereunder. However, You may include
-     an additional document offering the additional rights described in
-     Section 3.5.
-
-     3.2. Availability of Source Code.
-     Any Modification which You create or to which You contribute must be
-     made available in Source Code form under the terms of this License
-     either on the same media as an Executable version or via an accepted
-     Electronic Distribution Mechanism to anyone to whom you made an
-     Executable version available; and if made available via Electronic
-     Distribution Mechanism, must remain available for at least twelve (12)
-     months after the date it initially became available, or at least six
-     (6) months after a subsequent version of that particular Modification
-     has been made available to such recipients. You are responsible for
-     ensuring that the Source Code version remains available even if the
-     Electronic Distribution Mechanism is maintained by a third party.
-
-     3.3. Description of Modifications.
-     You must cause all Covered Code to which You contribute to contain a
-     file documenting the changes You made to create that Covered Code and
-     the date of any change. You must include a prominent statement that
-     the Modification is derived, directly or indirectly, from Original
-     Code provided by the Initial Developer and including the name of the
-     Initial Developer in (a) the Source Code, and (b) in any notice in an
-     Executable version or related documentation in which You describe the
-     origin or ownership of the Covered Code.
-
-     3.4. Intellectual Property Matters
-          (a) Third Party Claims.
-          If Contributor has knowledge that a license under a third party's
-          intellectual property rights is required to exercise the rights
-          granted by such Contributor under Sections 2.1 or 2.2,
-          Contributor must include a text file with the Source Code
-          distribution titled "LEGAL" which describes the claim and the
-          party making the claim in sufficient detail that a recipient will
-          know whom to contact. If Contributor obtains such knowledge after
-          the Modification is made available as described in Section 3.2,
-          Contributor shall promptly modify the LEGAL file in all copies
-          Contributor makes available thereafter and shall take other steps
-          (such as notifying appropriate mailing lists or newsgroups)
-          reasonably calculated to inform those who received the Covered
-          Code that new knowledge has been obtained.
-
-          (b) Contributor APIs.
-          If Contributor's Modifications include an application programming
-          interface and Contributor has knowledge of patent licenses which
-          are reasonably necessary to implement that API, Contributor must
-          also include this information in the LEGAL file.
-
-               (c)    Representations.
-          Contributor represents that, except as disclosed pursuant to
-          Section 3.4(a) above, Contributor believes that Contributor's
-          Modifications are Contributor's original creation(s) and/or
-          Contributor has sufficient rights to grant the rights conveyed by
-          this License.
-
-     3.5. Required Notices.
-     You must duplicate the notice in Exhibit A in each file of the Source
-     Code.  If it is not possible to put such notice in a particular Source
-     Code file due to its structure, then You must include such notice in a
-     location (such as a relevant directory) where a user would be likely
-     to look for such a notice.  If You created one or more Modification(s)
-     You may add your name as a Contributor to the notice described in
-     Exhibit A.  You must also duplicate this License in any documentation
-     for the Source Code where You describe recipients' rights or ownership
-     rights relating to Covered Code.  You may choose to offer, and to
-     charge a fee for, warranty, support, indemnity or liability
-     obligations to one or more recipients of Covered Code. However, You
-     may do so only on Your own behalf, and not on behalf of the Initial
-     Developer or any Contributor. You must make it absolutely clear than
-     any such warranty, support, indemnity or liability obligation is
-     offered by You alone, and You hereby agree to indemnify the Initial
-     Developer and every Contributor for any liability incurred by the
-     Initial Developer or such Contributor as a result of warranty,
-     support, indemnity or liability terms You offer.
-
-     3.6. Distribution of Executable Versions.
-     You may distribute Covered Code in Executable form only if the
-     requirements of Section 3.1-3.5 have been met for that Covered Code,
-     and if You include a notice stating that the Source Code version of
-     the Covered Code is available under the terms of this License,
-     including a description of how and where You have fulfilled the
-     obligations of Section 3.2. The notice must be conspicuously included
-     in any notice in an Executable version, related documentation or
-     collateral in which You describe recipients' rights relating to the
-     Covered Code. You may distribute the Executable version of Covered
-     Code or ownership rights under a license of Your choice, which may
-     contain terms different from this License, provided that You are in
-     compliance with the terms of this License and that the license for the
-     Executable version does not attempt to limit or alter the recipient's
-     rights in the Source Code version from the rights set forth in this
-     License. If You distribute the Executable version under a different
-     license You must make it absolutely clear that any terms which differ
-     from this License are offered by You alone, not by the Initial
-     Developer or any Contributor. You hereby agree to indemnify the
-     Initial Developer and every Contributor for any liability incurred by
-     the Initial Developer or such Contributor as a result of any such
-     terms You offer.
-
-     3.7. Larger Works.
-     You may create a Larger Work by combining Covered Code with other code
-     not governed by the terms of this License and distribute the Larger
-     Work as a single product. In such a case, You must make sure the
-     requirements of this License are fulfilled for the Covered Code.
-
-4. Inability to Comply Due to Statute or Regulation.
-
-     If it is impossible for You to comply with any of the terms of this
-     License with respect to some or all of the Covered Code due to
-     statute, judicial order, or regulation then You must: (a) comply with
-     the terms of this License to the maximum extent possible; and (b)
-     describe the limitations and the code they affect. Such description
-     must be included in the LEGAL file described in Section 3.4 and must
-     be included with all distributions of the Source Code. Except to the
-     extent prohibited by statute or regulation, such description must be
-     sufficiently detailed for a recipient of ordinary skill to be able to
-     understand it.
-
-5. Application of this License.
-
-     This License applies to code to which the Initial Developer has
-     attached the notice in Exhibit A and to related Covered Code.
-
-6. Versions of the License.
-
-     6.1. New Versions.
-     Netscape Communications Corporation ("Netscape") may publish revised
-     and/or new versions of the License from time to time. Each version
-     will be given a distinguishing version number.
-
-     6.2. Effect of New Versions.
-     Once Covered Code has been published under a particular version of the
-     License, You may always continue to use it under the terms of that
-     version. You may also choose to use such Covered Code under the terms
-     of any subsequent version of the License published by Netscape. No one
-     other than Netscape has the right to modify the terms applicable to
-     Covered Code created under this License.
-
-     6.3. Derivative Works.
-     If You create or use a modified version of this License (which you may
-     only do in order to apply it to code which is not already Covered Code
-     governed by this License), You must (a) rename Your license so that
-     the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape",
-     "MPL", "NPL" or any confusingly similar phrase do not appear in your
-     license (except to note that your license differs from this License)
-     and (b) otherwise make it clear that Your version of the license
-     contains terms which differ from the Mozilla Public License and
-     Netscape Public License. (Filling in the name of the Initial
-     Developer, Original Code or Contributor in the notice described in
-     Exhibit A shall not of themselves be deemed to be modifications of
-     this License.)
-
-7. DISCLAIMER OF WARRANTY.
-
-     COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS,
-     WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-     WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF
-     DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING.
-     THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE
-     IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT,
-     YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE
-     COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER
-     OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF
-     ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
-
-8. TERMINATION.
-
-     8.1.  This License and the rights granted hereunder will terminate
-     automatically if You fail to comply with terms herein and fail to cure
-     such breach within 30 days of becoming aware of the breach. All
-     sublicenses to the Covered Code which are properly granted shall
-     survive any termination of this License. Provisions which, by their
-     nature, must remain in effect beyond the termination of this License
-     shall survive.
-
-     8.2.  If You initiate litigation by asserting a patent infringement
-     claim (excluding declatory judgment actions) against Initial Developer
-     or a Contributor (the Initial Developer or Contributor against whom
-     You file such action is referred to as "Participant")  alleging that:
-
-     (a)  such Participant's Contributor Version directly or indirectly
-     infringes any patent, then any and all rights granted by such
-     Participant to You under Sections 2.1 and/or 2.2 of this License
-     shall, upon 60 days notice from Participant terminate prospectively,
-     unless if within 60 days after receipt of notice You either: (i)
-     agree in writing to pay Participant a mutually agreeable reasonable
-     royalty for Your past and future use of Modifications made by such
-     Participant, or (ii) withdraw Your litigation claim with respect to
-     the Contributor Version against such Participant.  If within 60 days
-     of notice, a reasonable royalty and payment arrangement are not
-     mutually agreed upon in writing by the parties or the litigation claim
-     is not withdrawn, the rights granted by Participant to You under
-     Sections 2.1 and/or 2.2 automatically terminate at the expiration of
-     the 60 day notice period specified above.
-
-     (b)  any software, hardware, or device, other than such Participant's
-     Contributor Version, directly or indirectly infringes any patent, then
-     any rights granted to You by such Participant under Sections 2.1(b)
-     and 2.2(b) are revoked effective as of the date You first made, used,
-     sold, distributed, or had made, Modifications made by that
-     Participant.
-
-     8.3.  If You assert a patent infringement claim against Participant
-     alleging that such Participant's Contributor Version directly or
-     indirectly infringes any patent where such claim is resolved (such as
-     by license or settlement) prior to the initiation of patent
-     infringement litigation, then the reasonable value of the licenses
-     granted by such Participant under Sections 2.1 or 2.2 shall be taken
-     into account in determining the amount or value of any payment or
-     license.
-
-     8.4.  In the event of termination under Sections 8.1 or 8.2 above,
-     all end user license agreements (excluding distributors and resellers)
-     which have been validly granted by You or any distributor hereunder
-     prior to termination shall survive termination.
-
-9. LIMITATION OF LIABILITY.
-
-     UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
-     (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL
-     DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE,
-     OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR
-     ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY
-     CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL,
-     WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
-     COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
-     INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
-     LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY
-     RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW
-     PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE
-     EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO
-     THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
-
-10. U.S. GOVERNMENT END USERS.
-
-     The Covered Code is a "commercial item," as that term is defined in
-     48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer
-     software" and "commercial computer software documentation," as such
-     terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48
-     C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995),
-     all U.S. Government End Users acquire Covered Code with only those
-     rights set forth herein.
-
-11. MISCELLANEOUS.
-
-     This License represents the complete agreement concerning subject
-     matter hereof. If any provision of this License is held to be
-     unenforceable, such provision shall be reformed only to the extent
-     necessary to make it enforceable. This License shall be governed by
-     California law provisions (except to the extent applicable law, if
-     any, provides otherwise), excluding its conflict-of-law provisions.
-     With respect to disputes in which at least one party is a citizen of,
-     or an entity chartered or registered to do business in the United
-     States of America, any litigation relating to this License shall be
-     subject to the jurisdiction of the Federal Courts of the Northern
-     District of California, with venue lying in Santa Clara County,
-     California, with the losing party responsible for costs, including
-     without limitation, court costs and reasonable attorneys' fees and
-     expenses. The application of the United Nations Convention on
-     Contracts for the International Sale of Goods is expressly excluded.
-     Any law or regulation which provides that the language of a contract
-     shall be construed against the drafter shall not apply to this
-     License.
-
-12. RESPONSIBILITY FOR CLAIMS.
-
-     As between Initial Developer and the Contributors, each party is
-     responsible for claims and damages arising, directly or indirectly,
-     out of its utilization of rights under this License and You agree to
-     work with Initial Developer and Contributors to distribute such
-     responsibility on an equitable basis. Nothing herein is intended or
-     shall be deemed to constitute any admission of liability.
-
-13. MULTIPLE-LICENSED CODE.
-
-     Initial Developer may designate portions of the Covered Code as
-     "Multiple-Licensed".  "Multiple-Licensed" means that the Initial
-     Developer permits you to utilize portions of the Covered Code under
-     Your choice of the NPL or the alternative licenses, if any, specified
-     by the Initial Developer in the file described in Exhibit A.
-
-EXHIBIT A -Mozilla Public License.
-
-     ``The contents of this file are subject to the Mozilla Public License
-     Version 1.1 (the "License"); you may not use this file except in
-     compliance with the License. You may obtain a copy of the License at
-     http://www.mozilla.org/MPL/
-
-     Software distributed under the License is distributed on an "AS IS"
-     basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
-     License for the specific language governing rights and limitations
-     under the License.
-
-     The Original Code is ______________________________________.
-
-     The Initial Developer of the Original Code is ________________________.
-     Portions created by ______________________ are Copyright (C) ______
-     _______________________. All Rights Reserved.
-
-     Contributor(s): ______________________________________.
-
-     Alternatively, the contents of this file may be used under the terms
-     of the _____ license (the  "[___] License"), in which case the
-     provisions of [______] License are applicable instead of those
-     above.  If you wish to allow use of your version of this file only
-     under the terms of the [____] License and not to allow others to use
-     your version of this file under the MPL, indicate your decision by
-     deleting  the provisions above and replace  them with the notice and
-     other provisions required by the [___] License.  If you do not delete
-     the provisions above, a recipient may use your version of this file
-     under either the MPL or the [___] License."
-
-     [NOTE: The text of this Exhibit A may differ slightly from the text of
-     the notices in the Source Code files of the Original Code. You should
-     use the text of this Exhibit A rather than the text found in the
-     Original Code Source Code for Your Modifications.]
+Software License Agreement
+==========================
+
+CKEditor - The text editor for Internet - http://ckeditor.com
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+
+Licensed under the terms of any of the following licenses at your
+choice:
+
+ - GNU General Public License Version 2 or later (the "GPL")
+   http://www.gnu.org/licenses/gpl.html
+   (See Appendix A)
+
+ - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+   http://www.gnu.org/licenses/lgpl.html
+   (See Appendix B)
+
+ - Mozilla Public License Version 1.1 or later (the "MPL")
+   http://www.mozilla.org/MPL/MPL-1.1.html
+   (See Appendix C)
+
+You are not required to, but if you want to explicitly declare the
+license you have chosen to be bound to when using, reproducing,
+modifying and distributing this software, just include a text file
+titled "legal.txt" in your version of this software, indicating your
+license choice. In any case, your choice will not restrict any
+recipient of your version of this software to use, reproduce, modify
+and distribute this software under any of the above licenses.
+
+Sources of Intellectual Property Included in CKEditor
+-----------------------------------------------------
+
+Where not otherwise indicated, all CKEditor content is authored by
+CKSource engineers and consists of CKSource-owned intellectual
+property. In some specific instances, CKEditor will incorporate work
+done by developers outside of CKSource with their express permission.
+
+Trademarks
+----------
+
+CKEditor is a trademark of CKSource - Frederico Knabben. All other brand
+and product names are trademarks, registered trademarks or service
+marks of their respective holders.
+
+---
+
+Appendix A: The GPL License
+---------------------------
+
+GNU GENERAL PUBLIC LICENSE
+Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software-to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+GNU GENERAL PUBLIC LICENSE
+TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+END OF TERMS AND CONDITIONS
+
+
+Appendix B: The LGPL License
+----------------------------
+
+GNU LESSER GENERAL PUBLIC LICENSE
+Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL.  It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software-to make sure the software is free for all its users.
+
+  This license, the Lesser General Public License, applies to some
+specially designated software packages-typically libraries-of the
+Free Software Foundation and other authors who decide to use it.  You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+  When we speak of free software, we are referring to freedom of use,
+not price.  Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+  To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights.  These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  To protect each distributor, we want to make it very clear that
+there is no warranty for the free library.  Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+  Finally, software patents pose a constant threat to the existence of
+any free program.  We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder.  Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+  Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License.  This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License.  We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+  When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library.  The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom.  The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+  We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License.  It also provides other free software developers Less
+of an advantage over competing non-free programs.  These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries.  However, the Lesser license provides advantages in certain
+special circumstances.
+
+  For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard.  To achieve this, non-free programs must be
+allowed to use the library.  A more frequent case is that a free
+library does the same job as widely used non-free libraries.  In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+  In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software.  For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+  Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+GNU LESSER GENERAL PUBLIC LICENSE
+TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+  6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Use a suitable shared library mechanism for linking with the
+    Library.  A suitable mechanism is one that (1) uses at run time a
+    copy of the library already present on the user's computer system,
+    rather than copying library functions into the executable, and (2)
+    will operate properly with a modified version of the library, if
+    the user installs one, as long as the modified version is
+    interface-compatible with the version that the work was made with.
+
+    c) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    d) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    e) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded.  In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+END OF TERMS AND CONDITIONS
+
+
+Appendix C: The MPL License
+---------------------------
+
+MOZILLA PUBLIC LICENSE
+Version 1.1
+
+1. Definitions.
+
+     1.0.1. "Commercial Use" means distribution or otherwise making the
+     Covered Code available to a third party.
+
+     1.1. "Contributor" means each entity that creates or contributes to
+     the creation of Modifications.
+
+     1.2. "Contributor Version" means the combination of the Original
+     Code, prior Modifications used by a Contributor, and the Modifications
+     made by that particular Contributor.
+
+     1.3. "Covered Code" means the Original Code or Modifications or the
+     combination of the Original Code and Modifications, in each case
+     including portions thereof.
+
+     1.4. "Electronic Distribution Mechanism" means a mechanism generally
+     accepted in the software development community for the electronic
+     transfer of data.
+
+     1.5. "Executable" means Covered Code in any form other than Source
+     Code.
+
+     1.6. "Initial Developer" means the individual or entity identified
+     as the Initial Developer in the Source Code notice required by Exhibit
+     A.
+
+     1.7. "Larger Work" means a work which combines Covered Code or
+     portions thereof with code not governed by the terms of this License.
+
+     1.8. "License" means this document.
+
+     1.8.1. "Licensable" means having the right to grant, to the maximum
+     extent possible, whether at the time of the initial grant or
+     subsequently acquired, any and all of the rights conveyed herein.
+
+     1.9. "Modifications" means any addition to or deletion from the
+     substance or structure of either the Original Code or any previous
+     Modifications. When Covered Code is released as a series of files, a
+     Modification is:
+          A. Any addition to or deletion from the contents of a file
+          containing Original Code or previous Modifications.
+
+          B. Any new file that contains any part of the Original Code or
+          previous Modifications.
+
+     1.10. "Original Code" means Source Code of computer software code
+     which is described in the Source Code notice required by Exhibit A as
+     Original Code, and which, at the time of its release under this
+     License is not already Covered Code governed by this License.
+
+     1.10.1. "Patent Claims" means any patent claim(s), now owned or
+     hereafter acquired, including without limitation,  method, process,
+     and apparatus claims, in any patent Licensable by grantor.
+
+     1.11. "Source Code" means the preferred form of the Covered Code for
+     making modifications to it, including all modules it contains, plus
+     any associated interface definition files, scripts used to control
+     compilation and installation of an Executable, or source code
+     differential comparisons against either the Original Code or another
+     well known, available Covered Code of the Contributor's choice. The
+     Source Code can be in a compressed or archival form, provided the
+     appropriate decompression or de-archiving software is widely available
+     for no charge.
+
+     1.12. "You" (or "Your")  means an individual or a legal entity
+     exercising rights under, and complying with all of the terms of, this
+     License or a future version of this License issued under Section 6.1.
+     For legal entities, "You" includes any entity which controls, is
+     controlled by, or is under common control with You. For purposes of
+     this definition, "control" means (a) the power, direct or indirect,
+     to cause the direction or management of such entity, whether by
+     contract or otherwise, or (b) ownership of more than fifty percent
+     (50%) of the outstanding shares or beneficial ownership of such
+     entity.
+
+2. Source Code License.
+
+     2.1. The Initial Developer Grant.
+     The Initial Developer hereby grants You a world-wide, royalty-free,
+     non-exclusive license, subject to third party intellectual property
+     claims:
+          (a)  under intellectual property rights (other than patent or
+          trademark) Licensable by Initial Developer to use, reproduce,
+          modify, display, perform, sublicense and distribute the Original
+          Code (or portions thereof) with or without Modifications, and/or
+          as part of a Larger Work; and
+
+          (b) under Patents Claims infringed by the making, using or
+          selling of Original Code, to make, have made, use, practice,
+          sell, and offer for sale, and/or otherwise dispose of the
+          Original Code (or portions thereof).
+
+          (c) the licenses granted in this Section 2.1(a) and (b) are
+          effective on the date Initial Developer first distributes
+          Original Code under the terms of this License.
+
+          (d) Notwithstanding Section 2.1(b) above, no patent license is
+          granted: 1) for code that You delete from the Original Code; 2)
+          separate from the Original Code;  or 3) for infringements caused
+          by: i) the modification of the Original Code or ii) the
+          combination of the Original Code with other software or devices.
+
+     2.2. Contributor Grant.
+     Subject to third party intellectual property claims, each Contributor
+     hereby grants You a world-wide, royalty-free, non-exclusive license
+
+          (a)  under intellectual property rights (other than patent or
+          trademark) Licensable by Contributor, to use, reproduce, modify,
+          display, perform, sublicense and distribute the Modifications
+          created by such Contributor (or portions thereof) either on an
+          unmodified basis, with other Modifications, as Covered Code
+          and/or as part of a Larger Work; and
+
+          (b) under Patent Claims infringed by the making, using, or
+          selling of  Modifications made by that Contributor either alone
+          and/or in combination with its Contributor Version (or portions
+          of such combination), to make, use, sell, offer for sale, have
+          made, and/or otherwise dispose of: 1) Modifications made by that
+          Contributor (or portions thereof); and 2) the combination of
+          Modifications made by that Contributor with its Contributor
+          Version (or portions of such combination).
+
+          (c) the licenses granted in Sections 2.2(a) and 2.2(b) are
+          effective on the date Contributor first makes Commercial Use of
+          the Covered Code.
+
+          (d)    Notwithstanding Section 2.2(b) above, no patent license is
+          granted: 1) for any code that Contributor has deleted from the
+          Contributor Version; 2)  separate from the Contributor Version;
+          3)  for infringements caused by: i) third party modifications of
+          Contributor Version or ii)  the combination of Modifications made
+          by that Contributor with other software  (except as part of the
+          Contributor Version) or other devices; or 4) under Patent Claims
+          infringed by Covered Code in the absence of Modifications made by
+          that Contributor.
+
+3. Distribution Obligations.
+
+     3.1. Application of License.
+     The Modifications which You create or to which You contribute are
+     governed by the terms of this License, including without limitation
+     Section 2.2. The Source Code version of Covered Code may be
+     distributed only under the terms of this License or a future version
+     of this License released under Section 6.1, and You must include a
+     copy of this License with every copy of the Source Code You
+     distribute. You may not offer or impose any terms on any Source Code
+     version that alters or restricts the applicable version of this
+     License or the recipients' rights hereunder. However, You may include
+     an additional document offering the additional rights described in
+     Section 3.5.
+
+     3.2. Availability of Source Code.
+     Any Modification which You create or to which You contribute must be
+     made available in Source Code form under the terms of this License
+     either on the same media as an Executable version or via an accepted
+     Electronic Distribution Mechanism to anyone to whom you made an
+     Executable version available; and if made available via Electronic
+     Distribution Mechanism, must remain available for at least twelve (12)
+     months after the date it initially became available, or at least six
+     (6) months after a subsequent version of that particular Modification
+     has been made available to such recipients. You are responsible for
+     ensuring that the Source Code version remains available even if the
+     Electronic Distribution Mechanism is maintained by a third party.
+
+     3.3. Description of Modifications.
+     You must cause all Covered Code to which You contribute to contain a
+     file documenting the changes You made to create that Covered Code and
+     the date of any change. You must include a prominent statement that
+     the Modification is derived, directly or indirectly, from Original
+     Code provided by the Initial Developer and including the name of the
+     Initial Developer in (a) the Source Code, and (b) in any notice in an
+     Executable version or related documentation in which You describe the
+     origin or ownership of the Covered Code.
+
+     3.4. Intellectual Property Matters
+          (a) Third Party Claims.
+          If Contributor has knowledge that a license under a third party's
+          intellectual property rights is required to exercise the rights
+          granted by such Contributor under Sections 2.1 or 2.2,
+          Contributor must include a text file with the Source Code
+          distribution titled "LEGAL" which describes the claim and the
+          party making the claim in sufficient detail that a recipient will
+          know whom to contact. If Contributor obtains such knowledge after
+          the Modification is made available as described in Section 3.2,
+          Contributor shall promptly modify the LEGAL file in all copies
+          Contributor makes available thereafter and shall take other steps
+          (such as notifying appropriate mailing lists or newsgroups)
+          reasonably calculated to inform those who received the Covered
+          Code that new knowledge has been obtained.
+
+          (b) Contributor APIs.
+          If Contributor's Modifications include an application programming
+          interface and Contributor has knowledge of patent licenses which
+          are reasonably necessary to implement that API, Contributor must
+          also include this information in the LEGAL file.
+
+               (c)    Representations.
+          Contributor represents that, except as disclosed pursuant to
+          Section 3.4(a) above, Contributor believes that Contributor's
+          Modifications are Contributor's original creation(s) and/or
+          Contributor has sufficient rights to grant the rights conveyed by
+          this License.
+
+     3.5. Required Notices.
+     You must duplicate the notice in Exhibit A in each file of the Source
+     Code.  If it is not possible to put such notice in a particular Source
+     Code file due to its structure, then You must include such notice in a
+     location (such as a relevant directory) where a user would be likely
+     to look for such a notice.  If You created one or more Modification(s)
+     You may add your name as a Contributor to the notice described in
+     Exhibit A.  You must also duplicate this License in any documentation
+     for the Source Code where You describe recipients' rights or ownership
+     rights relating to Covered Code.  You may choose to offer, and to
+     charge a fee for, warranty, support, indemnity or liability
+     obligations to one or more recipients of Covered Code. However, You
+     may do so only on Your own behalf, and not on behalf of the Initial
+     Developer or any Contributor. You must make it absolutely clear than
+     any such warranty, support, indemnity or liability obligation is
+     offered by You alone, and You hereby agree to indemnify the Initial
+     Developer and every Contributor for any liability incurred by the
+     Initial Developer or such Contributor as a result of warranty,
+     support, indemnity or liability terms You offer.
+
+     3.6. Distribution of Executable Versions.
+     You may distribute Covered Code in Executable form only if the
+     requirements of Section 3.1-3.5 have been met for that Covered Code,
+     and if You include a notice stating that the Source Code version of
+     the Covered Code is available under the terms of this License,
+     including a description of how and where You have fulfilled the
+     obligations of Section 3.2. The notice must be conspicuously included
+     in any notice in an Executable version, related documentation or
+     collateral in which You describe recipients' rights relating to the
+     Covered Code. You may distribute the Executable version of Covered
+     Code or ownership rights under a license of Your choice, which may
+     contain terms different from this License, provided that You are in
+     compliance with the terms of this License and that the license for the
+     Executable version does not attempt to limit or alter the recipient's
+     rights in the Source Code version from the rights set forth in this
+     License. If You distribute the Executable version under a different
+     license You must make it absolutely clear that any terms which differ
+     from this License are offered by You alone, not by the Initial
+     Developer or any Contributor. You hereby agree to indemnify the
+     Initial Developer and every Contributor for any liability incurred by
+     the Initial Developer or such Contributor as a result of any such
+     terms You offer.
+
+     3.7. Larger Works.
+     You may create a Larger Work by combining Covered Code with other code
+     not governed by the terms of this License and distribute the Larger
+     Work as a single product. In such a case, You must make sure the
+     requirements of this License are fulfilled for the Covered Code.
+
+4. Inability to Comply Due to Statute or Regulation.
+
+     If it is impossible for You to comply with any of the terms of this
+     License with respect to some or all of the Covered Code due to
+     statute, judicial order, or regulation then You must: (a) comply with
+     the terms of this License to the maximum extent possible; and (b)
+     describe the limitations and the code they affect. Such description
+     must be included in the LEGAL file described in Section 3.4 and must
+     be included with all distributions of the Source Code. Except to the
+     extent prohibited by statute or regulation, such description must be
+     sufficiently detailed for a recipient of ordinary skill to be able to
+     understand it.
+
+5. Application of this License.
+
+     This License applies to code to which the Initial Developer has
+     attached the notice in Exhibit A and to related Covered Code.
+
+6. Versions of the License.
+
+     6.1. New Versions.
+     Netscape Communications Corporation ("Netscape") may publish revised
+     and/or new versions of the License from time to time. Each version
+     will be given a distinguishing version number.
+
+     6.2. Effect of New Versions.
+     Once Covered Code has been published under a particular version of the
+     License, You may always continue to use it under the terms of that
+     version. You may also choose to use such Covered Code under the terms
+     of any subsequent version of the License published by Netscape. No one
+     other than Netscape has the right to modify the terms applicable to
+     Covered Code created under this License.
+
+     6.3. Derivative Works.
+     If You create or use a modified version of this License (which you may
+     only do in order to apply it to code which is not already Covered Code
+     governed by this License), You must (a) rename Your license so that
+     the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape",
+     "MPL", "NPL" or any confusingly similar phrase do not appear in your
+     license (except to note that your license differs from this License)
+     and (b) otherwise make it clear that Your version of the license
+     contains terms which differ from the Mozilla Public License and
+     Netscape Public License. (Filling in the name of the Initial
+     Developer, Original Code or Contributor in the notice described in
+     Exhibit A shall not of themselves be deemed to be modifications of
+     this License.)
+
+7. DISCLAIMER OF WARRANTY.
+
+     COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS,
+     WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+     WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF
+     DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING.
+     THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE
+     IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT,
+     YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE
+     COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER
+     OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF
+     ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
+
+8. TERMINATION.
+
+     8.1.  This License and the rights granted hereunder will terminate
+     automatically if You fail to comply with terms herein and fail to cure
+     such breach within 30 days of becoming aware of the breach. All
+     sublicenses to the Covered Code which are properly granted shall
+     survive any termination of this License. Provisions which, by their
+     nature, must remain in effect beyond the termination of this License
+     shall survive.
+
+     8.2.  If You initiate litigation by asserting a patent infringement
+     claim (excluding declatory judgment actions) against Initial Developer
+     or a Contributor (the Initial Developer or Contributor against whom
+     You file such action is referred to as "Participant")  alleging that:
+
+     (a)  such Participant's Contributor Version directly or indirectly
+     infringes any patent, then any and all rights granted by such
+     Participant to You under Sections 2.1 and/or 2.2 of this License
+     shall, upon 60 days notice from Participant terminate prospectively,
+     unless if within 60 days after receipt of notice You either: (i)
+     agree in writing to pay Participant a mutually agreeable reasonable
+     royalty for Your past and future use of Modifications made by such
+     Participant, or (ii) withdraw Your litigation claim with respect to
+     the Contributor Version against such Participant.  If within 60 days
+     of notice, a reasonable royalty and payment arrangement are not
+     mutually agreed upon in writing by the parties or the litigation claim
+     is not withdrawn, the rights granted by Participant to You under
+     Sections 2.1 and/or 2.2 automatically terminate at the expiration of
+     the 60 day notice period specified above.
+
+     (b)  any software, hardware, or device, other than such Participant's
+     Contributor Version, directly or indirectly infringes any patent, then
+     any rights granted to You by such Participant under Sections 2.1(b)
+     and 2.2(b) are revoked effective as of the date You first made, used,
+     sold, distributed, or had made, Modifications made by that
+     Participant.
+
+     8.3.  If You assert a patent infringement claim against Participant
+     alleging that such Participant's Contributor Version directly or
+     indirectly infringes any patent where such claim is resolved (such as
+     by license or settlement) prior to the initiation of patent
+     infringement litigation, then the reasonable value of the licenses
+     granted by such Participant under Sections 2.1 or 2.2 shall be taken
+     into account in determining the amount or value of any payment or
+     license.
+
+     8.4.  In the event of termination under Sections 8.1 or 8.2 above,
+     all end user license agreements (excluding distributors and resellers)
+     which have been validly granted by You or any distributor hereunder
+     prior to termination shall survive termination.
+
+9. LIMITATION OF LIABILITY.
+
+     UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
+     (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL
+     DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE,
+     OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR
+     ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY
+     CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL,
+     WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
+     COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
+     INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
+     LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY
+     RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW
+     PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE
+     EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO
+     THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
+
+10. U.S. GOVERNMENT END USERS.
+
+     The Covered Code is a "commercial item," as that term is defined in
+     48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer
+     software" and "commercial computer software documentation," as such
+     terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48
+     C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995),
+     all U.S. Government End Users acquire Covered Code with only those
+     rights set forth herein.
+
+11. MISCELLANEOUS.
+
+     This License represents the complete agreement concerning subject
+     matter hereof. If any provision of this License is held to be
+     unenforceable, such provision shall be reformed only to the extent
+     necessary to make it enforceable. This License shall be governed by
+     California law provisions (except to the extent applicable law, if
+     any, provides otherwise), excluding its conflict-of-law provisions.
+     With respect to disputes in which at least one party is a citizen of,
+     or an entity chartered or registered to do business in the United
+     States of America, any litigation relating to this License shall be
+     subject to the jurisdiction of the Federal Courts of the Northern
+     District of California, with venue lying in Santa Clara County,
+     California, with the losing party responsible for costs, including
+     without limitation, court costs and reasonable attorneys' fees and
+     expenses. The application of the United Nations Convention on
+     Contracts for the International Sale of Goods is expressly excluded.
+     Any law or regulation which provides that the language of a contract
+     shall be construed against the drafter shall not apply to this
+     License.
+
+12. RESPONSIBILITY FOR CLAIMS.
+
+     As between Initial Developer and the Contributors, each party is
+     responsible for claims and damages arising, directly or indirectly,
+     out of its utilization of rights under this License and You agree to
+     work with Initial Developer and Contributors to distribute such
+     responsibility on an equitable basis. Nothing herein is intended or
+     shall be deemed to constitute any admission of liability.
+
+13. MULTIPLE-LICENSED CODE.
+
+     Initial Developer may designate portions of the Covered Code as
+     "Multiple-Licensed".  "Multiple-Licensed" means that the Initial
+     Developer permits you to utilize portions of the Covered Code under
+     Your choice of the NPL or the alternative licenses, if any, specified
+     by the Initial Developer in the file described in Exhibit A.
+
+EXHIBIT A -Mozilla Public License.
+
+     ``The contents of this file are subject to the Mozilla Public License
+     Version 1.1 (the "License"); you may not use this file except in
+     compliance with the License. You may obtain a copy of the License at
+     http://www.mozilla.org/MPL/
+
+     Software distributed under the License is distributed on an "AS IS"
+     basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+     License for the specific language governing rights and limitations
+     under the License.
+
+     The Original Code is ______________________________________.
+
+     The Initial Developer of the Original Code is ________________________.
+     Portions created by ______________________ are Copyright (C) ______
+     _______________________. All Rights Reserved.
+
+     Contributor(s): ______________________________________.
+
+     Alternatively, the contents of this file may be used under the terms
+     of the _____ license (the  "[___] License"), in which case the
+     provisions of [______] License are applicable instead of those
+     above.  If you wish to allow use of your version of this file only
+     under the terms of the [____] License and not to allow others to use
+     your version of this file under the MPL, indicate your decision by
+     deleting  the provisions above and replace  them with the notice and
+     other provisions required by the [___] License.  If you do not delete
+     the provisions above, a recipient may use your version of this file
+     under either the MPL or the [___] License."
+
+     [NOTE: The text of this Exhibit A may differ slightly from the text of
+     the notices in the Source Code files of the Original Code. You should
+     use the text of this Exhibit A rather than the text found in the
+     Original Code Source Code for Your Modifications.]
diff --git a/kasu/static/js/ckeditor/README.md b/src/kasu/static/js/ckeditor/README.md
similarity index 100%
rename from kasu/static/js/ckeditor/README.md
rename to src/kasu/static/js/ckeditor/README.md
diff --git a/kasu/static/js/ckeditor/build-config.js b/src/kasu/static/js/ckeditor/build-config.js
similarity index 98%
rename from kasu/static/js/ckeditor/build-config.js
rename to src/kasu/static/js/ckeditor/build-config.js
index cc4f97a..15d9ec9 100644
--- a/kasu/static/js/ckeditor/build-config.js
+++ b/src/kasu/static/js/ckeditor/build-config.js
@@ -1,28 +1,28 @@
-
-/**
- * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
- * For licensing, see LICENSE.html or http://ckeditor.com/license
- */
-
-/**
- * This file was added automatically by CKEditor builder.
- * You may re-use it at any time at http://ckeditor.com/builder to build CKEditor again.
- * 
- * NOTE: 
- *    This file is not used by CKEditor, you may remove it.
- *    Changing this file will not change your CKEditor configuration.
- */
-
-var CKBUILDER_CONFIG = {
-	skin: 'moono',
-	preset: 'standard',
-	ignore: [
-		'dev',
-		'.gitignore',
-		'.gitattributes',
-		'README.md',
-		'.mailmap'
-	],
+
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * This file was added automatically by CKEditor builder.
+ * You may re-use it at any time at http://ckeditor.com/builder to build CKEditor again.
+ * 
+ * NOTE: 
+ *    This file is not used by CKEditor, you may remove it.
+ *    Changing this file will not change your CKEditor configuration.
+ */
+
+var CKBUILDER_CONFIG = {
+	skin: 'moono',
+	preset: 'standard',
+	ignore: [
+		'dev',
+		'.gitignore',
+		'.gitattributes',
+		'README.md',
+		'.mailmap'
+	],
 	plugins : {
 		'basicstyles' : 1,
 		'blockquote' : 1,
diff --git a/kasu/static/js/ckeditor/ckeditor.js b/src/kasu/static/js/ckeditor/ckeditor.js
similarity index 100%
rename from kasu/static/js/ckeditor/ckeditor.js
rename to src/kasu/static/js/ckeditor/ckeditor.js
diff --git a/kasu/static/js/ckeditor/config.js b/src/kasu/static/js/ckeditor/config.js
similarity index 100%
rename from kasu/static/js/ckeditor/config.js
rename to src/kasu/static/js/ckeditor/config.js
diff --git a/kasu/static/js/ckeditor/contents.css b/src/kasu/static/js/ckeditor/contents.css
similarity index 93%
rename from kasu/static/js/ckeditor/contents.css
rename to src/kasu/static/js/ckeditor/contents.css
index 53f9394..6a5da54 100644
--- a/kasu/static/js/ckeditor/contents.css
+++ b/src/kasu/static/js/ckeditor/contents.css
@@ -1,103 +1,103 @@
-/*
-Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-body
-{
-	/* Font */
-	font-family: sans-serif, Arial, Verdana, "Trebuchet MS";
-	font-size: 12px;
-
-	/* Text color */
-	color: #333;
-
-	/* Remove the background color to make it transparent */
-	background-color: #fff;
-
-	margin: 20px;
-}
-
-.cke_editable
-{
-	font-size: 13px;
-	line-height: 1.6em;
-}
-
-blockquote
-{
-	font-style: italic;
-	font-family: Georgia, Times, "Times New Roman", serif;
-	padding: 2px 0;
-	border-style: solid;
-	border-color: #ccc;
-	border-width: 0;
-}
-
-.cke_contents_ltr blockquote
-{
-	padding-left: 20px;
-	padding-right: 8px;
-	border-left-width: 5px;
-}
-
-.cke_contents_rtl blockquote
-{
-	padding-left: 8px;
-	padding-right: 20px;
-	border-right-width: 5px;
-}
-
-a
-{
-	color: #0782C1;
-}
-
-ol,ul,dl
-{
-	/* IE7: reset rtl list margin. (#7334) */
-	*margin-right: 0px;
-	/* preserved spaces for list items with text direction other than the list. (#6249,#8049)*/
-	padding: 0 40px;
-}
-
-h1,h2,h3,h4,h5,h6
-{
-	font-weight: normal;
-	line-height: 1.2em;
-}
-
-hr
-{
-	border: 0px;
-	border-top: 1px solid #ccc;
-}
-
-img.right {
-    border: 1px solid #ccc;
-    float: right;
-    margin-left: 15px;
-    padding: 5px;
-}
-
-img.left {
-    border: 1px solid #ccc;
-    float: left;
-    margin-right: 15px;
-    padding: 5px;
-}
-
-img:hover {
-	opacity: .9;
-	filter: alpha(opacity = 90);
-}
-
-pre
-{
-	white-space: pre-wrap; /* CSS 2.1 */
-	word-wrap: break-word; /* IE7 */
-}
-
-.marker {
-    background-color: Yellow;
-}
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+
+body
+{
+	/* Font */
+	font-family: sans-serif, Arial, Verdana, "Trebuchet MS";
+	font-size: 12px;
+
+	/* Text color */
+	color: #333;
+
+	/* Remove the background color to make it transparent */
+	background-color: #fff;
+
+	margin: 20px;
+}
+
+.cke_editable
+{
+	font-size: 13px;
+	line-height: 1.6em;
+}
+
+blockquote
+{
+	font-style: italic;
+	font-family: Georgia, Times, "Times New Roman", serif;
+	padding: 2px 0;
+	border-style: solid;
+	border-color: #ccc;
+	border-width: 0;
+}
+
+.cke_contents_ltr blockquote
+{
+	padding-left: 20px;
+	padding-right: 8px;
+	border-left-width: 5px;
+}
+
+.cke_contents_rtl blockquote
+{
+	padding-left: 8px;
+	padding-right: 20px;
+	border-right-width: 5px;
+}
+
+a
+{
+	color: #0782C1;
+}
+
+ol,ul,dl
+{
+	/* IE7: reset rtl list margin. (#7334) */
+	*margin-right: 0px;
+	/* preserved spaces for list items with text direction other than the list. (#6249,#8049)*/
+	padding: 0 40px;
+}
+
+h1,h2,h3,h4,h5,h6
+{
+	font-weight: normal;
+	line-height: 1.2em;
+}
+
+hr
+{
+	border: 0px;
+	border-top: 1px solid #ccc;
+}
+
+img.right {
+    border: 1px solid #ccc;
+    float: right;
+    margin-left: 15px;
+    padding: 5px;
+}
+
+img.left {
+    border: 1px solid #ccc;
+    float: left;
+    margin-right: 15px;
+    padding: 5px;
+}
+
+img:hover {
+	opacity: .9;
+	filter: alpha(opacity = 90);
+}
+
+pre
+{
+	white-space: pre-wrap; /* CSS 2.1 */
+	word-wrap: break-word; /* IE7 */
+}
+
+.marker {
+    background-color: Yellow;
+}
diff --git a/kasu/static/js/ckeditor/lang/de.js b/src/kasu/static/js/ckeditor/lang/de.js
similarity index 99%
rename from kasu/static/js/ckeditor/lang/de.js
rename to src/kasu/static/js/ckeditor/lang/de.js
index 62e9603..5325af2 100644
--- a/kasu/static/js/ckeditor/lang/de.js
+++ b/src/kasu/static/js/ckeditor/lang/de.js
@@ -1,5 +1,5 @@
-/*
-Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
 */
 CKEDITOR.lang['de']={"dir":"ltr","editor":"WYSIWYG-Editor","common":{"editorHelp":"Drücken Sie ALT 0 für Hilfe","browseServer":"Server durchsuchen","url":"URL","protocol":"Protokoll","upload":"Hochladen","uploadSubmit":"Zum Server senden","image":"Bild","flash":"Flash","form":"Formular","checkbox":"Checkbox","radio":"Radiobutton","textField":"Textfeld einzeilig","textarea":"Textfeld mehrzeilig","hiddenField":"Verstecktes Feld","button":"Klickbutton","select":"Auswahlfeld","imageButton":"Bildbutton","notSet":"","id":"ID","name":"Name","langDir":"Schreibrichtung","langDirLtr":"Links nach Rechts (LTR)","langDirRtl":"Rechts nach Links (RTL)","langCode":"Sprachenkürzel","longDescr":"Langform URL","cssClass":"Stylesheet Klasse","advisoryTitle":"Titel Beschreibung","cssStyle":"Style","ok":"OK","cancel":"Abbrechen","close":"Schließen","preview":"Vorschau","resize":"Zum Vergrößern ziehen","generalTab":"Allgemein","advancedTab":"Erweitert","validateNumberFailed":"Dieser Wert ist keine Nummer.","confirmNewPage":"Alle nicht gespeicherten Änderungen gehen verlohren. Sind Sie sicher die neue Seite zu laden?","confirmCancel":"Einige Optionen wurden geändert. Wollen Sie den Dialog dennoch schließen?","options":"Optionen","target":"Zielseite","targetNew":"Neues Fenster (_blank)","targetTop":"Oberstes Fenster (_top)","targetSelf":"Gleiches Fenster (_self)","targetParent":"Oberes Fenster (_parent)","langDirLTR":"Links nach Rechts (LNR)","langDirRTL":"Rechts nach Links (RNL)","styles":"Style","cssClasses":"Stylesheet Klasse","width":"Breite","height":"Höhe","align":"Ausrichtung","alignLeft":"Links","alignRight":"Rechts","alignCenter":"Zentriert","alignTop":"Oben","alignMiddle":"Mitte","alignBottom":"Unten","invalidValue":"Invalid value.","invalidHeight":"Höhe muss eine Zahl sein.","invalidWidth":"Breite muss eine Zahl sein.","invalidCssLength":"Wert spezifiziert für \"%1\" Feld muss ein positiver numerischer Wert sein mit oder ohne korrekte CSS Messeinheit (px, %, in, cm, mm, em, ex, pt oder pc).","invalidHtmlLength":"Wert spezifiziert für \"%1\" Feld muss ein positiver numerischer Wert sein mit oder ohne korrekte HTML Messeinheit (px oder %).","invalidInlineStyle":"Wert spezifiziert für inline Stilart muss enthalten ein oder mehr Tupels mit dem Format \"Name : Wert\" getrennt mit Semikolons.","cssLengthTooltip":"Gebe eine Zahl ein für ein Wert in pixels oder eine Zahl mit einer korrekten CSS Messeinheit (px, %, in, cm, mm, em, ex, pt oder pc).","unavailable":"%1, nicht verfügbar"},"basicstyles":{"bold":"Fett","italic":"Kursiv","strike":"Durchgestrichen","subscript":"Tiefgestellt","superscript":"Hochgestellt","underline":"Unterstrichen"},"blockquote":{"toolbar":"Zitatblock"},"clipboard":{"copy":"Kopieren","copyError":"Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch kopieren. Bitte benutzen Sie die System-Zwischenablage über STRG-C (kopieren).","cut":"Ausschneiden","cutError":"Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch auszuschneiden. Bitte benutzen Sie die System-Zwischenablage über STRG-X (ausschneiden) und STRG-V (einfügen).","paste":"Einfügen","pasteArea":"Einfügebereich","pasteMsg":"Bitte fügen Sie den Text in der folgenden Box über die Tastatur (mit Strg+V) ein und bestätigen Sie mit OK.","securityMsg":"Aufgrund von Sicherheitsbeschränkungen Ihres Browsers kann der Editor nicht direkt auf die Zwischenablage zugreifen. Bitte fügen Sie den Inhalt erneut in diesem Fenster ein.","title":"Einfügen"},"contextmenu":{"options":"Kontextmenü Optionen"},"toolbar":{"toolbarCollapse":"Symbolleiste einklappen","toolbarExpand":"Symbolleiste ausklappen","toolbarGroups":{"document":"Dokument","clipboard":"Zwischenablage/Rückgängig","editing":"Editieren","forms":"Formularen","basicstyles":"Grundstile","paragraph":"Absatz","links":"Links","insert":"Einfügen","styles":"Stile","colors":"Farben","tools":"Werkzeuge"},"toolbars":"Editor Symbolleisten"},"elementspath":{"eleLabel":"Elements Pfad","eleTitle":"%1 Element"},"list":{"bulletedlist":"Liste","numberedlist":"Nummerierte Liste"},"indent":{"indent":"Einzug erhöhen","outdent":"Einzug verringern"},"format":{"label":"Format","panelTitle":"Format","tag_address":"Addresse","tag_div":"Normal (DIV)","tag_h1":"Überschrift 1","tag_h2":"Überschrift 2","tag_h3":"Überschrift 3","tag_h4":"Überschrift 4","tag_h5":"Überschrift 5","tag_h6":"Überschrift 6","tag_p":"Normal","tag_pre":"Formatiert"},"horizontalrule":{"toolbar":"Horizontale Linie einfügen"},"image":{"alertUrl":"Bitte geben Sie die Bild-URL an","alt":"Alternativer Text","border":"Rahmen","btnUpload":"Zum Server senden","button2Img":"Möchten Sie den gewählten Bild-Button in ein einfaches Bild umwandeln?","hSpace":"Horizontal-Abstand","img2Button":"Möchten Sie das gewählten Bild in einen Bild-Button umwandeln?","infoTab":"Bild-Info","linkTab":"Link","lockRatio":"Größenverhältnis beibehalten","menu":"Bild-Eigenschaften","resetSize":"Größe zurücksetzen","title":"Bild-Eigenschaften","titleButton":"Bildbutton-Eigenschaften","upload":"Hochladen","urlMissing":"Imagequelle URL fehlt.","vSpace":"Vertikal-Abstand","validateBorder":"Rahmen muß eine ganze Zahl sein.","validateHSpace":"Horizontal-Abstand muß eine ganze Zahl sein.","validateVSpace":"Vertikal-Abstand muß eine ganze Zahl sein."},"fakeobjects":{"anchor":"Anker","flash":"Flash Animation","hiddenfield":"Verstecktes Feld","iframe":"IFrame","unknown":"Unbekanntes Objekt"},"link":{"acccessKey":"Zugriffstaste","advanced":"Erweitert","advisoryContentType":"Inhaltstyp","advisoryTitle":"Titel Beschreibung","anchor":{"toolbar":"Anker einfügen/editieren","menu":"Anker-Eigenschaften","title":"Anker-Eigenschaften","name":"Anker Name","errorName":"Bitte geben Sie den Namen des Ankers ein","remove":"Anker entfernen"},"anchorId":"nach Element Id","anchorName":"nach Anker Name","charset":"Ziel-Zeichensatz","cssClasses":"Stylesheet Klasse","emailAddress":"E-Mail Adresse","emailBody":"Nachrichtentext","emailSubject":"Betreffzeile","id":"Id","info":"Link-Info","langCode":"Sprachenkürzel","langDir":"Schreibrichtung","langDirLTR":"Links nach Rechts (LTR)","langDirRTL":"Rechts nach Links (RTL)","menu":"Link editieren","name":"Name","noAnchors":"(keine Anker im Dokument vorhanden)","noEmail":"Bitte geben Sie e-Mail Adresse an","noUrl":"Bitte geben Sie die Link-URL an","other":"","popupDependent":"Abhängig (Netscape)","popupFeatures":"Pop-up Fenster-Eigenschaften","popupFullScreen":"Vollbild (IE)","popupLeft":"Linke Position","popupLocationBar":"Adress-Leiste","popupMenuBar":"Menü-Leiste","popupResizable":"Größe änderbar","popupScrollBars":"Rollbalken","popupStatusBar":"Statusleiste","popupToolbar":"Symbolleiste","popupTop":"Obere Position","rel":"Beziehung","selectAnchor":"Anker auswählen","styles":"Style","tabIndex":"Tab-Index","target":"Zielseite","targetFrame":"","targetFrameName":"Ziel-Fenster-Name","targetPopup":"","targetPopupName":"Pop-up Fenster-Name","title":"Link","toAnchor":"Anker in dieser Seite","toEmail":"E-Mail","toUrl":"URL","toolbar":"Link einfügen/editieren","type":"Link-Typ","unlink":"Link entfernen","upload":"Hochladen"},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Maximieren","minimize":"Minimieren"},"pastetext":{"button":"Als Text einfügen","title":"Als Text einfügen"},"removeformat":{"toolbar":"Formatierungen entfernen"},"sourcearea":{"toolbar":"Quellcode"},"scayt":{"about":"Über SCAYT","aboutTab":"Über","addWord":"Wort hinzufügen","allCaps":"Groß geschriebenen Wörter ignorieren","dic_create":"Erzeugen","dic_delete":"Löschen","dic_field_name":"Wörterbuchname","dic_info":"Anfangs wird das Benutzerwörterbuch in einem Cookie gespeichert. Allerdings sind Cookies in der Größe begrenzt. Wenn das Benutzerwörterbuch bis zu einem Punkt wächst, wo es nicht mehr in einem Cookie gespeichert werden kann, wird das Benutzerwörterbuch auf dem Server gespeichert. Um Ihr persönliches Wörterbuch auf dem Server zu speichern, müssen Sie einen Namen für das Wörterbuch angeben. Falls  Sie schon ein gespeicherte Wörterbuch haben, geben Sie bitte dessen Namen ein und klicken Sie auf die Schaltfläche Wiederherstellen.","dic_rename":"Umbenennen","dic_restore":"Wiederherstellen","dictionariesTab":"Wörterbücher","disable":"SCAYT ausschalten","emptyDic":"Wörterbuchname sollte leer sein.","enable":"SCAYT einschalten","ignore":"Ignorieren","ignoreAll":"Alle ignorieren","ignoreDomainNames":"Domain-Namen ignorieren","langs":"Sprachen","languagesTab":"Sprachen","mixedCase":"Wörter mit gemischte Setzkasten ignorieren","mixedWithDigits":"Wörter mit Zahlen ignorieren","moreSuggestions":"Mehr Vorschläge","opera_title":"Nicht von Opera unterstützt","options":"Optionen","optionsTab":"Optionen","title":"Rechtschreibprüfung während der Texteingabe (SCAYT)","toggle":"SCAYT umschalten","noSuggestions":"No suggestion"},"stylescombo":{"label":"Stil","panelTitle":"Formatierungenstil","panelTitle1":"Block Stilart","panelTitle2":"Inline Stilart","panelTitle3":"Objekt Stilart"},"table":{"border":"Rahmen","caption":"Überschrift","cell":{"menu":"Zelle","insertBefore":"Zelle davor einfügen","insertAfter":"Zelle danach einfügen","deleteCell":"Zelle löschen","merge":"Zellen verbinden","mergeRight":"Nach rechts verbinden","mergeDown":"Nach unten verbinden","splitHorizontal":"Zelle horizontal teilen","splitVertical":"Zelle vertikal teilen","title":"Zellen-Eigenschaften","cellType":"Zellart","rowSpan":"Anzahl Zeilen verbinden","colSpan":"Anzahl Spalten verbinden","wordWrap":"Zeilenumbruch","hAlign":"Horizontale Ausrichtung","vAlign":"Vertikale Ausrichtung","alignBaseline":"Grundlinie","bgColor":"Hintergrundfarbe","borderColor":"Rahmenfarbe","data":"Daten","header":"Überschrift","yes":"Ja","no":"Nein","invalidWidth":"Zellenbreite muß eine Zahl sein.","invalidHeight":"Zellenhöhe muß eine Zahl sein.","invalidRowSpan":"\"Anzahl Zeilen verbinden\" muss eine Ganzzahl sein.","invalidColSpan":"\"Anzahl Spalten verbinden\" muss eine Ganzzahl sein.","chooseColor":"Wählen"},"cellPad":"Zellenabstand innen","cellSpace":"Zellenabstand außen","column":{"menu":"Spalte","insertBefore":"Spalte links davor einfügen","insertAfter":"Spalte rechts danach einfügen","deleteColumn":"Spalte löschen"},"columns":"Spalte","deleteTable":"Tabelle löschen","headers":"Kopfzeile","headersBoth":"Beide","headersColumn":"Erste Spalte","headersNone":"Keine","headersRow":"Erste Zeile","invalidBorder":"Die Rahmenbreite muß eine Zahl sein.","invalidCellPadding":"Der Zellenabstand innen muß eine positive Zahl sein.","invalidCellSpacing":"Der Zellenabstand außen muß eine positive Zahl sein.","invalidCols":"Die Anzahl der Spalten muß größer als 0 sein..","invalidHeight":"Die Tabellenbreite muß eine Zahl sein.","invalidRows":"Die Anzahl der Zeilen muß größer als 0 sein.","invalidWidth":"Die Tabellenbreite muss eine Zahl sein.","menu":"Tabellen-Eigenschaften","row":{"menu":"Zeile","insertBefore":"Zeile oberhalb einfügen","insertAfter":"Zeile unterhalb einfügen","deleteRow":"Zeile entfernen"},"rows":"Zeile","summary":"Inhaltsübersicht","title":"Tabellen-Eigenschaften","toolbar":"Tabelle","widthPc":"%","widthPx":"Pixel","widthUnit":"Breite Einheit"},"undo":{"redo":"Wiederherstellen","undo":"Rückgängig"},"wsc":{"btnIgnore":"Ignorieren","btnIgnoreAll":"Alle Ignorieren","btnReplace":"Ersetzen","btnReplaceAll":"Alle Ersetzen","btnUndo":"Rückgängig","changeTo":"Ändern in","errorLoading":"Fehler beim laden des Dienstanbieters: %s.","ieSpellDownload":"Rechtschreibprüfung nicht installiert. Möchten Sie sie jetzt herunterladen?","manyChanges":"Rechtschreibprüfung abgeschlossen - %1 Wörter geändert","noChanges":"Rechtschreibprüfung abgeschlossen - keine Worte geändert","noMispell":"Rechtschreibprüfung abgeschlossen - keine Fehler gefunden","noSuggestions":" - keine Vorschläge - ","notAvailable":"Entschuldigung, aber dieser Dienst steht im Moment nicht zur Verfügung.","notInDic":"Nicht im Wörterbuch","oneChange":"Rechtschreibprüfung abgeschlossen - ein Wort geändert","progress":"Rechtschreibprüfung läuft...","title":"Rechtschreibprüfung","toolbar":"Rechtschreibprüfung"}};
\ No newline at end of file
diff --git a/kasu/static/js/ckeditor/lang/en.js b/src/kasu/static/js/ckeditor/lang/en.js
similarity index 99%
rename from kasu/static/js/ckeditor/lang/en.js
rename to src/kasu/static/js/ckeditor/lang/en.js
index 18f5b08..7016c53 100644
--- a/kasu/static/js/ckeditor/lang/en.js
+++ b/src/kasu/static/js/ckeditor/lang/en.js
@@ -1,5 +1,5 @@
-/*
-Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
 */
 CKEDITOR.lang['en']={"dir":"ltr","editor":"Rich Text Editor","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Browse Server","url":"URL","protocol":"Protocol","upload":"Upload","uploadSubmit":"Send it to the Server","image":"Image","flash":"Flash","form":"Form","checkbox":"Checkbox","radio":"Radio Button","textField":"Text Field","textarea":"Textarea","hiddenField":"Hidden Field","button":"Button","select":"Selection Field","imageButton":"Image Button","notSet":"","id":"Id","name":"Name","langDir":"Language Direction","langDirLtr":"Left to Right (LTR)","langDirRtl":"Right to Left (RTL)","langCode":"Language Code","longDescr":"Long Description URL","cssClass":"Stylesheet Classes","advisoryTitle":"Advisory Title","cssStyle":"Style","ok":"OK","cancel":"Cancel","close":"Close","preview":"Preview","resize":"Resize","generalTab":"General","advancedTab":"Advanced","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"Some of the options have been changed. Are you sure to close the dialog?","options":"Options","target":"Target","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"Left to Right (LTR)","langDirRTL":"Right to Left (RTL)","styles":"Style","cssClasses":"Stylesheet Classes","width":"Width","height":"Height","align":"Alignment","alignLeft":"Left","alignRight":"Right","alignCenter":"Center","alignTop":"Top","alignMiddle":"Middle","alignBottom":"Bottom","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1, unavailable"},"basicstyles":{"bold":"Bold","italic":"Italic","strike":"Strike Through","subscript":"Subscript","superscript":"Superscript","underline":"Underline"},"blockquote":{"toolbar":"Block Quote"},"clipboard":{"copy":"Copy","copyError":"Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).","cut":"Cut","cutError":"Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).","paste":"Paste","pasteArea":"Paste Area","pasteMsg":"Please paste inside the following box using the keyboard (Ctrl/Cmd+V) and hit OK","securityMsg":"Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.","title":"Paste"},"contextmenu":{"options":"Context Menu Options"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"list":{"bulletedlist":"Insert/Remove Bulleted List","numberedlist":"Insert/Remove Numbered List"},"indent":{"indent":"Increase Indent","outdent":"Decrease Indent"},"format":{"label":"Format","panelTitle":"Paragraph Format","tag_address":"Address","tag_div":"Normal (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Formatted"},"horizontalrule":{"toolbar":"Insert Horizontal Line"},"image":{"alertUrl":"Please type the image URL","alt":"Alternative Text","border":"Border","btnUpload":"Send it to the Server","button2Img":"Do you want to transform the selected image button on a simple image?","hSpace":"HSpace","img2Button":"Do you want to transform the selected image on a image button?","infoTab":"Image Info","linkTab":"Link","lockRatio":"Lock Ratio","menu":"Image Properties","resetSize":"Reset Size","title":"Image Properties","titleButton":"Image Button Properties","upload":"Upload","urlMissing":"Image source URL is missing.","vSpace":"VSpace","validateBorder":"Border must be a whole number.","validateHSpace":"HSpace must be a whole number.","validateVSpace":"VSpace must be a whole number."},"fakeobjects":{"anchor":"Anchor","flash":"Flash Animation","hiddenfield":"Hidden Field","iframe":"IFrame","unknown":"Unknown Object"},"link":{"acccessKey":"Access Key","advanced":"Advanced","advisoryContentType":"Advisory Content Type","advisoryTitle":"Advisory Title","anchor":{"toolbar":"Anchor","menu":"Edit Anchor","title":"Anchor Properties","name":"Anchor Name","errorName":"Please type the anchor name","remove":"Remove Anchor"},"anchorId":"By Element Id","anchorName":"By Anchor Name","charset":"Linked Resource Charset","cssClasses":"Stylesheet Classes","emailAddress":"E-Mail Address","emailBody":"Message Body","emailSubject":"Message Subject","id":"Id","info":"Link Info","langCode":"Language Code","langDir":"Language Direction","langDirLTR":"Left to Right (LTR)","langDirRTL":"Right to Left (RTL)","menu":"Edit Link","name":"Name","noAnchors":"(No anchors available in the document)","noEmail":"Please type the e-mail address","noUrl":"Please type the link URL","other":"","popupDependent":"Dependent (Netscape)","popupFeatures":"Popup Window Features","popupFullScreen":"Full Screen (IE)","popupLeft":"Left Position","popupLocationBar":"Location Bar","popupMenuBar":"Menu Bar","popupResizable":"Resizable","popupScrollBars":"Scroll Bars","popupStatusBar":"Status Bar","popupToolbar":"Toolbar","popupTop":"Top Position","rel":"Relationship","selectAnchor":"Select an Anchor","styles":"Style","tabIndex":"Tab Index","target":"Target","targetFrame":"","targetFrameName":"Target Frame Name","targetPopup":"","targetPopupName":"Popup Window Name","title":"Link","toAnchor":"Link to anchor in the text","toEmail":"E-mail","toUrl":"URL","toolbar":"Link","type":"Link Type","unlink":"Unlink","upload":"Upload"},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"pastetext":{"button":"Paste as plain text","title":"Paste as Plain Text"},"removeformat":{"toolbar":"Remove Format"},"sourcearea":{"toolbar":"Source"},"scayt":{"about":"About SCAYT","aboutTab":"About","addWord":"Add Word","allCaps":"Ignore All-Caps Words","dic_create":"Create","dic_delete":"Delete","dic_field_name":"Dictionary name","dic_info":"Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.","dic_rename":"Rename","dic_restore":"Restore","dictionariesTab":"Dictionaries","disable":"Disable SCAYT","emptyDic":"Dictionary name should not be empty.","enable":"Enable SCAYT","ignore":"Ignore","ignoreAll":"Ignore All","ignoreDomainNames":"Ignore Domain Names","langs":"Languages","languagesTab":"Languages","mixedCase":"Ignore Words with Mixed Case","mixedWithDigits":"Ignore Words with Numbers","moreSuggestions":"More suggestions","opera_title":"Not supported by Opera","options":"Options","optionsTab":"Options","title":"Spell Check As You Type","toggle":"Toggle SCAYT","noSuggestions":"No suggestion"},"stylescombo":{"label":"Styles","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"table":{"border":"Border size","caption":"Caption","cell":{"menu":"Cell","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"Delete Cells","merge":"Merge Cells","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"Cell padding","cellSpace":"Cell spacing","column":{"menu":"Column","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"Delete Columns"},"columns":"Columns","deleteTable":"Delete Table","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Cell spacing must be a positive number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"Table Properties","row":{"menu":"Row","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"Delete Rows"},"rows":"Rows","summary":"Summary","title":"Table Properties","toolbar":"Table","widthPc":"percent","widthPx":"pixels","widthUnit":"width unit"},"undo":{"redo":"Redo","undo":"Undo"},"wsc":{"btnIgnore":"Ignore","btnIgnoreAll":"Ignore All","btnReplace":"Replace","btnReplaceAll":"Replace All","btnUndo":"Undo","changeTo":"Change to","errorLoading":"Error loading application service host: %s.","ieSpellDownload":"Spell checker not installed. Do you want to download it now?","manyChanges":"Spell check complete: %1 words changed","noChanges":"Spell check complete: No words changed","noMispell":"Spell check complete: No misspellings found","noSuggestions":"- No suggestions -","notAvailable":"Sorry, but service is unavailable now.","notInDic":"Not in dictionary","oneChange":"Spell check complete: One word changed","progress":"Spell check in progress...","title":"Spell Check","toolbar":"Check Spelling"}};
\ No newline at end of file
diff --git a/kasu/static/js/ckeditor/plugins/clipboard/dialogs/paste.js b/src/kasu/static/js/ckeditor/plugins/clipboard/dialogs/paste.js
similarity index 100%
rename from kasu/static/js/ckeditor/plugins/clipboard/dialogs/paste.js
rename to src/kasu/static/js/ckeditor/plugins/clipboard/dialogs/paste.js
diff --git a/kasu/static/js/ckeditor/plugins/dialog/dialogDefinition.js b/src/kasu/static/js/ckeditor/plugins/dialog/dialogDefinition.js
similarity index 100%
rename from kasu/static/js/ckeditor/plugins/dialog/dialogDefinition.js
rename to src/kasu/static/js/ckeditor/plugins/dialog/dialogDefinition.js
diff --git a/kasu/static/js/ckeditor/plugins/fakeobjects/images/spacer.gif b/src/kasu/static/js/ckeditor/plugins/fakeobjects/images/spacer.gif
similarity index 100%
rename from kasu/static/js/ckeditor/plugins/fakeobjects/images/spacer.gif
rename to src/kasu/static/js/ckeditor/plugins/fakeobjects/images/spacer.gif
diff --git a/kasu/static/js/ckeditor/plugins/icons.png b/src/kasu/static/js/ckeditor/plugins/icons.png
similarity index 100%
rename from kasu/static/js/ckeditor/plugins/icons.png
rename to src/kasu/static/js/ckeditor/plugins/icons.png
diff --git a/kasu/static/js/ckeditor/plugins/image/dialogs/image.js b/src/kasu/static/js/ckeditor/plugins/image/dialogs/image.js
similarity index 100%
rename from kasu/static/js/ckeditor/plugins/image/dialogs/image.js
rename to src/kasu/static/js/ckeditor/plugins/image/dialogs/image.js
diff --git a/kasu/static/js/ckeditor/plugins/image/images/noimage.png b/src/kasu/static/js/ckeditor/plugins/image/images/noimage.png
similarity index 100%
rename from kasu/static/js/ckeditor/plugins/image/images/noimage.png
rename to src/kasu/static/js/ckeditor/plugins/image/images/noimage.png
diff --git a/kasu/static/js/ckeditor/plugins/link/dialogs/anchor.js b/src/kasu/static/js/ckeditor/plugins/link/dialogs/anchor.js
similarity index 100%
rename from kasu/static/js/ckeditor/plugins/link/dialogs/anchor.js
rename to src/kasu/static/js/ckeditor/plugins/link/dialogs/anchor.js
diff --git a/kasu/static/js/ckeditor/plugins/link/dialogs/link.js b/src/kasu/static/js/ckeditor/plugins/link/dialogs/link.js
similarity index 100%
rename from kasu/static/js/ckeditor/plugins/link/dialogs/link.js
rename to src/kasu/static/js/ckeditor/plugins/link/dialogs/link.js
diff --git a/kasu/static/js/ckeditor/plugins/link/images/anchor.png b/src/kasu/static/js/ckeditor/plugins/link/images/anchor.png
similarity index 100%
rename from kasu/static/js/ckeditor/plugins/link/images/anchor.png
rename to src/kasu/static/js/ckeditor/plugins/link/images/anchor.png
diff --git a/kasu/static/js/ckeditor/plugins/magicline/images/icon.png b/src/kasu/static/js/ckeditor/plugins/magicline/images/icon.png
similarity index 100%
rename from kasu/static/js/ckeditor/plugins/magicline/images/icon.png
rename to src/kasu/static/js/ckeditor/plugins/magicline/images/icon.png
diff --git a/kasu/static/js/ckeditor/plugins/scayt/LICENSE.md b/src/kasu/static/js/ckeditor/plugins/scayt/LICENSE.md
similarity index 98%
rename from kasu/static/js/ckeditor/plugins/scayt/LICENSE.md
rename to src/kasu/static/js/ckeditor/plugins/scayt/LICENSE.md
index 844ab4d..610c807 100644
--- a/kasu/static/js/ckeditor/plugins/scayt/LICENSE.md
+++ b/src/kasu/static/js/ckeditor/plugins/scayt/LICENSE.md
@@ -1,28 +1,28 @@
-Software License Agreement
-==========================
-
-**CKEditor SCAYT Plugin**
-Copyright © 2012, [CKSource](http://cksource.com) - Frederico Knabben. All rights reserved.
-
-Licensed under the terms of any of the following licenses at your choice:
-
-*   GNU General Public License Version 2 or later (the "GPL"):
-    http://www.gnu.org/licenses/gpl.html
-
-*   GNU Lesser General Public License Version 2.1 or later (the "LGPL"):
-    http://www.gnu.org/licenses/lgpl.html
-
-*   Mozilla Public License Version 1.1 or later (the "MPL"):
-    http://www.mozilla.org/MPL/MPL-1.1.html
-
-You are not required to, but if you want to explicitly declare the license you have chosen to be bound to when using, reproducing, modifying and distributing this software, just include a text file titled "legal.txt" in your version of this software, indicating your license choice.
-
-Sources of Intellectual Property Included in this plugin
---------------------------------------------------------
-
-Where not otherwise indicated, all plugin content is authored by CKSource engineers and consists of CKSource-owned intellectual property. In some specific instances, the plugin will incorporate work done by developers outside of CKSource with their express permission.
-
-Trademarks
-----------
-
-CKEditor is a trademark of CKSource - Frederico Knabben. All other brand and product names are trademarks, registered trademarks or service marks of their respective holders.
+Software License Agreement
+==========================
+
+**CKEditor SCAYT Plugin**
+Copyright © 2012, [CKSource](http://cksource.com) - Frederico Knabben. All rights reserved.
+
+Licensed under the terms of any of the following licenses at your choice:
+
+*   GNU General Public License Version 2 or later (the "GPL"):
+    http://www.gnu.org/licenses/gpl.html
+
+*   GNU Lesser General Public License Version 2.1 or later (the "LGPL"):
+    http://www.gnu.org/licenses/lgpl.html
+
+*   Mozilla Public License Version 1.1 or later (the "MPL"):
+    http://www.mozilla.org/MPL/MPL-1.1.html
+
+You are not required to, but if you want to explicitly declare the license you have chosen to be bound to when using, reproducing, modifying and distributing this software, just include a text file titled "legal.txt" in your version of this software, indicating your license choice.
+
+Sources of Intellectual Property Included in this plugin
+--------------------------------------------------------
+
+Where not otherwise indicated, all plugin content is authored by CKSource engineers and consists of CKSource-owned intellectual property. In some specific instances, the plugin will incorporate work done by developers outside of CKSource with their express permission.
+
+Trademarks
+----------
+
+CKEditor is a trademark of CKSource - Frederico Knabben. All other brand and product names are trademarks, registered trademarks or service marks of their respective holders.
diff --git a/kasu/static/js/ckeditor/plugins/scayt/README.md b/src/kasu/static/js/ckeditor/plugins/scayt/README.md
similarity index 97%
rename from kasu/static/js/ckeditor/plugins/scayt/README.md
rename to src/kasu/static/js/ckeditor/plugins/scayt/README.md
index 0f51958..3b1ad94 100644
--- a/kasu/static/js/ckeditor/plugins/scayt/README.md
+++ b/src/kasu/static/js/ckeditor/plugins/scayt/README.md
@@ -1,25 +1,25 @@
-CKEditor SCAYT Plugin
-=====================
-
-This plugin brings Spell Check As You Type (SCAYT) into CKEditor.
-
-SCAYT is a "installation-less", using the web-services of [WebSpellChecker.net](http://www.webspellchecker.net/). It's an out of the box solution.
-
-Installation
-------------
-
-1. Clone/copy this repository contents in a new "plugins/scayt" folder in your CKEditor installation.
-2. Enable the "scayt" plugin in the CKEditor configuration file (config.js):
-
-        config.extraPlugins = 'scayt';
-
-That's all. SCAYT will appear on the editor toolbar and will be ready to use.
-
-License
--------
-
-Licensed under the terms of any of the following licenses at your choice: [GPL](http://www.gnu.org/licenses/gpl.html), [LGPL](http://www.gnu.org/licenses/lgpl.html) and [MPL](http://www.mozilla.org/MPL/MPL-1.1.html).
-
-See LICENSE.md for more information.
-
-Developed in cooperation with [WebSpellChecker.net](http://www.webspellchecker.net/).
+CKEditor SCAYT Plugin
+=====================
+
+This plugin brings Spell Check As You Type (SCAYT) into CKEditor.
+
+SCAYT is a "installation-less", using the web-services of [WebSpellChecker.net](http://www.webspellchecker.net/). It's an out of the box solution.
+
+Installation
+------------
+
+1. Clone/copy this repository contents in a new "plugins/scayt" folder in your CKEditor installation.
+2. Enable the "scayt" plugin in the CKEditor configuration file (config.js):
+
+        config.extraPlugins = 'scayt';
+
+That's all. SCAYT will appear on the editor toolbar and will be ready to use.
+
+License
+-------
+
+Licensed under the terms of any of the following licenses at your choice: [GPL](http://www.gnu.org/licenses/gpl.html), [LGPL](http://www.gnu.org/licenses/lgpl.html) and [MPL](http://www.mozilla.org/MPL/MPL-1.1.html).
+
+See LICENSE.md for more information.
+
+Developed in cooperation with [WebSpellChecker.net](http://www.webspellchecker.net/).
diff --git a/kasu/static/js/ckeditor/plugins/scayt/dialogs/options.js b/src/kasu/static/js/ckeditor/plugins/scayt/dialogs/options.js
similarity index 100%
rename from kasu/static/js/ckeditor/plugins/scayt/dialogs/options.js
rename to src/kasu/static/js/ckeditor/plugins/scayt/dialogs/options.js
diff --git a/kasu/static/js/ckeditor/plugins/scayt/dialogs/toolbar.css b/src/kasu/static/js/ckeditor/plugins/scayt/dialogs/toolbar.css
similarity index 94%
rename from kasu/static/js/ckeditor/plugins/scayt/dialogs/toolbar.css
rename to src/kasu/static/js/ckeditor/plugins/scayt/dialogs/toolbar.css
index ecabdac..861f43e 100644
--- a/kasu/static/js/ckeditor/plugins/scayt/dialogs/toolbar.css
+++ b/src/kasu/static/js/ckeditor/plugins/scayt/dialogs/toolbar.css
@@ -1,71 +1,71 @@
-a
-{
-	text-decoration:none;
-	padding: 2px 4px 4px 6px;
-	display : block;
-	border-width: 1px;
-	border-style: solid;
-	margin : 0px;
-}
-
-a.cke_scayt_toogle:hover,
-a.cke_scayt_toogle:focus,
-a.cke_scayt_toogle:active
-{
-	border-color: #316ac5;
-	background-color: #dff1ff;
-	color : #000;
-	cursor: pointer;
-	margin : 0px;
-}
-a.cke_scayt_toogle {
-	color : #316ac5;
-	border-color: #fff;
-}
-.scayt_enabled a.cke_scayt_item {
-	color : #316ac5;
-	border-color: #fff;
-	margin : 0px;
-}
-.scayt_disabled a.cke_scayt_item {
-	color : gray;
-	border-color : #fff;
-}
-.scayt_enabled a.cke_scayt_item:hover,
-.scayt_enabled a.cke_scayt_item:focus,
-.scayt_enabled a.cke_scayt_item:active
-{
-	border-color: #316ac5;
-	background-color: #dff1ff;
-	color : #000;
-	cursor: pointer;
-}
-.scayt_disabled a.cke_scayt_item:hover,
-.scayt_disabled a.cke_scayt_item:focus,
-.scayt_disabled a.cke_scayt_item:active
-{
-	border-color: gray;
-	background-color: #dff1ff;
-	color : gray;
-	cursor: no-drop;
-}
-.cke_scayt_set_on, .cke_scayt_set_off
-{
-	display: none;
-}
-.scayt_enabled .cke_scayt_set_on
-{
-	display: none;
-}
-.scayt_disabled .cke_scayt_set_on
-{
-	display: inline;
-}
-.scayt_disabled .cke_scayt_set_off
-{
-	display: none;
-}
-.scayt_enabled  .cke_scayt_set_off
-{
-	display: inline;
-}
+a
+{
+	text-decoration:none;
+	padding: 2px 4px 4px 6px;
+	display : block;
+	border-width: 1px;
+	border-style: solid;
+	margin : 0px;
+}
+
+a.cke_scayt_toogle:hover,
+a.cke_scayt_toogle:focus,
+a.cke_scayt_toogle:active
+{
+	border-color: #316ac5;
+	background-color: #dff1ff;
+	color : #000;
+	cursor: pointer;
+	margin : 0px;
+}
+a.cke_scayt_toogle {
+	color : #316ac5;
+	border-color: #fff;
+}
+.scayt_enabled a.cke_scayt_item {
+	color : #316ac5;
+	border-color: #fff;
+	margin : 0px;
+}
+.scayt_disabled a.cke_scayt_item {
+	color : gray;
+	border-color : #fff;
+}
+.scayt_enabled a.cke_scayt_item:hover,
+.scayt_enabled a.cke_scayt_item:focus,
+.scayt_enabled a.cke_scayt_item:active
+{
+	border-color: #316ac5;
+	background-color: #dff1ff;
+	color : #000;
+	cursor: pointer;
+}
+.scayt_disabled a.cke_scayt_item:hover,
+.scayt_disabled a.cke_scayt_item:focus,
+.scayt_disabled a.cke_scayt_item:active
+{
+	border-color: gray;
+	background-color: #dff1ff;
+	color : gray;
+	cursor: no-drop;
+}
+.cke_scayt_set_on, .cke_scayt_set_off
+{
+	display: none;
+}
+.scayt_enabled .cke_scayt_set_on
+{
+	display: none;
+}
+.scayt_disabled .cke_scayt_set_on
+{
+	display: inline;
+}
+.scayt_disabled .cke_scayt_set_off
+{
+	display: none;
+}
+.scayt_enabled  .cke_scayt_set_off
+{
+	display: inline;
+}
diff --git a/kasu/static/js/ckeditor/plugins/table/dialogs/table.js b/src/kasu/static/js/ckeditor/plugins/table/dialogs/table.js
similarity index 100%
rename from kasu/static/js/ckeditor/plugins/table/dialogs/table.js
rename to src/kasu/static/js/ckeditor/plugins/table/dialogs/table.js
diff --git a/kasu/static/js/ckeditor/plugins/tabletools/dialogs/tableCell.js b/src/kasu/static/js/ckeditor/plugins/tabletools/dialogs/tableCell.js
similarity index 100%
rename from kasu/static/js/ckeditor/plugins/tabletools/dialogs/tableCell.js
rename to src/kasu/static/js/ckeditor/plugins/tabletools/dialogs/tableCell.js
diff --git a/kasu/static/js/ckeditor/plugins/wsc/LICENSE.md b/src/kasu/static/js/ckeditor/plugins/wsc/LICENSE.md
similarity index 98%
rename from kasu/static/js/ckeditor/plugins/wsc/LICENSE.md
rename to src/kasu/static/js/ckeditor/plugins/wsc/LICENSE.md
index 6096de2..c7d374a 100644
--- a/kasu/static/js/ckeditor/plugins/wsc/LICENSE.md
+++ b/src/kasu/static/js/ckeditor/plugins/wsc/LICENSE.md
@@ -1,28 +1,28 @@
-Software License Agreement
-==========================
-
-**CKEditor WSC Plugin**
-Copyright © 2012, [CKSource](http://cksource.com) - Frederico Knabben. All rights reserved.
-
-Licensed under the terms of any of the following licenses at your choice:
-
-*   GNU General Public License Version 2 or later (the "GPL"):
-    http://www.gnu.org/licenses/gpl.html
-
-*   GNU Lesser General Public License Version 2.1 or later (the "LGPL"):
-    http://www.gnu.org/licenses/lgpl.html
-
-*   Mozilla Public License Version 1.1 or later (the "MPL"):
-    http://www.mozilla.org/MPL/MPL-1.1.html
-
-You are not required to, but if you want to explicitly declare the license you have chosen to be bound to when using, reproducing, modifying and distributing this software, just include a text file titled "legal.txt" in your version of this software, indicating your license choice.
-
-Sources of Intellectual Property Included in this plugin
---------------------------------------------------------
-
-Where not otherwise indicated, all plugin content is authored by CKSource engineers and consists of CKSource-owned intellectual property. In some specific instances, the plugin will incorporate work done by developers outside of CKSource with their express permission.
-
-Trademarks
-----------
-
-CKEditor is a trademark of CKSource - Frederico Knabben. All other brand and product names are trademarks, registered trademarks or service marks of their respective holders.
+Software License Agreement
+==========================
+
+**CKEditor WSC Plugin**
+Copyright © 2012, [CKSource](http://cksource.com) - Frederico Knabben. All rights reserved.
+
+Licensed under the terms of any of the following licenses at your choice:
+
+*   GNU General Public License Version 2 or later (the "GPL"):
+    http://www.gnu.org/licenses/gpl.html
+
+*   GNU Lesser General Public License Version 2.1 or later (the "LGPL"):
+    http://www.gnu.org/licenses/lgpl.html
+
+*   Mozilla Public License Version 1.1 or later (the "MPL"):
+    http://www.mozilla.org/MPL/MPL-1.1.html
+
+You are not required to, but if you want to explicitly declare the license you have chosen to be bound to when using, reproducing, modifying and distributing this software, just include a text file titled "legal.txt" in your version of this software, indicating your license choice.
+
+Sources of Intellectual Property Included in this plugin
+--------------------------------------------------------
+
+Where not otherwise indicated, all plugin content is authored by CKSource engineers and consists of CKSource-owned intellectual property. In some specific instances, the plugin will incorporate work done by developers outside of CKSource with their express permission.
+
+Trademarks
+----------
+
+CKEditor is a trademark of CKSource - Frederico Knabben. All other brand and product names are trademarks, registered trademarks or service marks of their respective holders.
diff --git a/kasu/static/js/ckeditor/plugins/wsc/README.md b/src/kasu/static/js/ckeditor/plugins/wsc/README.md
similarity index 97%
rename from kasu/static/js/ckeditor/plugins/wsc/README.md
rename to src/kasu/static/js/ckeditor/plugins/wsc/README.md
index 346e2ab..46eeafb 100644
--- a/kasu/static/js/ckeditor/plugins/wsc/README.md
+++ b/src/kasu/static/js/ckeditor/plugins/wsc/README.md
@@ -1,25 +1,25 @@
-CKEditor WebSpellChecker Plugin
-===============================
-
-This plugin brings Web Spell Checker (WSC) into CKEditor.
-
-WSC is "installation-less", using the web-services of [WebSpellChecker.net](http://www.webspellchecker.net/). It's an out of the box solution.
-
-Installation
-------------
-
-1. Clone/copy this repository contents in a new "plugins/wsc" folder in your CKEditor installation.
-2. Enable the "wsc" plugin in the CKEditor configuration file (config.js):
-
-        config.extraPlugins = 'wsc';
-
-That's all. WSC will appear on the editor toolbar and will be ready to use.
-
-License
--------
-
-Licensed under the terms of any of the following licenses at your choice: [GPL](http://www.gnu.org/licenses/gpl.html), [LGPL](http://www.gnu.org/licenses/lgpl.html) and [MPL](http://www.mozilla.org/MPL/MPL-1.1.html).
-
-See LICENSE.md for more information.
-
-Developed in cooperation with [WebSpellChecker.net](http://www.webspellchecker.net/).
+CKEditor WebSpellChecker Plugin
+===============================
+
+This plugin brings Web Spell Checker (WSC) into CKEditor.
+
+WSC is "installation-less", using the web-services of [WebSpellChecker.net](http://www.webspellchecker.net/). It's an out of the box solution.
+
+Installation
+------------
+
+1. Clone/copy this repository contents in a new "plugins/wsc" folder in your CKEditor installation.
+2. Enable the "wsc" plugin in the CKEditor configuration file (config.js):
+
+        config.extraPlugins = 'wsc';
+
+That's all. WSC will appear on the editor toolbar and will be ready to use.
+
+License
+-------
+
+Licensed under the terms of any of the following licenses at your choice: [GPL](http://www.gnu.org/licenses/gpl.html), [LGPL](http://www.gnu.org/licenses/lgpl.html) and [MPL](http://www.mozilla.org/MPL/MPL-1.1.html).
+
+See LICENSE.md for more information.
+
+Developed in cooperation with [WebSpellChecker.net](http://www.webspellchecker.net/).
diff --git a/kasu/static/js/ckeditor/plugins/wsc/dialogs/ciframe.html b/src/kasu/static/js/ckeditor/plugins/wsc/dialogs/ciframe.html
similarity index 95%
rename from kasu/static/js/ckeditor/plugins/wsc/dialogs/ciframe.html
rename to src/kasu/static/js/ckeditor/plugins/wsc/dialogs/ciframe.html
index 292297d..5cc9254 100644
--- a/kasu/static/js/ckeditor/plugins/wsc/dialogs/ciframe.html
+++ b/src/kasu/static/js/ckeditor/plugins/wsc/dialogs/ciframe.html
@@ -1,49 +1,49 @@
-
-
-
-
-	
-	
-	
-
-

- + + + + + + + + +

+ diff --git a/kasu/static/js/ckeditor/plugins/wsc/dialogs/tmpFrameset.html b/src/kasu/static/js/ckeditor/plugins/wsc/dialogs/tmpFrameset.html similarity index 97% rename from kasu/static/js/ckeditor/plugins/wsc/dialogs/tmpFrameset.html rename to src/kasu/static/js/ckeditor/plugins/wsc/dialogs/tmpFrameset.html index 88e1afe..0d675f4 100644 --- a/kasu/static/js/ckeditor/plugins/wsc/dialogs/tmpFrameset.html +++ b/src/kasu/static/js/ckeditor/plugins/wsc/dialogs/tmpFrameset.html @@ -1,52 +1,52 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + diff --git a/kasu/static/js/ckeditor/plugins/wsc/dialogs/wsc.css b/src/kasu/static/js/ckeditor/plugins/wsc/dialogs/wsc.css similarity index 93% rename from kasu/static/js/ckeditor/plugins/wsc/dialogs/wsc.css rename to src/kasu/static/js/ckeditor/plugins/wsc/dialogs/wsc.css index e163948..9e834f1 100644 --- a/kasu/static/js/ckeditor/plugins/wsc/dialogs/wsc.css +++ b/src/kasu/static/js/ckeditor/plugins/wsc/dialogs/wsc.css @@ -1,82 +1,82 @@ -/* -Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.html or http://ckeditor.com/license -*/ - -html, body -{ - background-color: transparent; - margin: 0px; - padding: 0px; -} - -body -{ - padding: 10px; -} - -body, td, input, select, textarea -{ - font-size: 11px; - font-family: 'Microsoft Sans Serif' , Arial, Helvetica, Verdana; -} - -.midtext -{ - padding:0px; - margin:10px; -} - -.midtext p -{ - padding:0px; - margin:10px; -} - -.Button -{ - border: #737357 1px solid; - color: #3b3b1f; - background-color: #c7c78f; -} - -.PopupTabArea -{ - color: #737357; - background-color: #e3e3c7; -} - -.PopupTitleBorder -{ - border-bottom: #d5d59d 1px solid; -} -.PopupTabEmptyArea -{ - padding-left: 10px; - border-bottom: #d5d59d 1px solid; -} - -.PopupTab, .PopupTabSelected -{ - border-right: #d5d59d 1px solid; - border-top: #d5d59d 1px solid; - border-left: #d5d59d 1px solid; - padding: 3px 5px 3px 5px; - color: #737357; -} - -.PopupTab -{ - margin-top: 1px; - border-bottom: #d5d59d 1px solid; - cursor: pointer; -} - -.PopupTabSelected -{ - font-weight: bold; - cursor: default; - padding-top: 4px; - border-bottom: #f1f1e3 1px solid; - background-color: #f1f1e3; -} +/* +Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.html or http://ckeditor.com/license +*/ + +html, body +{ + background-color: transparent; + margin: 0px; + padding: 0px; +} + +body +{ + padding: 10px; +} + +body, td, input, select, textarea +{ + font-size: 11px; + font-family: 'Microsoft Sans Serif' , Arial, Helvetica, Verdana; +} + +.midtext +{ + padding:0px; + margin:10px; +} + +.midtext p +{ + padding:0px; + margin:10px; +} + +.Button +{ + border: #737357 1px solid; + color: #3b3b1f; + background-color: #c7c78f; +} + +.PopupTabArea +{ + color: #737357; + background-color: #e3e3c7; +} + +.PopupTitleBorder +{ + border-bottom: #d5d59d 1px solid; +} +.PopupTabEmptyArea +{ + padding-left: 10px; + border-bottom: #d5d59d 1px solid; +} + +.PopupTab, .PopupTabSelected +{ + border-right: #d5d59d 1px solid; + border-top: #d5d59d 1px solid; + border-left: #d5d59d 1px solid; + padding: 3px 5px 3px 5px; + color: #737357; +} + +.PopupTab +{ + margin-top: 1px; + border-bottom: #d5d59d 1px solid; + cursor: pointer; +} + +.PopupTabSelected +{ + font-weight: bold; + cursor: default; + padding-top: 4px; + border-bottom: #f1f1e3 1px solid; + background-color: #f1f1e3; +} diff --git a/kasu/static/js/ckeditor/plugins/wsc/dialogs/wsc.js b/src/kasu/static/js/ckeditor/plugins/wsc/dialogs/wsc.js similarity index 100% rename from kasu/static/js/ckeditor/plugins/wsc/dialogs/wsc.js rename to src/kasu/static/js/ckeditor/plugins/wsc/dialogs/wsc.js diff --git a/kasu/static/js/ckeditor/samples/ajax.html b/src/kasu/static/js/ckeditor/samples/ajax.html similarity index 96% rename from kasu/static/js/ckeditor/samples/ajax.html rename to src/kasu/static/js/ckeditor/samples/ajax.html index 6ebe34e..5c92fa5 100644 --- a/kasu/static/js/ckeditor/samples/ajax.html +++ b/src/kasu/static/js/ckeditor/samples/ajax.html @@ -1,82 +1,82 @@ - - - - - Ajax — CKEditor Sample - - - - - - -

- CKEditor Samples » Create and Destroy Editor Instances for Ajax Applications -

-
-

- This sample shows how to create and destroy CKEditor instances on the fly. After the removal of CKEditor the content created inside the editing - area will be displayed in a <div> element. -

-

- For details of how to create this setup check the source code of this sample page - for JavaScript code responsible for the creation and destruction of a CKEditor instance. -

-
-

Click the buttons to create and remove a CKEditor instance.

-

- - -

- -
-
- - - - + + + + + Ajax — CKEditor Sample + + + + + + +

+ CKEditor Samples » Create and Destroy Editor Instances for Ajax Applications +

+
+

+ This sample shows how to create and destroy CKEditor instances on the fly. After the removal of CKEditor the content created inside the editing + area will be displayed in a <div> element. +

+

+ For details of how to create this setup check the source code of this sample page + for JavaScript code responsible for the creation and destruction of a CKEditor instance. +

+
+

Click the buttons to create and remove a CKEditor instance.

+

+ + +

+ +
+
+ + + + diff --git a/kasu/static/js/ckeditor/samples/api.html b/src/kasu/static/js/ckeditor/samples/api.html similarity index 97% rename from kasu/static/js/ckeditor/samples/api.html rename to src/kasu/static/js/ckeditor/samples/api.html index 1bc8948..9d51ef7 100644 --- a/kasu/static/js/ckeditor/samples/api.html +++ b/src/kasu/static/js/ckeditor/samples/api.html @@ -1,207 +1,207 @@ - - - - - - API Usage — CKEditor Sample - - - - - - -

- CKEditor Samples » Using CKEditor JavaScript API -

-
-

- This sample shows how to use the - CKEditor JavaScript API - to interact with the editor at runtime. -

-

- For details on how to create this setup check the source code of this sample page. -

-
- - -
- -
-
- - - - -

-

- - -
- - - + + + + + + API Usage — CKEditor Sample + + + + + + +

+ CKEditor Samples » Using CKEditor JavaScript API +

+
+

+ This sample shows how to use the + CKEditor JavaScript API + to interact with the editor at runtime. +

+

+ For details on how to create this setup check the source code of this sample page. +

+
+ + +
+ +
+
+ + + + +

+

+ + +
+ + + diff --git a/kasu/static/js/ckeditor/samples/appendto.html b/src/kasu/static/js/ckeditor/samples/appendto.html similarity index 96% rename from kasu/static/js/ckeditor/samples/appendto.html rename to src/kasu/static/js/ckeditor/samples/appendto.html index 3a5fbef..4e97bad 100644 --- a/kasu/static/js/ckeditor/samples/appendto.html +++ b/src/kasu/static/js/ckeditor/samples/appendto.html @@ -1,57 +1,57 @@ - - - - - CKEDITOR.appendTo — CKEditor Sample - - - - - -

- CKEditor Samples » Append To Page Element Using JavaScript Code -

-
-
-

- CKEDITOR.appendTo is basically to place editors - inside existing DOM elements. Unlike CKEDITOR.replace, - a target container to be replaced is no longer necessary. A new editor - instance is inserted directly wherever it is desired. -

-
CKEDITOR.appendTo( 'container_id',
-	{ /* Configuration options to be used. */ }
-	'Editor content to be used.'
-);
-
- -
-
- - - + + + + + CKEDITOR.appendTo — CKEditor Sample + + + + + +

+ CKEditor Samples » Append To Page Element Using JavaScript Code +

+
+
+

+ CKEDITOR.appendTo is basically to place editors + inside existing DOM elements. Unlike CKEDITOR.replace, + a target container to be replaced is no longer necessary. A new editor + instance is inserted directly wherever it is desired. +

+
CKEDITOR.appendTo( 'container_id',
+	{ /* Configuration options to be used. */ }
+	'Editor content to be used.'
+);
+
+ +
+
+ + + diff --git a/kasu/static/js/ckeditor/samples/assets/inlineall/logo.png b/src/kasu/static/js/ckeditor/samples/assets/inlineall/logo.png similarity index 100% rename from kasu/static/js/ckeditor/samples/assets/inlineall/logo.png rename to src/kasu/static/js/ckeditor/samples/assets/inlineall/logo.png diff --git a/kasu/static/js/ckeditor/samples/assets/outputxhtml/outputxhtml.css b/src/kasu/static/js/ckeditor/samples/assets/outputxhtml/outputxhtml.css similarity index 90% rename from kasu/static/js/ckeditor/samples/assets/outputxhtml/outputxhtml.css rename to src/kasu/static/js/ckeditor/samples/assets/outputxhtml/outputxhtml.css index 2b15e1c..eab9374 100644 --- a/kasu/static/js/ckeditor/samples/assets/outputxhtml/outputxhtml.css +++ b/src/kasu/static/js/ckeditor/samples/assets/outputxhtml/outputxhtml.css @@ -1,204 +1,204 @@ -/* - * Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.html or http://ckeditor.com/license - * - * Styles used by the XHTML 1.1 sample page (xhtml.html). - */ - -/** - * Basic definitions for the editing area. - */ -body -{ - font-family: Arial, Verdana, sans-serif; - font-size: 80%; - color: #000000; - background-color: #ffffff; - padding: 5px; - margin: 0px; -} - -/** - * Core styles. - */ - -.Bold -{ - font-weight: bold; -} - -.Italic -{ - font-style: italic; -} - -.Underline -{ - text-decoration: underline; -} - -.StrikeThrough -{ - text-decoration: line-through; -} - -.Subscript -{ - vertical-align: sub; - font-size: smaller; -} - -.Superscript -{ - vertical-align: super; - font-size: smaller; -} - -/** - * Font faces. - */ - -.FontComic -{ - font-family: 'Comic Sans MS'; -} - -.FontCourier -{ - font-family: 'Courier New'; -} - -.FontTimes -{ - font-family: 'Times New Roman'; -} - -/** - * Font sizes. - */ - -.FontSmaller -{ - font-size: smaller; -} - -.FontLarger -{ - font-size: larger; -} - -.FontSmall -{ - font-size: 8pt; -} - -.FontBig -{ - font-size: 14pt; -} - -.FontDouble -{ - font-size: 200%; -} - -/** - * Font colors. - */ -.FontColor1 -{ - color: #ff9900; -} - -.FontColor2 -{ - color: #0066cc; -} - -.FontColor3 -{ - color: #ff0000; -} - -.FontColor1BG -{ - background-color: #ff9900; -} - -.FontColor2BG -{ - background-color: #0066cc; -} - -.FontColor3BG -{ - background-color: #ff0000; -} - -/** - * Indentation. - */ - -.Indent1 -{ - margin-left: 40px; -} - -.Indent2 -{ - margin-left: 80px; -} - -.Indent3 -{ - margin-left: 120px; -} - -/** - * Alignment. - */ - -.JustifyLeft -{ - text-align: left; -} - -.JustifyRight -{ - text-align: right; -} - -.JustifyCenter -{ - text-align: center; -} - -.JustifyFull -{ - text-align: justify; -} - -/** - * Other. - */ - -code -{ - font-family: courier, monospace; - background-color: #eeeeee; - padding-left: 1px; - padding-right: 1px; - border: #c0c0c0 1px solid; -} - -kbd -{ - padding: 0px 1px 0px 1px; - border-width: 1px 2px 2px 1px; - border-style: solid; -} - -blockquote -{ - color: #808080; -} +/* + * Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.html or http://ckeditor.com/license + * + * Styles used by the XHTML 1.1 sample page (xhtml.html). + */ + +/** + * Basic definitions for the editing area. + */ +body +{ + font-family: Arial, Verdana, sans-serif; + font-size: 80%; + color: #000000; + background-color: #ffffff; + padding: 5px; + margin: 0px; +} + +/** + * Core styles. + */ + +.Bold +{ + font-weight: bold; +} + +.Italic +{ + font-style: italic; +} + +.Underline +{ + text-decoration: underline; +} + +.StrikeThrough +{ + text-decoration: line-through; +} + +.Subscript +{ + vertical-align: sub; + font-size: smaller; +} + +.Superscript +{ + vertical-align: super; + font-size: smaller; +} + +/** + * Font faces. + */ + +.FontComic +{ + font-family: 'Comic Sans MS'; +} + +.FontCourier +{ + font-family: 'Courier New'; +} + +.FontTimes +{ + font-family: 'Times New Roman'; +} + +/** + * Font sizes. + */ + +.FontSmaller +{ + font-size: smaller; +} + +.FontLarger +{ + font-size: larger; +} + +.FontSmall +{ + font-size: 8pt; +} + +.FontBig +{ + font-size: 14pt; +} + +.FontDouble +{ + font-size: 200%; +} + +/** + * Font colors. + */ +.FontColor1 +{ + color: #ff9900; +} + +.FontColor2 +{ + color: #0066cc; +} + +.FontColor3 +{ + color: #ff0000; +} + +.FontColor1BG +{ + background-color: #ff9900; +} + +.FontColor2BG +{ + background-color: #0066cc; +} + +.FontColor3BG +{ + background-color: #ff0000; +} + +/** + * Indentation. + */ + +.Indent1 +{ + margin-left: 40px; +} + +.Indent2 +{ + margin-left: 80px; +} + +.Indent3 +{ + margin-left: 120px; +} + +/** + * Alignment. + */ + +.JustifyLeft +{ + text-align: left; +} + +.JustifyRight +{ + text-align: right; +} + +.JustifyCenter +{ + text-align: center; +} + +.JustifyFull +{ + text-align: justify; +} + +/** + * Other. + */ + +code +{ + font-family: courier, monospace; + background-color: #eeeeee; + padding-left: 1px; + padding-right: 1px; + border: #c0c0c0 1px solid; +} + +kbd +{ + padding: 0px 1px 0px 1px; + border-width: 1px 2px 2px 1px; + border-style: solid; +} + +blockquote +{ + color: #808080; +} diff --git a/kasu/static/js/ckeditor/samples/assets/posteddata.php b/src/kasu/static/js/ckeditor/samples/assets/posteddata.php similarity index 95% rename from kasu/static/js/ckeditor/samples/assets/posteddata.php rename to src/kasu/static/js/ckeditor/samples/assets/posteddata.php index dcef922..bb45656 100644 --- a/kasu/static/js/ckeditor/samples/assets/posteddata.php +++ b/src/kasu/static/js/ckeditor/samples/assets/posteddata.php @@ -1,59 +1,59 @@ - - - - - - Sample — CKEditor - - - -

- CKEditor — Posted Data -

- - - - - - - - - $value ) - { - if ( ( !is_string($value) && !is_numeric($value) ) || !is_string($key) ) - continue; - - if ( get_magic_quotes_gpc() ) - $value = htmlspecialchars( stripslashes((string)$value) ); - else - $value = htmlspecialchars( (string)$value ); -?> - - - - - -
Field NameValue
- - - + + + + + + Sample — CKEditor + + + +

+ CKEditor — Posted Data +

+ + + + + + + + + $value ) + { + if ( ( !is_string($value) && !is_numeric($value) ) || !is_string($key) ) + continue; + + if ( get_magic_quotes_gpc() ) + $value = htmlspecialchars( stripslashes((string)$value) ); + else + $value = htmlspecialchars( (string)$value ); +?> + + + + + +
Field NameValue
+ + + diff --git a/kasu/static/js/ckeditor/samples/assets/sample.css b/src/kasu/static/js/ckeditor/samples/assets/sample.css similarity index 94% rename from kasu/static/js/ckeditor/samples/assets/sample.css rename to src/kasu/static/js/ckeditor/samples/assets/sample.css index 64167c2..a47e4dd 100644 --- a/kasu/static/js/ckeditor/samples/assets/sample.css +++ b/src/kasu/static/js/ckeditor/samples/assets/sample.css @@ -1,3 +1,3 @@ -/** - * Required by tests (dom/document.html). - */ +/** + * Required by tests (dom/document.html). + */ diff --git a/kasu/static/js/ckeditor/samples/assets/sample.jpg b/src/kasu/static/js/ckeditor/samples/assets/sample.jpg similarity index 100% rename from kasu/static/js/ckeditor/samples/assets/sample.jpg rename to src/kasu/static/js/ckeditor/samples/assets/sample.jpg diff --git a/kasu/static/js/ckeditor/samples/assets/uilanguages/languages.js b/src/kasu/static/js/ckeditor/samples/assets/uilanguages/languages.js similarity index 100% rename from kasu/static/js/ckeditor/samples/assets/uilanguages/languages.js rename to src/kasu/static/js/ckeditor/samples/assets/uilanguages/languages.js diff --git a/kasu/static/js/ckeditor/samples/datafiltering.html b/src/kasu/static/js/ckeditor/samples/datafiltering.html similarity index 98% rename from kasu/static/js/ckeditor/samples/datafiltering.html rename to src/kasu/static/js/ckeditor/samples/datafiltering.html index 49c993a..af06dd7 100644 --- a/kasu/static/js/ckeditor/samples/datafiltering.html +++ b/src/kasu/static/js/ckeditor/samples/datafiltering.html @@ -1,401 +1,401 @@ - - - - - Data Filtering — CKEditor Sample - - - - - - -

- CKEditor Samples » Data Filtering and Features Activation -

-
-

- This sample page demonstrates the idea of Advanced Content Filter - (ACF), a sophisticated - tool that takes control over what kind of data is accepted by the editor and what - kind of output is produced. -

-

When and what is being filtered?

-

- ACF controls - every single source of data that comes to the editor. - It process both HTML that is inserted manually (i.e. pasted by the user) - and programmatically like: -

-
-editor.setData( '<p>Hello world!</p>' );
-
-

- ACF discards invalid, - useless HTML tags and attributes so the editor remains "clean" during - runtime. ACF behaviour - can be configured and adjusted for a particular case to prevent the - output HTML (i.e. in CMS systems) from being polluted. - - This kind of filtering is a first, client-side line of defense - against "tag soups", - the tool that precisely restricts which tags, attributes and styles - are allowed (desired). When properly configured, ACF - is an easy and fast way to produce a high-quality, intentionally filtered HTML. -

- -

How to configure or disable ACF?

-

- Advanced Content Filter is enabled by default, working in "automatic mode", yet - it provides a set of easy rules that allow adjusting filtering rules - and disabling the entire feature when necessary. The config property - responsible for this feature is config.allowedContent. -

-

- By "automatic mode" is meant that loaded plugins decide which kind - of content is enabled and which is not. For example, if the link - plugin is loaded it implies that <a> tag is - automatically allowed. Each plugin is given a set - of predefined ACF rules - that control the editor until - config.allowedContent - is defined manually. -

-

- Let's assume our intention is to restrict the editor to accept (produce) paragraphs - only: no attributes, no styles, no other tags. - With ACF - this is very simple. Basically set - config.allowedContent to 'p': -

-
-var editor = CKEDITOR.replace( textarea_id, {
-	allowedContent: 'p'
-} );
-
-

- Now try to play with allowed content: -

-
-// Trying to insert disallowed tag and attribute.
-editor.setData( '<p style="color: red">Hello <em>world</em>!</p>' );
-alert( editor.getData() );
-
-// Filtered data is returned.
-"<p>Hello world!</p>"
-
-

- What happened? Since config.allowedContent: 'p' is set the editor assumes - that only plain <p> are accepted. Nothing more. This is why - style attribute and <em> tag are gone. The same - filtering would happen if we pasted disallowed HTML into this editor. -

-

- This is just a small sample of what ACF - can do. To know more, please refer to the sample section below and - the official Advanced Content Filter guide. -

-

- You may, of course, want CKEditor to avoid filtering of any kind. - To get rid of ACF, - basically set - config.allowedContent to true like this: -

-
-CKEDITOR.replace( textarea_id, {
-	allowedContent: true
-} );
-
- -

Beyond data flow: Features activation

-

- ACF is far more than - I/O control: the entire - UI of the editor is adjusted to what - filters restrict. For example: if <a> tag is - disallowed - by ACF, - then accordingly link command, toolbar button and link dialog - are also disabled. Editor is smart: it knows which features must be - removed from the interface to match filtering rules. -

-

- CKEditor can be far more specific. If <a> tag is - allowed by filtering rules to be used but it is restricted - to have only one attribute (href) - config.allowedContent = 'a[!href]', then - "Target" tab of the link dialog is automatically disabled as target - attribute isn't included in ACF rules - for <a>. This behaviour applies to dialog fields, context - menus and toolbar buttons. -

- -

Sample configurations

-

- There are several editor instances below that present different - ACF setups. All of them, - except the last inline instance, share the same HTML content to visualize - how different filtering rules affect the same input data. -

-
- -
- -
-

- This editor is using default configuration ("automatic mode"). It means that - - config.allowedContent is defined by loaded plugins. - Each plugin extends filtering rules to make it's own associated content - available for the user. -

-
- - - -
- -
- -
- -
-

- This editor is using a custom configuration for - ACF: -

-
-CKEDITOR.replace( 'editor2', {
-	allowedContent:
-		'h1 h2 h3 p blockquote strong em;' +
-		'a[!href];' +
-		'img(left,right)[!src,alt,width,height];' +
-		'table tr th td caption;' +
-		'span{!font-family};' +'
-		'span{!color};' +
-		'span(!marker);' +
-		'del ins'
-} );
-
-

- The following rules may require additional explanation: -

-
    -
  • - h1 h2 h3 p blockquote strong em - These tags - are accepted by the editor. Any tag attributes will be discarded. -
  • -
  • - a[!href] - href attribute is obligatory - for <a> tag. Tags without this attribute - are disarded. No other attribute will be accepted. -
  • -
  • - img(left,right)[!src,alt,width,height] - src - attribute is obligatory for <img> tag. - alt, width, height - and class attributes are accepted but - class must be either class="left" - or class="right" -
  • -
  • - table tr th td caption - These tags - are accepted by the editor. Any tag attributes will be discarded. -
  • -
  • - span{!font-family}, span{!color}, - span(!marker) - <span> tags - will be accepted if either font-family or - color style is set or class="marker" - is present. -
  • -
  • - del ins - These tags - are accepted by the editor. Any tag attributes will be discarded. -
  • -
-

- Please note that UI of the - editor is different. It's a response to what happened to the filters. - Since text-align isn't allowed, the align toolbar is gone. - The same thing happened to subscript/superscript, strike, underline - (<u>, <sub>, <sup> - are disallowed by - config.allowedContent) and many other buttons. -

-
- - -
- -
- -
- -
-

- This editor is using a custom configuration for - ACF. - Note that filters can be configured as an object literal - as an alternative to a string-based definition. -

-
-CKEDITOR.replace( 'editor3', {
-	allowedContent: {
-		'b i ul ol big small': true,
-		'h1 h2 h3 p blockquote li': {
-			styles: 'text-align'
-		},
-		a: { attributes: '!href,target' },
-		img: {
-			attributes: '!src,alt',
-			styles: 'width,height',
-			classes: 'left,right'
-		}
-	}
-} );
-
-
- - -
- -
- -
- -
-

- This editor is using a custom set of plugins and buttons. -

-
-CKEDITOR.replace( 'editor4', {
-	removePlugins: 'bidi,font,forms,flash,horizontalrule,iframe,justify,table,tabletools,smiley',
-	removeButtons: 'Anchor,Underline,Strike,Subscript,Superscript,Image',
-	format_tags: 'p;h1;h2;h3;pre;address'
-} );
-
-

- As you can see, removing plugins and buttons implies filtering. - Several tags are not allowed in the editor because there's no - plugin/button that is responsible for creating and editing this - kind of content (for example: the image is missing because - of removeButtons: 'Image'). The conclusion is that - ACF works "backwards" - as well: modifying UI - elements is changing allowed content rules. -

-
- - -
- -
- -
- -
-

- This editor is built on editable <h1> element. - ACF takes care of - what can be included in <h1>. Note that there - are no block styles in Styles combo. Also why lists, indentation, - blockquote, div, form and other buttons are missing. -

-

- ACF makes sure that - no disallowed tags will come to <h1> so the final - markup is valid. If the user tried to paste some invalid HTML - into this editor (let's say a list), it would be automatically - converted into plain text. -

-
-

- Apollo 11 was the spaceflight that landed the first humans, Americans Neil Armstrong and Buzz Aldrin, on the Moon on July 20, 1969, at 20:18 UTC. -

-
- - - - + + + + + Data Filtering — CKEditor Sample + + + + + + +

+ CKEditor Samples » Data Filtering and Features Activation +

+
+

+ This sample page demonstrates the idea of Advanced Content Filter + (ACF), a sophisticated + tool that takes control over what kind of data is accepted by the editor and what + kind of output is produced. +

+

When and what is being filtered?

+

+ ACF controls + every single source of data that comes to the editor. + It process both HTML that is inserted manually (i.e. pasted by the user) + and programmatically like: +

+
+editor.setData( '<p>Hello world!</p>' );
+
+

+ ACF discards invalid, + useless HTML tags and attributes so the editor remains "clean" during + runtime. ACF behaviour + can be configured and adjusted for a particular case to prevent the + output HTML (i.e. in CMS systems) from being polluted. + + This kind of filtering is a first, client-side line of defense + against "tag soups", + the tool that precisely restricts which tags, attributes and styles + are allowed (desired). When properly configured, ACF + is an easy and fast way to produce a high-quality, intentionally filtered HTML. +

+ +

How to configure or disable ACF?

+

+ Advanced Content Filter is enabled by default, working in "automatic mode", yet + it provides a set of easy rules that allow adjusting filtering rules + and disabling the entire feature when necessary. The config property + responsible for this feature is config.allowedContent. +

+

+ By "automatic mode" is meant that loaded plugins decide which kind + of content is enabled and which is not. For example, if the link + plugin is loaded it implies that <a> tag is + automatically allowed. Each plugin is given a set + of predefined ACF rules + that control the editor until + config.allowedContent + is defined manually. +

+

+ Let's assume our intention is to restrict the editor to accept (produce) paragraphs + only: no attributes, no styles, no other tags. + With ACF + this is very simple. Basically set + config.allowedContent to 'p': +

+
+var editor = CKEDITOR.replace( textarea_id, {
+	allowedContent: 'p'
+} );
+
+

+ Now try to play with allowed content: +

+
+// Trying to insert disallowed tag and attribute.
+editor.setData( '<p style="color: red">Hello <em>world</em>!</p>' );
+alert( editor.getData() );
+
+// Filtered data is returned.
+"<p>Hello world!</p>"
+
+

+ What happened? Since config.allowedContent: 'p' is set the editor assumes + that only plain <p> are accepted. Nothing more. This is why + style attribute and <em> tag are gone. The same + filtering would happen if we pasted disallowed HTML into this editor. +

+

+ This is just a small sample of what ACF + can do. To know more, please refer to the sample section below and + the official Advanced Content Filter guide. +

+

+ You may, of course, want CKEditor to avoid filtering of any kind. + To get rid of ACF, + basically set + config.allowedContent to true like this: +

+
+CKEDITOR.replace( textarea_id, {
+	allowedContent: true
+} );
+
+ +

Beyond data flow: Features activation

+

+ ACF is far more than + I/O control: the entire + UI of the editor is adjusted to what + filters restrict. For example: if <a> tag is + disallowed + by ACF, + then accordingly link command, toolbar button and link dialog + are also disabled. Editor is smart: it knows which features must be + removed from the interface to match filtering rules. +

+

+ CKEditor can be far more specific. If <a> tag is + allowed by filtering rules to be used but it is restricted + to have only one attribute (href) + config.allowedContent = 'a[!href]', then + "Target" tab of the link dialog is automatically disabled as target + attribute isn't included in ACF rules + for <a>. This behaviour applies to dialog fields, context + menus and toolbar buttons. +

+ +

Sample configurations

+

+ There are several editor instances below that present different + ACF setups. All of them, + except the last inline instance, share the same HTML content to visualize + how different filtering rules affect the same input data. +

+
+ +
+ +
+

+ This editor is using default configuration ("automatic mode"). It means that + + config.allowedContent is defined by loaded plugins. + Each plugin extends filtering rules to make it's own associated content + available for the user. +

+
+ + + +
+ +
+ +
+ +
+

+ This editor is using a custom configuration for + ACF: +

+
+CKEDITOR.replace( 'editor2', {
+	allowedContent:
+		'h1 h2 h3 p blockquote strong em;' +
+		'a[!href];' +
+		'img(left,right)[!src,alt,width,height];' +
+		'table tr th td caption;' +
+		'span{!font-family};' +'
+		'span{!color};' +
+		'span(!marker);' +
+		'del ins'
+} );
+
+

+ The following rules may require additional explanation: +

+
    +
  • + h1 h2 h3 p blockquote strong em - These tags + are accepted by the editor. Any tag attributes will be discarded. +
  • +
  • + a[!href] - href attribute is obligatory + for <a> tag. Tags without this attribute + are disarded. No other attribute will be accepted. +
  • +
  • + img(left,right)[!src,alt,width,height] - src + attribute is obligatory for <img> tag. + alt, width, height + and class attributes are accepted but + class must be either class="left" + or class="right" +
  • +
  • + table tr th td caption - These tags + are accepted by the editor. Any tag attributes will be discarded. +
  • +
  • + span{!font-family}, span{!color}, + span(!marker) - <span> tags + will be accepted if either font-family or + color style is set or class="marker" + is present. +
  • +
  • + del ins - These tags + are accepted by the editor. Any tag attributes will be discarded. +
  • +
+

+ Please note that UI of the + editor is different. It's a response to what happened to the filters. + Since text-align isn't allowed, the align toolbar is gone. + The same thing happened to subscript/superscript, strike, underline + (<u>, <sub>, <sup> + are disallowed by + config.allowedContent) and many other buttons. +

+
+ + +
+ +
+ +
+ +
+

+ This editor is using a custom configuration for + ACF. + Note that filters can be configured as an object literal + as an alternative to a string-based definition. +

+
+CKEDITOR.replace( 'editor3', {
+	allowedContent: {
+		'b i ul ol big small': true,
+		'h1 h2 h3 p blockquote li': {
+			styles: 'text-align'
+		},
+		a: { attributes: '!href,target' },
+		img: {
+			attributes: '!src,alt',
+			styles: 'width,height',
+			classes: 'left,right'
+		}
+	}
+} );
+
+
+ + +
+ +
+ +
+ +
+

+ This editor is using a custom set of plugins and buttons. +

+
+CKEDITOR.replace( 'editor4', {
+	removePlugins: 'bidi,font,forms,flash,horizontalrule,iframe,justify,table,tabletools,smiley',
+	removeButtons: 'Anchor,Underline,Strike,Subscript,Superscript,Image',
+	format_tags: 'p;h1;h2;h3;pre;address'
+} );
+
+

+ As you can see, removing plugins and buttons implies filtering. + Several tags are not allowed in the editor because there's no + plugin/button that is responsible for creating and editing this + kind of content (for example: the image is missing because + of removeButtons: 'Image'). The conclusion is that + ACF works "backwards" + as well: modifying UI + elements is changing allowed content rules. +

+
+ + +
+ +
+ +
+ +
+

+ This editor is built on editable <h1> element. + ACF takes care of + what can be included in <h1>. Note that there + are no block styles in Styles combo. Also why lists, indentation, + blockquote, div, form and other buttons are missing. +

+

+ ACF makes sure that + no disallowed tags will come to <h1> so the final + markup is valid. If the user tried to paste some invalid HTML + into this editor (let's say a list), it would be automatically + converted into plain text. +

+
+

+ Apollo 11 was the spaceflight that landed the first humans, Americans Neil Armstrong and Buzz Aldrin, on the Moon on July 20, 1969, at 20:18 UTC. +

+
+ + + + diff --git a/kasu/static/js/ckeditor/samples/divreplace.html b/src/kasu/static/js/ckeditor/samples/divreplace.html similarity index 96% rename from kasu/static/js/ckeditor/samples/divreplace.html rename to src/kasu/static/js/ckeditor/samples/divreplace.html index ac5f5f8..067e474 100644 --- a/kasu/static/js/ckeditor/samples/divreplace.html +++ b/src/kasu/static/js/ckeditor/samples/divreplace.html @@ -1,141 +1,141 @@ - - - - - Replace DIV — CKEditor Sample - - - - - - - -

- CKEditor Samples » Replace DIV with CKEditor on the Fly -

-
-

- This sample shows how to automatically replace <div> elements - with a CKEditor instance on the fly, following user's doubleclick. The content - that was previously placed inside the <div> element will now - be moved into CKEditor editing area. -

-

- For details on how to create this setup check the source code of this sample page. -

-
-

- Double-click any of the following <div> elements to transform them into - editor instances. -

-
-

- Part 1 -

-

- Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi - semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna - rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla - nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce - eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus. -

-
-
-

- Part 2 -

-

- Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi - semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna - rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla - nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce - eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus. -

-

- Donec velit. Mauris massa. Vestibulum non nulla. Nam suscipit arcu nec elit. Phasellus - sollicitudin iaculis ante. Ut non mauris et sapien tincidunt adipiscing. Vestibulum - vitae leo. Suspendisse nec mi tristique nulla laoreet vulputate. -

-
-
-

- Part 3 -

-

- Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi - semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna - rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla - nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce - eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus. -

-
- - - + + + + + Replace DIV — CKEditor Sample + + + + + + + +

+ CKEditor Samples » Replace DIV with CKEditor on the Fly +

+
+

+ This sample shows how to automatically replace <div> elements + with a CKEditor instance on the fly, following user's doubleclick. The content + that was previously placed inside the <div> element will now + be moved into CKEditor editing area. +

+

+ For details on how to create this setup check the source code of this sample page. +

+
+

+ Double-click any of the following <div> elements to transform them into + editor instances. +

+
+

+ Part 1 +

+

+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi + semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna + rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla + nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce + eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus. +

+
+
+

+ Part 2 +

+

+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi + semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna + rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla + nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce + eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus. +

+

+ Donec velit. Mauris massa. Vestibulum non nulla. Nam suscipit arcu nec elit. Phasellus + sollicitudin iaculis ante. Ut non mauris et sapien tincidunt adipiscing. Vestibulum + vitae leo. Suspendisse nec mi tristique nulla laoreet vulputate. +

+
+
+

+ Part 3 +

+

+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi + semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna + rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla + nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce + eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus. +

+
+ + + diff --git a/kasu/static/js/ckeditor/samples/index.html b/src/kasu/static/js/ckeditor/samples/index.html similarity index 98% rename from kasu/static/js/ckeditor/samples/index.html rename to src/kasu/static/js/ckeditor/samples/index.html index c1402a1..1d5c9e2 100644 --- a/kasu/static/js/ckeditor/samples/index.html +++ b/src/kasu/static/js/ckeditor/samples/index.html @@ -1,43 +1,43 @@ - - - - - CKEditor Samples - - - - -

- CKEditor Samples -

-
-
-

- Basic Samples -

-
-
Replace textarea elements by class name
-
Automatic replacement of all textarea elements of a given class with a CKEditor instance.
- -
Replace textarea elements by code
-
Replacement of textarea elements with CKEditor instances by using a JavaScript call.
-
- -

- Basic Customization -

-
-
User Interface color
-
Changing CKEditor User Interface color and adding a toolbar button that lets the user set the UI color.
- -
User Interface languages
-
Changing CKEditor User Interface language and adding a drop-down list that lets the user choose the UI language.
-
- - + + + + + CKEditor Samples + + + + +

+ CKEditor Samples +

+
+
+

+ Basic Samples +

+
+
Replace textarea elements by class name
+
Automatic replacement of all textarea elements of a given class with a CKEditor instance.
+ +
Replace textarea elements by code
+
Replacement of textarea elements with CKEditor instances by using a JavaScript call.
+
+ +

+ Basic Customization +

+
+
User Interface color
+
Changing CKEditor User Interface color and adding a toolbar button that lets the user set the UI color.
+ +
User Interface languages
+
Changing CKEditor User Interface language and adding a drop-down list that lets the user choose the UI language.
+
+ +

Plugins

AutoGrow plugin
@@ -48,51 +48,51 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
Full page support
CKEditor inserted with a JavaScript call and used to edit the whole page from <html> to </html>.
-
-
-
-

- Inline Editing New! -

-
-
Massive inline editor creation New!
-
Turn all elements with contentEditable = true attribute into inline editors.
- -
Convert element into an inline editor by code New!
-
Conversion of DOM elements into inline CKEditor instances by using a JavaScript call.
- - -
- -

- Advanced Samples -

-
-
Data filtering and features activation New!
-
Data filtering and automatic features activation basing on configuration.
- -
Replace DIV elements on the fly
-
Transforming a div element into an instance of CKEditor with a mouse click.
- -
Append editor instances
-
Appending editor instances to existing DOM elements.
- -
Create and destroy editor instances for Ajax applications
-
Creating and destroying CKEditor instances on the fly and saving the contents entered into the editor window.
- -
Basic usage of the API
-
Using the CKEditor JavaScript API to interact with the editor at runtime.
- -
XHTML-compliant style
-
Configuring CKEditor to produce XHTML 1.1 compliant attributes and styles.
- -
Read-only mode
-
Using the readOnly API to block introducing changes to the editor contents.
- -
"Tab" key-based navigation New!
-
Navigating among editor instances with tab key.
- - +
+
+
+

+ Inline Editing New! +

+
+
Massive inline editor creation New!
+
Turn all elements with contentEditable = true attribute into inline editors.
+ +
Convert element into an inline editor by code New!
+
Conversion of DOM elements into inline CKEditor instances by using a JavaScript call.
+ + +
+ +

+ Advanced Samples +

+
+
Data filtering and features activation New!
+
Data filtering and automatic features activation basing on configuration.
+ +
Replace DIV elements on the fly
+
Transforming a div element into an instance of CKEditor with a mouse click.
+ +
Append editor instances
+
Appending editor instances to existing DOM elements.
+ +
Create and destroy editor instances for Ajax applications
+
Creating and destroying CKEditor instances on the fly and saving the contents entered into the editor window.
+ +
Basic usage of the API
+
Using the CKEditor JavaScript API to interact with the editor at runtime.
+ +
XHTML-compliant style
+
Configuring CKEditor to produce XHTML 1.1 compliant attributes and styles.
+ +
Read-only mode
+
Using the readOnly API to block introducing changes to the editor contents.
+ +
"Tab" key-based navigation New!
+
Navigating among editor instances with tab key.
+ +
Using the JavaScript API to customize dialog windows
Using the dialog windows API to customize dialog windows without changing the original editor code.
@@ -108,18 +108,18 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
Toolbar ConfigurationsNew!
Configuring CKEditor to display full or custom toolbar layout.
- -
-
-
- - - + + +
+
+ + + diff --git a/kasu/static/js/ckeditor/samples/inlineall.html b/src/kasu/static/js/ckeditor/samples/inlineall.html similarity index 96% rename from kasu/static/js/ckeditor/samples/inlineall.html rename to src/kasu/static/js/ckeditor/samples/inlineall.html index 2a76b56..013602e 100644 --- a/kasu/static/js/ckeditor/samples/inlineall.html +++ b/src/kasu/static/js/ckeditor/samples/inlineall.html @@ -1,311 +1,311 @@ - - - - - Massive inline editing — CKEditor Sample - - - - - - - -
-

CKEditor Samples » Massive inline editing

-
-

This sample page demonstrates the inline editing feature - CKEditor instances will be created automatically from page elements with contentEditable attribute set to value true:

-
<div contenteditable="true" > ... </div>
-

Click inside of any element below to start editing.

-
-
-
- -
-
-
-

- Fusce vitae porttitor -

-

- - Lorem ipsum dolor sit amet dolor. Duis blandit vestibulum faucibus a, tortor. - -

-

- Proin nunc justo felis mollis tincidunt, risus risus pede, posuere cubilia Curae, Nullam euismod, enim. Etiam nibh ultricies dolor ac dignissim erat volutpat. Vivamus fermentum nisl nulla sem in metus. Maecenas wisi. Donec nec erat volutpat. -

-
-

- Fusce vitae porttitor a, euismod convallis nisl, blandit risus tortor, pretium. - Vehicula vitae, imperdiet vel, ornare enim vel sodales rutrum -

-
-
-

- Libero nunc, rhoncus ante ipsum non ipsum. Nunc eleifend pede turpis id sollicitudin fringilla. Phasellus ultrices, velit ac arcu. -

-
-

Pellentesque nunc. Donec suscipit erat. Pellentesque habitant morbi tristique ullamcorper.

-

Mauris mattis feugiat lectus nec mauris. Nullam vitae ante.

-
-
-
-
-

- Integer condimentum sit amet -

-

- Aenean nonummy a, mattis varius. Cras aliquet. - Praesent magna non mattis ac, rhoncus nunc, rhoncus eget, cursus pulvinar mollis.

-

Proin id nibh. Sed eu libero posuere sed, lectus. Phasellus dui gravida gravida feugiat mattis ac, felis.

-

Integer condimentum sit amet, tempor elit odio, a dolor non ante at sapien. Sed ac lectus. Nulla ligula quis eleifend mi, id leo velit pede cursus arcu id nulla ac lectus. Phasellus vestibulum. Nunc viverra enim quis diam.

-
-
-

- Praesent wisi accumsan sit amet nibh -

-

Donec ullamcorper, risus tortor, pretium porttitor. Morbi quam quis lectus non leo.

-

Integer faucibus scelerisque. Proin faucibus at, aliquet vulputate, odio at eros. Fusce gravida, erat vitae augue. Fusce urna fringilla gravida.

-

In hac habitasse platea dictumst. Praesent wisi accumsan sit amet nibh. Maecenas orci luctus a, lacinia quam sem, posuere commodo, odio condimentum tempor, pede semper risus. Suspendisse pede. In hac habitasse platea dictumst. Nam sed laoreet sit amet erat. Integer.

-
-
-
-
-

- CKEditor logo -

-

Quisque justo neque, mattis sed, fermentum ultrices posuere cubilia Curae, Vestibulum elit metus, quis placerat ut, lectus. Ut sagittis, nunc libero, egestas consequat lobortis velit rutrum ut, faucibus turpis. Fusce porttitor, nulla quis turpis. Nullam laoreet vel, consectetuer tellus suscipit ultricies, hendrerit wisi. Donec odio nec velit ac nunc sit amet, accumsan cursus aliquet. Vestibulum ante sit amet sagittis mi.

-

- Nullam laoreet vel consectetuer tellus suscipit -

-
    -
  • Ut sagittis, nunc libero, egestas consequat lobortis velit rutrum ut, faucibus turpis.
  • -
  • Fusce porttitor, nulla quis turpis. Nullam laoreet vel, consectetuer tellus suscipit ultricies, hendrerit wisi.
  • -
  • Mauris eget tellus. Donec non felis. Nam eget dolor. Vestibulum enim. Donec.
  • -
-

Quisque justo neque, mattis sed, fermentum ultrices posuere cubilia Curae, Vestibulum elit metus, quis placerat ut, lectus.

-

Nullam laoreet vel, consectetuer tellus suscipit ultricies, hendrerit wisi. Ut sagittis, nunc libero, egestas consequat lobortis velit rutrum ut, faucibus turpis. Fusce porttitor, nulla quis turpis.

-

Donec odio nec velit ac nunc sit amet, accumsan cursus aliquet. Vestibulum ante sit amet sagittis mi. Sed in nonummy faucibus turpis. Mauris eget tellus. Donec non felis. Nam eget dolor. Vestibulum enim. Donec.

-
-
-
-
- Tags of this article: -

- inline, editing, floating, CKEditor -

-
-
- - - + + + + + Massive inline editing — CKEditor Sample + + + + + + + +
+

CKEditor Samples » Massive inline editing

+
+

This sample page demonstrates the inline editing feature - CKEditor instances will be created automatically from page elements with contentEditable attribute set to value true:

+
<div contenteditable="true" > ... </div>
+

Click inside of any element below to start editing.

+
+
+
+ +
+
+
+

+ Fusce vitae porttitor +

+

+ + Lorem ipsum dolor sit amet dolor. Duis blandit vestibulum faucibus a, tortor. + +

+

+ Proin nunc justo felis mollis tincidunt, risus risus pede, posuere cubilia Curae, Nullam euismod, enim. Etiam nibh ultricies dolor ac dignissim erat volutpat. Vivamus fermentum nisl nulla sem in metus. Maecenas wisi. Donec nec erat volutpat. +

+
+

+ Fusce vitae porttitor a, euismod convallis nisl, blandit risus tortor, pretium. + Vehicula vitae, imperdiet vel, ornare enim vel sodales rutrum +

+
+
+

+ Libero nunc, rhoncus ante ipsum non ipsum. Nunc eleifend pede turpis id sollicitudin fringilla. Phasellus ultrices, velit ac arcu. +

+
+

Pellentesque nunc. Donec suscipit erat. Pellentesque habitant morbi tristique ullamcorper.

+

Mauris mattis feugiat lectus nec mauris. Nullam vitae ante.

+
+
+
+
+

+ Integer condimentum sit amet +

+

+ Aenean nonummy a, mattis varius. Cras aliquet. + Praesent magna non mattis ac, rhoncus nunc, rhoncus eget, cursus pulvinar mollis.

+

Proin id nibh. Sed eu libero posuere sed, lectus. Phasellus dui gravida gravida feugiat mattis ac, felis.

+

Integer condimentum sit amet, tempor elit odio, a dolor non ante at sapien. Sed ac lectus. Nulla ligula quis eleifend mi, id leo velit pede cursus arcu id nulla ac lectus. Phasellus vestibulum. Nunc viverra enim quis diam.

+
+
+

+ Praesent wisi accumsan sit amet nibh +

+

Donec ullamcorper, risus tortor, pretium porttitor. Morbi quam quis lectus non leo.

+

Integer faucibus scelerisque. Proin faucibus at, aliquet vulputate, odio at eros. Fusce gravida, erat vitae augue. Fusce urna fringilla gravida.

+

In hac habitasse platea dictumst. Praesent wisi accumsan sit amet nibh. Maecenas orci luctus a, lacinia quam sem, posuere commodo, odio condimentum tempor, pede semper risus. Suspendisse pede. In hac habitasse platea dictumst. Nam sed laoreet sit amet erat. Integer.

+
+
+
+
+

+ CKEditor logo +

+

Quisque justo neque, mattis sed, fermentum ultrices posuere cubilia Curae, Vestibulum elit metus, quis placerat ut, lectus. Ut sagittis, nunc libero, egestas consequat lobortis velit rutrum ut, faucibus turpis. Fusce porttitor, nulla quis turpis. Nullam laoreet vel, consectetuer tellus suscipit ultricies, hendrerit wisi. Donec odio nec velit ac nunc sit amet, accumsan cursus aliquet. Vestibulum ante sit amet sagittis mi.

+

+ Nullam laoreet vel consectetuer tellus suscipit +

+
    +
  • Ut sagittis, nunc libero, egestas consequat lobortis velit rutrum ut, faucibus turpis.
  • +
  • Fusce porttitor, nulla quis turpis. Nullam laoreet vel, consectetuer tellus suscipit ultricies, hendrerit wisi.
  • +
  • Mauris eget tellus. Donec non felis. Nam eget dolor. Vestibulum enim. Donec.
  • +
+

Quisque justo neque, mattis sed, fermentum ultrices posuere cubilia Curae, Vestibulum elit metus, quis placerat ut, lectus.

+

Nullam laoreet vel, consectetuer tellus suscipit ultricies, hendrerit wisi. Ut sagittis, nunc libero, egestas consequat lobortis velit rutrum ut, faucibus turpis. Fusce porttitor, nulla quis turpis.

+

Donec odio nec velit ac nunc sit amet, accumsan cursus aliquet. Vestibulum ante sit amet sagittis mi. Sed in nonummy faucibus turpis. Mauris eget tellus. Donec non felis. Nam eget dolor. Vestibulum enim. Donec.

+
+
+
+
+ Tags of this article: +

+ inline, editing, floating, CKEditor +

+
+
+ + + diff --git a/kasu/static/js/ckeditor/samples/inlinebycode.html b/src/kasu/static/js/ckeditor/samples/inlinebycode.html similarity index 97% rename from kasu/static/js/ckeditor/samples/inlinebycode.html rename to src/kasu/static/js/ckeditor/samples/inlinebycode.html index e224c68..313972e 100644 --- a/kasu/static/js/ckeditor/samples/inlinebycode.html +++ b/src/kasu/static/js/ckeditor/samples/inlinebycode.html @@ -1,122 +1,122 @@ - - - - - Inline Editing by Code — CKEditor Sample - - - - - - -

- CKEditor Samples » Inline Editing by Code -

-
-

- This sample shows how to create an inline editor instance of CKEditor. It is created - with a JavaScript call using the following code: -

-
-// This property tells CKEditor to not activate every element with contenteditable=true element.
-CKEDITOR.disableAutoInline = true;
-
-var editor = CKEDITOR.inline( document.getElementById( 'editable' ) );
-
-

- Note that editable in the code above is the id - attribute of the <div> element to be converted into an inline instance. -

-
-
-

Saturn V carrying Apollo 11 Apollo 11

- -

Apollo 11 was the spaceflight that landed the first humans, Americans Neil Armstrong and Buzz Aldrin, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.

- -

Armstrong spent about three and a half two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5 kg) of lunar material for return to Earth. A third member of the mission, Michael Collins, piloted the command spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.

- -

Broadcasting and quotes

- -

Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:

- -
-

One small step for [a] man, one giant leap for mankind.

-
- -

Apollo 11 effectively ended the Space Race and fulfilled a national goal proposed in 1961 by the late U.S. President John F. Kennedy in a speech before the United States Congress:

- -
-

[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.

-
- -

Technical details

- - - - - - - - - - - - - - - - - - - - - - - -
Mission crew
PositionAstronaut
CommanderNeil A. Armstrong
Command Module PilotMichael Collins
Lunar Module PilotEdwin "Buzz" E. Aldrin, Jr.
- -

Launched by a Saturn V rocket from Kennedy Space Center in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of NASA's Apollo program. The Apollo spacecraft had three parts:

- -
    -
  1. Command Module with a cabin for the three astronauts which was the only part which landed back on Earth
  2. -
  3. Service Module which supported the Command Module with propulsion, electrical power, oxygen and water
  4. -
  5. Lunar Module for landing on the Moon.
  6. -
- -

After being sent to the Moon by the Saturn V's upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the Sea of Tranquility. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the Pacific Ocean on July 24.

- -
-

Source: Wikipedia.org

-
- - - - + + + + + Inline Editing by Code — CKEditor Sample + + + + + + +

+ CKEditor Samples » Inline Editing by Code +

+
+

+ This sample shows how to create an inline editor instance of CKEditor. It is created + with a JavaScript call using the following code: +

+
+// This property tells CKEditor to not activate every element with contenteditable=true element.
+CKEDITOR.disableAutoInline = true;
+
+var editor = CKEDITOR.inline( document.getElementById( 'editable' ) );
+
+

+ Note that editable in the code above is the id + attribute of the <div> element to be converted into an inline instance. +

+
+
+

Saturn V carrying Apollo 11 Apollo 11

+ +

Apollo 11 was the spaceflight that landed the first humans, Americans Neil Armstrong and Buzz Aldrin, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.

+ +

Armstrong spent about three and a half two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5 kg) of lunar material for return to Earth. A third member of the mission, Michael Collins, piloted the command spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.

+ +

Broadcasting and quotes

+ +

Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:

+ +
+

One small step for [a] man, one giant leap for mankind.

+
+ +

Apollo 11 effectively ended the Space Race and fulfilled a national goal proposed in 1961 by the late U.S. President John F. Kennedy in a speech before the United States Congress:

+ +
+

[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.

+
+ +

Technical details

+ + + + + + + + + + + + + + + + + + + + + + + +
Mission crew
PositionAstronaut
CommanderNeil A. Armstrong
Command Module PilotMichael Collins
Lunar Module PilotEdwin "Buzz" E. Aldrin, Jr.
+ +

Launched by a Saturn V rocket from Kennedy Space Center in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of NASA's Apollo program. The Apollo spacecraft had three parts:

+ +
    +
  1. Command Module with a cabin for the three astronauts which was the only part which landed back on Earth
  2. +
  3. Service Module which supported the Command Module with propulsion, electrical power, oxygen and water
  4. +
  5. Lunar Module for landing on the Moon.
  6. +
+ +

After being sent to the Moon by the Saturn V's upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the Sea of Tranquility. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the Pacific Ocean on July 24.

+ +
+

Source: Wikipedia.org

+
+ + + + diff --git a/kasu/static/js/ckeditor/samples/plugins/autogrow/autogrow.html b/src/kasu/static/js/ckeditor/samples/plugins/autogrow/autogrow.html similarity index 97% rename from kasu/static/js/ckeditor/samples/plugins/autogrow/autogrow.html rename to src/kasu/static/js/ckeditor/samples/plugins/autogrow/autogrow.html index a3ed8b9..72cba90 100644 --- a/kasu/static/js/ckeditor/samples/plugins/autogrow/autogrow.html +++ b/src/kasu/static/js/ckeditor/samples/plugins/autogrow/autogrow.html @@ -1,99 +1,99 @@ - - - - - AutoGrow Plugin — CKEditor Sample - - - - - - - - -

- CKEditor Samples » Using AutoGrow Plugin -

-
-

- This sample shows how to configure CKEditor instances to use the - AutoGrow (autogrow) plugin that lets the editor window expand - and shrink depending on the amount and size of content entered in the editing area. -

-

- In its default implementation the AutoGrow feature can expand the - CKEditor window infinitely in order to avoid introducing scrollbars to the editing area. -

-

- It is also possible to set a maximum height for the editor window. Once CKEditor - editing area reaches the value in pixels specified in the - autoGrow_maxHeight - configuration setting, scrollbars will be added and the editor window will no longer expand. -

-

- To add a CKEditor instance using the autogrow plugin and its - autoGrow_maxHeight attribute, insert the following JavaScript call to your code: -

-
-CKEDITOR.replace( 'textarea_id', {
-	extraPlugins: 'autogrow',
-	autoGrow_maxHeight: 800,
-
-	// Remove the Resize plugin as it does not make sense to use it in conjunction with the AutoGrow plugin.
-	removePlugins: 'resize'
-});
-

- Note that textarea_id in the code above is the id attribute of - the <textarea> element to be replaced with CKEditor. The maximum height should - be given in pixels. -

-
-
-

- - - -

-

- - - -

-

- -

-
- - - + + + + + AutoGrow Plugin — CKEditor Sample + + + + + + + + +

+ CKEditor Samples » Using AutoGrow Plugin +

+
+

+ This sample shows how to configure CKEditor instances to use the + AutoGrow (autogrow) plugin that lets the editor window expand + and shrink depending on the amount and size of content entered in the editing area. +

+

+ In its default implementation the AutoGrow feature can expand the + CKEditor window infinitely in order to avoid introducing scrollbars to the editing area. +

+

+ It is also possible to set a maximum height for the editor window. Once CKEditor + editing area reaches the value in pixels specified in the + autoGrow_maxHeight + configuration setting, scrollbars will be added and the editor window will no longer expand. +

+

+ To add a CKEditor instance using the autogrow plugin and its + autoGrow_maxHeight attribute, insert the following JavaScript call to your code: +

+
+CKEDITOR.replace( 'textarea_id', {
+	extraPlugins: 'autogrow',
+	autoGrow_maxHeight: 800,
+
+	// Remove the Resize plugin as it does not make sense to use it in conjunction with the AutoGrow plugin.
+	removePlugins: 'resize'
+});
+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced with CKEditor. The maximum height should + be given in pixels. +

+
+
+

+ + + +

+

+ + + +

+

+ +

+
+ + + diff --git a/kasu/static/js/ckeditor/samples/plugins/dialog/assets/my_dialog.js b/src/kasu/static/js/ckeditor/samples/plugins/dialog/assets/my_dialog.js similarity index 94% rename from kasu/static/js/ckeditor/samples/plugins/dialog/assets/my_dialog.js rename to src/kasu/static/js/ckeditor/samples/plugins/dialog/assets/my_dialog.js index b80cac9..e93c2ca 100644 --- a/kasu/static/js/ckeditor/samples/plugins/dialog/assets/my_dialog.js +++ b/src/kasu/static/js/ckeditor/samples/plugins/dialog/assets/my_dialog.js @@ -1,48 +1,48 @@ -/** - * Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.html or http://ckeditor.com/license - */ - -CKEDITOR.dialog.add( 'myDialog', function( editor ) { - return { - title: 'My Dialog', - minWidth: 400, - minHeight: 200, - contents: [ - { - id: 'tab1', - label: 'First Tab', - title: 'First Tab', - elements: [ - { - id: 'input1', - type: 'text', - label: 'Text Field' - }, - { - id: 'select1', - type: 'select', - label: 'Select Field', - items: [ - [ 'option1', 'value1' ], - [ 'option2', 'value2' ] - ] - } - ] - }, - { - id: 'tab2', - label: 'Second Tab', - title: 'Second Tab', - elements: [ - { - id: 'button1', - type: 'button', - label: 'Button Field' - } - ] - } - ] - }; -}); - +/** + * Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.html or http://ckeditor.com/license + */ + +CKEDITOR.dialog.add( 'myDialog', function( editor ) { + return { + title: 'My Dialog', + minWidth: 400, + minHeight: 200, + contents: [ + { + id: 'tab1', + label: 'First Tab', + title: 'First Tab', + elements: [ + { + id: 'input1', + type: 'text', + label: 'Text Field' + }, + { + id: 'select1', + type: 'select', + label: 'Select Field', + items: [ + [ 'option1', 'value1' ], + [ 'option2', 'value2' ] + ] + } + ] + }, + { + id: 'tab2', + label: 'Second Tab', + title: 'Second Tab', + elements: [ + { + id: 'button1', + type: 'button', + label: 'Button Field' + } + ] + } + ] + }; +}); + diff --git a/kasu/static/js/ckeditor/samples/plugins/dialog/dialog.html b/src/kasu/static/js/ckeditor/samples/plugins/dialog/dialog.html similarity index 97% rename from kasu/static/js/ckeditor/samples/plugins/dialog/dialog.html rename to src/kasu/static/js/ckeditor/samples/plugins/dialog/dialog.html index 0027684..a73b6eb 100644 --- a/kasu/static/js/ckeditor/samples/plugins/dialog/dialog.html +++ b/src/kasu/static/js/ckeditor/samples/plugins/dialog/dialog.html @@ -1,187 +1,187 @@ - - - - - Using API to Customize Dialog Windows — CKEditor Sample - - - - - - - - - - -

- CKEditor Samples » Using CKEditor Dialog API -

-
-

- This sample shows how to use the - CKEditor Dialog API - to customize CKEditor dialog windows without changing the original editor code. - The following customizations are being done in the example below: -

-

- For details on how to create this setup check the source code of this sample page. -

-
-

A custom dialog is added to the editors using the pluginsLoaded event, from an external dialog definition file:

-
    -
  1. Creating a custom dialog window – "My Dialog" dialog window opened with the "My Dialog" toolbar button.
  2. -
  3. Creating a custom button – Add button to open the dialog with "My Dialog" toolbar button.
  4. -
- - -

The below editor modify the dialog definition of the above added dialog using the dialogDefinition event:

-
    -
  1. Adding dialog tab – Add new tab "My Tab" to dialog window.
  2. -
  3. Removing a dialog window tab – Remove "Second Tab" page from the dialog window.
  4. -
  5. Adding dialog window fields – Add "My Custom Field" to the dialog window.
  6. -
  7. Removing dialog window field – Remove "Select Field" selection field from the dialog window.
  8. -
  9. Setting default values for dialog window fields – Set default value of "Text Field" text field.
  10. -
  11. Setup initial focus for dialog window – Put initial focus on "My Custom Field" text field.
  12. -
- - - - - + + + + + Using API to Customize Dialog Windows — CKEditor Sample + + + + + + + + + + +

+ CKEditor Samples » Using CKEditor Dialog API +

+
+

+ This sample shows how to use the + CKEditor Dialog API + to customize CKEditor dialog windows without changing the original editor code. + The following customizations are being done in the example below: +

+

+ For details on how to create this setup check the source code of this sample page. +

+
+

A custom dialog is added to the editors using the pluginsLoaded event, from an external dialog definition file:

+
    +
  1. Creating a custom dialog window – "My Dialog" dialog window opened with the "My Dialog" toolbar button.
  2. +
  3. Creating a custom button – Add button to open the dialog with "My Dialog" toolbar button.
  4. +
+ + +

The below editor modify the dialog definition of the above added dialog using the dialogDefinition event:

+
    +
  1. Adding dialog tab – Add new tab "My Tab" to dialog window.
  2. +
  3. Removing a dialog window tab – Remove "Second Tab" page from the dialog window.
  4. +
  5. Adding dialog window fields – Add "My Custom Field" to the dialog window.
  6. +
  7. Removing dialog window field – Remove "Select Field" selection field from the dialog window.
  8. +
  9. Setting default values for dialog window fields – Set default value of "Text Field" text field.
  10. +
  11. Setup initial focus for dialog window – Put initial focus on "My Custom Field" text field.
  12. +
+ + + + + diff --git a/kasu/static/js/ckeditor/samples/plugins/enterkey/enterkey.html b/src/kasu/static/js/ckeditor/samples/plugins/enterkey/enterkey.html similarity index 97% rename from kasu/static/js/ckeditor/samples/plugins/enterkey/enterkey.html rename to src/kasu/static/js/ckeditor/samples/plugins/enterkey/enterkey.html index c2b19b5..fa1191e 100644 --- a/kasu/static/js/ckeditor/samples/plugins/enterkey/enterkey.html +++ b/src/kasu/static/js/ckeditor/samples/plugins/enterkey/enterkey.html @@ -1,103 +1,103 @@ - - - - - ENTER Key Configuration — CKEditor Sample - - - - - - - - - -

- CKEditor Samples » ENTER Key Configuration -

-
-

- This sample shows how to configure the Enter and Shift+Enter keys - to perform actions specified in the - enterMode - and shiftEnterMode - parameters, respectively. - You can choose from the following options: -

-
    -
  • ENTER_P – new <p> paragraphs are created;
  • -
  • ENTER_BR – lines are broken with <br> elements;
  • -
  • ENTER_DIV – new <div> blocks are created.
  • -
-

- The sample code below shows how to configure CKEditor to create a <div> block when Enter key is pressed. -

-
-CKEDITOR.replace( 'textarea_id', {
-	enterMode: CKEDITOR.ENTER_DIV
-});
-

- Note that textarea_id in the code above is the id attribute of - the <textarea> element to be replaced. -

-
-
- When Enter is pressed:
- -
-
- When Shift+Enter is pressed:
- -
-
-
-

-
- -

-

- -

-
- - - + + + + + ENTER Key Configuration — CKEditor Sample + + + + + + + + + +

+ CKEditor Samples » ENTER Key Configuration +

+
+

+ This sample shows how to configure the Enter and Shift+Enter keys + to perform actions specified in the + enterMode + and shiftEnterMode + parameters, respectively. + You can choose from the following options: +

+
    +
  • ENTER_P – new <p> paragraphs are created;
  • +
  • ENTER_BR – lines are broken with <br> elements;
  • +
  • ENTER_DIV – new <div> blocks are created.
  • +
+

+ The sample code below shows how to configure CKEditor to create a <div> block when Enter key is pressed. +

+
+CKEDITOR.replace( 'textarea_id', {
+	enterMode: CKEDITOR.ENTER_DIV
+});
+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced. +

+
+
+ When Enter is pressed:
+ +
+
+ When Shift+Enter is pressed:
+ +
+
+
+

+
+ +

+

+ +

+
+ + + diff --git a/kasu/static/js/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.fla b/src/kasu/static/js/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.fla similarity index 100% rename from kasu/static/js/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.fla rename to src/kasu/static/js/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.fla diff --git a/kasu/static/js/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.swf b/src/kasu/static/js/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.swf similarity index 100% rename from kasu/static/js/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.swf rename to src/kasu/static/js/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.swf diff --git a/kasu/static/js/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/swfobject.js b/src/kasu/static/js/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/swfobject.js similarity index 100% rename from kasu/static/js/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/swfobject.js rename to src/kasu/static/js/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/swfobject.js diff --git a/kasu/static/js/ckeditor/samples/plugins/htmlwriter/outputforflash.html b/src/kasu/static/js/ckeditor/samples/plugins/htmlwriter/outputforflash.html similarity index 97% rename from kasu/static/js/ckeditor/samples/plugins/htmlwriter/outputforflash.html rename to src/kasu/static/js/ckeditor/samples/plugins/htmlwriter/outputforflash.html index 987700f..e1b6913 100644 --- a/kasu/static/js/ckeditor/samples/plugins/htmlwriter/outputforflash.html +++ b/src/kasu/static/js/ckeditor/samples/plugins/htmlwriter/outputforflash.html @@ -1,280 +1,280 @@ - - - - - Output for Flash — CKEditor Sample - - - - - - - - - - - - -

- CKEditor Samples » Producing Flash Compliant HTML Output -

-
-

- This sample shows how to configure CKEditor to output - HTML code that can be used with - - Adobe Flash. - The code will contain a subset of standard HTML elements like <b>, - <i>, and <p> as well as HTML attributes. -

-

- To add a CKEditor instance outputting Flash compliant HTML code, load the editor using a standard - JavaScript call, and define CKEditor features to use HTML elements and attributes. -

-

- For details on how to create this setup check the source code of this sample page. -

-
-

- To see how it works, create some content in the editing area of CKEditor on the left - and send it to the Flash object on the right side of the page by using the - Send to Flash button. -

- - - - - -
- - -

- -

-
-
-
- - - + + + + + Output for Flash — CKEditor Sample + + + + + + + + + + + + +

+ CKEditor Samples » Producing Flash Compliant HTML Output +

+
+

+ This sample shows how to configure CKEditor to output + HTML code that can be used with + + Adobe Flash. + The code will contain a subset of standard HTML elements like <b>, + <i>, and <p> as well as HTML attributes. +

+

+ To add a CKEditor instance outputting Flash compliant HTML code, load the editor using a standard + JavaScript call, and define CKEditor features to use HTML elements and attributes. +

+

+ For details on how to create this setup check the source code of this sample page. +

+
+

+ To see how it works, create some content in the editing area of CKEditor on the left + and send it to the Flash object on the right side of the page by using the + Send to Flash button. +

+ + + + + +
+ + +

+ +

+
+
+
+ + + diff --git a/kasu/static/js/ckeditor/samples/plugins/htmlwriter/outputhtml.html b/src/kasu/static/js/ckeditor/samples/plugins/htmlwriter/outputhtml.html similarity index 96% rename from kasu/static/js/ckeditor/samples/plugins/htmlwriter/outputhtml.html rename to src/kasu/static/js/ckeditor/samples/plugins/htmlwriter/outputhtml.html index 1dddd0d..3880c64 100644 --- a/kasu/static/js/ckeditor/samples/plugins/htmlwriter/outputhtml.html +++ b/src/kasu/static/js/ckeditor/samples/plugins/htmlwriter/outputhtml.html @@ -1,237 +1,237 @@ - - - - - HTML Compliant Output — CKEditor Sample - - - - - - - - - - -

- CKEditor Samples » Producing HTML Compliant Output -

-
-

- This sample shows how to configure CKEditor to output valid - HTML 4.01 code. - Traditional HTML elements like <b>, - <i>, and <font> are used in place of - <strong>, <em>, and CSS styles. -

-

- To add a CKEditor instance outputting legacy HTML 4.01 code, load the editor using a standard - JavaScript call, and define CKEditor features to use the HTML compliant elements and attributes. -

-

- A snippet of the configuration code can be seen below; check the source of this page for - full definition: -

-
-CKEDITOR.replace( 'textarea_id', {
-	coreStyles_bold: { element: 'b' },
-	coreStyles_italic: { element: 'i' },
-
-	fontSize_style: {
-		element: 'font',
-		attributes: { 'size': '#(size)' }
-	}
-
-	...
-});
-
-
-

- - - -

-

- -

-
- - - + + + + + HTML Compliant Output — CKEditor Sample + + + + + + + + + + +

+ CKEditor Samples » Producing HTML Compliant Output +

+
+

+ This sample shows how to configure CKEditor to output valid + HTML 4.01 code. + Traditional HTML elements like <b>, + <i>, and <font> are used in place of + <strong>, <em>, and CSS styles. +

+

+ To add a CKEditor instance outputting legacy HTML 4.01 code, load the editor using a standard + JavaScript call, and define CKEditor features to use the HTML compliant elements and attributes. +

+

+ A snippet of the configuration code can be seen below; check the source of this page for + full definition: +

+
+CKEDITOR.replace( 'textarea_id', {
+	coreStyles_bold: { element: 'b' },
+	coreStyles_italic: { element: 'i' },
+
+	fontSize_style: {
+		element: 'font',
+		attributes: { 'size': '#(size)' }
+	}
+
+	...
+});
+
+
+

+ + + +

+

+ +

+
+ + + diff --git a/kasu/static/js/ckeditor/samples/plugins/magicline/magicline.html b/src/kasu/static/js/ckeditor/samples/plugins/magicline/magicline.html similarity index 97% rename from kasu/static/js/ckeditor/samples/plugins/magicline/magicline.html rename to src/kasu/static/js/ckeditor/samples/plugins/magicline/magicline.html index 2ee60ee..2815fee 100644 --- a/kasu/static/js/ckeditor/samples/plugins/magicline/magicline.html +++ b/src/kasu/static/js/ckeditor/samples/plugins/magicline/magicline.html @@ -1,207 +1,207 @@ - - - - - Using Magicline plugin — CKEditor Sample - - - - - - - - - -

- CKEditor Samples » Using Magicline plugin -

-
-

- This sample shows the advantages of Magicline plugin - which is to enhance the editing process. Thanks to this plugin, - a number of difficult focus spaces which are inaccessible due to - browser issues can now be focused. -

-

- Magicline plugin shows a red line with a handler - which, when clicked, inserts a paragraph and allows typing. To see this, - focus an editor and move your mouse above the focus space you want - to access. The plugin is enabled by default so no additional - configuration is necessary. -

-
-
- -
-

- This editor uses a default Magicline setup. -

-
- - -
-
-
- -
-

- This editor is using a blue line. -

-
-CKEDITOR.replace( 'editor2', {
-	magicline_color: 'blue'
-});
-
- - -
- - - + + + + + Using Magicline plugin — CKEditor Sample + + + + + + + + + +

+ CKEditor Samples » Using Magicline plugin +

+
+

+ This sample shows the advantages of Magicline plugin + which is to enhance the editing process. Thanks to this plugin, + a number of difficult focus spaces which are inaccessible due to + browser issues can now be focused. +

+

+ Magicline plugin shows a red line with a handler + which, when clicked, inserts a paragraph and allows typing. To see this, + focus an editor and move your mouse above the focus space you want + to access. The plugin is enabled by default so no additional + configuration is necessary. +

+
+
+ +
+

+ This editor uses a default Magicline setup. +

+
+ + +
+
+
+ +
+

+ This editor is using a blue line. +

+
+CKEDITOR.replace( 'editor2', {
+	magicline_color: 'blue'
+});
+
+ + +
+ + + diff --git a/kasu/static/js/ckeditor/samples/plugins/toolbar/toolbar.html b/src/kasu/static/js/ckeditor/samples/plugins/toolbar/toolbar.html similarity index 97% rename from kasu/static/js/ckeditor/samples/plugins/toolbar/toolbar.html rename to src/kasu/static/js/ckeditor/samples/plugins/toolbar/toolbar.html index b0f7179..0ba1665 100644 --- a/kasu/static/js/ckeditor/samples/plugins/toolbar/toolbar.html +++ b/src/kasu/static/js/ckeditor/samples/plugins/toolbar/toolbar.html @@ -1,232 +1,232 @@ - - - - - Toolbar Configuration — CKEditor Sample - - - - - - - - - -

- CKEditor Samples » Toolbar Configuration -

-
-

- This sample page demonstrates editor with loaded full toolbar (all registered buttons) and, if - current editor's configuration modifies default settings, also editor with modified toolbar. -

- -

Since CKEditor 4 there are two ways to configure toolbar buttons.

- -

By config.toolbar

- -

- You can explicitly define which buttons are displayed in which groups and in which order. - This is the more precise setting, but less flexible. If newly added plugin adds its - own button you'll have to add it manually to your config.toolbar setting as well. -

- -

To add a CKEditor instance with custom toolbar setting, insert the following JavaScript call to your code:

- -
-CKEDITOR.replace( 'textarea_id', {
-	toolbar: [
-		{ name: 'document', items: [ 'Source', '-', 'NewPage', 'Preview', '-', 'Templates' ] },	// Defines toolbar group with name (used to create voice label) and items in 3 subgroups.
-		[ 'Cut', 'Copy', 'Paste', 'PasteText', 'PasteFromWord', '-', 'Undo', 'Redo' ],			// Defines toolbar group without name.
-		'/',																					// Line break - next group will be placed in new line.
-		{ name: 'basicstyles', items: [ 'Bold', 'Italic' ] }
-	]
-});
- -

By config.toolbarGroups

- -

- You can define which groups of buttons (like e.g. basicstyles, clipboard - and forms) are displayed and in which order. Registered buttons are associated - with toolbar groups by toolbar property in their definition. - This setting's advantage is that you don't have to modify toolbar configuration - when adding/removing plugins which register their own buttons. -

- -

To add a CKEditor instance with custom toolbar groups setting, insert the following JavaScript call to your code:

- -
-CKEDITOR.replace( 'textarea_id', {
-	toolbarGroups: [
-		{ name: 'document',	   groups: [ 'mode', 'document' ] },			// Displays document group with its two subgroups.
- 		{ name: 'clipboard',   groups: [ 'clipboard', 'undo' ] },			// Group's name will be used to create voice label.
- 		'/',																// Line break - next group will be placed in new line.
- 		{ name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] },
- 		{ name: 'links' }
-	]
-
-	// NOTE: Remember to leave 'toolbar' property with the default value (null).
-});
-
- - - -
-

Full toolbar configuration

-

Below you can see editor with full toolbar, generated automatically by the editor.

-

- Note: To create editor instance with full toolbar you don't have to set anything. - Just leave toolbar and toolbarGroups with the default, null values. -

- -

-	
- - - - - - + + + + + Toolbar Configuration — CKEditor Sample + + + + + + + + + +

+ CKEditor Samples » Toolbar Configuration +

+
+

+ This sample page demonstrates editor with loaded full toolbar (all registered buttons) and, if + current editor's configuration modifies default settings, also editor with modified toolbar. +

+ +

Since CKEditor 4 there are two ways to configure toolbar buttons.

+ +

By config.toolbar

+ +

+ You can explicitly define which buttons are displayed in which groups and in which order. + This is the more precise setting, but less flexible. If newly added plugin adds its + own button you'll have to add it manually to your config.toolbar setting as well. +

+ +

To add a CKEditor instance with custom toolbar setting, insert the following JavaScript call to your code:

+ +
+CKEDITOR.replace( 'textarea_id', {
+	toolbar: [
+		{ name: 'document', items: [ 'Source', '-', 'NewPage', 'Preview', '-', 'Templates' ] },	// Defines toolbar group with name (used to create voice label) and items in 3 subgroups.
+		[ 'Cut', 'Copy', 'Paste', 'PasteText', 'PasteFromWord', '-', 'Undo', 'Redo' ],			// Defines toolbar group without name.
+		'/',																					// Line break - next group will be placed in new line.
+		{ name: 'basicstyles', items: [ 'Bold', 'Italic' ] }
+	]
+});
+ +

By config.toolbarGroups

+ +

+ You can define which groups of buttons (like e.g. basicstyles, clipboard + and forms) are displayed and in which order. Registered buttons are associated + with toolbar groups by toolbar property in their definition. + This setting's advantage is that you don't have to modify toolbar configuration + when adding/removing plugins which register their own buttons. +

+ +

To add a CKEditor instance with custom toolbar groups setting, insert the following JavaScript call to your code:

+ +
+CKEDITOR.replace( 'textarea_id', {
+	toolbarGroups: [
+		{ name: 'document',	   groups: [ 'mode', 'document' ] },			// Displays document group with its two subgroups.
+ 		{ name: 'clipboard',   groups: [ 'clipboard', 'undo' ] },			// Group's name will be used to create voice label.
+ 		'/',																// Line break - next group will be placed in new line.
+ 		{ name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] },
+ 		{ name: 'links' }
+	]
+
+	// NOTE: Remember to leave 'toolbar' property with the default value (null).
+});
+
+ + + +
+

Full toolbar configuration

+

Below you can see editor with full toolbar, generated automatically by the editor.

+

+ Note: To create editor instance with full toolbar you don't have to set anything. + Just leave toolbar and toolbarGroups with the default, null values. +

+ +

+	
+ + + + + + diff --git a/kasu/static/js/ckeditor/samples/plugins/wysiwygarea/fullpage.html b/src/kasu/static/js/ckeditor/samples/plugins/wysiwygarea/fullpage.html similarity index 99% rename from kasu/static/js/ckeditor/samples/plugins/wysiwygarea/fullpage.html rename to src/kasu/static/js/ckeditor/samples/plugins/wysiwygarea/fullpage.html index a4196ac..c14c37a 100644 --- a/kasu/static/js/ckeditor/samples/plugins/wysiwygarea/fullpage.html +++ b/src/kasu/static/js/ckeditor/samples/plugins/wysiwygarea/fullpage.html @@ -1,77 +1,77 @@ - - - - - Full Page Editing — CKEditor Sample - - - - - - - - - - -

- CKEditor Samples » Full Page Editing -

-
-

- This sample shows how to configure CKEditor to edit entire HTML pages, from the - <html> tag to the </html> tag. -

-

- The CKEditor instance below is inserted with a JavaScript call using the following code: -

-
-CKEDITOR.replace( 'textarea_id', {
-	fullPage: true,
-	allowedContent: true
-});
-
-

- Note that textarea_id in the code above is the id attribute of - the <textarea> element to be replaced. -

-

- The allowedContent in the code above is set to true to disable content filtering. - Setting this option is not obligatory, but in full page mode there is a strong chance that one may want be able to freely enter any HTML content in source mode without any limitations. -

-
-
- - - -

- -

-
- - - + + + + + Full Page Editing — CKEditor Sample + + + + + + + + + + +

+ CKEditor Samples » Full Page Editing +

+
+

+ This sample shows how to configure CKEditor to edit entire HTML pages, from the + <html> tag to the </html> tag. +

+

+ The CKEditor instance below is inserted with a JavaScript call using the following code: +

+
+CKEDITOR.replace( 'textarea_id', {
+	fullPage: true,
+	allowedContent: true
+});
+
+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced. +

+

+ The allowedContent in the code above is set to true to disable content filtering. + Setting this option is not obligatory, but in full page mode there is a strong chance that one may want be able to freely enter any HTML content in source mode without any limitations. +

+
+
+ + + +

+ +

+
+ + + diff --git a/kasu/static/js/ckeditor/samples/readonly.html b/src/kasu/static/js/ckeditor/samples/readonly.html similarity index 97% rename from kasu/static/js/ckeditor/samples/readonly.html rename to src/kasu/static/js/ckeditor/samples/readonly.html index 5fbb60b..377bcc7 100644 --- a/kasu/static/js/ckeditor/samples/readonly.html +++ b/src/kasu/static/js/ckeditor/samples/readonly.html @@ -1,73 +1,73 @@ - - - - - Using the CKEditor Read-Only API — CKEditor Sample - - - - - - -

- CKEditor Samples » Using the CKEditor Read-Only API -

-
-

- This sample shows how to use the - setReadOnly - API to put editor into the read-only state that makes it impossible for users to change the editor contents. -

-

- For details on how to create this setup check the source code of this sample page. -

-
-
-

- -

-

- - -

-
- - - + + + + + Using the CKEditor Read-Only API — CKEditor Sample + + + + + + +

+ CKEditor Samples » Using the CKEditor Read-Only API +

+
+

+ This sample shows how to use the + setReadOnly + API to put editor into the read-only state that makes it impossible for users to change the editor contents. +

+

+ For details on how to create this setup check the source code of this sample page. +

+
+
+

+ +

+

+ + +

+
+ + + diff --git a/kasu/static/js/ckeditor/samples/replacebyclass.html b/src/kasu/static/js/ckeditor/samples/replacebyclass.html similarity index 99% rename from kasu/static/js/ckeditor/samples/replacebyclass.html rename to src/kasu/static/js/ckeditor/samples/replacebyclass.html index a95d261..6978034 100644 --- a/kasu/static/js/ckeditor/samples/replacebyclass.html +++ b/src/kasu/static/js/ckeditor/samples/replacebyclass.html @@ -1,57 +1,57 @@ - - - - - Replace Textareas by Class Name — CKEditor Sample - - - - - -

- CKEditor Samples » Replace Textarea Elements by Class Name -

-
-

- This sample shows how to automatically replace all <textarea> elements - of a given class with a CKEditor instance. -

-

- To replace a <textarea> element, simply assign it the ckeditor - class, as in the code below: -

-
-<textarea class="ckeditor" name="editor1"></textarea>
-
-

- Note that other <textarea> attributes (like id or name) need to be adjusted to your document. -

-
-
-

- - -

-

- -

-
- - - + + + + + Replace Textareas by Class Name — CKEditor Sample + + + + + +

+ CKEditor Samples » Replace Textarea Elements by Class Name +

+
+

+ This sample shows how to automatically replace all <textarea> elements + of a given class with a CKEditor instance. +

+

+ To replace a <textarea> element, simply assign it the ckeditor + class, as in the code below: +

+
+<textarea class="ckeditor" name="editor1"></textarea>
+
+

+ Note that other <textarea> attributes (like id or name) need to be adjusted to your document. +

+
+
+

+ + +

+

+ +

+
+ + + diff --git a/kasu/static/js/ckeditor/samples/replacebycode.html b/src/kasu/static/js/ckeditor/samples/replacebycode.html similarity index 99% rename from kasu/static/js/ckeditor/samples/replacebycode.html rename to src/kasu/static/js/ckeditor/samples/replacebycode.html index d5a01e8..0fd0636 100644 --- a/kasu/static/js/ckeditor/samples/replacebycode.html +++ b/src/kasu/static/js/ckeditor/samples/replacebycode.html @@ -1,56 +1,56 @@ - - - - - Replace Textarea by Code — CKEditor Sample - - - - - -

- CKEditor Samples » Replace Textarea Elements Using JavaScript Code -

-
-
-

- This editor is using an <iframe> element-based editing area, provided by the Wysiwygarea plugin. -

-
-CKEDITOR.replace( 'textarea_id' )
-
-
- - -

- -

-
- - - + + + + + Replace Textarea by Code — CKEditor Sample + + + + + +

+ CKEditor Samples » Replace Textarea Elements Using JavaScript Code +

+
+
+

+ This editor is using an <iframe> element-based editing area, provided by the Wysiwygarea plugin. +

+
+CKEDITOR.replace( 'textarea_id' )
+
+
+ + +

+ +

+
+ + + diff --git a/kasu/static/js/ckeditor/samples/sample.css b/src/kasu/static/js/ckeditor/samples/sample.css similarity index 93% rename from kasu/static/js/ckeditor/samples/sample.css rename to src/kasu/static/js/ckeditor/samples/sample.css index 14a790a..8cb9b76 100644 --- a/kasu/static/js/ckeditor/samples/sample.css +++ b/src/kasu/static/js/ckeditor/samples/sample.css @@ -1,339 +1,339 @@ -/* -Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.html or http://ckeditor.com/license -*/ - -html, body, h1, h2, h3, h4, h5, h6, div, span, blockquote, p, address, form, fieldset, img, ul, ol, dl, dt, dd, li, hr, table, td, th, strong, em, sup, sub, dfn, ins, del, q, cite, var, samp, code, kbd, tt, pre -{ - line-height: 1.5em; -} - -body -{ - padding: 10px 30px; -} - -input, textarea, select, option, optgroup, button, td, th -{ - font-size: 100%; -} - -pre, code, kbd, samp, tt -{ - font-family: monospace,monospace; - font-size: 1em; -} - -body { - width: 960px; - margin: 0 auto; -} - -code -{ - background: #f3f3f3; - border: 1px solid #ddd; - padding: 1px 4px; - - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; -} - -abbr -{ - border-bottom: 1px dotted #555; - cursor: pointer; -} - -.new -{ - background: #FF7E00; - border: 1px solid #DA8028; - color: #fff; - font-size: 10px; - font-weight: bold; - padding: 1px 4px; - text-shadow: 0 1px 0 #C97626; - text-transform: uppercase; - margin: 0 0 0 3px; - - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - - -moz-box-shadow: 0 2px 3px 0 #FFA54E inset; - -webkit-box-shadow: 0 2px 3px 0 #FFA54E inset; - box-shadow: 0 2px 3px 0 #FFA54E inset; -} - -h1.samples -{ - color: #0782C1; - font-size: 200%; - font-weight: normal; - margin: 0; - padding: 0; -} - -h1.samples a -{ - color: #0782C1; - text-decoration: none; - border-bottom: 1px dotted #0782C1; -} - -.samples a:hover -{ - border-bottom: 1px dotted #0782C1; -} - -h2.samples -{ - color: #000000; - font-size: 130%; - margin: 15px 0 0 0; - padding: 0; -} - -p, blockquote, address, form, pre, dl, h1.samples, h2.samples -{ - margin-bottom: 15px; -} - -ul.samples -{ - margin-bottom: 15px; -} - -.clear -{ - clear: both; -} - -fieldset -{ - margin: 0; - padding: 10px; -} - -body, input, textarea -{ - color: #333333; - font-family: Arial, Helvetica, sans-serif; -} - -body -{ - font-size: 75%; -} - -a.samples -{ - color: #189DE1; - text-decoration: none; -} - -form -{ - margin: 0; - padding: 0; -} - -pre.samples -{ - background-color: #F7F7F7; - border: 1px solid #D7D7D7; - overflow: auto; - padding: 0.25em; - white-space: pre-wrap; /* CSS 2.1 */ - word-wrap: break-word; /* IE7 */ - -moz-tab-size: 4; - -o-tab-size: 4; - -webkit-tab-size: 4; - tab-size: 4; -} - -#footer -{ - clear: both; - padding-top: 10px; -} - -#footer hr -{ - margin: 10px 0 15px 0; - height: 1px; - border: solid 1px gray; - border-bottom: none; -} - -#footer p -{ - margin: 0 10px 10px 10px; - float: left; -} - -#footer #copy -{ - float: right; -} - -#outputSample -{ - width: 100%; - table-layout: fixed; -} - -#outputSample thead th -{ - color: #dddddd; - background-color: #999999; - padding: 4px; - white-space: nowrap; -} - -#outputSample tbody th -{ - vertical-align: top; - text-align: left; -} - -#outputSample pre -{ - margin: 0; - padding: 0; -} - -.description -{ - border: 1px dotted #B7B7B7; - margin-bottom: 10px; - padding: 10px 10px 0; - overflow: hidden; -} - -label -{ - display: block; - margin-bottom: 6px; -} - -/** - * CKEditor editables are automatically set with the "cke_editable" class - * plus cke_editable_(inline|themed) depending on the editor type. - */ - -/* Style a bit the inline editables. */ -.cke_editable.cke_editable_inline -{ - cursor: pointer; -} - -/* Once an editable element gets focused, the "cke_focus" class is - added to it, so we can style it differently. */ -.cke_editable.cke_editable_inline.cke_focus -{ - box-shadow: inset 0px 0px 20px 3px #ddd, inset 0 0 1px #000; - outline: none; - background: #eee; - cursor: text; -} - -/* Avoid pre-formatted overflows inline editable. */ -.cke_editable_inline pre -{ - white-space: pre-wrap; - word-wrap: break-word; -} - -/** - * Samples index styles. - */ - -.twoColumns, -.twoColumnsLeft, -.twoColumnsRight -{ - overflow: hidden; -} - -.twoColumnsLeft, -.twoColumnsRight -{ - width: 45%; -} - -.twoColumnsLeft -{ - float: left; -} - -.twoColumnsRight -{ - float: right; -} - -dl.samples -{ - padding: 0 0 0 40px; -} -dl.samples > dt -{ - display: list-item; - list-style-type: disc; - list-style-position: outside; - margin: 0 0 3px; -} -dl.samples > dd -{ - margin: 0 0 3px; -} -.warning -{ - color: #ff0000; - background-color: #FFCCBA; - border: 2px dotted #ff0000; - padding: 15px 10px; - margin: 10px 0; -} - -/* Used on inline samples */ - -blockquote -{ - font-style: italic; - font-family: Georgia, Times, "Times New Roman", serif; - padding: 2px 0; - border-style: solid; - border-color: #ccc; - border-width: 0; -} - -.cke_contents_ltr blockquote -{ - padding-left: 20px; - padding-right: 8px; - border-left-width: 5px; -} - -.cke_contents_rtl blockquote -{ - padding-left: 8px; - padding-right: 20px; - border-right-width: 5px; -} - -img.right { - border: 1px solid #ccc; - float: right; - margin-left: 15px; - padding: 5px; -} - -img.left { - border: 1px solid #ccc; - float: left; - margin-right: 15px; - padding: 5px; -} +/* +Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.html or http://ckeditor.com/license +*/ + +html, body, h1, h2, h3, h4, h5, h6, div, span, blockquote, p, address, form, fieldset, img, ul, ol, dl, dt, dd, li, hr, table, td, th, strong, em, sup, sub, dfn, ins, del, q, cite, var, samp, code, kbd, tt, pre +{ + line-height: 1.5em; +} + +body +{ + padding: 10px 30px; +} + +input, textarea, select, option, optgroup, button, td, th +{ + font-size: 100%; +} + +pre, code, kbd, samp, tt +{ + font-family: monospace,monospace; + font-size: 1em; +} + +body { + width: 960px; + margin: 0 auto; +} + +code +{ + background: #f3f3f3; + border: 1px solid #ddd; + padding: 1px 4px; + + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; +} + +abbr +{ + border-bottom: 1px dotted #555; + cursor: pointer; +} + +.new +{ + background: #FF7E00; + border: 1px solid #DA8028; + color: #fff; + font-size: 10px; + font-weight: bold; + padding: 1px 4px; + text-shadow: 0 1px 0 #C97626; + text-transform: uppercase; + margin: 0 0 0 3px; + + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + + -moz-box-shadow: 0 2px 3px 0 #FFA54E inset; + -webkit-box-shadow: 0 2px 3px 0 #FFA54E inset; + box-shadow: 0 2px 3px 0 #FFA54E inset; +} + +h1.samples +{ + color: #0782C1; + font-size: 200%; + font-weight: normal; + margin: 0; + padding: 0; +} + +h1.samples a +{ + color: #0782C1; + text-decoration: none; + border-bottom: 1px dotted #0782C1; +} + +.samples a:hover +{ + border-bottom: 1px dotted #0782C1; +} + +h2.samples +{ + color: #000000; + font-size: 130%; + margin: 15px 0 0 0; + padding: 0; +} + +p, blockquote, address, form, pre, dl, h1.samples, h2.samples +{ + margin-bottom: 15px; +} + +ul.samples +{ + margin-bottom: 15px; +} + +.clear +{ + clear: both; +} + +fieldset +{ + margin: 0; + padding: 10px; +} + +body, input, textarea +{ + color: #333333; + font-family: Arial, Helvetica, sans-serif; +} + +body +{ + font-size: 75%; +} + +a.samples +{ + color: #189DE1; + text-decoration: none; +} + +form +{ + margin: 0; + padding: 0; +} + +pre.samples +{ + background-color: #F7F7F7; + border: 1px solid #D7D7D7; + overflow: auto; + padding: 0.25em; + white-space: pre-wrap; /* CSS 2.1 */ + word-wrap: break-word; /* IE7 */ + -moz-tab-size: 4; + -o-tab-size: 4; + -webkit-tab-size: 4; + tab-size: 4; +} + +#footer +{ + clear: both; + padding-top: 10px; +} + +#footer hr +{ + margin: 10px 0 15px 0; + height: 1px; + border: solid 1px gray; + border-bottom: none; +} + +#footer p +{ + margin: 0 10px 10px 10px; + float: left; +} + +#footer #copy +{ + float: right; +} + +#outputSample +{ + width: 100%; + table-layout: fixed; +} + +#outputSample thead th +{ + color: #dddddd; + background-color: #999999; + padding: 4px; + white-space: nowrap; +} + +#outputSample tbody th +{ + vertical-align: top; + text-align: left; +} + +#outputSample pre +{ + margin: 0; + padding: 0; +} + +.description +{ + border: 1px dotted #B7B7B7; + margin-bottom: 10px; + padding: 10px 10px 0; + overflow: hidden; +} + +label +{ + display: block; + margin-bottom: 6px; +} + +/** + * CKEditor editables are automatically set with the "cke_editable" class + * plus cke_editable_(inline|themed) depending on the editor type. + */ + +/* Style a bit the inline editables. */ +.cke_editable.cke_editable_inline +{ + cursor: pointer; +} + +/* Once an editable element gets focused, the "cke_focus" class is + added to it, so we can style it differently. */ +.cke_editable.cke_editable_inline.cke_focus +{ + box-shadow: inset 0px 0px 20px 3px #ddd, inset 0 0 1px #000; + outline: none; + background: #eee; + cursor: text; +} + +/* Avoid pre-formatted overflows inline editable. */ +.cke_editable_inline pre +{ + white-space: pre-wrap; + word-wrap: break-word; +} + +/** + * Samples index styles. + */ + +.twoColumns, +.twoColumnsLeft, +.twoColumnsRight +{ + overflow: hidden; +} + +.twoColumnsLeft, +.twoColumnsRight +{ + width: 45%; +} + +.twoColumnsLeft +{ + float: left; +} + +.twoColumnsRight +{ + float: right; +} + +dl.samples +{ + padding: 0 0 0 40px; +} +dl.samples > dt +{ + display: list-item; + list-style-type: disc; + list-style-position: outside; + margin: 0 0 3px; +} +dl.samples > dd +{ + margin: 0 0 3px; +} +.warning +{ + color: #ff0000; + background-color: #FFCCBA; + border: 2px dotted #ff0000; + padding: 15px 10px; + margin: 10px 0; +} + +/* Used on inline samples */ + +blockquote +{ + font-style: italic; + font-family: Georgia, Times, "Times New Roman", serif; + padding: 2px 0; + border-style: solid; + border-color: #ccc; + border-width: 0; +} + +.cke_contents_ltr blockquote +{ + padding-left: 20px; + padding-right: 8px; + border-left-width: 5px; +} + +.cke_contents_rtl blockquote +{ + padding-left: 8px; + padding-right: 20px; + border-right-width: 5px; +} + +img.right { + border: 1px solid #ccc; + float: right; + margin-left: 15px; + padding: 5px; +} + +img.left { + border: 1px solid #ccc; + float: left; + margin-right: 15px; + padding: 5px; +} diff --git a/kasu/static/js/ckeditor/samples/sample.js b/src/kasu/static/js/ckeditor/samples/sample.js similarity index 97% rename from kasu/static/js/ckeditor/samples/sample.js rename to src/kasu/static/js/ckeditor/samples/sample.js index 8827e78..79c7679 100644 --- a/kasu/static/js/ckeditor/samples/sample.js +++ b/src/kasu/static/js/ckeditor/samples/sample.js @@ -1,33 +1,33 @@ -/** - * Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.html or http://ckeditor.com/license - */ - -// Tool scripts for the sample pages. -// This file can be ignored and is not required to make use of CKEditor. - -(function() { - // Check for sample compliance. - CKEDITOR.on( 'instanceReady', function( ev ) { - var editor = ev.editor, - meta = CKEDITOR.document.$.getElementsByName( 'ckeditor-sample-required-plugins' ), - requires = meta.length ? CKEDITOR.dom.element.get( meta[ 0 ] ).getAttribute( 'content' ).split( ',' ) : [], - missing = []; - - if ( requires.length ) { - for ( var i = 0; i < requires.length; i++ ) { - if ( !editor.plugins[ requires[ i ] ] ) - missing.push( '' + requires[ i ] + '' ); - } - - if ( missing.length ) { - var warn = CKEDITOR.dom.element.createFromHtml( - '
' + - 'To fully experience this demo, the ' + missing.join( ', ' ) + ' plugin' + ( missing.length > 1 ? 's are' : ' is' ) + ' required.' + - '
' - ); - warn.insertBefore( editor.container ); - } - } - }); -})(); +/** + * Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.html or http://ckeditor.com/license + */ + +// Tool scripts for the sample pages. +// This file can be ignored and is not required to make use of CKEditor. + +(function() { + // Check for sample compliance. + CKEDITOR.on( 'instanceReady', function( ev ) { + var editor = ev.editor, + meta = CKEDITOR.document.$.getElementsByName( 'ckeditor-sample-required-plugins' ), + requires = meta.length ? CKEDITOR.dom.element.get( meta[ 0 ] ).getAttribute( 'content' ).split( ',' ) : [], + missing = []; + + if ( requires.length ) { + for ( var i = 0; i < requires.length; i++ ) { + if ( !editor.plugins[ requires[ i ] ] ) + missing.push( '' + requires[ i ] + '' ); + } + + if ( missing.length ) { + var warn = CKEDITOR.dom.element.createFromHtml( + '
' + + 'To fully experience this demo, the ' + missing.join( ', ' ) + ' plugin' + ( missing.length > 1 ? 's are' : ' is' ) + ' required.' + + '
' + ); + warn.insertBefore( editor.container ); + } + } + }); +})(); diff --git a/kasu/static/js/ckeditor/samples/sample_posteddata.php b/src/kasu/static/js/ckeditor/samples/sample_posteddata.php similarity index 98% rename from kasu/static/js/ckeditor/samples/sample_posteddata.php rename to src/kasu/static/js/ckeditor/samples/sample_posteddata.php index 59de8be..7d2ff30 100644 --- a/kasu/static/js/ckeditor/samples/sample_posteddata.php +++ b/src/kasu/static/js/ckeditor/samples/sample_posteddata.php @@ -1,16 +1,16 @@ -
-
--------------------------------------------------------------------------------------------
-  CKEditor - Posted Data
-
-  We are sorry, but your Web server does not support the PHP language used in this script.
-
-  Please note that CKEditor can be used with any other server-side language than just PHP.
-  To save the content created with CKEditor you need to read the POST data on the server
-  side and write it to a file or the database.
-
-  Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
-  For licensing, see LICENSE.html or http://ckeditor.com/license
--------------------------------------------------------------------------------------------
-
-
*/ include "assets/posteddata.php"; ?> +
+
+-------------------------------------------------------------------------------------------
+  CKEditor - Posted Data
+
+  We are sorry, but your Web server does not support the PHP language used in this script.
+
+  Please note that CKEditor can be used with any other server-side language than just PHP.
+  To save the content created with CKEditor you need to read the POST data on the server
+  side and write it to a file or the database.
+
+  Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+  For licensing, see LICENSE.html or http://ckeditor.com/license
+-------------------------------------------------------------------------------------------
+
+
*/ include "assets/posteddata.php"; ?> diff --git a/kasu/static/js/ckeditor/samples/tabindex.html b/src/kasu/static/js/ckeditor/samples/tabindex.html similarity index 96% rename from kasu/static/js/ckeditor/samples/tabindex.html rename to src/kasu/static/js/ckeditor/samples/tabindex.html index 24e7d6f..7f51881 100644 --- a/kasu/static/js/ckeditor/samples/tabindex.html +++ b/src/kasu/static/js/ckeditor/samples/tabindex.html @@ -1,75 +1,75 @@ - - - - - TAB Key-Based Navigation — CKEditor Sample - - - - - - - -

- CKEditor Samples » TAB Key-Based Navigation -

-
-

- This sample shows how tab key navigation among editor instances is - affected by the tabIndex attribute from - the original page element. Use TAB key to move between the editors. -

-
-

- -

-
-

- -

-

- -

- - - + + + + + TAB Key-Based Navigation — CKEditor Sample + + + + + + + +

+ CKEditor Samples » TAB Key-Based Navigation +

+
+

+ This sample shows how tab key navigation among editor instances is + affected by the tabIndex attribute from + the original page element. Use TAB key to move between the editors. +

+
+

+ +

+
+

+ +

+

+ +

+ + + diff --git a/kasu/static/js/ckeditor/samples/uicolor.html b/src/kasu/static/js/ckeditor/samples/uicolor.html similarity index 97% rename from kasu/static/js/ckeditor/samples/uicolor.html rename to src/kasu/static/js/ckeditor/samples/uicolor.html index 0e0d2e6..04e197c 100644 --- a/kasu/static/js/ckeditor/samples/uicolor.html +++ b/src/kasu/static/js/ckeditor/samples/uicolor.html @@ -1,69 +1,69 @@ - - - - - UI Color Picker — CKEditor Sample - - - - - -

- CKEditor Samples » UI Color -

-
-

- This sample shows how to automatically replace <textarea> elements - with a CKEditor instance with an option to change the color of its user interface.
- Note:The UI skin color feature depends on the CKEditor skin - compatibility. The Moono and Kama skins are examples of skins that work with it. -

-
-
-

- This editor instance has a UI color value defined in configuration to change the skin color, - To specify the color of the user interface, set the uiColor property: -

-
-CKEDITOR.replace( 'textarea_id', {
-	uiColor: '#14B8C4'
-});
-

- Note that textarea_id in the code above is the id attribute of - the <textarea> element to be replaced. -

-

- - -

-

- -

-
- - - + + + + + UI Color Picker — CKEditor Sample + + + + + +

+ CKEditor Samples » UI Color +

+
+

+ This sample shows how to automatically replace <textarea> elements + with a CKEditor instance with an option to change the color of its user interface.
+ Note:The UI skin color feature depends on the CKEditor skin + compatibility. The Moono and Kama skins are examples of skins that work with it. +

+
+
+

+ This editor instance has a UI color value defined in configuration to change the skin color, + To specify the color of the user interface, set the uiColor property: +

+
+CKEDITOR.replace( 'textarea_id', {
+	uiColor: '#14B8C4'
+});
+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced. +

+

+ + +

+

+ +

+
+ + + diff --git a/kasu/static/js/ckeditor/samples/uilanguages.html b/src/kasu/static/js/ckeditor/samples/uilanguages.html similarity index 97% rename from kasu/static/js/ckeditor/samples/uilanguages.html rename to src/kasu/static/js/ckeditor/samples/uilanguages.html index ea2134c..b6ba2a0 100644 --- a/kasu/static/js/ckeditor/samples/uilanguages.html +++ b/src/kasu/static/js/ckeditor/samples/uilanguages.html @@ -1,119 +1,119 @@ - - - - - User Interface Globalization — CKEditor Sample - - - - - - -

- CKEditor Samples » User Interface Languages -

-
-

- This sample shows how to automatically replace <textarea> elements - with a CKEditor instance with an option to change the language of its user interface. -

-

- It pulls the language list from CKEditor _languages.js file that contains the list of supported languages and creates - a drop-down list that lets the user change the UI language. -

-

- By default, CKEditor automatically localizes the editor to the language of the user. - The UI language can be controlled with two configuration options: - language and - - defaultLanguage. The defaultLanguage setting specifies the - default CKEditor language to be used when a localization suitable for user's settings is not available. -

-

- To specify the user interface language that will be used no matter what language is - specified in user's browser or operating system, set the language property: -

-
-CKEDITOR.replace( 'textarea_id', {
-	// Load the German interface.
-	language: 'de'
-});
-

- Note that textarea_id in the code above is the id attribute of - the <textarea> element to be replaced. -

-
-
-

- Available languages ( languages!):
- -
- - (You may see strange characters if your system does not support the selected language) - -

-

- - -

-
- - - + + + + + User Interface Globalization — CKEditor Sample + + + + + + +

+ CKEditor Samples » User Interface Languages +

+
+

+ This sample shows how to automatically replace <textarea> elements + with a CKEditor instance with an option to change the language of its user interface. +

+

+ It pulls the language list from CKEditor _languages.js file that contains the list of supported languages and creates + a drop-down list that lets the user change the UI language. +

+

+ By default, CKEditor automatically localizes the editor to the language of the user. + The UI language can be controlled with two configuration options: + language and + + defaultLanguage. The defaultLanguage setting specifies the + default CKEditor language to be used when a localization suitable for user's settings is not available. +

+

+ To specify the user interface language that will be used no matter what language is + specified in user's browser or operating system, set the language property: +

+
+CKEDITOR.replace( 'textarea_id', {
+	// Load the German interface.
+	language: 'de'
+});
+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced. +

+
+
+

+ Available languages ( languages!):
+ +
+ + (You may see strange characters if your system does not support the selected language) + +

+

+ + +

+
+ + + diff --git a/kasu/static/js/ckeditor/samples/xhtmlstyle.html b/src/kasu/static/js/ckeditor/samples/xhtmlstyle.html similarity index 96% rename from kasu/static/js/ckeditor/samples/xhtmlstyle.html rename to src/kasu/static/js/ckeditor/samples/xhtmlstyle.html index cbda164..140c5a7 100644 --- a/kasu/static/js/ckeditor/samples/xhtmlstyle.html +++ b/src/kasu/static/js/ckeditor/samples/xhtmlstyle.html @@ -1,231 +1,231 @@ - - - - - XHTML Compliant Output — CKEditor Sample - - - - - - - -

- CKEditor Samples » Producing XHTML Compliant Output -

-
-

- This sample shows how to configure CKEditor to output valid - XHTML 1.1 code. - Deprecated elements (<font>, <u>) or attributes - (size, face) will be replaced with XHTML compliant code. -

-

- To add a CKEditor instance outputting valid XHTML code, load the editor using a standard - JavaScript call and define CKEditor features to use the XHTML compliant elements and styles. -

-

- A snippet of the configuration code can be seen below; check the source of this page for - full definition: -

-
-CKEDITOR.replace( 'textarea_id', {
-	contentsCss: 'assets/outputxhtml.css',
-
-	coreStyles_bold: {
-		element: 'span',
-		attributes: { 'class': 'Bold' }
-	},
-	coreStyles_italic: {
-		element: 'span',
-		attributes: { 'class': 'Italic' }
-	},
-
-	...
-});
-
-
-

- - - -

-

- -

-
- - - + + + + + XHTML Compliant Output — CKEditor Sample + + + + + + + +

+ CKEditor Samples » Producing XHTML Compliant Output +

+
+

+ This sample shows how to configure CKEditor to output valid + XHTML 1.1 code. + Deprecated elements (<font>, <u>) or attributes + (size, face) will be replaced with XHTML compliant code. +

+

+ To add a CKEditor instance outputting valid XHTML code, load the editor using a standard + JavaScript call and define CKEditor features to use the XHTML compliant elements and styles. +

+

+ A snippet of the configuration code can be seen below; check the source of this page for + full definition: +

+
+CKEDITOR.replace( 'textarea_id', {
+	contentsCss: 'assets/outputxhtml.css',
+
+	coreStyles_bold: {
+		element: 'span',
+		attributes: { 'class': 'Bold' }
+	},
+	coreStyles_italic: {
+		element: 'span',
+		attributes: { 'class': 'Italic' }
+	},
+
+	...
+});
+
+
+

+ + + +

+

+ +

+
+ + + diff --git a/kasu/static/js/ckeditor/skins/moono/dialog.css b/src/kasu/static/js/ckeditor/skins/moono/dialog.css similarity index 99% rename from kasu/static/js/ckeditor/skins/moono/dialog.css rename to src/kasu/static/js/ckeditor/skins/moono/dialog.css index a0b60e2..8e295fa 100644 --- a/kasu/static/js/ckeditor/skins/moono/dialog.css +++ b/src/kasu/static/js/ckeditor/skins/moono/dialog.css @@ -1,5 +1,5 @@ -/* -Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.html or http://ckeditor.com/license -*/ +/* +Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.html or http://ckeditor.com/license +*/ .cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_browser_gecko19 .cke_dialog_body{position:relative}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff5f5f5',endColorstr='#ffcfd1cf')}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;-moz-border-radius:0 0 2px 2px;-webkit-border-radius:0 0 2px 2px;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;-moz-border-radius:3px 3px 0 0;-webkit-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fafafa),to(#ededed));background-image:-moz-linear-gradient(top,#fafafa,#ededed);background-image:-webkit-linear-gradient(top,#fafafa,#ededed);background-image:-o-linear-gradient(top,#fafafa,#ededed);background-image:-ms-linear-gradient(top,#fafafa,#ededed);background-image:linear-gradient(top,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fffafafa',endColorstr='#ffededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover{background:#ebebeb;background:-moz-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ebebeb),color-stop(100%,#dfdfdf));background:-webkit-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-o-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-ms-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover{background:#ededed;background:-moz-linear-gradient(top,#ededed 0,#fff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ededed),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#ededed 0,#fff 100%);background:-o-linear-gradient(top,#ededed 0,#fff 100%);background:-ms-linear-gradient(top,#ededed 0,#fff 100%);background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:0 0;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px;z-index:5}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:3px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}span.cke_dialog_ui_button{padding:0 12px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;-moz-box-shadow:0 0 6px rgba(0,0,0,.4) inset;-webkit-box-shadow:0 0 6px rgba(0,0,0,.4) inset;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:20px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:-webkit-gradient(linear,0 0,0 100%,from(#9ad717),to(#69b10b));background-image:-webkit-linear-gradient(top,#9ad717,#69b10b);background-image:-o-linear-gradient(top,#9ad717,#69b10b);background-image:linear-gradient(to bottom,#9ad717,#69b10b);background-image:-moz-linear-gradient(top,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ff9ad717',endColorstr='#ff69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#88be14),color-stop(100%,#5d9c0a));background:-webkit-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:-o-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);background:-moz-linear-gradient(top,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:2px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:24px;line-height:24px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:2px 6px;outline:0;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background-position:0 -32px;background-image:url(images/mini.png);width:16px;height:16px;background-repeat:no-repeat;border:1px none;font-size:1px}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;background-position:0 0;background-image:url(images/mini.png);width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_unlocked{background-position:0 -16px;background-image:url(images/mini.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%} \ No newline at end of file diff --git a/kasu/static/js/ckeditor/skins/moono/dialog_ie.css b/src/kasu/static/js/ckeditor/skins/moono/dialog_ie.css similarity index 99% rename from kasu/static/js/ckeditor/skins/moono/dialog_ie.css rename to src/kasu/static/js/ckeditor/skins/moono/dialog_ie.css index ad7069c..18987e9 100644 --- a/kasu/static/js/ckeditor/skins/moono/dialog_ie.css +++ b/src/kasu/static/js/ckeditor/skins/moono/dialog_ie.css @@ -1,5 +1,5 @@ -/* -Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.html or http://ckeditor.com/license -*/ +/* +Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.html or http://ckeditor.com/license +*/ .cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_browser_gecko19 .cke_dialog_body{position:relative}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff5f5f5',endColorstr='#ffcfd1cf')}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;-moz-border-radius:0 0 2px 2px;-webkit-border-radius:0 0 2px 2px;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;-moz-border-radius:3px 3px 0 0;-webkit-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fafafa),to(#ededed));background-image:-moz-linear-gradient(top,#fafafa,#ededed);background-image:-webkit-linear-gradient(top,#fafafa,#ededed);background-image:-o-linear-gradient(top,#fafafa,#ededed);background-image:-ms-linear-gradient(top,#fafafa,#ededed);background-image:linear-gradient(top,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fffafafa',endColorstr='#ffededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover{background:#ebebeb;background:-moz-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ebebeb),color-stop(100%,#dfdfdf));background:-webkit-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-o-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-ms-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover{background:#ededed;background:-moz-linear-gradient(top,#ededed 0,#fff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ededed),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#ededed 0,#fff 100%);background:-o-linear-gradient(top,#ededed 0,#fff 100%);background:-ms-linear-gradient(top,#ededed 0,#fff 100%);background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:0 0;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px;z-index:5}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:3px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}span.cke_dialog_ui_button{padding:0 12px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;-moz-box-shadow:0 0 6px rgba(0,0,0,.4) inset;-webkit-box-shadow:0 0 6px rgba(0,0,0,.4) inset;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:20px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:-webkit-gradient(linear,0 0,0 100%,from(#9ad717),to(#69b10b));background-image:-webkit-linear-gradient(top,#9ad717,#69b10b);background-image:-o-linear-gradient(top,#9ad717,#69b10b);background-image:linear-gradient(to bottom,#9ad717,#69b10b);background-image:-moz-linear-gradient(top,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ff9ad717',endColorstr='#ff69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#88be14),color-stop(100%,#5d9c0a));background:-webkit-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:-o-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);background:-moz-linear-gradient(top,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:2px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:24px;line-height:24px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:2px 6px;outline:0;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background-position:0 -32px;background-image:url(images/mini.png);width:16px;height:16px;background-repeat:no-repeat;border:1px none;font-size:1px}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;background-position:0 0;background-image:url(images/mini.png);width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_unlocked{background-position:0 -16px;background-image:url(images/mini.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0} \ No newline at end of file diff --git a/kasu/static/js/ckeditor/skins/moono/dialog_ie7.css b/src/kasu/static/js/ckeditor/skins/moono/dialog_ie7.css similarity index 99% rename from kasu/static/js/ckeditor/skins/moono/dialog_ie7.css rename to src/kasu/static/js/ckeditor/skins/moono/dialog_ie7.css index 0915841..05c17e2 100644 --- a/kasu/static/js/ckeditor/skins/moono/dialog_ie7.css +++ b/src/kasu/static/js/ckeditor/skins/moono/dialog_ie7.css @@ -1,5 +1,5 @@ -/* -Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.html or http://ckeditor.com/license -*/ +/* +Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.html or http://ckeditor.com/license +*/ .cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_browser_gecko19 .cke_dialog_body{position:relative}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff5f5f5',endColorstr='#ffcfd1cf')}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;-moz-border-radius:0 0 2px 2px;-webkit-border-radius:0 0 2px 2px;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;-moz-border-radius:3px 3px 0 0;-webkit-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fafafa),to(#ededed));background-image:-moz-linear-gradient(top,#fafafa,#ededed);background-image:-webkit-linear-gradient(top,#fafafa,#ededed);background-image:-o-linear-gradient(top,#fafafa,#ededed);background-image:-ms-linear-gradient(top,#fafafa,#ededed);background-image:linear-gradient(top,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fffafafa',endColorstr='#ffededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover{background:#ebebeb;background:-moz-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ebebeb),color-stop(100%,#dfdfdf));background:-webkit-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-o-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-ms-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover{background:#ededed;background:-moz-linear-gradient(top,#ededed 0,#fff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ededed),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#ededed 0,#fff 100%);background:-o-linear-gradient(top,#ededed 0,#fff 100%);background:-ms-linear-gradient(top,#ededed 0,#fff 100%);background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:0 0;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px;z-index:5}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:3px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}span.cke_dialog_ui_button{padding:0 12px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;-moz-box-shadow:0 0 6px rgba(0,0,0,.4) inset;-webkit-box-shadow:0 0 6px rgba(0,0,0,.4) inset;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:20px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:-webkit-gradient(linear,0 0,0 100%,from(#9ad717),to(#69b10b));background-image:-webkit-linear-gradient(top,#9ad717,#69b10b);background-image:-o-linear-gradient(top,#9ad717,#69b10b);background-image:linear-gradient(to bottom,#9ad717,#69b10b);background-image:-moz-linear-gradient(top,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ff9ad717',endColorstr='#ff69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#88be14),color-stop(100%,#5d9c0a));background:-webkit-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:-o-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);background:-moz-linear-gradient(top,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:2px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:24px;line-height:24px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:2px 6px;outline:0;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background-position:0 -32px;background-image:url(images/mini.png);width:16px;height:16px;background-repeat:no-repeat;border:1px none;font-size:1px}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;background-position:0 0;background-image:url(images/mini.png);width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_unlocked{background-position:0 -16px;background-image:url(images/mini.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}.cke_dialog_title{zoom:1}.cke_dialog_footer{border-top:1px solid #bfbfbf}.cke_dialog_footer_buttons{position:static}.cke_dialog_footer_buttons a.cke_dialog_ui_button{vertical-align:top}.cke_dialog .cke_resizer_ltr{padding-left:4px}.cke_dialog .cke_resizer_rtl{padding-right:4px}.cke_dialog_ui_input_text,.cke_dialog_ui_input_password,.cke_dialog_ui_input_textarea,.cke_dialog_ui_input_select{padding:0!important}.cke_dialog_ui_checkbox_input,.cke_dialog_ui_ratio_input,.cke_btn_reset,.cke_btn_locked,.cke_btn_unlocked{border:1px solid transparent!important} \ No newline at end of file diff --git a/kasu/static/js/ckeditor/skins/moono/dialog_ie8.css b/src/kasu/static/js/ckeditor/skins/moono/dialog_ie8.css similarity index 99% rename from kasu/static/js/ckeditor/skins/moono/dialog_ie8.css rename to src/kasu/static/js/ckeditor/skins/moono/dialog_ie8.css index f8b5131..cc1abfc 100644 --- a/kasu/static/js/ckeditor/skins/moono/dialog_ie8.css +++ b/src/kasu/static/js/ckeditor/skins/moono/dialog_ie8.css @@ -1,5 +1,5 @@ -/* -Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.html or http://ckeditor.com/license -*/ +/* +Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.html or http://ckeditor.com/license +*/ .cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_browser_gecko19 .cke_dialog_body{position:relative}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff5f5f5',endColorstr='#ffcfd1cf')}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;-moz-border-radius:0 0 2px 2px;-webkit-border-radius:0 0 2px 2px;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;-moz-border-radius:3px 3px 0 0;-webkit-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fafafa),to(#ededed));background-image:-moz-linear-gradient(top,#fafafa,#ededed);background-image:-webkit-linear-gradient(top,#fafafa,#ededed);background-image:-o-linear-gradient(top,#fafafa,#ededed);background-image:-ms-linear-gradient(top,#fafafa,#ededed);background-image:linear-gradient(top,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fffafafa',endColorstr='#ffededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover{background:#ebebeb;background:-moz-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ebebeb),color-stop(100%,#dfdfdf));background:-webkit-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-o-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-ms-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover{background:#ededed;background:-moz-linear-gradient(top,#ededed 0,#fff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ededed),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#ededed 0,#fff 100%);background:-o-linear-gradient(top,#ededed 0,#fff 100%);background:-ms-linear-gradient(top,#ededed 0,#fff 100%);background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:0 0;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px;z-index:5}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:3px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}span.cke_dialog_ui_button{padding:0 12px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;-moz-box-shadow:0 0 6px rgba(0,0,0,.4) inset;-webkit-box-shadow:0 0 6px rgba(0,0,0,.4) inset;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:20px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:-webkit-gradient(linear,0 0,0 100%,from(#9ad717),to(#69b10b));background-image:-webkit-linear-gradient(top,#9ad717,#69b10b);background-image:-o-linear-gradient(top,#9ad717,#69b10b);background-image:linear-gradient(to bottom,#9ad717,#69b10b);background-image:-moz-linear-gradient(top,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ff9ad717',endColorstr='#ff69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#88be14),color-stop(100%,#5d9c0a));background:-webkit-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:-o-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);background:-moz-linear-gradient(top,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:2px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:24px;line-height:24px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:2px 6px;outline:0;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background-position:0 -32px;background-image:url(images/mini.png);width:16px;height:16px;background-repeat:no-repeat;border:1px none;font-size:1px}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;background-position:0 0;background-image:url(images/mini.png);width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_unlocked{background-position:0 -16px;background-image:url(images/mini.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{display:block} \ No newline at end of file diff --git a/kasu/static/js/ckeditor/skins/moono/dialog_iequirks.css b/src/kasu/static/js/ckeditor/skins/moono/dialog_iequirks.css similarity index 99% rename from kasu/static/js/ckeditor/skins/moono/dialog_iequirks.css rename to src/kasu/static/js/ckeditor/skins/moono/dialog_iequirks.css index b826b08..25ebae6 100644 --- a/kasu/static/js/ckeditor/skins/moono/dialog_iequirks.css +++ b/src/kasu/static/js/ckeditor/skins/moono/dialog_iequirks.css @@ -1,5 +1,5 @@ -/* -Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.html or http://ckeditor.com/license -*/ +/* +Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.html or http://ckeditor.com/license +*/ .cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_browser_gecko19 .cke_dialog_body{position:relative}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff5f5f5',endColorstr='#ffcfd1cf')}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;-moz-border-radius:0 0 2px 2px;-webkit-border-radius:0 0 2px 2px;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;-moz-border-radius:3px 3px 0 0;-webkit-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fafafa),to(#ededed));background-image:-moz-linear-gradient(top,#fafafa,#ededed);background-image:-webkit-linear-gradient(top,#fafafa,#ededed);background-image:-o-linear-gradient(top,#fafafa,#ededed);background-image:-ms-linear-gradient(top,#fafafa,#ededed);background-image:linear-gradient(top,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fffafafa',endColorstr='#ffededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover{background:#ebebeb;background:-moz-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ebebeb),color-stop(100%,#dfdfdf));background:-webkit-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-o-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-ms-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover{background:#ededed;background:-moz-linear-gradient(top,#ededed 0,#fff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ededed),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#ededed 0,#fff 100%);background:-o-linear-gradient(top,#ededed 0,#fff 100%);background:-ms-linear-gradient(top,#ededed 0,#fff 100%);background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:0 0;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px;z-index:5}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:3px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}span.cke_dialog_ui_button{padding:0 12px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;-moz-box-shadow:0 0 6px rgba(0,0,0,.4) inset;-webkit-box-shadow:0 0 6px rgba(0,0,0,.4) inset;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:20px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:-webkit-gradient(linear,0 0,0 100%,from(#9ad717),to(#69b10b));background-image:-webkit-linear-gradient(top,#9ad717,#69b10b);background-image:-o-linear-gradient(top,#9ad717,#69b10b);background-image:linear-gradient(to bottom,#9ad717,#69b10b);background-image:-moz-linear-gradient(top,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ff9ad717',endColorstr='#ff69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#88be14),color-stop(100%,#5d9c0a));background:-webkit-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:-o-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);background:-moz-linear-gradient(top,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:2px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:24px;line-height:24px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:2px 6px;outline:0;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background-position:0 -32px;background-image:url(images/mini.png);width:16px;height:16px;background-repeat:no-repeat;border:1px none;font-size:1px}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;background-position:0 0;background-image:url(images/mini.png);width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_unlocked{background-position:0 -16px;background-image:url(images/mini.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}.cke_dialog_footer{filter:} \ No newline at end of file diff --git a/kasu/static/js/ckeditor/skins/moono/dialog_opera.css b/src/kasu/static/js/ckeditor/skins/moono/dialog_opera.css similarity index 99% rename from kasu/static/js/ckeditor/skins/moono/dialog_opera.css rename to src/kasu/static/js/ckeditor/skins/moono/dialog_opera.css index bc93c9e..7c94f92 100644 --- a/kasu/static/js/ckeditor/skins/moono/dialog_opera.css +++ b/src/kasu/static/js/ckeditor/skins/moono/dialog_opera.css @@ -1,5 +1,5 @@ -/* -Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.html or http://ckeditor.com/license -*/ +/* +Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.html or http://ckeditor.com/license +*/ .cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_browser_gecko19 .cke_dialog_body{position:relative}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff5f5f5',endColorstr='#ffcfd1cf')}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;-moz-border-radius:0 0 2px 2px;-webkit-border-radius:0 0 2px 2px;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;-moz-border-radius:3px 3px 0 0;-webkit-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fafafa),to(#ededed));background-image:-moz-linear-gradient(top,#fafafa,#ededed);background-image:-webkit-linear-gradient(top,#fafafa,#ededed);background-image:-o-linear-gradient(top,#fafafa,#ededed);background-image:-ms-linear-gradient(top,#fafafa,#ededed);background-image:linear-gradient(top,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fffafafa',endColorstr='#ffededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover{background:#ebebeb;background:-moz-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ebebeb),color-stop(100%,#dfdfdf));background:-webkit-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-o-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-ms-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover{background:#ededed;background:-moz-linear-gradient(top,#ededed 0,#fff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ededed),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#ededed 0,#fff 100%);background:-o-linear-gradient(top,#ededed 0,#fff 100%);background:-ms-linear-gradient(top,#ededed 0,#fff 100%);background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:0 0;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px;z-index:5}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:3px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}span.cke_dialog_ui_button{padding:0 12px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;-moz-box-shadow:0 0 6px rgba(0,0,0,.4) inset;-webkit-box-shadow:0 0 6px rgba(0,0,0,.4) inset;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:20px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:-webkit-gradient(linear,0 0,0 100%,from(#9ad717),to(#69b10b));background-image:-webkit-linear-gradient(top,#9ad717,#69b10b);background-image:-o-linear-gradient(top,#9ad717,#69b10b);background-image:linear-gradient(to bottom,#9ad717,#69b10b);background-image:-moz-linear-gradient(top,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ff9ad717',endColorstr='#ff69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#88be14),color-stop(100%,#5d9c0a));background:-webkit-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:-o-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);background:-moz-linear-gradient(top,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:2px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:24px;line-height:24px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:2px 6px;outline:0;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background-position:0 -32px;background-image:url(images/mini.png);width:16px;height:16px;background-repeat:no-repeat;border:1px none;font-size:1px}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;background-position:0 0;background-image:url(images/mini.png);width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_unlocked{background-position:0 -16px;background-image:url(images/mini.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_dialog_footer{display:block;height:38px}.cke_ltr .cke_dialog_footer>*{float:right}.cke_rtl .cke_dialog_footer>*{float:left} \ No newline at end of file diff --git a/kasu/static/js/ckeditor/skins/moono/editor.css b/src/kasu/static/js/ckeditor/skins/moono/editor.css similarity index 99% rename from kasu/static/js/ckeditor/skins/moono/editor.css rename to src/kasu/static/js/ckeditor/skins/moono/editor.css index 5a7a3e5..7da509b 100644 --- a/kasu/static/js/ckeditor/skins/moono/editor.css +++ b/src/kasu/static/js/ckeditor/skins/moono/editor.css @@ -1,5 +1,5 @@ -/* -Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.html or http://ckeditor.com/license -*/ +/* +Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.html or http://ckeditor.com/license +*/ .cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff5f5f5',endColorstr='#ffcfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffebebeb',endColorstr='#cfd1cf')}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.3);-webkit-box-shadow:0 1px 0 rgba(255,255,255,.3);box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff5f5f5',endColorstr='#ffcfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup *:first-child{-moz-border-radius:0 2px 2px 0;-webkit-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0}.cke_rtl .cke_toolgroup *:last-child{-moz-border-radius:2px 0 0 2px;-webkit-border-radius:2px 0 0 2px;border-radius:2px 0 0 2px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_button_on{-moz-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffaaaaaa',endColorstr='#ffcacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{-moz-box-shadow:0 0 1px rgba(0,0,0,.3) inset;-webkit-box-shadow:0 0 1px rgba(0,0,0,.3) inset;box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;-webkit-box-shadow:1px 0 1px rgba(255,255,255,.5);-moz-box-shadow:1px 0 1px rgba(255,255,255,.5);box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;-webkit-box-shadow:-1px 0 1px rgba(255,255,255,.1);-moz-box-shadow:-1px 0 1px rgba(255,255,255,.1);box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffaaaaaa',endColorstr='#ffcacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);-webkit-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__bold_icon{background: url(icons.png) no-repeat 0 -0px !important;}.cke_button__italic_icon{background: url(icons.png) no-repeat 0 -32px !important;}.cke_button__strike_icon{background: url(icons.png) no-repeat 0 -64px !important;}.cke_button__subscript_icon{background: url(icons.png) no-repeat 0 -96px !important;}.cke_button__superscript_icon{background: url(icons.png) no-repeat 0 -128px !important;}.cke_button__underline_icon{background: url(icons.png) no-repeat 0 -160px !important;}.cke_button__blockquote_icon{background: url(icons.png) no-repeat 0 -192px !important;}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background: url(icons.png) no-repeat 0 -224px !important;}.cke_ltr .cke_button__copy_icon{background: url(icons.png) no-repeat 0 -256px !important;}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background: url(icons.png) no-repeat 0 -288px !important;}.cke_ltr .cke_button__cut_icon{background: url(icons.png) no-repeat 0 -320px !important;}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background: url(icons.png) no-repeat 0 -352px !important;}.cke_ltr .cke_button__paste_icon{background: url(icons.png) no-repeat 0 -384px !important;}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background: url(icons.png) no-repeat 0 -416px !important;}.cke_ltr .cke_button__bulletedlist_icon{background: url(icons.png) no-repeat 0 -448px !important;}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background: url(icons.png) no-repeat 0 -480px !important;}.cke_ltr .cke_button__numberedlist_icon{background: url(icons.png) no-repeat 0 -512px !important;}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background: url(icons.png) no-repeat 0 -544px !important;}.cke_ltr .cke_button__indent_icon{background: url(icons.png) no-repeat 0 -576px !important;}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background: url(icons.png) no-repeat 0 -608px !important;}.cke_ltr .cke_button__outdent_icon{background: url(icons.png) no-repeat 0 -640px !important;}.cke_button__horizontalrule_icon{background: url(icons.png) no-repeat 0 -672px !important;}.cke_button__image_icon{background: url(icons.png) no-repeat 0 -704px !important;}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background: url(icons.png) no-repeat 0 -736px !important;}.cke_ltr .cke_button__anchor_icon{background: url(icons.png) no-repeat 0 -768px !important;}.cke_button__link_icon{background: url(icons.png) no-repeat 0 -800px !important;}.cke_button__unlink_icon{background: url(icons.png) no-repeat 0 -832px !important;}.cke_button__maximize_icon{background: url(icons.png) no-repeat 0 -864px !important;}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background: url(icons.png) no-repeat 0 -896px !important;}.cke_ltr .cke_button__pastetext_icon{background: url(icons.png) no-repeat 0 -928px !important;}.cke_button__removeformat_icon{background: url(icons.png) no-repeat 0 -960px !important;}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background: url(icons.png) no-repeat 0 -992px !important;}.cke_ltr .cke_button__source_icon{background: url(icons.png) no-repeat 0 -1024px !important;}.cke_button__scayt_icon{background: url(icons.png) no-repeat 0 -1056px !important;}.cke_button__table_icon{background: url(icons.png) no-repeat 0 -1088px !important;}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background: url(icons.png) no-repeat 0 -1120px !important;}.cke_ltr .cke_button__redo_icon{background: url(icons.png) no-repeat 0 -1152px !important;}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background: url(icons.png) no-repeat 0 -1184px !important;}.cke_ltr .cke_button__undo_icon{background: url(icons.png) no-repeat 0 -1216px !important;}.cke_button__spellchecker_icon{background: url(icons.png) no-repeat 0 -1248px !important;} \ No newline at end of file diff --git a/kasu/static/js/ckeditor/skins/moono/editor_gecko.css b/src/kasu/static/js/ckeditor/skins/moono/editor_gecko.css similarity index 99% rename from kasu/static/js/ckeditor/skins/moono/editor_gecko.css rename to src/kasu/static/js/ckeditor/skins/moono/editor_gecko.css index 214e689..d347134 100644 --- a/kasu/static/js/ckeditor/skins/moono/editor_gecko.css +++ b/src/kasu/static/js/ckeditor/skins/moono/editor_gecko.css @@ -1,5 +1,5 @@ -/* -Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.html or http://ckeditor.com/license -*/ +/* +Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.html or http://ckeditor.com/license +*/ .cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff5f5f5',endColorstr='#ffcfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffebebeb',endColorstr='#cfd1cf')}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.3);-webkit-box-shadow:0 1px 0 rgba(255,255,255,.3);box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff5f5f5',endColorstr='#ffcfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup *:first-child{-moz-border-radius:0 2px 2px 0;-webkit-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0}.cke_rtl .cke_toolgroup *:last-child{-moz-border-radius:2px 0 0 2px;-webkit-border-radius:2px 0 0 2px;border-radius:2px 0 0 2px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_button_on{-moz-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffaaaaaa',endColorstr='#ffcacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{-moz-box-shadow:0 0 1px rgba(0,0,0,.3) inset;-webkit-box-shadow:0 0 1px rgba(0,0,0,.3) inset;box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;-webkit-box-shadow:1px 0 1px rgba(255,255,255,.5);-moz-box-shadow:1px 0 1px rgba(255,255,255,.5);box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;-webkit-box-shadow:-1px 0 1px rgba(255,255,255,.1);-moz-box-shadow:-1px 0 1px rgba(255,255,255,.1);box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffaaaaaa',endColorstr='#ffcacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);-webkit-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_bottom{padding-bottom:3px}.cke_combo_text{margin-bottom:-1px;margin-top:1px}.cke_button__bold_icon{background: url(icons.png) no-repeat 0 -0px !important;}.cke_button__italic_icon{background: url(icons.png) no-repeat 0 -32px !important;}.cke_button__strike_icon{background: url(icons.png) no-repeat 0 -64px !important;}.cke_button__subscript_icon{background: url(icons.png) no-repeat 0 -96px !important;}.cke_button__superscript_icon{background: url(icons.png) no-repeat 0 -128px !important;}.cke_button__underline_icon{background: url(icons.png) no-repeat 0 -160px !important;}.cke_button__blockquote_icon{background: url(icons.png) no-repeat 0 -192px !important;}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background: url(icons.png) no-repeat 0 -224px !important;}.cke_ltr .cke_button__copy_icon{background: url(icons.png) no-repeat 0 -256px !important;}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background: url(icons.png) no-repeat 0 -288px !important;}.cke_ltr .cke_button__cut_icon{background: url(icons.png) no-repeat 0 -320px !important;}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background: url(icons.png) no-repeat 0 -352px !important;}.cke_ltr .cke_button__paste_icon{background: url(icons.png) no-repeat 0 -384px !important;}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background: url(icons.png) no-repeat 0 -416px !important;}.cke_ltr .cke_button__bulletedlist_icon{background: url(icons.png) no-repeat 0 -448px !important;}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background: url(icons.png) no-repeat 0 -480px !important;}.cke_ltr .cke_button__numberedlist_icon{background: url(icons.png) no-repeat 0 -512px !important;}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background: url(icons.png) no-repeat 0 -544px !important;}.cke_ltr .cke_button__indent_icon{background: url(icons.png) no-repeat 0 -576px !important;}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background: url(icons.png) no-repeat 0 -608px !important;}.cke_ltr .cke_button__outdent_icon{background: url(icons.png) no-repeat 0 -640px !important;}.cke_button__horizontalrule_icon{background: url(icons.png) no-repeat 0 -672px !important;}.cke_button__image_icon{background: url(icons.png) no-repeat 0 -704px !important;}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background: url(icons.png) no-repeat 0 -736px !important;}.cke_ltr .cke_button__anchor_icon{background: url(icons.png) no-repeat 0 -768px !important;}.cke_button__link_icon{background: url(icons.png) no-repeat 0 -800px !important;}.cke_button__unlink_icon{background: url(icons.png) no-repeat 0 -832px !important;}.cke_button__maximize_icon{background: url(icons.png) no-repeat 0 -864px !important;}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background: url(icons.png) no-repeat 0 -896px !important;}.cke_ltr .cke_button__pastetext_icon{background: url(icons.png) no-repeat 0 -928px !important;}.cke_button__removeformat_icon{background: url(icons.png) no-repeat 0 -960px !important;}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background: url(icons.png) no-repeat 0 -992px !important;}.cke_ltr .cke_button__source_icon{background: url(icons.png) no-repeat 0 -1024px !important;}.cke_button__scayt_icon{background: url(icons.png) no-repeat 0 -1056px !important;}.cke_button__table_icon{background: url(icons.png) no-repeat 0 -1088px !important;}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background: url(icons.png) no-repeat 0 -1120px !important;}.cke_ltr .cke_button__redo_icon{background: url(icons.png) no-repeat 0 -1152px !important;}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background: url(icons.png) no-repeat 0 -1184px !important;}.cke_ltr .cke_button__undo_icon{background: url(icons.png) no-repeat 0 -1216px !important;}.cke_button__spellchecker_icon{background: url(icons.png) no-repeat 0 -1248px !important;} \ No newline at end of file diff --git a/kasu/static/js/ckeditor/skins/moono/editor_ie.css b/src/kasu/static/js/ckeditor/skins/moono/editor_ie.css similarity index 99% rename from kasu/static/js/ckeditor/skins/moono/editor_ie.css rename to src/kasu/static/js/ckeditor/skins/moono/editor_ie.css index 4db8b7c..5dc098e 100644 --- a/kasu/static/js/ckeditor/skins/moono/editor_ie.css +++ b/src/kasu/static/js/ckeditor/skins/moono/editor_ie.css @@ -1,5 +1,5 @@ -/* -Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.html or http://ckeditor.com/license -*/ +/* +Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.html or http://ckeditor.com/license +*/ .cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff5f5f5',endColorstr='#ffcfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffebebeb',endColorstr='#cfd1cf')}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.3);-webkit-box-shadow:0 1px 0 rgba(255,255,255,.3);box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff5f5f5',endColorstr='#ffcfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup *:first-child{-moz-border-radius:0 2px 2px 0;-webkit-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0}.cke_rtl .cke_toolgroup *:last-child{-moz-border-radius:2px 0 0 2px;-webkit-border-radius:2px 0 0 2px;border-radius:2px 0 0 2px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_button_on{-moz-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffaaaaaa',endColorstr='#ffcacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{-moz-box-shadow:0 0 1px rgba(0,0,0,.3) inset;-webkit-box-shadow:0 0 1px rgba(0,0,0,.3) inset;box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;-webkit-box-shadow:1px 0 1px rgba(255,255,255,.5);-moz-box-shadow:1px 0 1px rgba(255,255,255,.5);box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;-webkit-box-shadow:-1px 0 1px rgba(255,255,255,.1);-moz-box-shadow:-1px 0 1px rgba(255,255,255,.1);box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffaaaaaa',endColorstr='#ffcacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);-webkit-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_button__bold_icon{background: url(icons.png) no-repeat 0 -0px !important;}.cke_button__italic_icon{background: url(icons.png) no-repeat 0 -32px !important;}.cke_button__strike_icon{background: url(icons.png) no-repeat 0 -64px !important;}.cke_button__subscript_icon{background: url(icons.png) no-repeat 0 -96px !important;}.cke_button__superscript_icon{background: url(icons.png) no-repeat 0 -128px !important;}.cke_button__underline_icon{background: url(icons.png) no-repeat 0 -160px !important;}.cke_button__blockquote_icon{background: url(icons.png) no-repeat 0 -192px !important;}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background: url(icons.png) no-repeat 0 -224px !important;}.cke_ltr .cke_button__copy_icon{background: url(icons.png) no-repeat 0 -256px !important;}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background: url(icons.png) no-repeat 0 -288px !important;}.cke_ltr .cke_button__cut_icon{background: url(icons.png) no-repeat 0 -320px !important;}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background: url(icons.png) no-repeat 0 -352px !important;}.cke_ltr .cke_button__paste_icon{background: url(icons.png) no-repeat 0 -384px !important;}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background: url(icons.png) no-repeat 0 -416px !important;}.cke_ltr .cke_button__bulletedlist_icon{background: url(icons.png) no-repeat 0 -448px !important;}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background: url(icons.png) no-repeat 0 -480px !important;}.cke_ltr .cke_button__numberedlist_icon{background: url(icons.png) no-repeat 0 -512px !important;}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background: url(icons.png) no-repeat 0 -544px !important;}.cke_ltr .cke_button__indent_icon{background: url(icons.png) no-repeat 0 -576px !important;}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background: url(icons.png) no-repeat 0 -608px !important;}.cke_ltr .cke_button__outdent_icon{background: url(icons.png) no-repeat 0 -640px !important;}.cke_button__horizontalrule_icon{background: url(icons.png) no-repeat 0 -672px !important;}.cke_button__image_icon{background: url(icons.png) no-repeat 0 -704px !important;}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background: url(icons.png) no-repeat 0 -736px !important;}.cke_ltr .cke_button__anchor_icon{background: url(icons.png) no-repeat 0 -768px !important;}.cke_button__link_icon{background: url(icons.png) no-repeat 0 -800px !important;}.cke_button__unlink_icon{background: url(icons.png) no-repeat 0 -832px !important;}.cke_button__maximize_icon{background: url(icons.png) no-repeat 0 -864px !important;}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background: url(icons.png) no-repeat 0 -896px !important;}.cke_ltr .cke_button__pastetext_icon{background: url(icons.png) no-repeat 0 -928px !important;}.cke_button__removeformat_icon{background: url(icons.png) no-repeat 0 -960px !important;}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background: url(icons.png) no-repeat 0 -992px !important;}.cke_ltr .cke_button__source_icon{background: url(icons.png) no-repeat 0 -1024px !important;}.cke_button__scayt_icon{background: url(icons.png) no-repeat 0 -1056px !important;}.cke_button__table_icon{background: url(icons.png) no-repeat 0 -1088px !important;}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background: url(icons.png) no-repeat 0 -1120px !important;}.cke_ltr .cke_button__redo_icon{background: url(icons.png) no-repeat 0 -1152px !important;}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background: url(icons.png) no-repeat 0 -1184px !important;}.cke_ltr .cke_button__undo_icon{background: url(icons.png) no-repeat 0 -1216px !important;}.cke_button__spellchecker_icon{background: url(icons.png) no-repeat 0 -1248px !important;} \ No newline at end of file diff --git a/kasu/static/js/ckeditor/skins/moono/editor_ie7.css b/src/kasu/static/js/ckeditor/skins/moono/editor_ie7.css similarity index 99% rename from kasu/static/js/ckeditor/skins/moono/editor_ie7.css rename to src/kasu/static/js/ckeditor/skins/moono/editor_ie7.css index ce1db58..ddf1f03 100644 --- a/kasu/static/js/ckeditor/skins/moono/editor_ie7.css +++ b/src/kasu/static/js/ckeditor/skins/moono/editor_ie7.css @@ -1,5 +1,5 @@ -/* -Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.html or http://ckeditor.com/license -*/ +/* +Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.html or http://ckeditor.com/license +*/ .cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff5f5f5',endColorstr='#ffcfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffebebeb',endColorstr='#cfd1cf')}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.3);-webkit-box-shadow:0 1px 0 rgba(255,255,255,.3);box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff5f5f5',endColorstr='#ffcfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup *:first-child{-moz-border-radius:0 2px 2px 0;-webkit-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0}.cke_rtl .cke_toolgroup *:last-child{-moz-border-radius:2px 0 0 2px;-webkit-border-radius:2px 0 0 2px;border-radius:2px 0 0 2px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_button_on{-moz-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffaaaaaa',endColorstr='#ffcacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{-moz-box-shadow:0 0 1px rgba(0,0,0,.3) inset;-webkit-box-shadow:0 0 1px rgba(0,0,0,.3) inset;box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;-webkit-box-shadow:1px 0 1px rgba(255,255,255,.5);-moz-box-shadow:1px 0 1px rgba(255,255,255,.5);box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;-webkit-box-shadow:-1px 0 1px rgba(255,255,255,.1);-moz-box-shadow:-1px 0 1px rgba(255,255,255,.1);box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffaaaaaa',endColorstr='#ffcacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);-webkit-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_button,.cke_rtl .cke_button *,.cke_rtl .cke_combo,.cke_rtl .cke_combo *,.cke_rtl .cke_path_item,.cke_rtl .cke_path_item *,.cke_rtl .cke_path_empty{float:none}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_combo_button,.cke_rtl .cke_combo_button *,.cke_rtl .cke_button,.cke_rtl .cke_button_icon,{display:inline-block;vertical-align:top}.cke_toolbox{display:inline-block;padding-bottom:5px;height:100%}.cke_rtl .cke_toolbox{padding-bottom:0}.cke_toolbar{margin-bottom:5px}.cke_rtl .cke_toolbar{margin-bottom:0}.cke_toolgroup{height:26px}.cke_toolgroup,.cke_combo{position:relative}a.cke_button{float:none;vertical-align:top}.cke_toolbar_separator{display:inline-block;float:none;vertical-align:top;background-color:#c0c0c0}.cke_toolbox_collapser .cke_arrow{margin-top:0}.cke_toolbox_collapser .cke_arrow{border-width:4px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{border-width:3px}.cke_rtl .cke_button_arrow{padding-top:8px;margin-right:2px}.cke_rtl .cke_combo_inlinelabel{display:table-cell;vertical-align:middle}.cke_menubutton{display:block;height:24px}.cke_menubutton_inner{display:block;position:relative}.cke_menubutton_icon{height:16px;width:16px}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:inline-block}.cke_menubutton_label{width:auto;vertical-align:top;line-height:24px;height:24px;margin:0 10px 0 0}.cke_menuarrow{width:5px;height:6px;padding:0;position:absolute;right:8px;top:10px;background-position:0 0}.cke_rtl .cke_menubutton_icon{position:absolute;right:0;top:0}.cke_rtl .cke_menubutton_label{float:right;clear:both;margin:0 24px 0 10px}.cke_hc .cke_rtl .cke_menubutton_label{margin-right:0}.cke_rtl .cke_menuarrow{left:8px;right:auto;background-position:0 -24px}.cke_hc .cke_menuarrow{top:5px;padding:0 5px}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{position:relative}.cke_wysiwyg_div{padding-top:0!important;padding-bottom:0!important}.cke_button__bold_icon{background: url(icons.png) no-repeat 0 -0px !important;}.cke_button__italic_icon{background: url(icons.png) no-repeat 0 -32px !important;}.cke_button__strike_icon{background: url(icons.png) no-repeat 0 -64px !important;}.cke_button__subscript_icon{background: url(icons.png) no-repeat 0 -96px !important;}.cke_button__superscript_icon{background: url(icons.png) no-repeat 0 -128px !important;}.cke_button__underline_icon{background: url(icons.png) no-repeat 0 -160px !important;}.cke_button__blockquote_icon{background: url(icons.png) no-repeat 0 -192px !important;}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background: url(icons.png) no-repeat 0 -224px !important;}.cke_ltr .cke_button__copy_icon{background: url(icons.png) no-repeat 0 -256px !important;}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background: url(icons.png) no-repeat 0 -288px !important;}.cke_ltr .cke_button__cut_icon{background: url(icons.png) no-repeat 0 -320px !important;}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background: url(icons.png) no-repeat 0 -352px !important;}.cke_ltr .cke_button__paste_icon{background: url(icons.png) no-repeat 0 -384px !important;}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background: url(icons.png) no-repeat 0 -416px !important;}.cke_ltr .cke_button__bulletedlist_icon{background: url(icons.png) no-repeat 0 -448px !important;}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background: url(icons.png) no-repeat 0 -480px !important;}.cke_ltr .cke_button__numberedlist_icon{background: url(icons.png) no-repeat 0 -512px !important;}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background: url(icons.png) no-repeat 0 -544px !important;}.cke_ltr .cke_button__indent_icon{background: url(icons.png) no-repeat 0 -576px !important;}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background: url(icons.png) no-repeat 0 -608px !important;}.cke_ltr .cke_button__outdent_icon{background: url(icons.png) no-repeat 0 -640px !important;}.cke_button__horizontalrule_icon{background: url(icons.png) no-repeat 0 -672px !important;}.cke_button__image_icon{background: url(icons.png) no-repeat 0 -704px !important;}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background: url(icons.png) no-repeat 0 -736px !important;}.cke_ltr .cke_button__anchor_icon{background: url(icons.png) no-repeat 0 -768px !important;}.cke_button__link_icon{background: url(icons.png) no-repeat 0 -800px !important;}.cke_button__unlink_icon{background: url(icons.png) no-repeat 0 -832px !important;}.cke_button__maximize_icon{background: url(icons.png) no-repeat 0 -864px !important;}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background: url(icons.png) no-repeat 0 -896px !important;}.cke_ltr .cke_button__pastetext_icon{background: url(icons.png) no-repeat 0 -928px !important;}.cke_button__removeformat_icon{background: url(icons.png) no-repeat 0 -960px !important;}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background: url(icons.png) no-repeat 0 -992px !important;}.cke_ltr .cke_button__source_icon{background: url(icons.png) no-repeat 0 -1024px !important;}.cke_button__scayt_icon{background: url(icons.png) no-repeat 0 -1056px !important;}.cke_button__table_icon{background: url(icons.png) no-repeat 0 -1088px !important;}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background: url(icons.png) no-repeat 0 -1120px !important;}.cke_ltr .cke_button__redo_icon{background: url(icons.png) no-repeat 0 -1152px !important;}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background: url(icons.png) no-repeat 0 -1184px !important;}.cke_ltr .cke_button__undo_icon{background: url(icons.png) no-repeat 0 -1216px !important;}.cke_button__spellchecker_icon{background: url(icons.png) no-repeat 0 -1248px !important;} \ No newline at end of file diff --git a/kasu/static/js/ckeditor/skins/moono/editor_ie8.css b/src/kasu/static/js/ckeditor/skins/moono/editor_ie8.css similarity index 99% rename from kasu/static/js/ckeditor/skins/moono/editor_ie8.css rename to src/kasu/static/js/ckeditor/skins/moono/editor_ie8.css index 936c061..f5bc847 100644 --- a/kasu/static/js/ckeditor/skins/moono/editor_ie8.css +++ b/src/kasu/static/js/ckeditor/skins/moono/editor_ie8.css @@ -1,5 +1,5 @@ -/* -Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.html or http://ckeditor.com/license -*/ +/* +Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.html or http://ckeditor.com/license +*/ .cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff5f5f5',endColorstr='#ffcfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffebebeb',endColorstr='#cfd1cf')}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.3);-webkit-box-shadow:0 1px 0 rgba(255,255,255,.3);box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff5f5f5',endColorstr='#ffcfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup *:first-child{-moz-border-radius:0 2px 2px 0;-webkit-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0}.cke_rtl .cke_toolgroup *:last-child{-moz-border-radius:2px 0 0 2px;-webkit-border-radius:2px 0 0 2px;border-radius:2px 0 0 2px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_button_on{-moz-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffaaaaaa',endColorstr='#ffcacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{-moz-box-shadow:0 0 1px rgba(0,0,0,.3) inset;-webkit-box-shadow:0 0 1px rgba(0,0,0,.3) inset;box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;-webkit-box-shadow:1px 0 1px rgba(255,255,255,.5);-moz-box-shadow:1px 0 1px rgba(255,255,255,.5);box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;-webkit-box-shadow:-1px 0 1px rgba(255,255,255,.1);-moz-box-shadow:-1px 0 1px rgba(255,255,255,.1);box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffaaaaaa',endColorstr='#ffcacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);-webkit-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_toolbox_collapser .cke_arrow{border-width:4px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{border-width:3px}.cke_toolbox_collapser .cke_arrow{margin-top:0}.cke_button__bold_icon{background: url(icons.png) no-repeat 0 -0px !important;}.cke_button__italic_icon{background: url(icons.png) no-repeat 0 -32px !important;}.cke_button__strike_icon{background: url(icons.png) no-repeat 0 -64px !important;}.cke_button__subscript_icon{background: url(icons.png) no-repeat 0 -96px !important;}.cke_button__superscript_icon{background: url(icons.png) no-repeat 0 -128px !important;}.cke_button__underline_icon{background: url(icons.png) no-repeat 0 -160px !important;}.cke_button__blockquote_icon{background: url(icons.png) no-repeat 0 -192px !important;}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background: url(icons.png) no-repeat 0 -224px !important;}.cke_ltr .cke_button__copy_icon{background: url(icons.png) no-repeat 0 -256px !important;}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background: url(icons.png) no-repeat 0 -288px !important;}.cke_ltr .cke_button__cut_icon{background: url(icons.png) no-repeat 0 -320px !important;}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background: url(icons.png) no-repeat 0 -352px !important;}.cke_ltr .cke_button__paste_icon{background: url(icons.png) no-repeat 0 -384px !important;}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background: url(icons.png) no-repeat 0 -416px !important;}.cke_ltr .cke_button__bulletedlist_icon{background: url(icons.png) no-repeat 0 -448px !important;}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background: url(icons.png) no-repeat 0 -480px !important;}.cke_ltr .cke_button__numberedlist_icon{background: url(icons.png) no-repeat 0 -512px !important;}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background: url(icons.png) no-repeat 0 -544px !important;}.cke_ltr .cke_button__indent_icon{background: url(icons.png) no-repeat 0 -576px !important;}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background: url(icons.png) no-repeat 0 -608px !important;}.cke_ltr .cke_button__outdent_icon{background: url(icons.png) no-repeat 0 -640px !important;}.cke_button__horizontalrule_icon{background: url(icons.png) no-repeat 0 -672px !important;}.cke_button__image_icon{background: url(icons.png) no-repeat 0 -704px !important;}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background: url(icons.png) no-repeat 0 -736px !important;}.cke_ltr .cke_button__anchor_icon{background: url(icons.png) no-repeat 0 -768px !important;}.cke_button__link_icon{background: url(icons.png) no-repeat 0 -800px !important;}.cke_button__unlink_icon{background: url(icons.png) no-repeat 0 -832px !important;}.cke_button__maximize_icon{background: url(icons.png) no-repeat 0 -864px !important;}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background: url(icons.png) no-repeat 0 -896px !important;}.cke_ltr .cke_button__pastetext_icon{background: url(icons.png) no-repeat 0 -928px !important;}.cke_button__removeformat_icon{background: url(icons.png) no-repeat 0 -960px !important;}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background: url(icons.png) no-repeat 0 -992px !important;}.cke_ltr .cke_button__source_icon{background: url(icons.png) no-repeat 0 -1024px !important;}.cke_button__scayt_icon{background: url(icons.png) no-repeat 0 -1056px !important;}.cke_button__table_icon{background: url(icons.png) no-repeat 0 -1088px !important;}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background: url(icons.png) no-repeat 0 -1120px !important;}.cke_ltr .cke_button__redo_icon{background: url(icons.png) no-repeat 0 -1152px !important;}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background: url(icons.png) no-repeat 0 -1184px !important;}.cke_ltr .cke_button__undo_icon{background: url(icons.png) no-repeat 0 -1216px !important;}.cke_button__spellchecker_icon{background: url(icons.png) no-repeat 0 -1248px !important;} \ No newline at end of file diff --git a/kasu/static/js/ckeditor/skins/moono/editor_iequirks.css b/src/kasu/static/js/ckeditor/skins/moono/editor_iequirks.css similarity index 99% rename from kasu/static/js/ckeditor/skins/moono/editor_iequirks.css rename to src/kasu/static/js/ckeditor/skins/moono/editor_iequirks.css index c3696ed..38b7fc3 100644 --- a/kasu/static/js/ckeditor/skins/moono/editor_iequirks.css +++ b/src/kasu/static/js/ckeditor/skins/moono/editor_iequirks.css @@ -1,5 +1,5 @@ -/* -Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.html or http://ckeditor.com/license -*/ +/* +Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.html or http://ckeditor.com/license +*/ .cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff5f5f5',endColorstr='#ffcfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffebebeb',endColorstr='#cfd1cf')}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.3);-webkit-box-shadow:0 1px 0 rgba(255,255,255,.3);box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff5f5f5',endColorstr='#ffcfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup *:first-child{-moz-border-radius:0 2px 2px 0;-webkit-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0}.cke_rtl .cke_toolgroup *:last-child{-moz-border-radius:2px 0 0 2px;-webkit-border-radius:2px 0 0 2px;border-radius:2px 0 0 2px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_button_on{-moz-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffaaaaaa',endColorstr='#ffcacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{-moz-box-shadow:0 0 1px rgba(0,0,0,.3) inset;-webkit-box-shadow:0 0 1px rgba(0,0,0,.3) inset;box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;-webkit-box-shadow:1px 0 1px rgba(255,255,255,.5);-moz-box-shadow:1px 0 1px rgba(255,255,255,.5);box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;-webkit-box-shadow:-1px 0 1px rgba(255,255,255,.1);-moz-box-shadow:-1px 0 1px rgba(255,255,255,.1);box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffaaaaaa',endColorstr='#ffcacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);-webkit-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_top,.cke_contents,.cke_bottom{width:100%}.cke_button_arrow{font-size:0}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_button,.cke_rtl .cke_button *,.cke_rtl .cke_combo,.cke_rtl .cke_combo *,.cke_rtl .cke_path_item,.cke_rtl .cke_path_item *,.cke_rtl .cke_path_empty{float:none}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_combo_button,.cke_rtl .cke_combo_button *,.cke_rtl .cke_button,.cke_rtl .cke_button_icon,{display:inline-block;vertical-align:top}.cke_rtl .cke_button_icon{float:none}.cke_resizer{width:10px}.cke_source{white-space:normal}.cke_bottom{position:static}.cke_colorbox{font-size:0}.cke_button__bold_icon{background: url(icons.png) no-repeat 0 -0px !important;}.cke_button__italic_icon{background: url(icons.png) no-repeat 0 -32px !important;}.cke_button__strike_icon{background: url(icons.png) no-repeat 0 -64px !important;}.cke_button__subscript_icon{background: url(icons.png) no-repeat 0 -96px !important;}.cke_button__superscript_icon{background: url(icons.png) no-repeat 0 -128px !important;}.cke_button__underline_icon{background: url(icons.png) no-repeat 0 -160px !important;}.cke_button__blockquote_icon{background: url(icons.png) no-repeat 0 -192px !important;}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background: url(icons.png) no-repeat 0 -224px !important;}.cke_ltr .cke_button__copy_icon{background: url(icons.png) no-repeat 0 -256px !important;}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background: url(icons.png) no-repeat 0 -288px !important;}.cke_ltr .cke_button__cut_icon{background: url(icons.png) no-repeat 0 -320px !important;}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background: url(icons.png) no-repeat 0 -352px !important;}.cke_ltr .cke_button__paste_icon{background: url(icons.png) no-repeat 0 -384px !important;}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background: url(icons.png) no-repeat 0 -416px !important;}.cke_ltr .cke_button__bulletedlist_icon{background: url(icons.png) no-repeat 0 -448px !important;}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background: url(icons.png) no-repeat 0 -480px !important;}.cke_ltr .cke_button__numberedlist_icon{background: url(icons.png) no-repeat 0 -512px !important;}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background: url(icons.png) no-repeat 0 -544px !important;}.cke_ltr .cke_button__indent_icon{background: url(icons.png) no-repeat 0 -576px !important;}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background: url(icons.png) no-repeat 0 -608px !important;}.cke_ltr .cke_button__outdent_icon{background: url(icons.png) no-repeat 0 -640px !important;}.cke_button__horizontalrule_icon{background: url(icons.png) no-repeat 0 -672px !important;}.cke_button__image_icon{background: url(icons.png) no-repeat 0 -704px !important;}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background: url(icons.png) no-repeat 0 -736px !important;}.cke_ltr .cke_button__anchor_icon{background: url(icons.png) no-repeat 0 -768px !important;}.cke_button__link_icon{background: url(icons.png) no-repeat 0 -800px !important;}.cke_button__unlink_icon{background: url(icons.png) no-repeat 0 -832px !important;}.cke_button__maximize_icon{background: url(icons.png) no-repeat 0 -864px !important;}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background: url(icons.png) no-repeat 0 -896px !important;}.cke_ltr .cke_button__pastetext_icon{background: url(icons.png) no-repeat 0 -928px !important;}.cke_button__removeformat_icon{background: url(icons.png) no-repeat 0 -960px !important;}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background: url(icons.png) no-repeat 0 -992px !important;}.cke_ltr .cke_button__source_icon{background: url(icons.png) no-repeat 0 -1024px !important;}.cke_button__scayt_icon{background: url(icons.png) no-repeat 0 -1056px !important;}.cke_button__table_icon{background: url(icons.png) no-repeat 0 -1088px !important;}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background: url(icons.png) no-repeat 0 -1120px !important;}.cke_ltr .cke_button__redo_icon{background: url(icons.png) no-repeat 0 -1152px !important;}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background: url(icons.png) no-repeat 0 -1184px !important;}.cke_ltr .cke_button__undo_icon{background: url(icons.png) no-repeat 0 -1216px !important;}.cke_button__spellchecker_icon{background: url(icons.png) no-repeat 0 -1248px !important;} \ No newline at end of file diff --git a/kasu/static/js/ckeditor/skins/moono/icons.png b/src/kasu/static/js/ckeditor/skins/moono/icons.png similarity index 100% rename from kasu/static/js/ckeditor/skins/moono/icons.png rename to src/kasu/static/js/ckeditor/skins/moono/icons.png diff --git a/kasu/static/js/ckeditor/skins/moono/images/arrow.png b/src/kasu/static/js/ckeditor/skins/moono/images/arrow.png similarity index 100% rename from kasu/static/js/ckeditor/skins/moono/images/arrow.png rename to src/kasu/static/js/ckeditor/skins/moono/images/arrow.png diff --git a/kasu/static/js/ckeditor/skins/moono/images/close.png b/src/kasu/static/js/ckeditor/skins/moono/images/close.png similarity index 100% rename from kasu/static/js/ckeditor/skins/moono/images/close.png rename to src/kasu/static/js/ckeditor/skins/moono/images/close.png diff --git a/kasu/static/js/ckeditor/skins/moono/images/mini.png b/src/kasu/static/js/ckeditor/skins/moono/images/mini.png similarity index 100% rename from kasu/static/js/ckeditor/skins/moono/images/mini.png rename to src/kasu/static/js/ckeditor/skins/moono/images/mini.png diff --git a/kasu/static/js/ckeditor/skins/moono/readme.md b/src/kasu/static/js/ckeditor/skins/moono/readme.md similarity index 97% rename from kasu/static/js/ckeditor/skins/moono/readme.md rename to src/kasu/static/js/ckeditor/skins/moono/readme.md index 0fa4c1a..f24ec4f 100644 --- a/kasu/static/js/ckeditor/skins/moono/readme.md +++ b/src/kasu/static/js/ckeditor/skins/moono/readme.md @@ -1,51 +1,51 @@ -"Moono" Skin -==================== - -This skin has been chosen for the **default skin** of CKEditor 4.x, elected from the CKEditor -[skin contest](http://ckeditor.com/blog/new_ckeditor_4_skin) and further shaped by -the CKEditor team. "Moono" is maintained by the core developers. - -For more information about skins, please check the [CKEditor Skin SDK](http://docs.cksource.com/CKEditor_4.x/Skin_SDK) -documentation. - -Features -------------------- -"Moono" is a monochromatic skin, which offers a modern look coupled with gradients and transparency. -It comes with the following features: - -- Chameleon feature with brightness, -- high-contrast compatibility, -- graphics source provided in SVG. - -Directory Structure -------------------- - -CSS parts: -- **editor.css**: the main CSS file. It's simply loading several other files, for easier maintenance, -- **mainui.css**: the file contains styles of entire editor outline structures, -- **toolbar.css**: the file contains styles of the editor toolbar space (top), -- **richcombo.css**: the file contains styles of the rich combo ui elements on toolbar, -- **panel.css**: the file contains styles of the rich combo drop-down, it's not loaded -until the first panel open up, -- **elementspath.css**: the file contains styles of the editor elements path bar (bottom), -- **menu.css**: the file contains styles of all editor menus including context menu and button drop-down, -it's not loaded until the first menu open up, -- **dialog.css**: the CSS files for the dialog UI, it's not loaded until the first dialog open, -- **reset.css**: the file defines the basis of style resets among all editor UI spaces, -- **preset.css**: the file defines the default styles of some UI elements reflecting the skin preference, -- **editor_XYZ.css** and **dialog_XYZ.css**: browser specific CSS hacks. - -Other parts: -- **skin.js**: the only JavaScript part of the skin that registers the skin, its browser specific files and its icons and defines the Chameleon feature, -- **icons/**: contains all skin defined icons, -- **images/**: contains a fill general used images, -- **dev/**: contains SVG source of the skin icons. - -License -------- - -Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. - -Licensed under the terms of any of the following licenses at your choice: [GPL](http://www.gnu.org/licenses/gpl.html), [LGPL](http://www.gnu.org/licenses/lgpl.html) and [MPL](http://www.mozilla.org/MPL/MPL-1.1.html). - -See LICENSE.md for more information. +"Moono" Skin +==================== + +This skin has been chosen for the **default skin** of CKEditor 4.x, elected from the CKEditor +[skin contest](http://ckeditor.com/blog/new_ckeditor_4_skin) and further shaped by +the CKEditor team. "Moono" is maintained by the core developers. + +For more information about skins, please check the [CKEditor Skin SDK](http://docs.cksource.com/CKEditor_4.x/Skin_SDK) +documentation. + +Features +------------------- +"Moono" is a monochromatic skin, which offers a modern look coupled with gradients and transparency. +It comes with the following features: + +- Chameleon feature with brightness, +- high-contrast compatibility, +- graphics source provided in SVG. + +Directory Structure +------------------- + +CSS parts: +- **editor.css**: the main CSS file. It's simply loading several other files, for easier maintenance, +- **mainui.css**: the file contains styles of entire editor outline structures, +- **toolbar.css**: the file contains styles of the editor toolbar space (top), +- **richcombo.css**: the file contains styles of the rich combo ui elements on toolbar, +- **panel.css**: the file contains styles of the rich combo drop-down, it's not loaded +until the first panel open up, +- **elementspath.css**: the file contains styles of the editor elements path bar (bottom), +- **menu.css**: the file contains styles of all editor menus including context menu and button drop-down, +it's not loaded until the first menu open up, +- **dialog.css**: the CSS files for the dialog UI, it's not loaded until the first dialog open, +- **reset.css**: the file defines the basis of style resets among all editor UI spaces, +- **preset.css**: the file defines the default styles of some UI elements reflecting the skin preference, +- **editor_XYZ.css** and **dialog_XYZ.css**: browser specific CSS hacks. + +Other parts: +- **skin.js**: the only JavaScript part of the skin that registers the skin, its browser specific files and its icons and defines the Chameleon feature, +- **icons/**: contains all skin defined icons, +- **images/**: contains a fill general used images, +- **dev/**: contains SVG source of the skin icons. + +License +------- + +Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. + +Licensed under the terms of any of the following licenses at your choice: [GPL](http://www.gnu.org/licenses/gpl.html), [LGPL](http://www.gnu.org/licenses/lgpl.html) and [MPL](http://www.mozilla.org/MPL/MPL-1.1.html). + +See LICENSE.md for more information. diff --git a/kasu/static/js/ckeditor/styles.js b/src/kasu/static/js/ckeditor/styles.js similarity index 96% rename from kasu/static/js/ckeditor/styles.js rename to src/kasu/static/js/ckeditor/styles.js index 0340601..5eb7f1c 100644 --- a/kasu/static/js/ckeditor/styles.js +++ b/src/kasu/static/js/ckeditor/styles.js @@ -1,111 +1,111 @@ -/** - * Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.html or http://ckeditor.com/license - */ - -// This file contains style definitions that can be used by CKEditor plugins. -// -// The most common use for it is the "stylescombo" plugin, which shows a combo -// in the editor toolbar, containing all styles. Other plugins instead, like -// the div plugin, use a subset of the styles on their feature. -// -// If you don't have plugins that depend on this file, you can simply ignore it. -// Otherwise it is strongly recommended to customize this file to match your -// website requirements and design properly. - -CKEDITOR.stylesSet.add( 'default', [ - /* Block Styles */ - - // These styles are already available in the "Format" combo ("format" plugin), - // so they are not needed here by default. You may enable them to avoid - // placing the "Format" combo in the toolbar, maintaining the same features. - /* - { name: 'Paragraph', element: 'p' }, - { name: 'Heading 1', element: 'h1' }, - { name: 'Heading 2', element: 'h2' }, - { name: 'Heading 3', element: 'h3' }, - { name: 'Heading 4', element: 'h4' }, - { name: 'Heading 5', element: 'h5' }, - { name: 'Heading 6', element: 'h6' }, - { name: 'Preformatted Text',element: 'pre' }, - { name: 'Address', element: 'address' }, - */ - - { name: 'Italic Title', element: 'h2', styles: { 'font-style': 'italic' } }, - { name: 'Subtitle', element: 'h3', styles: { 'color': '#aaa', 'font-style': 'italic' } }, - { - name: 'Special Container', - element: 'div', - styles: { - padding: '5px 10px', - background: '#eee', - border: '1px solid #ccc' - } - }, - - /* Inline Styles */ - - // These are core styles available as toolbar buttons. You may opt enabling - // some of them in the Styles combo, removing them from the toolbar. - // (This requires the "stylescombo" plugin) - /* - { name: 'Strong', element: 'strong', overrides: 'b' }, - { name: 'Emphasis', element: 'em' , overrides: 'i' }, - { name: 'Underline', element: 'u' }, - { name: 'Strikethrough', element: 'strike' }, - { name: 'Subscript', element: 'sub' }, - { name: 'Superscript', element: 'sup' }, - */ - - { name: 'Marker', element: 'span', attributes: { 'class': 'marker' } }, - - { name: 'Big', element: 'big' }, - { name: 'Small', element: 'small' }, - { name: 'Typewriter', element: 'tt' }, - - { name: 'Computer Code', element: 'code' }, - { name: 'Keyboard Phrase', element: 'kbd' }, - { name: 'Sample Text', element: 'samp' }, - { name: 'Variable', element: 'var' }, - - { name: 'Deleted Text', element: 'del' }, - { name: 'Inserted Text', element: 'ins' }, - - { name: 'Cited Work', element: 'cite' }, - { name: 'Inline Quotation', element: 'q' }, - - { name: 'Language: RTL', element: 'span', attributes: { 'dir': 'rtl' } }, - { name: 'Language: LTR', element: 'span', attributes: { 'dir': 'ltr' } }, - - /* Object Styles */ - - { - name: 'Styled image (left)', - element: 'img', - attributes: { 'class': 'left' } - }, - - { - name: 'Styled image (right)', - element: 'img', - attributes: { 'class': 'right' } - }, - - { - name: 'Compact table', - element: 'table', - attributes: { - cellpadding: '5', - cellspacing: '0', - border: '1', - bordercolor: '#ccc' - }, - styles: { - 'border-collapse': 'collapse' - } - }, - - { name: 'Borderless Table', element: 'table', styles: { 'border-style': 'hidden', 'background-color': '#E6E6FA' } }, - { name: 'Square Bulleted List', element: 'ul', styles: { 'list-style-type': 'square' } } -]); - +/** + * Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.html or http://ckeditor.com/license + */ + +// This file contains style definitions that can be used by CKEditor plugins. +// +// The most common use for it is the "stylescombo" plugin, which shows a combo +// in the editor toolbar, containing all styles. Other plugins instead, like +// the div plugin, use a subset of the styles on their feature. +// +// If you don't have plugins that depend on this file, you can simply ignore it. +// Otherwise it is strongly recommended to customize this file to match your +// website requirements and design properly. + +CKEDITOR.stylesSet.add( 'default', [ + /* Block Styles */ + + // These styles are already available in the "Format" combo ("format" plugin), + // so they are not needed here by default. You may enable them to avoid + // placing the "Format" combo in the toolbar, maintaining the same features. + /* + { name: 'Paragraph', element: 'p' }, + { name: 'Heading 1', element: 'h1' }, + { name: 'Heading 2', element: 'h2' }, + { name: 'Heading 3', element: 'h3' }, + { name: 'Heading 4', element: 'h4' }, + { name: 'Heading 5', element: 'h5' }, + { name: 'Heading 6', element: 'h6' }, + { name: 'Preformatted Text',element: 'pre' }, + { name: 'Address', element: 'address' }, + */ + + { name: 'Italic Title', element: 'h2', styles: { 'font-style': 'italic' } }, + { name: 'Subtitle', element: 'h3', styles: { 'color': '#aaa', 'font-style': 'italic' } }, + { + name: 'Special Container', + element: 'div', + styles: { + padding: '5px 10px', + background: '#eee', + border: '1px solid #ccc' + } + }, + + /* Inline Styles */ + + // These are core styles available as toolbar buttons. You may opt enabling + // some of them in the Styles combo, removing them from the toolbar. + // (This requires the "stylescombo" plugin) + /* + { name: 'Strong', element: 'strong', overrides: 'b' }, + { name: 'Emphasis', element: 'em' , overrides: 'i' }, + { name: 'Underline', element: 'u' }, + { name: 'Strikethrough', element: 'strike' }, + { name: 'Subscript', element: 'sub' }, + { name: 'Superscript', element: 'sup' }, + */ + + { name: 'Marker', element: 'span', attributes: { 'class': 'marker' } }, + + { name: 'Big', element: 'big' }, + { name: 'Small', element: 'small' }, + { name: 'Typewriter', element: 'tt' }, + + { name: 'Computer Code', element: 'code' }, + { name: 'Keyboard Phrase', element: 'kbd' }, + { name: 'Sample Text', element: 'samp' }, + { name: 'Variable', element: 'var' }, + + { name: 'Deleted Text', element: 'del' }, + { name: 'Inserted Text', element: 'ins' }, + + { name: 'Cited Work', element: 'cite' }, + { name: 'Inline Quotation', element: 'q' }, + + { name: 'Language: RTL', element: 'span', attributes: { 'dir': 'rtl' } }, + { name: 'Language: LTR', element: 'span', attributes: { 'dir': 'ltr' } }, + + /* Object Styles */ + + { + name: 'Styled image (left)', + element: 'img', + attributes: { 'class': 'left' } + }, + + { + name: 'Styled image (right)', + element: 'img', + attributes: { 'class': 'right' } + }, + + { + name: 'Compact table', + element: 'table', + attributes: { + cellpadding: '5', + cellspacing: '0', + border: '1', + bordercolor: '#ccc' + }, + styles: { + 'border-collapse': 'collapse' + } + }, + + { name: 'Borderless Table', element: 'table', styles: { 'border-style': 'hidden', 'background-color': '#E6E6FA' } }, + { name: 'Square Bulleted List', element: 'ul', styles: { 'list-style-type': 'square' } } +]); + diff --git a/kasu/static/js/jquery-2.1.3.min.js b/src/kasu/static/js/jquery-2.1.3.min.js similarity index 100% rename from kasu/static/js/jquery-2.1.3.min.js rename to src/kasu/static/js/jquery-2.1.3.min.js diff --git a/kasu/static/js/language_tabs.js b/src/kasu/static/js/language_tabs.js similarity index 100% rename from kasu/static/js/language_tabs.js rename to src/kasu/static/js/language_tabs.js diff --git a/kasu/static/js/tinymce_setup.js b/src/kasu/static/js/tinymce_setup.js similarity index 100% rename from kasu/static/js/tinymce_setup.js rename to src/kasu/static/js/tinymce_setup.js diff --git a/kasu/templates/404.html b/src/kasu/templates/404.html similarity index 100% rename from kasu/templates/404.html rename to src/kasu/templates/404.html diff --git a/kasu/templates/base.html b/src/kasu/templates/base.html similarity index 99% rename from kasu/templates/base.html rename to src/kasu/templates/base.html index edf799b..a0388b9 100644 --- a/kasu/templates/base.html +++ b/src/kasu/templates/base.html @@ -1,5 +1,4 @@ {% load i18n %} -{% load compress %} diff --git a/kasu/templates/comments/form.html b/src/kasu/templates/comments/form.html similarity index 100% rename from kasu/templates/comments/form.html rename to src/kasu/templates/comments/form.html diff --git a/kasu/templates/comments/list.html b/src/kasu/templates/comments/list.html similarity index 100% rename from kasu/templates/comments/list.html rename to src/kasu/templates/comments/list.html diff --git a/kasu/templates/comments/posted.html b/src/kasu/templates/comments/posted.html similarity index 100% rename from kasu/templates/comments/posted.html rename to src/kasu/templates/comments/posted.html diff --git a/kasu/templates/comments/preview.html b/src/kasu/templates/comments/preview.html similarity index 100% rename from kasu/templates/comments/preview.html rename to src/kasu/templates/comments/preview.html diff --git a/kasu/templates/form.html b/src/kasu/templates/form.html similarity index 100% rename from kasu/templates/form.html rename to src/kasu/templates/form.html diff --git a/kasu/templates/google25dabc1a49a9ef03.html b/src/kasu/templates/google25dabc1a49a9ef03.html similarity index 100% rename from kasu/templates/google25dabc1a49a9ef03.html rename to src/kasu/templates/google25dabc1a49a9ef03.html diff --git a/kasu/templates/index.html b/src/kasu/templates/index.html similarity index 97% rename from kasu/templates/index.html rename to src/kasu/templates/index.html index a077965..f031fca 100644 --- a/kasu/templates/index.html +++ b/src/kasu/templates/index.html @@ -1,8 +1,7 @@ {% extends "base.html" %} -{% load i18n %} -{% load comments%} +{% load i18n comments%} -{% block jumbotron_background %}{{ random_photo.url }}{% endblock %} +{% block jumbotron_background %}{{ random_photo.url|default:'' }}{% endblock %} {% block title %}{% trans 'traditional Asian game culture' %}{% endblock %} diff --git a/kasu/templates/paginator.html b/src/kasu/templates/paginator.html similarity index 100% rename from kasu/templates/paginator.html rename to src/kasu/templates/paginator.html diff --git a/kasu/templates/registration/login.html b/src/kasu/templates/registration/login.html similarity index 100% rename from kasu/templates/registration/login.html rename to src/kasu/templates/registration/login.html diff --git a/kasu/templates/registration/password_change_done.html b/src/kasu/templates/registration/password_change_done.html similarity index 100% rename from kasu/templates/registration/password_change_done.html rename to src/kasu/templates/registration/password_change_done.html diff --git a/kasu/templates/registration/password_change_form.html b/src/kasu/templates/registration/password_change_form.html similarity index 100% rename from kasu/templates/registration/password_change_form.html rename to src/kasu/templates/registration/password_change_form.html diff --git a/kasu/templates/registration/password_reset_complete.html b/src/kasu/templates/registration/password_reset_complete.html similarity index 100% rename from kasu/templates/registration/password_reset_complete.html rename to src/kasu/templates/registration/password_reset_complete.html diff --git a/kasu/templates/registration/password_reset_confirm.html b/src/kasu/templates/registration/password_reset_confirm.html similarity index 100% rename from kasu/templates/registration/password_reset_confirm.html rename to src/kasu/templates/registration/password_reset_confirm.html diff --git a/kasu/templates/registration/password_reset_done.html b/src/kasu/templates/registration/password_reset_done.html similarity index 100% rename from kasu/templates/registration/password_reset_done.html rename to src/kasu/templates/registration/password_reset_done.html diff --git a/kasu/templates/registration/password_reset_form.html b/src/kasu/templates/registration/password_reset_form.html similarity index 100% rename from kasu/templates/registration/password_reset_form.html rename to src/kasu/templates/registration/password_reset_form.html diff --git a/kasu/templates/robots.txt b/src/kasu/templates/robots.txt similarity index 100% rename from kasu/templates/robots.txt rename to src/kasu/templates/robots.txt diff --git a/kasu/urls.py b/src/kasu/urls.py similarity index 81% rename from kasu/urls.py rename to src/kasu/urls.py index a3c3b7f..7f3fbcf 100644 --- a/kasu/urls.py +++ b/src/kasu/urls.py @@ -13,11 +13,11 @@ admin.autodiscover() urlpatterns = patterns( '', - url(r'^$', RedirectView.as_view(url='/index.html')), + url(r'^$', RedirectView.as_view(url='/index.html', permanent=True)), url(r'^404/$', TemplateView.as_view(template_name='404.html')), url(r'^admin/doc/', include('django.contrib.admindocs.urls')), url(r'^admin/', include(admin.site.urls)), - url(r'^comments/', include('django.contrib.comments.urls')), + url(r'^comments/', include('django_comments.urls')), url(r'^content/', include('content.urls')), url(r'^events/', include('events.urls')), url(r'^events.ics$', EventListIcal.as_view(), name='events-ical'), @@ -40,16 +40,15 @@ urlpatterns = patterns( if settings.DEBUG: urlpatterns += patterns('', - url(r'^media/(?P.*)$', - 'django.views.static.serve', { - 'document_root': settings.MEDIA_ROOT, - }), + url(r'^media/(?P.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}), ) -if 'rosetta' in settings.INSTALLED_APPS: - urlpatterns += patterns('', - url(r'^rosetta/', include('rosetta.urls')), - ) + if 'rosetta' in settings.INSTALLED_APPS: + urlpatterns += patterns('', url(r'^rosetta/', include('rosetta.urls')),) + + if 'debug_toolbar' in settings.INSTALLED_APPS: + import debug_toolbar + urlpatterns += patterns('', url(r'^__debug__/', include(debug_toolbar.urls)),) urlpatterns += patterns('', url(r'^add_page/(?P[\+\.\-\d\w\/]+)/$', diff --git a/kasu/utils.py b/src/kasu/utils.py similarity index 100% rename from kasu/utils.py rename to src/kasu/utils.py diff --git a/kasu/wsgi.py b/src/kasu/wsgi.py similarity index 100% rename from kasu/wsgi.py rename to src/kasu/wsgi.py diff --git a/mahjong_ranking/__init__.py b/src/mahjong_ranking/__init__.py similarity index 100% rename from mahjong_ranking/__init__.py rename to src/mahjong_ranking/__init__.py diff --git a/mahjong_ranking/admin.py b/src/mahjong_ranking/admin.py similarity index 100% rename from mahjong_ranking/admin.py rename to src/mahjong_ranking/admin.py diff --git a/mahjong_ranking/forms.py b/src/mahjong_ranking/forms.py similarity index 100% rename from mahjong_ranking/forms.py rename to src/mahjong_ranking/forms.py diff --git a/mahjong_ranking/locale/de/LC_MESSAGES/django.mo b/src/mahjong_ranking/locale/de/LC_MESSAGES/django.mo similarity index 100% rename from mahjong_ranking/locale/de/LC_MESSAGES/django.mo rename to src/mahjong_ranking/locale/de/LC_MESSAGES/django.mo diff --git a/mahjong_ranking/locale/de/LC_MESSAGES/django.po b/src/mahjong_ranking/locale/de/LC_MESSAGES/django.po similarity index 100% rename from mahjong_ranking/locale/de/LC_MESSAGES/django.po rename to src/mahjong_ranking/locale/de/LC_MESSAGES/django.po diff --git a/mahjong_ranking/management/__init__.py b/src/mahjong_ranking/management/__init__.py similarity index 100% rename from mahjong_ranking/management/__init__.py rename to src/mahjong_ranking/management/__init__.py diff --git a/mahjong_ranking/management/commands/__init__.py b/src/mahjong_ranking/management/commands/__init__.py similarity index 100% rename from mahjong_ranking/management/commands/__init__.py rename to src/mahjong_ranking/management/commands/__init__.py diff --git a/mahjong_ranking/management/commands/random-ranking.py b/src/mahjong_ranking/management/commands/random-ranking.py similarity index 100% rename from mahjong_ranking/management/commands/random-ranking.py rename to src/mahjong_ranking/management/commands/random-ranking.py diff --git a/mahjong_ranking/middleware.py b/src/mahjong_ranking/middleware.py similarity index 91% rename from mahjong_ranking/middleware.py rename to src/mahjong_ranking/middleware.py index 5ac5676..c880aa5 100644 --- a/mahjong_ranking/middleware.py +++ b/src/mahjong_ranking/middleware.py @@ -17,15 +17,12 @@ class DenormalizationUpdateMiddleware(object): response. """ + @transaction.atomic def process_response(self, request, response): if request.method != 'POST': # We only do this in POST request, to speedup the responsetime. return response - # Start an SQL Transaction - transaction.enter_transaction_management() - transaction.managed(True) - # recalculate tournament (event) rankings: event_ranking_queue = cache.get('event_ranking_queue', set()) if len(event_ranking_queue) > 0: @@ -38,7 +35,6 @@ class DenormalizationUpdateMiddleware(object): ranking.recalculate() self.recalculate_event_placement(event_id) cache.set('event_ranking_queue', event_ranking_queue, 360) - transaction.commit() # recalculate dirty kyu/dan rankings: kyu_dan_ranking_queue = cache.get('kyu_dan_ranking_queue', set()) @@ -48,7 +44,6 @@ class DenormalizationUpdateMiddleware(object): user_id=user_id)[0] ranking.recalculate() cache.set('kyu_dan_ranking_queue', kyu_dan_ranking_queue, 360) - transaction.commit() # Recaluclate Dirty LadderRankings: ladder_ranking_queue = cache.get('ladder_ranking_queue', set()) @@ -62,7 +57,6 @@ class DenormalizationUpdateMiddleware(object): logger.error('Season: %i; Benutzer Nr. %i - existiert nicht!', season_id, user_id) cache.set('ladder_ranking_queue', ladder_ranking_queue, 360) - transaction.commit() # Recaluclate Dirty Season Placements: ladder_season_queue = cache.get('ladder_season_queue', set()) @@ -70,9 +64,6 @@ class DenormalizationUpdateMiddleware(object): season = models.LadderSeason.objects.get_or_create(pk=season_id)[0] season.recalculate() cache.set('ladder_season_queue', ladder_season_queue, 360) - transaction.commit() - - transaction.leave_transaction_management() return response def recalculate_event_placement(self, event_id): diff --git a/mahjong_ranking/models.py b/src/mahjong_ranking/models.py similarity index 100% rename from mahjong_ranking/models.py rename to src/mahjong_ranking/models.py diff --git a/mahjong_ranking/templates/mahjong_ranking/eventranking_list.html b/src/mahjong_ranking/templates/mahjong_ranking/eventranking_list.html similarity index 100% rename from mahjong_ranking/templates/mahjong_ranking/eventranking_list.html rename to src/mahjong_ranking/templates/mahjong_ranking/eventranking_list.html diff --git a/mahjong_ranking/templates/mahjong_ranking/hanchan_confirm_delete.html b/src/mahjong_ranking/templates/mahjong_ranking/hanchan_confirm_delete.html similarity index 100% rename from mahjong_ranking/templates/mahjong_ranking/hanchan_confirm_delete.html rename to src/mahjong_ranking/templates/mahjong_ranking/hanchan_confirm_delete.html diff --git a/mahjong_ranking/templates/mahjong_ranking/hanchan_form.html b/src/mahjong_ranking/templates/mahjong_ranking/hanchan_form.html similarity index 100% rename from mahjong_ranking/templates/mahjong_ranking/hanchan_form.html rename to src/mahjong_ranking/templates/mahjong_ranking/hanchan_form.html diff --git a/mahjong_ranking/templates/mahjong_ranking/hanchan_list.html b/src/mahjong_ranking/templates/mahjong_ranking/hanchan_list.html similarity index 100% rename from mahjong_ranking/templates/mahjong_ranking/hanchan_list.html rename to src/mahjong_ranking/templates/mahjong_ranking/hanchan_list.html diff --git a/mahjong_ranking/templates/mahjong_ranking/kyudanranking_list.html b/src/mahjong_ranking/templates/mahjong_ranking/kyudanranking_list.html similarity index 100% rename from mahjong_ranking/templates/mahjong_ranking/kyudanranking_list.html rename to src/mahjong_ranking/templates/mahjong_ranking/kyudanranking_list.html diff --git a/mahjong_ranking/templates/mahjong_ranking/ladderranking_list.html b/src/mahjong_ranking/templates/mahjong_ranking/ladderranking_list.html similarity index 100% rename from mahjong_ranking/templates/mahjong_ranking/ladderranking_list.html rename to src/mahjong_ranking/templates/mahjong_ranking/ladderranking_list.html diff --git a/mahjong_ranking/templates/mahjong_ranking/page.html b/src/mahjong_ranking/templates/mahjong_ranking/page.html similarity index 100% rename from mahjong_ranking/templates/mahjong_ranking/page.html rename to src/mahjong_ranking/templates/mahjong_ranking/page.html diff --git a/mahjong_ranking/templates/mahjong_ranking/player_dan_score.html b/src/mahjong_ranking/templates/mahjong_ranking/player_dan_score.html similarity index 100% rename from mahjong_ranking/templates/mahjong_ranking/player_dan_score.html rename to src/mahjong_ranking/templates/mahjong_ranking/player_dan_score.html diff --git a/mahjong_ranking/templates/mahjong_ranking/player_invalid_score.html b/src/mahjong_ranking/templates/mahjong_ranking/player_invalid_score.html similarity index 100% rename from mahjong_ranking/templates/mahjong_ranking/player_invalid_score.html rename to src/mahjong_ranking/templates/mahjong_ranking/player_invalid_score.html diff --git a/mahjong_ranking/templates/mahjong_ranking/player_kyu_score.html b/src/mahjong_ranking/templates/mahjong_ranking/player_kyu_score.html similarity index 100% rename from mahjong_ranking/templates/mahjong_ranking/player_kyu_score.html rename to src/mahjong_ranking/templates/mahjong_ranking/player_kyu_score.html diff --git a/mahjong_ranking/templates/mahjong_ranking/player_ladder_score.html b/src/mahjong_ranking/templates/mahjong_ranking/player_ladder_score.html similarity index 100% rename from mahjong_ranking/templates/mahjong_ranking/player_ladder_score.html rename to src/mahjong_ranking/templates/mahjong_ranking/player_ladder_score.html diff --git a/mahjong_ranking/tests.py b/src/mahjong_ranking/tests.py similarity index 100% rename from mahjong_ranking/tests.py rename to src/mahjong_ranking/tests.py diff --git a/mahjong_ranking/urls.py b/src/mahjong_ranking/urls.py similarity index 98% rename from mahjong_ranking/urls.py rename to src/mahjong_ranking/urls.py index abf43ae..cb9edcf 100644 --- a/mahjong_ranking/urls.py +++ b/src/mahjong_ranking/urls.py @@ -13,7 +13,7 @@ import views urlpatterns = patterns( '', - url('^$', RedirectView.as_view(pattern_name='mahjong-ladder')), + url('^$', RedirectView.as_view(pattern_name='mahjong-ladder', permanent=True)), url(r'players/$', views.KyuDanRankingList.as_view(), name="kyudanranking-list"), url(r'players/(?P[\+\-\w]+)/$', views.KyuDanRankingList.as_view(), diff --git a/mahjong_ranking/views.py b/src/mahjong_ranking/views.py similarity index 99% rename from mahjong_ranking/views.py rename to src/mahjong_ranking/views.py index 041d6a2..3d26de4 100644 --- a/mahjong_ranking/views.py +++ b/src/mahjong_ranking/views.py @@ -292,10 +292,11 @@ class PlayerScore(LoginRequiredMixin, generic.ListView): def get(self, request, *args, **kwargs): try: - self.user = auth.get_user_model().objects.get( + user_model = auth.get_user_model() + self.user = user_model.objects.get( username=self.kwargs.get('username')) self.membership = Membership.objects.get(user=self.user) - except auth.get_user_model().DoesNotExist: + except user_model.DoesNotExist: raise django.http.Http404( _("No user found matching the name %s") % self.kwargs.get( 'username')) diff --git a/kasu/settings/__init__.py b/src/maistar_ranking/__init__.py similarity index 100% rename from kasu/settings/__init__.py rename to src/maistar_ranking/__init__.py diff --git a/maistar_ranking/admin.py b/src/maistar_ranking/admin.py similarity index 100% rename from maistar_ranking/admin.py rename to src/maistar_ranking/admin.py diff --git a/maistar_ranking/forms.py b/src/maistar_ranking/forms.py similarity index 100% rename from maistar_ranking/forms.py rename to src/maistar_ranking/forms.py diff --git a/maistar_ranking/locale/de/LC_MESSAGES/django.mo b/src/maistar_ranking/locale/de/LC_MESSAGES/django.mo similarity index 100% rename from maistar_ranking/locale/de/LC_MESSAGES/django.mo rename to src/maistar_ranking/locale/de/LC_MESSAGES/django.mo diff --git a/maistar_ranking/locale/de/LC_MESSAGES/django.po b/src/maistar_ranking/locale/de/LC_MESSAGES/django.po similarity index 100% rename from maistar_ranking/locale/de/LC_MESSAGES/django.po rename to src/maistar_ranking/locale/de/LC_MESSAGES/django.po diff --git a/maistar_ranking/managers.py b/src/maistar_ranking/managers.py similarity index 100% rename from maistar_ranking/managers.py rename to src/maistar_ranking/managers.py diff --git a/maistar_ranking/models.py b/src/maistar_ranking/models.py similarity index 100% rename from maistar_ranking/models.py rename to src/maistar_ranking/models.py diff --git a/maistar_ranking/settings.py b/src/maistar_ranking/settings.py similarity index 100% rename from maistar_ranking/settings.py rename to src/maistar_ranking/settings.py diff --git a/maistar_ranking/templates/maistar_ranking/game_form.html b/src/maistar_ranking/templates/maistar_ranking/game_form.html similarity index 100% rename from maistar_ranking/templates/maistar_ranking/game_form.html rename to src/maistar_ranking/templates/maistar_ranking/game_form.html diff --git a/maistar_ranking/templates/maistar_ranking/game_list.html b/src/maistar_ranking/templates/maistar_ranking/game_list.html similarity index 100% rename from maistar_ranking/templates/maistar_ranking/game_list.html rename to src/maistar_ranking/templates/maistar_ranking/game_list.html diff --git a/maistar_ranking/templates/maistar_ranking/hanchan_confirm_delete.html b/src/maistar_ranking/templates/maistar_ranking/hanchan_confirm_delete.html similarity index 100% rename from maistar_ranking/templates/maistar_ranking/hanchan_confirm_delete.html rename to src/maistar_ranking/templates/maistar_ranking/hanchan_confirm_delete.html diff --git a/maistar_ranking/templates/maistar_ranking/page.html b/src/maistar_ranking/templates/maistar_ranking/page.html similarity index 100% rename from maistar_ranking/templates/maistar_ranking/page.html rename to src/maistar_ranking/templates/maistar_ranking/page.html diff --git a/maistar_ranking/templates/maistar_ranking/player_game_list.html b/src/maistar_ranking/templates/maistar_ranking/player_game_list.html similarity index 100% rename from maistar_ranking/templates/maistar_ranking/player_game_list.html rename to src/maistar_ranking/templates/maistar_ranking/player_game_list.html diff --git a/maistar_ranking/templates/maistar_ranking/ranking_list.html b/src/maistar_ranking/templates/maistar_ranking/ranking_list.html similarity index 100% rename from maistar_ranking/templates/maistar_ranking/ranking_list.html rename to src/maistar_ranking/templates/maistar_ranking/ranking_list.html diff --git a/maistar_ranking/urls.py b/src/maistar_ranking/urls.py similarity index 98% rename from maistar_ranking/urls.py rename to src/maistar_ranking/urls.py index 4c064e9..6aab118 100644 --- a/maistar_ranking/urls.py +++ b/src/maistar_ranking/urls.py @@ -12,7 +12,7 @@ from .views import DeleteGame, ListGames, ListPlayerGames, \ urlpatterns = patterns( 'maistar_ranking.views', - url('^$', RedirectView.as_view(pattern_name='maistar-ranking')), + url('^$', RedirectView.as_view(pattern_name='maistar-ranking', permanent=True)), url(r'ranking/$', ListRankings.as_view(), name="maistar-ranking"), url(r'ranking/(?P[\d]+)/$', ListRankings.as_view(), name="maistar-ranking"), # @IgnorePep8 diff --git a/maistar_ranking/views.py b/src/maistar_ranking/views.py similarity index 100% rename from maistar_ranking/views.py rename to src/maistar_ranking/views.py diff --git a/src/manage.py b/src/manage.py new file mode 100755 index 0000000..41be209 --- /dev/null +++ b/src/manage.py @@ -0,0 +1,11 @@ +#!/usr/bin/env python +import os +import sys + +if __name__ == "__main__": + sys.path.append(os.path.join(os.path.dirname(__file__))) + os.environ.setdefault("DJANGO_SETTINGS_MODULE", "kasu.settings") + + from django.core.management import execute_from_command_line + + execute_from_command_line(sys.argv) \ No newline at end of file diff --git a/membership/__init__.py b/src/membership/__init__.py similarity index 100% rename from membership/__init__.py rename to src/membership/__init__.py diff --git a/membership/admin.py b/src/membership/admin.py similarity index 100% rename from membership/admin.py rename to src/membership/admin.py diff --git a/membership/forms.py b/src/membership/forms.py similarity index 100% rename from membership/forms.py rename to src/membership/forms.py diff --git a/membership/locale/de/LC_MESSAGES/django.mo b/src/membership/locale/de/LC_MESSAGES/django.mo similarity index 100% rename from membership/locale/de/LC_MESSAGES/django.mo rename to src/membership/locale/de/LC_MESSAGES/django.mo diff --git a/membership/locale/de/LC_MESSAGES/django.po b/src/membership/locale/de/LC_MESSAGES/django.po similarity index 100% rename from membership/locale/de/LC_MESSAGES/django.po rename to src/membership/locale/de/LC_MESSAGES/django.po diff --git a/membership/management/__init__.py b/src/membership/management/__init__.py similarity index 100% rename from membership/management/__init__.py rename to src/membership/management/__init__.py diff --git a/membership/management/commands/__init__.py b/src/membership/management/commands/__init__.py similarity index 100% rename from membership/management/commands/__init__.py rename to src/membership/management/commands/__init__.py diff --git a/membership/management/commands/cleanup-registration.py b/src/membership/management/commands/cleanup-registration.py similarity index 100% rename from membership/management/commands/cleanup-registration.py rename to src/membership/management/commands/cleanup-registration.py diff --git a/membership/management/commands/get-user.py b/src/membership/management/commands/get-user.py similarity index 100% rename from membership/management/commands/get-user.py rename to src/membership/management/commands/get-user.py diff --git a/membership/models.py b/src/membership/models.py similarity index 95% rename from membership/models.py rename to src/membership/models.py index c753b51..c81ec75 100644 --- a/membership/models.py +++ b/src/membership/models.py @@ -85,9 +85,8 @@ class ActivationRequest(models.Model): The key will be send by email to the user if the user clicks on the link he can activate his in_active account. """ - user = models.ForeignKey( + user = models.OneToOneField( settings.AUTH_USER_MODEL, - unique=True, verbose_name=_('user') ) activation_key = models.CharField(_('activation key'), max_length=40) @@ -150,14 +149,10 @@ class MembershipManager(models.Manager): Userdata. """ try: - if user: - return super(MembershipManager, self).get(user=user) - elif username: - return super(MembershipManager, self).get( - user__username=username) - except Membership.DoesNotExist: - if username: + if username and not user: user = get_user_model().objects.get(username=username) + return super(MembershipManager, self).get(user=user) + except Membership.DoesNotExist: membership = Membership( user=user, nickname=user.username, @@ -165,14 +160,12 @@ class MembershipManager(models.Manager): last_name=user.last_name, email=user.email ) + membership.save() return membership class Membership(models.Model): - user = models.ForeignKey( - settings.AUTH_USER_MODEL, - unique=True - ) + user = models.OneToOneField(settings.AUTH_USER_MODEL) nickname = models.SlugField(_('Nickname'), unique=True) gender = models.CharField( _("Gender"), diff --git a/membership/specs.py b/src/membership/specs.py similarity index 100% rename from membership/specs.py rename to src/membership/specs.py diff --git a/membership/templates/membership/activation_error.html b/src/membership/templates/membership/activation_error.html similarity index 100% rename from membership/templates/membership/activation_error.html rename to src/membership/templates/membership/activation_error.html diff --git a/membership/templates/membership/activation_sent.html b/src/membership/templates/membership/activation_sent.html similarity index 100% rename from membership/templates/membership/activation_sent.html rename to src/membership/templates/membership/activation_sent.html diff --git a/membership/templates/membership/activation_successful.html b/src/membership/templates/membership/activation_successful.html similarity index 100% rename from membership/templates/membership/activation_successful.html rename to src/membership/templates/membership/activation_successful.html diff --git a/membership/templates/membership/email/activation_email.html b/src/membership/templates/membership/email/activation_email.html similarity index 100% rename from membership/templates/membership/email/activation_email.html rename to src/membership/templates/membership/email/activation_email.html diff --git a/membership/templates/membership/email/activation_email.txt b/src/membership/templates/membership/email/activation_email.txt similarity index 100% rename from membership/templates/membership/email/activation_email.txt rename to src/membership/templates/membership/email/activation_email.txt diff --git a/membership/templates/membership/email/password_reset_email.html b/src/membership/templates/membership/email/password_reset_email.html similarity index 100% rename from membership/templates/membership/email/password_reset_email.html rename to src/membership/templates/membership/email/password_reset_email.html diff --git a/membership/templates/membership/email/password_reset_subject.txt b/src/membership/templates/membership/email/password_reset_subject.txt similarity index 100% rename from membership/templates/membership/email/password_reset_subject.txt rename to src/membership/templates/membership/email/password_reset_subject.txt diff --git a/membership/templates/membership/hanchan_table.html b/src/membership/templates/membership/hanchan_table.html similarity index 100% rename from membership/templates/membership/hanchan_table.html rename to src/membership/templates/membership/hanchan_table.html diff --git a/membership/templates/membership/membership_detail.html b/src/membership/templates/membership/membership_detail.html similarity index 100% rename from membership/templates/membership/membership_detail.html rename to src/membership/templates/membership/membership_detail.html diff --git a/membership/templates/membership/membership_form.html b/src/membership/templates/membership/membership_form.html similarity index 100% rename from membership/templates/membership/membership_form.html rename to src/membership/templates/membership/membership_form.html diff --git a/membership/templates/membership/register_form.html b/src/membership/templates/membership/register_form.html similarity index 100% rename from membership/templates/membership/register_form.html rename to src/membership/templates/membership/register_form.html diff --git a/membership/templates/membership/register_successful.html b/src/membership/templates/membership/register_successful.html similarity index 100% rename from membership/templates/membership/register_successful.html rename to src/membership/templates/membership/register_successful.html diff --git a/membership/urls.py b/src/membership/urls.py similarity index 100% rename from membership/urls.py rename to src/membership/urls.py diff --git a/membership/views.py b/src/membership/views.py similarity index 87% rename from membership/views.py rename to src/membership/views.py index f38f51c..8797a04 100644 --- a/membership/views.py +++ b/src/membership/views.py @@ -2,10 +2,9 @@ from django import http from django.conf import settings from django.contrib import auth, messages from django.core.urlresolvers import reverse +from django.http import Http404 from django.utils.translation import ugettext as _ -from django.shortcuts import get_object_or_404 from django.views import generic -from django.contrib.auth import get_user_model from mahjong_ranking.models import KyuDanRanking, LadderRanking, LadderSeason from utils import mixins @@ -80,12 +79,14 @@ class MembershipDetail(mixins.LoginRequiredMixin, generic.DetailView): model = models.Membership def get_object(self, queryset=None): - if self.kwargs.get('username'): - user = get_object_or_404(get_user_model(), - username=self.kwargs['username']) - return models.Membership.objects.get_or_create(user=user)[0] - elif self.request.user.is_authenticated(): - return models.Membership.objects.get(user=self.request.user) + try: + if self.kwargs.get('username'): + return models.Membership.objects.get(username=self.kwargs['username']) + elif self.request.user.is_authenticated(): + return models.Membership.objects.get(user=self.request.user) + except models.Membership.DoesNotExist: + raise Http404(_("No %(verbose_name)s found matching the query") % + {'verbose_name': self.model._meta.verbose_name}) def get_context_data(self, **kwargs): context = generic.DetailView.get_context_data(self, **kwargs) diff --git a/utils/__init__.py b/src/utils/__init__.py similarity index 100% rename from utils/__init__.py rename to src/utils/__init__.py diff --git a/utils/countries.py b/src/utils/countries.py similarity index 100% rename from utils/countries.py rename to src/utils/countries.py diff --git a/utils/forms.py b/src/utils/forms.py similarity index 100% rename from utils/forms.py rename to src/utils/forms.py diff --git a/utils/html5/__init__.py b/src/utils/html5/__init__.py similarity index 100% rename from utils/html5/__init__.py rename to src/utils/html5/__init__.py diff --git a/utils/html5/base.py b/src/utils/html5/base.py similarity index 100% rename from utils/html5/base.py rename to src/utils/html5/base.py diff --git a/utils/html5/forms.py b/src/utils/html5/forms.py similarity index 99% rename from utils/html5/forms.py rename to src/utils/html5/forms.py index 57096e7..f51e702 100644 --- a/utils/html5/forms.py +++ b/src/utils/html5/forms.py @@ -8,7 +8,7 @@ import re from django.conf import settings from django.core import validators from django.core.validators import EMPTY_VALUES -from django.forms import util, Form, ModelForm, ValidationError # @UnusedImport +from django.forms import utils, Form, ModelForm, ValidationError import django.forms.fields from django.utils.translation import gettext as _ diff --git a/utils/html5/models.py b/src/utils/html5/models.py similarity index 100% rename from utils/html5/models.py rename to src/utils/html5/models.py diff --git a/utils/html5/views.py b/src/utils/html5/views.py similarity index 100% rename from utils/html5/views.py rename to src/utils/html5/views.py diff --git a/utils/html5/widgets.py b/src/utils/html5/widgets.py similarity index 99% rename from utils/html5/widgets.py rename to src/utils/html5/widgets.py index 2514c18..6f6eeae 100644 --- a/utils/html5/widgets.py +++ b/src/utils/html5/widgets.py @@ -5,7 +5,7 @@ Created on 08.05.2011 """ from django.conf import settings from django.forms import widgets -from django.forms.util import flatatt +from django.forms.utils import flatatt from django.utils import formats from django.utils.encoding import force_unicode, force_text from django.utils.html import conditional_escape diff --git a/utils/html_cleaner.py b/src/utils/html_cleaner.py similarity index 100% rename from utils/html_cleaner.py rename to src/utils/html_cleaner.py diff --git a/utils/locale/de/LC_MESSAGES/django.mo b/src/utils/locale/de/LC_MESSAGES/django.mo similarity index 100% rename from utils/locale/de/LC_MESSAGES/django.mo rename to src/utils/locale/de/LC_MESSAGES/django.mo diff --git a/utils/locale/de/LC_MESSAGES/django.po b/src/utils/locale/de/LC_MESSAGES/django.po similarity index 100% rename from utils/locale/de/LC_MESSAGES/django.po rename to src/utils/locale/de/LC_MESSAGES/django.po diff --git a/utils/management/__init__.py b/src/utils/management/__init__.py similarity index 100% rename from utils/management/__init__.py rename to src/utils/management/__init__.py diff --git a/utils/management/commands/__init__.py b/src/utils/management/commands/__init__.py similarity index 100% rename from utils/management/commands/__init__.py rename to src/utils/management/commands/__init__.py diff --git a/utils/management/commands/compresscss.py b/src/utils/management/commands/compresscss.py similarity index 100% rename from utils/management/commands/compresscss.py rename to src/utils/management/commands/compresscss.py diff --git a/utils/management/commands/compressjs.py b/src/utils/management/commands/compressjs.py similarity index 100% rename from utils/management/commands/compressjs.py rename to src/utils/management/commands/compressjs.py diff --git a/utils/management/commands/scss-compiler.py b/src/utils/management/commands/scss-compiler.py similarity index 100% rename from utils/management/commands/scss-compiler.py rename to src/utils/management/commands/scss-compiler.py diff --git a/utils/massmailer.py b/src/utils/massmailer.py similarity index 100% rename from utils/massmailer.py rename to src/utils/massmailer.py diff --git a/utils/middleware.py b/src/utils/middleware.py similarity index 100% rename from utils/middleware.py rename to src/utils/middleware.py diff --git a/utils/mixins.py b/src/utils/mixins.py similarity index 100% rename from utils/mixins.py rename to src/utils/mixins.py diff --git a/maistar_ranking/__init__.py b/src/utils/templatetags/__init__.py similarity index 100% rename from maistar_ranking/__init__.py rename to src/utils/templatetags/__init__.py diff --git a/utils/templatetags/markup.py b/src/utils/templatetags/markup.py similarity index 100% rename from utils/templatetags/markup.py rename to src/utils/templatetags/markup.py diff --git a/templates/debug_toolbar/base.html b/templates/debug_toolbar/base.html new file mode 100644 index 0000000..30369f9 --- /dev/null +++ b/templates/debug_toolbar/base.html @@ -0,0 +1,68 @@ +{% load i18n %}{% load static from staticfiles %} + + +{% if toolbar.config.JQUERY_URL %} + + + + +{% else %} + +{% endif %} + + diff --git a/templates/debug_toolbar/panels/cache.html b/templates/debug_toolbar/panels/cache.html new file mode 100644 index 0000000..014e5f6 --- /dev/null +++ b/templates/debug_toolbar/panels/cache.html @@ -0,0 +1,69 @@ +{% load i18n %} +

{% trans "Summary" %}

+ + + + + + + + + + + + + + + + + +
{% trans "Total calls" %}{% trans "Total time" %}{% trans "Cache hits" %}{% trans "Cache misses" %}
{{ total_calls }}{{ total_time }} ms{{ hits }}{{ misses }}
+

{% trans "Commands" %}

+ + + + {% for name in counts.keys %} + + {% endfor %} + + + + + {% for value in counts.values %} + + {% endfor %} + + +
{{ name }}
{{ value }}
+{% if calls %} +

{% trans "Calls" %}

+ + + + + + + + + + + + {% for call in calls %} + + + + + + + + + + + + + {% endfor %} + +
{% trans "Time (ms)" %}{% trans "Type" %}{% trans "Arguments" %}{% trans "Keyword arguments" %}{% trans "Backend" %}
+ + + {{ call.time|floatformat:"4" }}{{ call.name|escape }}{{ call.args|escape }}{{ call.kwargs|escape }}{{ call.backend }}
{{ call.trace }}
+{% endif %} diff --git a/templates/debug_toolbar/panels/headers.html b/templates/debug_toolbar/panels/headers.html new file mode 100644 index 0000000..6b43e94 --- /dev/null +++ b/templates/debug_toolbar/panels/headers.html @@ -0,0 +1,60 @@ +{% load i18n %} + +

{% trans "Request headers" %}

+ + + + + + + + + + {% for key, value in request_headers.items %} + + + + + {% endfor %} + +
{% trans "Key" %}{% trans "Value" %}
{{ key|escape }}{{ value|escape }}
+ +

{% trans "Response headers" %}

+ + + + + + + + + + {% for key, value in response_headers.items %} + + + + + {% endfor %} + +
{% trans "Key" %}{% trans "Value" %}
{{ key|escape }}{{ value|escape }}
+ +

{% trans "WSGI environ" %}

+ +

{% trans "Since the WSGI environ inherits the environment of the server, only a significant subset is shown below." %}

+ + + + + + + + + + {% for key, value in environ.items %} + + + + + {% endfor %} + +
{% trans "Key" %}{% trans "Value" %}
{{ key|escape }}{{ value|escape }}
diff --git a/templates/debug_toolbar/panels/logging.html b/templates/debug_toolbar/panels/logging.html new file mode 100644 index 0000000..3908f4f --- /dev/null +++ b/templates/debug_toolbar/panels/logging.html @@ -0,0 +1,28 @@ +{% load i18n %} +{% if records %} + + + + + + + + + + + + {% for record in records %} + + + + + + + + {% endfor %} + +
{% trans "Level" %}{% trans "Time" %}{% trans "Channel" %}{% trans "Message" %}{% trans "Location" %}
{{ record.level }}{{ record.time|date:"h:i:s m/d/Y" }}{{ record.channel|default:"-" }}{{ record.message|linebreaksbr }}{{ record.file }}:{{ record.line }}
+{% else %} +

{% trans "No messages logged" %}.

+{% endif %} + diff --git a/templates/debug_toolbar/panels/profiling.html b/templates/debug_toolbar/panels/profiling.html new file mode 100644 index 0000000..7310016 --- /dev/null +++ b/templates/debug_toolbar/panels/profiling.html @@ -0,0 +1,36 @@ +{% load i18n %}{% load static from staticfiles %} + + + + + + + + + + + + + {% for call in func_list %} + + + + + + + + + {% endfor %} + +
{% trans "Call" %}{% trans "CumTime" %}{% trans "Per" %}{% trans "TotTime" %}{% trans "Per" %}{% trans "Count" %}
+
+ {% if call.has_subfuncs %} + - + {% else %} + + {% endif %} + {{ call.func_std_string }} +
+
{{ call.cumtime|floatformat:3 }}{{ call.cumtime_per_call|floatformat:3 }}{{ call.tottime|floatformat:3 }}{{ call.tottime_per_call|floatformat:3 }}{{ call.count }}
+ + diff --git a/templates/debug_toolbar/panels/request.html b/templates/debug_toolbar/panels/request.html new file mode 100644 index 0000000..1cea669 --- /dev/null +++ b/templates/debug_toolbar/panels/request.html @@ -0,0 +1,124 @@ +{% load i18n %} + +

{% trans "View information" %}

+ + + + + + + + + + + + + + + + + +
{% trans "View function" %}{% trans "Arguments" %}{% trans "Keyword arguments" %}{% trans "URL name" %}
{{ view_func }}{{ view_args|pprint }}{{ view_kwargs|pprint }}{{ view_urlname }}
+ +{% if cookies %} +

{% trans "Cookies" %}

+ + + + + + + + + + + + + {% for key, value in cookies %} + + + + + {% endfor %} + +
{% trans "Variable" %}{% trans "Value" %}
{{ key|pprint }}{{ value|pprint }}
+{% else %} +

{% trans "No cookies" %}

+{% endif %} + +{% if session %} +

{% trans "Session data" %}

+ + + + + + + + + + + + + {% for key, value in session %} + + + + + {% endfor %} + +
{% trans "Variable" %}{% trans "Value" %}
{{ key|pprint }}{{ value|pprint }}
+{% else %} +

{% trans "No session data" %}

+{% endif %} + +{% if get %} +

{% trans "GET data" %}

+ + + + + + + + + + + + + {% for key, value in get %} + + + + + {% endfor %} + +
{% trans "Variable" %}{% trans "Value" %}
{{ key|pprint }}{{ value|pprint }}
+{% else %} +

{% trans "No GET data" %}

+{% endif %} + +{% if post %} +

{% trans "POST data" %}

+ + + + + + + + + + + + {% for key, value in post %} + + + + + {% endfor %} + +
{% trans "Variable" %}{% trans "Value" %}
{{ key|pprint }}{{ value|pprint }}
+{% else %} +

{% trans "No POST data" %}

+{% endif %} diff --git a/templates/debug_toolbar/panels/settings.html b/templates/debug_toolbar/panels/settings.html new file mode 100644 index 0000000..f6b5afe --- /dev/null +++ b/templates/debug_toolbar/panels/settings.html @@ -0,0 +1,17 @@ +{% load i18n %} + + + + + + + + + {% for name, value in settings.items %} + + + + + {% endfor %} + +
{% trans "Setting" %}{% trans "Value" %}
{{ name }}{{ value|pprint }}
diff --git a/templates/debug_toolbar/panels/signals.html b/templates/debug_toolbar/panels/signals.html new file mode 100644 index 0000000..ac32f37 --- /dev/null +++ b/templates/debug_toolbar/panels/signals.html @@ -0,0 +1,19 @@ +{% load i18n %} + + + + + + + + + + {% for name, signal, receivers in signals %} + + + + + + {% endfor %} + +
{% trans "Signal" %}{% trans "Providing" %}{% trans "Receivers" %}
{{ name|escape }}{{ signal.providing_args|join:", " }}{{ receivers|join:", " }}
diff --git a/templates/debug_toolbar/panels/sql.html b/templates/debug_toolbar/panels/sql.html new file mode 100644 index 0000000..f84512e --- /dev/null +++ b/templates/debug_toolbar/panels/sql.html @@ -0,0 +1,102 @@ +{% load i18n l10n %}{% load static from staticfiles %} +
+
    + {% for alias, info in databases %} +
  • +   {{ alias }} + {{ info.time_spent|floatformat:"2" }} ms ({% blocktrans count info.num_queries as num %}{{ num }} query{% plural %}{{ num }} queries{% endblocktrans %} + {% if info.duplicate_count %} + {% blocktrans with dupes=info.duplicate_count %}including {{ dupes }} duplicates{% endblocktrans %} + {% endif %}) +
  • + {% endfor %} +
+
+ +{% if queries %} + + + + + + + + + + + + {% for query in queries %} + + + + + + + + + + + + + {% endfor %} + +
 {% trans "Query" %}{% trans "Timeline" %}{% trans "Time (ms)" %}{% trans "Action" %}
  + + + +
+
{{ query.sql|safe }}
+
+ {% if query.duplicate_count %} + {% blocktrans with dupes=query.duplicate_count %}Duplicated {{ dupes }} times.{% endblocktrans %} + + {% endif %} +
+
{{ query.width_ratio }}%
+
+ {{ query.duration|floatformat:"2" }} + + + {% if query.params %} + {% if query.is_select %} +
+ {{ query.form }} + + + + + {% if query.vendor == 'mysql' %} + + {% endif %} +
+ {% endif %} + {% endif %} +
+
+

{% trans "Connection:" %} {{ query.alias }}

+ {% if query.iso_level %} +

{% trans "Isolation level:" %} {{ query.iso_level }}

+ {% endif %} + {% if query.trans_status %} +

{% trans "Transaction status:" %} {{ query.trans_status }}

+ {% endif %} + {% if query.stacktrace %} +
{{ query.stacktrace }}
+ {% endif %} + {% if query.template_info %} + + {% for line in query.template_info.context %} + + + + + {% endfor %} +
{{ line.num }}{{ line.content }}
+

{{ query.template_info.name|default:_("(unknown)") }}

+ {% endif %} +
+
+{% else %} +

{% trans "No SQL queries were recorded during this request." %}

+{% endif %} + + diff --git a/templates/debug_toolbar/panels/sql_explain.html b/templates/debug_toolbar/panels/sql_explain.html new file mode 100644 index 0000000..0fa30ab --- /dev/null +++ b/templates/debug_toolbar/panels/sql_explain.html @@ -0,0 +1,37 @@ +{% load i18n %}{% load static from staticfiles %} +
+ +

{% trans "SQL explained" %}

+
+
+
+
+
{% trans "Executed SQL" %}
+
{{ sql|safe }}
+
{% trans "Time" %}
+
{{ duration }} ms
+
{% trans "Database" %}
+
{{ alias }}
+
+ + + + {% for h in headers %} + + {% endfor %} + + + + {% for row in result %} + + {% for column in row %} + + {% endfor %} + + {% endfor %} + +
{{ h|upper }}
{{ column|escape }}
+
+
+ + diff --git a/templates/debug_toolbar/panels/sql_profile.html b/templates/debug_toolbar/panels/sql_profile.html new file mode 100644 index 0000000..e5813c6 --- /dev/null +++ b/templates/debug_toolbar/panels/sql_profile.html @@ -0,0 +1,44 @@ +{% load i18n %}{% load static from staticfiles %} +
+ +

{% trans "SQL profiled" %}

+
+
+
+ {% if result %} +
+
{% trans "Executed SQL" %}
+
{{ sql|safe }}
+
{% trans "Time" %}
+
{{ duration }} ms
+
{% trans "Database" %}
+
{{ alias }}
+
+ + + + {% for h in headers %} + + {% endfor %} + + + + {% for row in result %} + + {% for column in row %} + + {% endfor %} + + {% endfor %} + +
{{ h|upper }}
{{ column|escape }}
+ {% else %} +
+
{% trans "Error" %}
+
{{ result_error }}
+
+ {% endif %} +
+
+ + diff --git a/templates/debug_toolbar/panels/sql_select.html b/templates/debug_toolbar/panels/sql_select.html new file mode 100644 index 0000000..50cd0b1 --- /dev/null +++ b/templates/debug_toolbar/panels/sql_select.html @@ -0,0 +1,41 @@ +{% load i18n %}{% load static from staticfiles %} +
+ +

{% trans "SQL selected" %}

+
+
+
+
+
{% trans "Executed SQL" %}
+
{{ sql|safe }}
+
{% trans "Time" %}
+
{{ duration }} ms
+
{% trans "Database" %}
+
{{ alias }}
+
+ {% if result %} + + + + {% for h in headers %} + + {% endfor %} + + + + {% for row in result %} + + {% for column in row %} + + {% endfor %} + + {% endfor %} + +
{{ h|upper }}
{{ column|escape }}
+ {% else %} +

{% trans "Empty set" %}

+ {% endif %} +
+
+ + diff --git a/templates/debug_toolbar/panels/staticfiles.html b/templates/debug_toolbar/panels/staticfiles.html new file mode 100644 index 0000000..95c9ec8 --- /dev/null +++ b/templates/debug_toolbar/panels/staticfiles.html @@ -0,0 +1,57 @@ +{% load i18n %} +{% load static from staticfiles%} + +

{% blocktrans count staticfiles_dirs|length as dirs_count %}Static file path{% plural %}Static file paths{% endblocktrans %}

+{% if staticfiles_dirs %} +
    + {% for prefix, staticfiles_dir in staticfiles_dirs %} +
  1. {{ staticfiles_dir }}{% if prefix %} {% blocktrans %}(prefix {{ prefix }}){% endblocktrans %}{% endif %}
  2. + {% endfor %} +
+{% else %} +

{% trans "None" %}

+{% endif %} + +

{% blocktrans count staticfiles_apps|length as apps_count %}Static file app{% plural %}Static file apps{% endblocktrans %}

+{% if staticfiles_apps %} +
    + {% for static_app in staticfiles_apps %} +
  1. {{ static_app }}
  2. + {% endfor %} +
+{% else %} +

{% trans "None" %}

+{% endif %} + +

{% blocktrans count staticfiles|length as staticfiles_count %}Static file{% plural %}Static files{% endblocktrans %}

+{% if staticfiles %} +
+{% for staticfile in staticfiles %} +
{{ staticfile }}
+
{{ staticfile.real_path }}
+{% endfor %} +
+{% else %} +

{% trans "None" %}

+{% endif %} + + +{% for finder, payload in staticfiles_finders.items %} +

{{ finder }} ({% blocktrans count payload|length as payload_count %}{{ payload_count }} file{% plural %}{{ payload_count }} files{% endblocktrans %})

+ + + + + + + + + {% for path, real_path in payload %} + + + + + {% endfor %} + +
{% trans 'Path' %}{% trans 'Location' %}
{{ path }}{{ real_path }}
+{% endfor %} diff --git a/templates/debug_toolbar/panels/template_source.html b/templates/debug_toolbar/panels/template_source.html new file mode 100644 index 0000000..7914f2e --- /dev/null +++ b/templates/debug_toolbar/panels/template_source.html @@ -0,0 +1,14 @@ +{% load i18n %} +
+ +

{% trans "Template source:" %} {{ template_name }}

+
+
+
+ {% if not source.pygmentized %} + {{ source }} + {% else %} + {{ source }} + {% endif %} +
+
diff --git a/templates/debug_toolbar/panels/templates.html b/templates/debug_toolbar/panels/templates.html new file mode 100644 index 0000000..3ef5f83 --- /dev/null +++ b/templates/debug_toolbar/panels/templates.html @@ -0,0 +1,46 @@ +{% load i18n %}{% load static from staticfiles %} +

{% blocktrans count template_dirs|length as template_count %}Template path{% plural %}Template paths{% endblocktrans %}

+{% if template_dirs %} +
    + {% for template in template_dirs %} +
  1. {{ template }}
  2. + {% endfor %} +
+{% else %} +

{% trans "None" %}

+{% endif %} + +

{% blocktrans count templates|length as template_count %}Template{% plural %}Templates{% endblocktrans %}

+{% if templates %} +
+{% for template in templates %} +
{{ template.template.name|addslashes }}
+
{{ template.template.origin_name|addslashes }}
+ {% if template.context %} +
+ + +
+ {% endif %} +{% endfor %} +
+{% else %} +

{% trans "None" %}

+{% endif %} + +

{% blocktrans count context_processors|length as context_processors_count %}Context processor{% plural %}Context processors{% endblocktrans %}

+{% if context_processors %} +
+{% for key, value in context_processors.items %} +
{{ key|escape }}
+
+ + +
+{% endfor %} +
+{% else %} +

{% trans "None" %}

+{% endif %} + + diff --git a/templates/debug_toolbar/panels/timer.html b/templates/debug_toolbar/panels/timer.html new file mode 100644 index 0000000..c622d59 --- /dev/null +++ b/templates/debug_toolbar/panels/timer.html @@ -0,0 +1,44 @@ +{% load i18n %}{% load static from staticfiles %} +

{% trans "Resource usage" %}

+ + + + + + + + + + + + + {% for key, value in rows %} + + + + + {% endfor %} + +
{% trans "Resource" %}{% trans "Value" %}
{{ key|escape }}{{ value|escape }}
+ + + + diff --git a/templates/debug_toolbar/panels/versions.html b/templates/debug_toolbar/panels/versions.html new file mode 100644 index 0000000..2c614f1 --- /dev/null +++ b/templates/debug_toolbar/panels/versions.html @@ -0,0 +1,17 @@ +{% load i18n %} + + + + + + + + + {% for package, version in versions.items %} + + + + + {% endfor %} + +
{% trans "Name" %}{% trans "Version" %}
{{ package }}{{ version }}
diff --git a/templates/debug_toolbar/redirect.html b/templates/debug_toolbar/redirect.html new file mode 100644 index 0000000..365fb48 --- /dev/null +++ b/templates/debug_toolbar/redirect.html @@ -0,0 +1,16 @@ +{% load i18n %} + + + + + +

{{ status_line }}

+

{% trans "Location:" %} {{ redirect_to }}

+

+ {% trans "The Django Debug Toolbar has intercepted a redirect to the above URL for debug viewing purposes. You can click the above link to continue with the redirect as normal." %} +

+ + + diff --git a/utils/templatetags/__init__.py b/utils/templatetags/__init__.py deleted file mode 100644 index e69de29..0000000 From 617b7131fe136b7e4ef941f699473f2489778838 Mon Sep 17 00:00:00 2001 From: Christian Berg Date: Mon, 10 Aug 2015 20:49:07 +0200 Subject: [PATCH 02/93] =?UTF-8?q?Vereinfachung=20Membership=20ist=20nun=20?= =?UTF-8?q?ein=20custom=20login=20model,=20keine=20Abh=C3=A4ngikeiten=20me?= =?UTF-8?q?hr=20zu=20auth.User.=20absofort=20k=C3=B6nnen=20alle=20Benutzer?= =?UTF-8?q?=20ins=20Ranking=20eingetragen=20werden=20und=20nicht=20mehr=20?= =?UTF-8?q?nur=20"zahlende=20Mitglieder".?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/aggregator/migrations/0001_initial.py | 45 ++ src/aggregator/migrations/__init__.py | 0 .../management/commands/syncfacebook.py | 34 + src/content/migrations/0001_initial.py | 90 +++ src/content/migrations/__init__.py | 0 .../templates/content/article_archive.html | 18 +- .../content/article_archive_month.html | 2 +- .../content/article_archive_year.html | 6 +- .../templates/content/article_detail.html | 10 +- .../templates/content/article_form.html | 4 +- src/content/templates/content/page_form.html | 4 +- src/content/views.py | 40 +- src/events/migrations/0001_initial.py | 59 ++ src/events/migrations/__init__.py | 0 .../templates/events/event_archive.html | 24 +- src/events/templates/events/event_detail.html | 31 +- src/events/templates/events/event_form.html | 4 +- src/events/templates/events/event_list.html | 21 +- src/events/templates/events/page.html | 5 +- src/events/views.py | 2 +- src/gallery/migrations/0001_initial.py | 41 ++ src/gallery/migrations/__init__.py | 0 .../gallery/photo_confirm_delete.html | 25 + src/gallery/templates/gallery/photo_list.html | 47 ++ src/kasu/static/css/kasu.css | 697 +++++++++++++++++- src/kasu/static/fonts/FontAwesome.otf | Bin 0 -> 106260 bytes src/kasu/static/fonts/fontawesome-webfont.eot | Bin 0 -> 68875 bytes src/kasu/static/fonts/fontawesome-webfont.svg | 640 ++++++++++++++++ src/kasu/static/fonts/fontawesome-webfont.ttf | Bin 0 -> 138204 bytes .../static/fonts/fontawesome-webfont.woff | Bin 0 -> 81284 bytes .../static/fonts/fontawesome-webfont.woff2 | Bin 0 -> 64464 bytes src/kasu/static/img/background.gif | Bin 524 -> 0 bytes src/kasu/static/img/background.png | Bin 1410 -> 0 bytes src/kasu/static/img/footer-bg.png | Bin 93160 -> 0 bytes src/kasu/static/img/footer-bg.xcf | Bin 190227 -> 0 bytes src/kasu/static/img/footer_bg.png | Bin 82965 -> 0 bytes src/kasu/static/img/header_bg.jpg | Bin 0 -> 31368 bytes src/kasu/static/img/header_bg.png | Bin 129528 -> 0 bytes src/kasu/static/img/kranich.jpg | Bin 0 -> 23876 bytes src/kasu/static/img/navigation-bg.png | Bin 61928 -> 47691 bytes src/kasu/static/img/navigation-hover.png | Bin 3361 -> 1996 bytes src/kasu/static/{css => less}/common.less | 0 src/kasu/static/{css => less}/desktop.less | 77 +- .../static/less/font-aweseome/animated.less | 34 + .../less/font-aweseome/bordered-pulled.less | 25 + src/kasu/static/less/font-aweseome/core.less | 12 + .../less/font-aweseome/fixed-width.less | 6 + .../less/font-aweseome/font-awesome.less | 17 + src/kasu/static/less/font-aweseome/icons.less | 677 +++++++++++++++++ .../static/less/font-aweseome/larger.less | 13 + src/kasu/static/less/font-aweseome/list.less | 19 + .../static/less/font-aweseome/mixins.less | 26 + src/kasu/static/less/font-aweseome/path.less | 15 + .../less/font-aweseome/rotated-flipped.less | 20 + .../static/less/font-aweseome/stacked.less | 20 + .../static/less/font-aweseome/variables.less | 688 +++++++++++++++++ src/kasu/static/{css => less}/kasu.less | 3 +- src/kasu/static/{css => less}/mobile.less | 8 +- src/kasu/static/{css => less}/print.less | 0 src/kasu/templates/base.html | 100 ++- src/kasu/templates/comments/form.html | 12 +- src/kasu/templates/index.html | 33 +- src/kasu/templates/registration/login.html | 16 +- .../registration/password_change_form.html | 2 +- .../registration/password_reset_complete.html | 5 +- .../registration/password_reset_confirm.html | 2 +- .../registration/password_reset_form.html | 2 +- src/kasu/utils.py | 9 +- src/mahjong_ranking/forms.py | 15 +- .../migrations/0001_initial.py | 143 ++++ src/mahjong_ranking/migrations/__init__.py | 0 src/mahjong_ranking/models.py | 4 +- .../hanchan_confirm_delete.html | 10 +- .../mahjong_ranking/hanchan_form.html | 4 +- .../mahjong_ranking/hanchan_list.html | 14 +- .../mahjong_ranking/kyudanranking_list.html | 20 +- .../mahjong_ranking/ladderranking_list.html | 17 +- .../mahjong_ranking/player_dan_score.html | 12 +- .../mahjong_ranking/player_invalid_score.html | 8 +- .../mahjong_ranking/player_kyu_score.html | 8 +- .../mahjong_ranking/player_ladder_score.html | 10 +- src/mahjong_ranking/views.py | 6 +- .../migrations/0001_initial.py | 62 ++ src/maistar_ranking/migrations/__init__.py | 0 .../templates/maistar_ranking/game_form.html | 8 +- .../templates/maistar_ranking/game_list.html | 10 +- .../hanchan_confirm_delete.html | 12 +- .../maistar_ranking/player_game_list.html | 10 +- .../maistar_ranking/ranking_list.html | 9 +- src/maistar_ranking/views.py | 2 +- src/membership/admin.py | 25 +- src/membership/forms.py | 2 +- src/membership/migrations/0001_initial.py | 73 ++ src/membership/migrations/__init__.py | 0 src/membership/models.py | 40 +- .../membership/membership_detail.html | 30 +- .../templates/membership/membership_form.html | 10 +- .../templates/membership/register_form.html | 7 +- src/membership/views.py | 8 +- src/utils/massmailer.py | 8 +- 100 files changed, 3857 insertions(+), 420 deletions(-) create mode 100644 src/aggregator/migrations/0001_initial.py create mode 100644 src/aggregator/migrations/__init__.py create mode 100644 src/content/management/commands/syncfacebook.py create mode 100644 src/content/migrations/0001_initial.py create mode 100644 src/content/migrations/__init__.py create mode 100644 src/events/migrations/0001_initial.py create mode 100644 src/events/migrations/__init__.py create mode 100644 src/gallery/migrations/0001_initial.py create mode 100644 src/gallery/migrations/__init__.py create mode 100644 src/gallery/templates/gallery/photo_confirm_delete.html create mode 100644 src/gallery/templates/gallery/photo_list.html create mode 100644 src/kasu/static/fonts/FontAwesome.otf create mode 100644 src/kasu/static/fonts/fontawesome-webfont.eot create mode 100644 src/kasu/static/fonts/fontawesome-webfont.svg create mode 100644 src/kasu/static/fonts/fontawesome-webfont.ttf create mode 100644 src/kasu/static/fonts/fontawesome-webfont.woff create mode 100644 src/kasu/static/fonts/fontawesome-webfont.woff2 delete mode 100644 src/kasu/static/img/background.gif delete mode 100644 src/kasu/static/img/background.png delete mode 100644 src/kasu/static/img/footer-bg.png delete mode 100644 src/kasu/static/img/footer-bg.xcf delete mode 100644 src/kasu/static/img/footer_bg.png create mode 100644 src/kasu/static/img/header_bg.jpg delete mode 100644 src/kasu/static/img/header_bg.png create mode 100644 src/kasu/static/img/kranich.jpg rename src/kasu/static/{css => less}/common.less (100%) rename src/kasu/static/{css => less}/desktop.less (91%) create mode 100644 src/kasu/static/less/font-aweseome/animated.less create mode 100644 src/kasu/static/less/font-aweseome/bordered-pulled.less create mode 100644 src/kasu/static/less/font-aweseome/core.less create mode 100644 src/kasu/static/less/font-aweseome/fixed-width.less create mode 100644 src/kasu/static/less/font-aweseome/font-awesome.less create mode 100644 src/kasu/static/less/font-aweseome/icons.less create mode 100644 src/kasu/static/less/font-aweseome/larger.less create mode 100644 src/kasu/static/less/font-aweseome/list.less create mode 100644 src/kasu/static/less/font-aweseome/mixins.less create mode 100644 src/kasu/static/less/font-aweseome/path.less create mode 100644 src/kasu/static/less/font-aweseome/rotated-flipped.less create mode 100644 src/kasu/static/less/font-aweseome/stacked.less create mode 100644 src/kasu/static/less/font-aweseome/variables.less rename src/kasu/static/{css => less}/kasu.less (66%) rename src/kasu/static/{css => less}/mobile.less (99%) rename src/kasu/static/{css => less}/print.less (100%) create mode 100644 src/mahjong_ranking/migrations/0001_initial.py create mode 100644 src/mahjong_ranking/migrations/__init__.py create mode 100644 src/maistar_ranking/migrations/0001_initial.py create mode 100644 src/maistar_ranking/migrations/__init__.py create mode 100644 src/membership/migrations/0001_initial.py create mode 100644 src/membership/migrations/__init__.py diff --git a/src/aggregator/migrations/0001_initial.py b/src/aggregator/migrations/0001_initial.py new file mode 100644 index 0000000..82e4d31 --- /dev/null +++ b/src/aggregator/migrations/0001_initial.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations +import utils.html5.models + + +class Migration(migrations.Migration): + + dependencies = [ + ('sites', '0001_initial'), + ] + + operations = [ + migrations.CreateModel( + name='Feed', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('title', utils.html5.models.CharField(max_length=500)), + ('feed_url', utils.html5.models.URLField(unique=True, max_length=255)), + ('public_url', utils.html5.models.URLField(max_length=255)), + ('last_update', utils.html5.models.DateTimeField(null=True, blank=True)), + ('is_functional', utils.html5.models.BooleanField(default=True)), + ('site', utils.html5.models.ForeignKey(to='sites.Site')), + ], + options={ + 'ordering': ('title',), + }, + ), + migrations.CreateModel( + name='FeedItem', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('title', utils.html5.models.CharField(max_length=500)), + ('link', utils.html5.models.URLField(max_length=500)), + ('guid', utils.html5.models.CharField(unique=True, max_length=255, db_index=True)), + ('summary', utils.html5.models.TextField(blank=True)), + ('date_modified', utils.html5.models.DateTimeField()), + ('feed', utils.html5.models.ForeignKey(related_name='feed_items', to='aggregator.Feed')), + ], + options={ + 'ordering': ('-date_modified',), + }, + ), + ] diff --git a/src/aggregator/migrations/__init__.py b/src/aggregator/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/content/management/commands/syncfacebook.py b/src/content/management/commands/syncfacebook.py new file mode 100644 index 0000000..bc9024e --- /dev/null +++ b/src/content/management/commands/syncfacebook.py @@ -0,0 +1,34 @@ +# -*- coding: utf-8 -*- +__author__ = 'Christian Berg' + +import urllib + +from datetime import datetime +from django.core.management.base import BaseCommand +from django.conf import settings +import json + + +class Command(BaseCommand): + help = "Synchornisiert den Facenbook Feed für die Anzeige auf der Homepage" + + + def handle(self, *args, **options): + #graph_api = facebook.GraphAPI(settings.FACEBOOK_ACCESS_TOKEN) + #facebook_page = graph_api.get_object(settings.FACEBOOK_APP_ID+'/feed/') + #print facebook_page + #print graph_api.get_connections(facebook_page['id'], ) + self.login() + + def login(self): + args = {'access_token': settings.FACEBOOK_ACCESS_TOKEN} + query = "https://graph.facebook.com/{object}/feed?{args}".format( + object=settings.FACEBOOK_APP_ID, + args=urllib.urlencode(args), + ) + print query + request = urllib.urlopen(query) + print request + response = request.read() + print response + print json.loads(response) \ No newline at end of file diff --git a/src/content/migrations/0001_initial.py b/src/content/migrations/0001_initial.py new file mode 100644 index 0000000..d12d159 --- /dev/null +++ b/src/content/migrations/0001_initial.py @@ -0,0 +1,90 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations +import django.db.models.deletion +from django.conf import settings + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.CreateModel( + name='Article', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('headline_de', models.CharField(max_length=255, verbose_name='Schlagzeile')), + ('headline_en', models.CharField(max_length=255, verbose_name=b'Headline', blank=True)), + ('content_de', models.TextField(verbose_name='Inhalt')), + ('content_en', models.TextField(verbose_name=b'Content', blank=True)), + ('image', models.ImageField(upload_to=b'news/', null=True, verbose_name='Bild', blank=True)), + ('slug', models.SlugField(unique_for_month=b'date_created', verbose_name='Slug')), + ('status', models.SmallIntegerField(default=1, verbose_name='Status', choices=[(-1, 'Zur\xfcckgewiesen'), (0, 'Wartend...'), (1, 'Ver\xf6ffentlicht')])), + ('date_created', models.DateTimeField(verbose_name='Erstellt', blank=True)), + ('date_modified', models.DateTimeField(auto_now=True, verbose_name='Bearbeitet')), + ('author', models.ForeignKey(verbose_name='Autor', to=settings.AUTH_USER_MODEL)), + ], + options={ + 'ordering': ('-date_created',), + 'verbose_name': 'Artikel', + 'verbose_name_plural': 'Artikel', + }, + ), + migrations.CreateModel( + name='Category', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('name_de', models.CharField(max_length=80, verbose_name='Name')), + ('name_en', models.CharField(max_length=80, verbose_name='Name', blank=True)), + ('description_de', models.TextField(verbose_name='Beschreibung')), + ('description_en', models.TextField(verbose_name='Beschreibung', blank=True)), + ('image', models.ImageField(upload_to=b'news/categories/', null=True, verbose_name='Bild', blank=True)), + ('slug', models.SlugField(unique=True, verbose_name='Slug')), + ], + options={ + 'ordering': ('slug',), + 'verbose_name': 'Kategorie', + 'verbose_name_plural': 'Kategorien', + }, + ), + migrations.CreateModel( + name='Page', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('menu_name_de', models.CharField(help_text='Ein kurzer Name f\xfcr den Men\xfceintrag', max_length=255, verbose_name=b'Men\xc3\xbc Name')), + ('menu_name_en', models.CharField(help_text='Ein kurzer Name f\xfcr den Men\xfceintrag', max_length=255, verbose_name=b'Menu Name', blank=True)), + ('title_de', models.CharField(help_text='Der Titel erscheint im HTML Header', max_length=255, verbose_name=b'Titel')), + ('title_en', models.CharField(help_text='Der Titel erscheint im HTML Header', max_length=255, verbose_name=b'Title', blank=True)), + ('slug', models.SlugField(verbose_name='Slug')), + ('path', models.CharField(verbose_name='Pfad', unique=True, max_length=100, editable=False, db_index=True)), + ('position', models.PositiveSmallIntegerField(null=True, verbose_name='Position', blank=True)), + ('status', models.SmallIntegerField(default=0, verbose_name='Status', choices=[(-1, 'Zur\xfcckgewiesen'), (0, 'Wartend...'), (1, 'Ver\xf6ffentlicht')])), + ('content_type', models.IntegerField(choices=[(0, 'Django View'), (1, 'HTML'), (2, 'PDF')])), + ('content_de', models.TextField(verbose_name=b'Inhalt', blank=True)), + ('content_en', models.TextField(verbose_name=b'Content', blank=True)), + ('enable_comments', models.BooleanField(default=True, verbose_name='Kommentare m\xf6glich')), + ('template', models.CharField(default=b'content/page.html', max_length=100, verbose_name='Vorlage')), + ('pdf_de', models.FileField(null=True, upload_to=b'pdf/de/', blank=True)), + ('pdf_en', models.FileField(null=True, upload_to=b'pdf/en/', blank=True)), + ('parent', models.ForeignKey(related_name='subpages', on_delete=django.db.models.deletion.SET_NULL, blank=True, to='content.Page', null=True)), + ], + options={ + 'ordering': ['parent__id', 'position'], + 'verbose_name': 'Seite', + 'verbose_name_plural': 'Seiten', + }, + ), + migrations.AddField( + model_name='article', + name='category', + field=models.ForeignKey(verbose_name='Kategorie', to='content.Category'), + ), + migrations.AlterUniqueTogether( + name='page', + unique_together=set([('slug', 'parent')]), + ), + ] diff --git a/src/content/migrations/__init__.py b/src/content/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/content/templates/content/article_archive.html b/src/content/templates/content/article_archive.html index be45095..7d22412 100644 --- a/src/content/templates/content/article_archive.html +++ b/src/content/templates/content/article_archive.html @@ -30,14 +30,14 @@ {% block redbox %} {% block date_list %}

{% trans "Archive" %} {{year}}

-

- - + +

{% endblock %} diff --git a/src/content/templates/content/page_form.html b/src/content/templates/content/page_form.html index fbc2315..406dc3d 100644 --- a/src/content/templates/content/page_form.html +++ b/src/content/templates/content/page_form.html @@ -58,8 +58,8 @@

- - + +

diff --git a/src/content/views.py b/src/content/views.py index 332da25..49c22a2 100644 --- a/src/content/views.py +++ b/src/content/views.py @@ -1,21 +1,29 @@ # Create your views here. -import os -from django.conf import settings import django_comments as comments - +import os +from django.conf import settings from django.http import HttpResponse, Http404 from django.utils.translation import ugettext as _ from django.views import generic -from django.shortcuts import get_object_or_404 from . import models, forms from aggregator.models import Feed +from events.models import Photo from utils.mixins import PermissionRequiredMixin -import events.models class ArticleArchiveMixin(object): + def get_category(self, queryset): + try: + self.category = models.Category.objects.get(slug=self.kwargs['category']) + return queryset.filter(category=self.category) + except models.Category.DoesNotExist: + raise Http404(_("This Category does not exist.")) + except KeyError: + self.category = None + return self.queryset + def get_context_data(self, **kwargs): context = super(ArticleArchiveMixin, self).get_context_data(**kwargs) context['categories'] = models.Category.objects.all() @@ -24,7 +32,6 @@ class ArticleArchiveMixin(object): return context -# noinspection PyAttributeOutsideInit class ArticleArchiveIndex(ArticleArchiveMixin, generic.ArchiveIndexView): queryset = models.Article.objects.filter(status=models.STATUS_PUBLISHED) date_field = 'date_created' @@ -34,13 +41,7 @@ class ArticleArchiveIndex(ArticleArchiveMixin, generic.ArchiveIndexView): def get_queryset(self): queryset = generic.ArchiveIndexView.get_queryset(self) - self.category = self.kwargs.get('category') - if self.category: - try: - self.category = models.Category.objects.get(slug=self.category) - queryset = queryset.filter(category=self.category) - except models.Category.DoesNotExist: - raise Http404(_("This Category does not exist.")) + queryset = self.get_category(queryset) return queryset @@ -54,11 +55,7 @@ class ArticleYearArchive(ArticleArchiveMixin, generic.YearArchiveView): def get_queryset(self): queryset = generic.YearArchiveView.get_queryset(self) - self.category = self.kwargs.get('category') - if self.category: - self.category = get_object_or_404(models.Category, - slug=self.category) - queryset = queryset.filter(category=self.category) + queryset = self.get_category(queryset) return queryset @@ -72,10 +69,7 @@ class ArticleMonthArchive(ArticleArchiveMixin, generic.MonthArchiveView): def get_queryset(self): queryset = generic.MonthArchiveView.get_queryset(self) - self.category = self.kwargs.get('category') - if self.category: - self.category = models.Category.objects.get(slug=self.category) - queryset = queryset.filter(category=self.category) + queryset = self.get_category(queryset) return queryset @@ -208,7 +202,7 @@ class StartPage(generic.TemplateView): def get_context_data(self, **kwargs): page = models.Page.objects.get(slug='index') - random_photo = events.models.Photo.objects.get_random(startpage=True) + random_photo = Photo.objects.get_random(startpage=True) recent_comment_list = comments.get_model().objects.filter( site__pk=settings.SITE_ID, is_public=True, diff --git a/src/events/migrations/0001_initial.py b/src/events/migrations/0001_initial.py new file mode 100644 index 0000000..d4e667a --- /dev/null +++ b/src/events/migrations/0001_initial.py @@ -0,0 +1,59 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations +import events.models +import django.db.models.deletion +import utils + + +class Migration(migrations.Migration): + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='Event', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('name', models.CharField(max_length=255, verbose_name='Name')), + ('description', models.TextField(verbose_name='Beschreibung', blank=True)), + ('start', models.DateTimeField(verbose_name='Beginn')), + ('end', models.DateTimeField(null=True, verbose_name='Ende', blank=True)), + ('url', models.URLField(verbose_name='Homepage', blank=True)), + ('image', models.ImageField(storage=utils.OverwriteStorage(), upload_to=events.models.get_upload_path, null=True, verbose_name='Bild', blank=True)), + ('is_tournament', models.BooleanField(default=False, help_text='Diese Veranstaltung ist ein Turnier, es gelten andere Regeln f\xfcr das Kyu Ranking.', verbose_name='Turnier')), + ('photo_count', models.PositiveIntegerField(default=0, editable=False)), + ('event_series', models.ForeignKey(on_delete=django.db.models.deletion.SET_NULL, editable=False, to='events.Event', blank=True, help_text='Wenn dieser Termin zu einer Veranstaltungsreihe geh\xf6rt werden Ort, Beschreibung, Bild und Homepage von dem hier angegebenen Event \xfcbernommen.', null=True, verbose_name='Veranstaltungsreihen')), + ], + options={ + 'ordering': ('-start', '-end'), + 'verbose_name': 'Termin', + 'verbose_name_plural': 'Termine', + }, + ), + migrations.CreateModel( + name='Location', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('name', models.CharField(max_length=200, verbose_name='Name')), + ('description', models.TextField(verbose_name='Beschreibung', blank=True)), + ('image', models.ImageField(storage=utils.OverwriteStorage(), upload_to=events.models.get_upload_path, null=True, verbose_name='Bild', blank=True)), + ('url', models.URLField(verbose_name='Homepage', blank=True)), + ('postal_code', models.CharField(max_length=6, verbose_name='Postleitzahl')), + ('street_address', models.CharField(max_length=127, verbose_name='Stra\xdfe')), + ('locality', models.CharField(max_length=127, verbose_name='Ort')), + ('country', models.CharField(max_length=2, verbose_name='Land', choices=[(b'GB', 'Vereinigtes K\xf6nigreich'), (b'AF', 'Afghanistan'), (b'AX', 'Aland Islands'), (b'AL', 'Albanien'), (b'DZ', 'Algerien'), (b'AS', 'Amerikanisch-Samoa'), (b'AD', 'Andorra'), (b'AO', 'Angola'), (b'AI', 'Anguilla'), (b'AQ', 'Antarktika'), (b'AG', 'Antigua und Barbuda'), (b'AR', 'Argentinien'), (b'AM', 'Armenien'), (b'AW', 'Aruba'), (b'AU', 'Australien'), (b'AT', '\xd6sterreich'), (b'AZ', 'Aserbaidschan'), (b'BS', 'Bahamas'), (b'BH', 'Bahrein'), (b'BD', 'Bangladesch'), (b'BB', 'Barbados'), (b'BY', 'Wei\xdfrussland'), (b'BE', 'Belgien'), (b'BZ', 'Belize'), (b'BJ', 'Benin'), (b'BM', 'Bermuda'), (b'BT', 'Bhutan'), (b'BO', 'Bolivien'), (b'BA', 'Bosnien und Herzegowina'), (b'BW', 'Botswana'), (b'BV', 'Bouvet Island'), (b'BR', 'Brasilien'), (b'IO', 'British Indian Ocean Territory'), (b'BN', 'Brunei Darussalam'), (b'BG', 'Bulgarien'), (b'BF', 'Burkina Faso'), (b'BI', 'Burundi'), (b'KH', 'Kambodscha'), (b'CM', 'Kamerun'), (b'CA', 'Kanada'), (b'CV', 'Cape Verde'), (b'KY', 'Cayman Islands'), (b'CF', 'Zentralafrikanische Republik'), (b'TD', 'Tschad'), (b'CL', 'Chile'), (b'CN', 'China'), (b'CX', 'Christmas Island'), (b'CC', 'Cocos (Keeling) Islands'), (b'CO', 'Kolumbien'), (b'KM', 'Komoren'), (b'CG', 'Kongo'), (b'CD', 'Kongo, Demokratische Republik'), (b'CK', 'Cook-Inseln'), (b'CR', 'Costa Rica'), (b'CI', "Cote d'Ivoire"), (b'HR', 'Kroatien'), (b'CU', 'Kuba'), (b'CY', 'Zypern'), (b'CZ', 'Tschechische Republik'), (b'DK', 'D\xe4nemark'), (b'DJ', 'Dschibuti'), (b'DM', 'Dominica'), (b'DO', 'Dominikanische Republik'), (b'EC', 'Ecuador'), (b'EG', '\xc4gypten'), (b'SV', 'El Salvador'), (b'GQ', '\xc4quatorial-Guinea'), (b'ER', 'Eritrea'), (b'EE', 'Estland'), (b'ET', '\xc4thiopien'), (b'FK', 'Falklandinseln (Malvinas)'), (b'FO', 'F\xe4r\xf6er-Inseln'), (b'FJ', 'Fidschi'), (b'FI', 'Finnland'), (b'FR', 'Frankreich'), (b'GF', 'Franz\xf6sisch-Guayana'), (b'PF', 'Franz\xf6sisch-Polynesien'), (b'TF', 'Franz\xf6sisch S\xfcdliche Territorien'), (b'GA', 'Gabun'), (b'GM', 'Gambia'), (b'GE', 'Georgia'), (b'DE', 'Deutschland'), (b'GH', 'Ghana'), (b'GI', 'Gibraltar'), (b'GR', 'Griechenland'), (b'GL', 'Gr\xf6nland'), (b'GD', 'Grenada'), (b'GP', 'Guadeloupe'), (b'GU', 'Guam'), (b'GT', 'Guatemala'), (b'GG', 'Guernsey'), (b'GN', 'Guinea'), (b'GW', 'Guinea-Bissau'), (b'GY', 'Guyana'), (b'HT', 'Haiti'), (b'HM', 'Heard und McDonald Inseln'), (b'VA', 'Heiliger Stuhl (Vatikanstadt)'), (b'HN', 'Honduras'), (b'HK', 'Hongkong'), (b'HU', 'Ungarn'), (b'IS', 'Island'), (b'IN', 'Indien'), (b'ID', 'Indonesien'), (b'IR', 'Iran, Islamische Republik'), (b'IQ', 'Irak'), (b'IE', 'Irland'), (b'IM', 'Isle of Man'), (b'IL', 'Israel'), (b'IT', 'Italien'), (b'JM', 'Jamaika'), (b'JP', 'Japan'), (b'JE', 'Jersey'), (b'JO', 'Jordan'), (b'KZ', 'Kasachstan'), (b'KE', 'Kenia'), (b'KI', 'Kiribati'), (b'KP', 'Korea, Demokratische Volksrepublik'), (b'KR', 'Korea, Republik'), (b'KW', 'Kuwait'), (b'KG', 'Kirgisistan'), (b'LA', 'Lao Demokratischen Volksrepublik'), (b'LV', 'Lettland'), (b'LB', 'Libanon'), (b'LS', 'Lesotho'), (b'LR', 'Liberia'), (b'LY', 'Libyen'), (b'LI', 'Liechtenstein'), (b'LT', 'Litauen'), (b'LU', 'Luxemburg'), (b'MO', 'Macao'), (b'MK', 'Mazedonien, die ehemalige jugoslawische Republik'), (b'MG', 'Madagaskar'), (b'MW', 'Malawi'), (b'MY', 'Malaysia'), (b'MV', 'Malediven'), (b'ML', 'Mali'), (b'MT', 'Malta'), (b'MH', 'Marshall Islands'), (b'MQ', 'Martinique'), (b'MR', 'Mauretanien'), (b'MU', 'Mauritius'), (b'YT', 'Mayotte'), (b'MX', 'Mexiko'), (b'FM', 'Mikronesien, F\xf6derierte Staaten von'), (b'MD', 'Moldawien'), (b'MC', 'Monaco'), (b'MN', 'Mongolei'), (b'ME', 'Montenegro'), (b'MS', 'Montserrat'), (b'MA', 'Marokko'), (b'MZ', 'Mosambik'), (b'MM', 'Myanmar'), (b'NA', 'Namibia'), (b'NR', 'Nauru'), (b'NP', 'Nepal'), (b'NL', 'Niederlande'), (b'AN', 'Niederl\xe4ndische Antillen'), (b'NC', 'Neukaledonien'), (b'NZ', 'New Zealand'), (b'NI', 'Nicaragua'), (b'NE', 'Niger'), (b'NG', 'Nigeria'), (b'NU', 'Niue'), (b'NF', 'Norfolk Island'), (b'MP', 'Northern Mariana Islands'), (b'NO', 'Norwegen'), (b'OM', 'Oman'), (b'PK', 'Pakistan'), (b'PW', 'Palau'), (b'PS', 'Pal\xe4stinensische Autonomiegebiete'), (b'PA', 'Panama'), (b'PG', 'Papua-Neuguinea'), (b'PY', 'Paraguay'), (b'PE', 'Peru'), (b'PH', 'Philippinen'), (b'PN', 'Pitcairn'), (b'PL', 'Polen'), (b'PT', 'Portugal'), (b'PR', 'Puerto Rico'), (b'QA', 'Katar'), (b'RE', 'Wiedervereinigung'), (b'RO', 'Rum\xe4nien'), (b'RU', 'Russischen F\xf6deration'), (b'RW', 'Ruanda'), (b'BL', 'Saint Barthelemy'), (b'SH', 'Saint Helena'), (b'KN', 'Saint Kitts und Nevis'), (b'LC', 'Santa Lucia'), (b'MF', 'Santa Martin'), (b'PM', 'Saint Pierre und Miquelon'), (b'VC', 'Saint Vincent und die Grenadinen'), (b'WS', 'Samoa'), (b'SM', 'San Marino'), (b'ST', 'Sao Tome und Principe'), (b'SA', 'Saudi-Arabien'), (b'SN', 'Senegal'), (b'RS', 'Serbien'), (b'SC', 'Seychellen'), (b'SL', 'Sierra Leone'), (b'SG', 'Singapur'), (b'SK', 'Slowakei'), (b'SI', 'Slowenien'), (b'SB', 'Salomon-Inseln'), (b'SO', 'Somalia'), (b'ZA', 'S\xfcdafrika'), (b'GS', 'S\xfcdgeorgien und die S\xfcdlichen Sandwichinseln'), (b'ES', 'Spanien'), (b'LK', 'Sri Lanka'), (b'SD', 'Sudan'), (b'SR', 'Suriname'), (b'SJ', 'Svalbard und Jan Mayen'), (b'SZ', 'Swaziland'), (b'SE', 'Schweden'), (b'CH', 'Schweiz'), (b'SY', 'Arabische Republik Syrien'), (b'TW', 'Taiwan, Province of China'), (b'TJ', 'Tadschikistan'), (b'TZ', 'Tansania, Vereinigte Republik'), (b'TH', 'Thailand'), (b'TL', 'Timor-Leste'), (b'TG', 'Togo'), (b'TK', 'Tokelau'), (b'TO', 'Tonga'), (b'TT', 'Trinidad und Tobago'), (b'TN', 'Tunesien'), (b'TR', 'T\xfcrkei'), (b'TM', 'Turkmenistan'), (b'TC', 'Turks-und Caicosinseln'), (b'TV', 'Tuvalu'), (b'UG', 'Uganda'), (b'UA', 'Ukraine'), (b'AE', 'Vereinigte Arabische Emirate'), (b'US', 'Vereinigte Staaten'), (b'UM', 'United States Minor Outlying Islands'), (b'UY', 'Uruguay'), (b'UZ', 'Usbekistan'), (b'VU', 'Vanuatu'), (b'VE', 'Venezuela'), (b'VN', 'Vietnam'), (b'VG', 'Virgin Islands, British'), (b'VI', 'Virgin Islands, US'), (b'WF', 'Wallis und Futuna'), (b'EH', 'Westsahara'), (b'YE', 'Jemen'), (b'ZM', 'Sambia'), (b'ZW', 'Zimbabwe')])), + ], + options={ + 'verbose_name': 'Veranstaltungsort', + 'verbose_name_plural': 'Veranstaltungsorte', + }, + ), + migrations.AddField( + model_name='event', + name='location', + field=models.ForeignKey(to='events.Location'), + ), + ] diff --git a/src/events/migrations/__init__.py b/src/events/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/events/templates/events/event_archive.html b/src/events/templates/events/event_archive.html index 5b7c57d..cb2ac2a 100644 --- a/src/events/templates/events/event_archive.html +++ b/src/events/templates/events/event_archive.html @@ -38,7 +38,7 @@

{{ event.name }}

-

{% trans 'Start' %}: +

{{ event.start|date }} {% if event.end %} {% trans "from" %} {{ event.start|time:'H:i' }} {% trans "to" %} {{ event.end|time:'H:i' }} @@ -49,25 +49,13 @@

{{event.description|truncatewords_html:20}}

{% if perms.events.change_event %} -

{%trans

+

{% endif %}
{% if forloop.counter|divisibleby:2 %}
{% endif %} diff --git a/src/events/templates/events/event_detail.html b/src/events/templates/events/event_detail.html index bfceb32..93aecc2 100644 --- a/src/events/templates/events/event_detail.html +++ b/src/events/templates/events/event_detail.html @@ -27,17 +27,16 @@ {% block redbox %}

Info

 

- - -
- {% block teaser %}

{{title|default:current_page.title}}

{% endblock %} +
+
+ {% block teaser %}

{% if title %}{{title}}{% elif current_page %}{{ current_page.title }}{% elif current_top_page %}{{current_top_page.title }}{% endif %}

+ {% endblock %}
{% endif %} -

{% trans "Upcoming events" %} iCal Feed +

{% trans "Upcoming events" %} +

    {% for event in upcoming_events %} @@ -84,7 +93,7 @@
{% endblock %} -
+ {% block navigation %} {% if current_top_page.subpages.count %} @@ -92,7 +101,8 @@
  • {{current_top_page.menu_name}}
  • {% for subpage in current_top_page.subpages.all %} -
  • {{subpage.menu_name}}
  • +
  • {{subpage.menu_name}} +
  • {% endfor %} {% block additional_nav_elements %}{% endblock %} @@ -109,29 +119,29 @@ {% endif %} {% endblock %} -
    + {% block maincontent %}
    {% block content %}{% endblock %}
    {% endblock %} {% block paginator %} - {% if page_obj.has_other_pages %}{% include 'paginator.html' %}{% endif %} + {% if page_obj.has_other_pages %}{% include 'paginator.html' %}{% endif %} {% endblock %} {% block comments %}{% endblock %} -
    +
    +

    {% block buttonbar %} - {% if current_page and perms.content.change_page %} {% trans "Edit Page" %}{% endif %} - {% if current_page and perms.content.add_page %} {% trans "Add Subpage" %}{% endif %} + {% if current_page and perms.content.change_page %} {% trans "Edit Page" %}{% endif %} + {% if current_page and perms.content.add_page %} + {% trans "Add Subpage" %}{% endif %} {% block additional_buttonbar %}{% endblock %} {% endblock %}

    - + + - - - - - diff --git a/src/kasu/templates/comments/form.html b/src/kasu/templates/comments/form.html index 576f274..60a5eea 100644 --- a/src/kasu/templates/comments/form.html +++ b/src/kasu/templates/comments/form.html @@ -21,12 +21,8 @@
    {{form.comment}}

    - - + +

    {% else %}
    @@ -43,8 +39,8 @@

    - {% trans 'register' %} - {% trans 'login' %} + {% trans 'register' %} + {% trans 'login' %}

    {% endif %} diff --git a/src/kasu/templates/index.html b/src/kasu/templates/index.html index f031fca..3dacb7a 100644 --- a/src/kasu/templates/index.html +++ b/src/kasu/templates/index.html @@ -1,8 +1,6 @@ {% extends "base.html" %} {% load i18n comments%} -{% block jumbotron_background %}{{ random_photo.url|default:'' }}{% endblock %} - {% block title %}{% trans 'traditional Asian game culture' %}{% endblock %} {% block teaser %} @@ -17,31 +15,26 @@

    {{article.headline}}

    {{article.category}}: + class="posting_image" width="200" height="120"/> {{article.content|truncatewords_html:50}} - + {% endfor %} {% endblock %} -{% if perms.content.add_article %}{% block addidional_buttonbar %} -{% trans "Add Article" %} -{% endblock %}{% endif %} +{% block additional_buttonbar %}{% if perms.content.add_article %} + {% trans "Add Article" %} +{% endif %}{% endblock %} diff --git a/src/kasu/templates/registration/login.html b/src/kasu/templates/registration/login.html index 58a7e7e..7e90cdd 100644 --- a/src/kasu/templates/registration/login.html +++ b/src/kasu/templates/registration/login.html @@ -28,9 +28,7 @@ If you don't own such an account, or do not want to use it for authentication, you can fill out our registration form.

    {% endblocktrans %}

    - - {%trans 'register' %} - {%trans "register"%}

    + {%trans "register"%}

    @@ -45,20 +43,16 @@ you can fill out our registration form.

    {% trans 'Forgot your Password?'%}

    -
    +

    {% trans "or login with an existing Account" %}

    -
    - - - -
    + + +
    {% endblock %} diff --git a/src/kasu/templates/registration/password_change_form.html b/src/kasu/templates/registration/password_change_form.html index dcd2877..1f91f41 100644 --- a/src/kasu/templates/registration/password_change_form.html +++ b/src/kasu/templates/registration/password_change_form.html @@ -20,7 +20,7 @@ {% include 'form.html' %}
    diff --git a/src/kasu/templates/registration/password_reset_complete.html b/src/kasu/templates/registration/password_reset_complete.html index d3713a0..db91f28 100644 --- a/src/kasu/templates/registration/password_reset_complete.html +++ b/src/kasu/templates/registration/password_reset_complete.html @@ -10,10 +10,7 @@

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

    {% endblock %} diff --git a/src/kasu/templates/registration/password_reset_confirm.html b/src/kasu/templates/registration/password_reset_confirm.html index bdce221..57206a0 100644 --- a/src/kasu/templates/registration/password_reset_confirm.html +++ b/src/kasu/templates/registration/password_reset_confirm.html @@ -15,7 +15,7 @@ {% trans 'Enter new password' %} {% include 'form.html' %}

    - +

    diff --git a/src/kasu/templates/registration/password_reset_form.html b/src/kasu/templates/registration/password_reset_form.html index 5a68dac..f2566fa 100644 --- a/src/kasu/templates/registration/password_reset_form.html +++ b/src/kasu/templates/registration/password_reset_form.html @@ -18,7 +18,7 @@ Solange die E-Mail Adresse von dir noch gültig ist, kannst du dein Passwort jed
    E-Mail zusenden {% include 'form.html' %} -

    +

    diff --git a/src/kasu/utils.py b/src/kasu/utils.py index 1ba2ae7..fdc91b4 100644 --- a/src/kasu/utils.py +++ b/src/kasu/utils.py @@ -7,7 +7,7 @@ import logging import os from django.conf import settings -from django.contrib.auth.models import User +from django.contrib.auth import get_user_model from django.contrib.sites.models import Site from django.core import mail from django.core.files.storage import FileSystemStorage @@ -265,12 +265,13 @@ COUNTRIES = ( ) STATUS_REJECTED, STATUS_WAITING, STATUS_PUBLISHED = -1, 0, 1 + STATUS_CHOICES = ( (STATUS_REJECTED, _('Rejected')), (STATUS_WAITING, _('Waiting...')), (STATUS_PUBLISHED, _('Published')), ) - +USER_MODEL = get_user_model() class OverwriteStorage(FileSystemStorage): def get_available_name(self, name): @@ -319,14 +320,14 @@ class MassMailer(object): self.log.debug("closed the SMTP connection. I'm done") def add_recipient(self, recipient): - if isinstance(recipient, User): + if isinstance(recipient, USER_MODEL): self.recipients.add(recipient) else: self.log.warn('%s is not a User Object!', recipient) def add_recipients(self, user_list): for user in user_list: - if isinstance(user, User): + if isinstance(user, USER_MODEL): self.log.debug('Adding %s as Recipient' % user) self.recipients.add(user) else: diff --git a/src/mahjong_ranking/forms.py b/src/mahjong_ranking/forms.py index 4f6117e..d5db753 100644 --- a/src/mahjong_ranking/forms.py +++ b/src/mahjong_ranking/forms.py @@ -15,6 +15,9 @@ from utils.html5 import forms from . import models +USER_MODEL = get_user_model() + + class HanchanForm(forms.ModelForm): error_css_class = 'error' required_css_class = 'required' @@ -29,10 +32,8 @@ class HanchanForm(forms.ModelForm): } def clean_start(self): - u""" - Das Datum darf nicht in der Zukunft liegen und es muss innerhalb der - Dauer des Events liegen. - """ + u"""Das Datum darf nicht in der Zukunft liegen und es muss innerhalb + der Dauer des Events liegen.""" start = self.cleaned_data['start'] event = self.cleaned_data['event'] if start > timezone.now(): @@ -57,9 +58,6 @@ class HanchanAdminForm(HanchanForm): class PlayerForm(forms.ModelForm): error_css_class = 'error' required_css_class = 'required' - player_choices = get_user_model().objects.filter(groups__in=(1, 2)) - player_choices = player_choices.order_by('username').distinct() - user = forms.ModelChoiceField(player_choices, required=True) comment = forms.CharField( widget=forms.widgets.TextInput(attrs={'maxlength': 255}), required=False @@ -73,7 +71,6 @@ class PlayerForm(forms.ModelForm): self.fields['score'].widget.attrs['size'] = 6 self.fields['score'].widget.attrs['type'] = 'number' - class Meta(object): model = models.Player fields = ('hanchan', 'user', 'score', 'bonus_points', 'comment') @@ -93,7 +90,7 @@ class PlayerInlineFormSet(BaseInlineFormSet): class SeasonSelectForm(django.forms.Form): season = django.forms.ChoiceField(label='', choices=('a', 'b', 'c')) - def __init__(self, user, data=None, *args, **kwargs): + def __init__(self, user, *args, **kwargs): super(SeasonSelectForm, self).__init__(args, kwargs) season_list = models.LadderRanking.objects.filter(user=user) season_list = season_list.select_related('user') diff --git a/src/mahjong_ranking/migrations/0001_initial.py b/src/mahjong_ranking/migrations/0001_initial.py new file mode 100644 index 0000000..523de50 --- /dev/null +++ b/src/mahjong_ranking/migrations/0001_initial.py @@ -0,0 +1,143 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations +from django.conf import settings + + +class Migration(migrations.Migration): + + dependencies = [ + ('events', '__first__'), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.CreateModel( + name='EventRanking', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('placement', models.PositiveIntegerField(null=True, blank=True)), + ('avg_placement', models.FloatField(default=4)), + ('avg_score', models.FloatField(default=0)), + ('hanchan_count', models.PositiveIntegerField(default=0)), + ('good_hanchans', models.PositiveIntegerField(default=0)), + ('won_hanchans', models.PositiveIntegerField(default=0)), + ('dirty', models.BooleanField(default=True, editable=False)), + ('event', models.ForeignKey(to='events.Event')), + ('user', models.ForeignKey(to=settings.AUTH_USER_MODEL)), + ], + options={ + 'ordering': ('placement', 'avg_placement', '-avg_score'), + }, + ), + migrations.CreateModel( + name='Hanchan', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('comment', models.TextField(verbose_name='Anmerkung', blank=True)), + ('confirmed', models.BooleanField(default=True, help_text='Nur g\xfcltige und best\xe4tigte Hanchans kommen in die Wertung.', verbose_name='Wurde best\xe4tigt')), + ('player_names', models.CharField(max_length=127, editable=False)), + ('start', models.DateTimeField(help_text='Wichtig damit die richtigen Hanchans in die Wertung kommen.', verbose_name='Beginn')), + ('valid', models.BooleanField(default=False, verbose_name='Ist g\xfcltig')), + ('event', models.ForeignKey(to='events.Event')), + ], + options={ + 'ordering': ('-start',), + 'verbose_name': 'Hanchan', + 'verbose_name_plural': 'Hanchans', + }, + ), + migrations.CreateModel( + name='KyuDanRanking', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('dan', models.PositiveSmallIntegerField(null=True, blank=True)), + ('dan_points', models.PositiveIntegerField(default=0)), + ('kyu', models.PositiveSmallIntegerField(default=10, null=True, blank=True)), + ('kyu_points', models.PositiveIntegerField(default=0)), + ('won_hanchans', models.PositiveIntegerField(default=0)), + ('good_hanchans', models.PositiveIntegerField(default=0)), + ('hanchan_count', models.PositiveIntegerField(default=0)), + ('dirty', models.BooleanField(default=True, editable=False)), + ('user', models.OneToOneField(to=settings.AUTH_USER_MODEL)), + ], + options={ + 'ordering': ('-dan_points', '-kyu_points'), + 'verbose_name': 'Ky\u016b/Dan Wertung', + 'verbose_name_plural': 'Ky\u016b/Dan Wertungen', + }, + ), + migrations.CreateModel( + name='LadderRanking', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('placement', models.PositiveIntegerField(null=True, blank=True)), + ('avg_placement', models.FloatField(null=True, blank=True)), + ('avg_score', models.FloatField(null=True, blank=True)), + ('hanchan_count', models.PositiveIntegerField(default=0)), + ('good_hanchans', models.PositiveIntegerField(default=0)), + ('won_hanchans', models.PositiveIntegerField(default=0)), + ('dirty', models.BooleanField(default=True, editable=False)), + ], + options={ + 'ordering': ('placement', 'avg_placement', '-avg_score'), + }, + ), + migrations.CreateModel( + name='LadderSeason', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('name', models.CharField(max_length=100)), + ('start', models.DateField()), + ('end', models.DateField()), + ('dirty', models.BooleanField(default=True, editable=False)), + ], + options={ + 'ordering': ('start',), + 'verbose_name': 'Saison', + 'verbose_name_plural': 'Saisons', + }, + ), + migrations.CreateModel( + name='Player', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('score', models.PositiveIntegerField(default=0)), + ('placement', models.PositiveSmallIntegerField(default=None, null=True, blank=True)), + ('kyu_points', models.PositiveSmallIntegerField(default=None, null=True, blank=True)), + ('dan_points', models.PositiveSmallIntegerField(default=None, null=True, blank=True)), + ('bonus_points', models.PositiveSmallIntegerField(default=0, null=True, blank=True)), + ('comment', models.TextField(verbose_name='Anmerkung', blank=True)), + ('hanchan', models.ForeignKey(to='mahjong_ranking.Hanchan')), + ('user', models.ForeignKey(to=settings.AUTH_USER_MODEL)), + ], + options={ + 'ordering': ['-score'], + }, + ), + migrations.AddField( + model_name='ladderranking', + name='season', + field=models.ForeignKey(to='mahjong_ranking.LadderSeason'), + ), + migrations.AddField( + model_name='ladderranking', + name='user', + field=models.ForeignKey(to=settings.AUTH_USER_MODEL), + ), + migrations.AddField( + model_name='hanchan', + name='players', + field=models.ManyToManyField(to=settings.AUTH_USER_MODEL, verbose_name='Spieler', through='mahjong_ranking.Player'), + ), + migrations.AddField( + model_name='hanchan', + name='season', + field=models.ForeignKey(blank=True, editable=False, to='mahjong_ranking.LadderSeason', null=True), + ), + migrations.AlterUniqueTogether( + name='player', + unique_together=set([('hanchan', 'user')]), + ), + ] diff --git a/src/mahjong_ranking/migrations/__init__.py b/src/mahjong_ranking/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/mahjong_ranking/models.py b/src/mahjong_ranking/models.py index b670305..418940a 100644 --- a/src/mahjong_ranking/models.py +++ b/src/mahjong_ranking/models.py @@ -12,9 +12,7 @@ from django.utils import timezone from django.utils.translation import ugettext as _ from events.models import Event -from . import KYU_RANKS, DAN_RANKS, DAN_RANKS_DICT, MIN_HANCHANS_FOR_LADDER -from . import logger, set_dirty - +from . import KYU_RANKS, DAN_RANKS, DAN_RANKS_DICT, MIN_HANCHANS_FOR_LADDER, logger, set_dirty kyu_dan_rankings = set() ladder_rankings = set() diff --git a/src/mahjong_ranking/templates/mahjong_ranking/hanchan_confirm_delete.html b/src/mahjong_ranking/templates/mahjong_ranking/hanchan_confirm_delete.html index 4831404..3befbd0 100644 --- a/src/mahjong_ranking/templates/mahjong_ranking/hanchan_confirm_delete.html +++ b/src/mahjong_ranking/templates/mahjong_ranking/hanchan_confirm_delete.html @@ -10,14 +10,8 @@ {% trans "Delete Hanchan" %} {% include 'form.html' %}

    - - + +

    diff --git a/src/mahjong_ranking/templates/mahjong_ranking/hanchan_form.html b/src/mahjong_ranking/templates/mahjong_ranking/hanchan_form.html index 9f8d574..35e1308 100644 --- a/src/mahjong_ranking/templates/mahjong_ranking/hanchan_form.html +++ b/src/mahjong_ranking/templates/mahjong_ranking/hanchan_form.html @@ -48,8 +48,8 @@

    - {% trans 'back' %} {% trans 'back' %} - + {% trans 'back' %} +

    diff --git a/src/mahjong_ranking/templates/mahjong_ranking/hanchan_list.html b/src/mahjong_ranking/templates/mahjong_ranking/hanchan_list.html index d625165..ca6a51c 100644 --- a/src/mahjong_ranking/templates/mahjong_ranking/hanchan_list.html +++ b/src/mahjong_ranking/templates/mahjong_ranking/hanchan_list.html @@ -31,14 +31,10 @@ {% endif %} {% empty %} @@ -48,9 +44,7 @@ {% block buttonbar %} {% if perms.mahjong_ranking.add_hanchan %} -{% trans 'Add' %} {% trans 'Edit Event' %} -{% trans 'Add' %} {% trans 'Add Hanchan' %} + {% trans 'Edit Event' %} + {% trans 'Add Hanchan' %} {% endif %} {% endblock %} \ No newline at end of file diff --git a/src/mahjong_ranking/templates/mahjong_ranking/kyudanranking_list.html b/src/mahjong_ranking/templates/mahjong_ranking/kyudanranking_list.html index 9f95e44..881b030 100644 --- a/src/mahjong_ranking/templates/mahjong_ranking/kyudanranking_list.html +++ b/src/mahjong_ranking/templates/mahjong_ranking/kyudanranking_list.html @@ -11,29 +11,29 @@ {% trans 'Avatar' %} - ▴ + {% trans 'Nickname' %} - ▾ + - ▴ + {% trans 'Full Name' %} - ▾ + - ▴ + {% trans 'Rank' %} - ▾ + - ▴ + {% trans 'Score' %} - ▾ + - ▴ + {% trans 'Games Total' %} - ▾ + diff --git a/src/mahjong_ranking/templates/mahjong_ranking/ladderranking_list.html b/src/mahjong_ranking/templates/mahjong_ranking/ladderranking_list.html index 712deb2..564e5bb 100644 --- a/src/mahjong_ranking/templates/mahjong_ranking/ladderranking_list.html +++ b/src/mahjong_ranking/templates/mahjong_ranking/ladderranking_list.html @@ -5,9 +5,9 @@

    Mahjong Ranking - {{season.name}}

      -
    • {% trans 'Start' %}: {{season.start}}
    • -
    • {% trans 'End' %}: {{season.end}}
    • -
    • {% trans 'Participants' %}: {{season.participants}}
    • +
    • {% trans 'Start' %}: {{season.start}}
    • +
    • {% trans 'End' %}: {{season.end}}
    • +
    • {% trans 'Participants' %}: {{season.participants}}
    {% endblock %} @@ -48,7 +48,7 @@ {% endwith %} {% empty %} - Leider hat es noch niemand in das Ranking geschafft. + Leider hat es noch niemand in das Ranking geschafft. Ein Spieler wird erst ins Ranking genommen wenn er 5 Hanchans absolviert hat. @@ -59,19 +59,18 @@ {% block redbox %}

    {% trans 'Latest Hanchans' %}

    -
    */ include "assets/posteddata.php"; ?> diff --git a/src/content/static/js/ckeditor/samples/old/tabindex.html b/src/content/static/js/ckeditor/samples/old/tabindex.html index 4918e67..4238f33 100644 --- a/src/content/static/js/ckeditor/samples/old/tabindex.html +++ b/src/content/static/js/ckeditor/samples/old/tabindex.html @@ -1,6 +1,6 @@ @@ -70,7 +70,7 @@ For licensing, see LICENSE.md or http://ckeditor.com/license CKEditor - The text editor for the Internet - http://ckeditor.com

    - Copyright © 2003-2015, CKSource - Frederico + Copyright © 2003-2017, CKSource - Frederico Knabben. All rights reserved.

    diff --git a/src/content/static/js/ckeditor/samples/old/toolbar/toolbar.html b/src/content/static/js/ckeditor/samples/old/toolbar/toolbar.html index 615d929..2c2622b 100644 --- a/src/content/static/js/ckeditor/samples/old/toolbar/toolbar.html +++ b/src/content/static/js/ckeditor/samples/old/toolbar/toolbar.html @@ -1,6 +1,6 @@ @@ -227,7 +227,7 @@ CKEDITOR.replace( 'textarea_id', { CKEditor - The text editor for the Internet - http://ckeditor.com

    - Copyright © 2003-2015, CKSource - Frederico + Copyright © 2003-2017, CKSource - Frederico Knabben. All rights reserved.

    diff --git a/src/content/static/js/ckeditor/samples/old/uicolor.html b/src/content/static/js/ckeditor/samples/old/uicolor.html index c1b48aa..fb61b1f 100644 --- a/src/content/static/js/ckeditor/samples/old/uicolor.html +++ b/src/content/static/js/ckeditor/samples/old/uicolor.html @@ -1,6 +1,6 @@ @@ -64,7 +64,7 @@ CKEDITOR.replace( 'textarea_id', { CKEditor - The text editor for the Internet - http://ckeditor.com

    - Copyright © 2003-2015, CKSource - Frederico + Copyright © 2003-2017, CKSource - Frederico Knabben. All rights reserved.

    diff --git a/src/content/static/js/ckeditor/samples/old/uilanguages.html b/src/content/static/js/ckeditor/samples/old/uilanguages.html index a7bf111..76749cb 100644 --- a/src/content/static/js/ckeditor/samples/old/uilanguages.html +++ b/src/content/static/js/ckeditor/samples/old/uilanguages.html @@ -1,6 +1,6 @@ @@ -114,7 +114,7 @@ CKEDITOR.replace( 'textarea_id', { CKEditor - The text editor for the Internet - http://ckeditor.com

    - Copyright © 2003-2015, CKSource - Frederico + Copyright © 2003-2017, CKSource - Frederico Knabben. All rights reserved.

    diff --git a/src/content/static/js/ckeditor/samples/old/xhtmlstyle.html b/src/content/static/js/ckeditor/samples/old/xhtmlstyle.html index bbf2b33..c918766 100644 --- a/src/content/static/js/ckeditor/samples/old/xhtmlstyle.html +++ b/src/content/static/js/ckeditor/samples/old/xhtmlstyle.html @@ -1,6 +1,6 @@ @@ -226,7 +226,7 @@ CKEDITOR.replace( 'textarea_id', { CKEditor - The text editor for the Internet - http://ckeditor.com

    - Copyright © 2003-2015, CKSource - Frederico + Copyright © 2003-2017, CKSource - Frederico Knabben. All rights reserved.

    diff --git a/src/content/static/js/ckeditor/samples/toolbarconfigurator/index.html b/src/content/static/js/ckeditor/samples/toolbarconfigurator/index.html index 3c1cf52..4d31289 100644 --- a/src/content/static/js/ckeditor/samples/toolbarconfigurator/index.html +++ b/src/content/static/js/ckeditor/samples/toolbarconfigurator/index.html @@ -1,6 +1,6 @@ @@ -136,7 +136,7 @@ For licensing, see LICENSE.md or http://ckeditor.com/license CKEditor – The text editor for the Internet – http://ckeditor.com

    - Copyright © 2003-2015, CKSource – Frederico Knabben. All rights reserved. + Copyright © 2003-2017, CKSource – Frederico Knabben. All rights reserved.

    diff --git a/src/content/static/js/ckeditor/samples/toolbarconfigurator/js/abstracttoolbarmodifier.js b/src/content/static/js/ckeditor/samples/toolbarconfigurator/js/abstracttoolbarmodifier.js index e8d325e..65f0b87 100644 --- a/src/content/static/js/ckeditor/samples/toolbarconfigurator/js/abstracttoolbarmodifier.js +++ b/src/content/static/js/ckeditor/samples/toolbarconfigurator/js/abstracttoolbarmodifier.js @@ -1,14 +1,13 @@ "function"!=typeof Object.create&&function(){var a=function(){};Object.create=function(b){if(1');a.ui.space("contents").append(c);c=a.editable(c);c.detach=CKEDITOR.tools.override(c.detach,function(b){return function(){b.apply(this,arguments);this.remove()}});a.setData(a.getData(1),b);a.fire("contentDom")});a.dataProcessor.toHtml=function(b){return b};a.dataProcessor.toDataFormat=function(b){return b}}}); -Object.keys||(Object.keys=function(){var a=Object.prototype.hasOwnProperty,b=!{toString:null}.propertyIsEnumerable("toString"),c="toString toLocaleString valueOf hasOwnProperty isPrototypeOf propertyIsEnumerable constructor".split(" "),e=c.length;return function(d){if("object"!==typeof d&&("function"!==typeof d||null===d))throw new TypeError("Object.keys called on non-object");var g=[],f;for(f in d)a.call(d,f)&&g.push(f);if(b)for(f=0;fconfig',group:"edit",position:"right",cssClass:"button-a-background icon-pos-left icon-download",clickCallback:function(){this.state="config";this._showConfig();this.showToolbarBtnsByGroupName(this.state)}}];this.cachedActiveElement=null}var j=ToolbarConfigurator.AbstractToolbarModifier;ToolbarConfigurator.ToolbarModifier= -d;d.prototype=Object.create(ToolbarConfigurator.AbstractToolbarModifier.prototype);d.prototype.getActualConfig=function(){var a=j.prototype.getActualConfig.call(this);if(a.toolbarGroups)for(var b=a.toolbarGroups.length,c=0;cCKEDITOR.editorConfig = function( config ) {\n',b?"\tconfig.toolbarGroups = ["+b+"\n\t];":"",c?"\n\n":"",c?"\tconfig.removeButtons = '"+c+"';":"","\n};"].join("");this.modifyContainer.addClass("hidden");this.configContainer.removeClass("hidden");this.configContainer.setHtml(a)};d.prototype._toggleVisibilityEmptyElements=function(){this.modifyContainer.hasClass("empty-visible")? -(this.modifyContainer.removeClass("empty-visible"),this.emptyVisible=!1):(this.modifyContainer.addClass("empty-visible"),this.emptyVisible=!0);this._refreshMoveBtnsAvalibility()};d.prototype._createModifier=function(){function a(){b._highlightGroup(this.data("name"))}var b=this;j.prototype._createModifier.call(this);this.modifyContainer.setHtml(this._toolbarConfigToListString());var c=this.modifyContainer.find('li[data-type="group"]');this.modifyContainer.on("mouseleave",function(){this._dehighlightActiveToolGroup()}, -this);for(var e=c.count(),f=0;f p > span > button.move.disabled"),e=c.count(),d=0;d li > ul"))}; -d.prototype._refreshBtnTabIndexes=function(){for(var a=this.mainContainer.find('[data-tab="true"]'),b=a.count(),c=0;c")};d.prototype._getToolbarGroupString=function(a){var b=a.groups,c;c=""+['
  • "].join("");c+=d.getToolbarElementPreString(a)+"
      ";for(var a=b.length,e=0;e"};d.getToolbarSeparatorString=function(a){return['
    • ',d.getToolbarElementPreString("row separator"),"
    • "].join("")};d.getToolbarHeaderString=function(){return'
      • Toolbars

        • Toolbar groups

          Toolbar group items

      '};d.getFirstAncestor=function(a,b){for(var c=a.getParents(),d=c.length;d--;)if(b(c[d]))return c[d];return null};d.getFirstElementIndexWith= -function(a,b,c,d){for(;"up"===c?b--:++b"].join("");c+=d.getToolbarElementPreString(a.name);c+=" -
      +
      {% trans "German" %} @@ -67,7 +67,7 @@ window.onload = function () {
      {{form.content_en}}
      -
      +

      diff --git a/src/content/templates/content/page_pdf.html b/src/content/templates/content/page_pdf.html index e54269c..03dabe2 100755 --- a/src/content/templates/content/page_pdf.html +++ b/src/content/templates/content/page_pdf.html @@ -60,7 +60,7 @@ body {

      \ No newline at end of file diff --git a/src/content/urls.py b/src/content/urls.py deleted file mode 100644 index 1fa6239..0000000 --- a/src/content/urls.py +++ /dev/null @@ -1,14 +0,0 @@ -# -*- encoding: utf-8 -*- -""" -Created on 03.10.2011 - -@author: christian -""" -from django.conf.urls import url -from .views import ImageList, PageList - - -urlpatterns = [ - url(r'^image_list.js$', ImageList.as_view(), name='content-image-list'), - url(r'^link_list.js$', PageList.as_view(), name='content-page-list'), -] diff --git a/src/content/views.py b/src/content/views.py index 34f359c..34bcb68 100644 --- a/src/content/views.py +++ b/src/content/views.py @@ -1,31 +1,48 @@ -# Create your views here. +import os import django_comments as comments -import os +from csp.decorators import csp_update from django.conf import settings from django.http import HttpResponse, Http404 +from django.utils.decorators import method_decorator from django.utils.translation import ugettext as _ from django.views import generic -from . import models, forms from events.models import Photo from utils.mixins import PermissionRequiredMixin +from . import models, forms class ArticleArchiveMixin(object): + """ + Mixin View to add common context data to Views of the news article archive. + """ def get_category(self, queryset): - try: - self.category = models.Category.objects.get( - slug=self.kwargs['category']) - return queryset.filter(category=self.category) - except models.Category.DoesNotExist: - raise Http404(_("This Category does not exist.")) - except KeyError: + """ + Filter the queryset by category if one has been specified in the URL + + :param queryset: an model.Article.objects Queryset + :return: an model.Article.objects Queryset filterd by category + """ + + category_slug = self.kwargs.get('category') + if not category_slug: self.category = None return self.queryset + try: + self.category = models.Category.objects.get(slug=category_slug) + except models.Category.DoesNotExist: + raise Http404(_("This Category does not exist.")) + return queryset.filter(category=self.category) def get_context_data(self, **kwargs): + """ + Adds the categories and the active category to the template context. + + :return: an django.template.context + """ + context = super(ArticleArchiveMixin, self).get_context_data(**kwargs) context['categories'] = models.Category.objects.all() context['active_category'] = self.category @@ -33,6 +50,10 @@ class ArticleArchiveMixin(object): class ArticleArchiveIndex(ArticleArchiveMixin, generic.ArchiveIndexView): + """ + Displays the latest news and the filters to browse the archives. + """ + queryset = models.Article.objects.filter(status=models.STATUS_PUBLISHED) date_field = 'date_created' paginate_by = 5 @@ -40,12 +61,21 @@ class ArticleArchiveIndex(ArticleArchiveMixin, generic.ArchiveIndexView): allow_empty = True def get_queryset(self): - queryset = generic.ArchiveIndexView.get_queryset(self) - queryset = self.get_category(queryset) - return queryset + """ + Filter the Queryset by category. + + :return: models.Article.objects queryset + """ + return self.get_category( + super(ArticleArchiveIndex, self).get_queryset() + ) class ArticleYearArchive(ArticleArchiveMixin, generic.YearArchiveView): + """ + Displays the Articles filterd by a specific year + """ + queryset = models.Article.objects.filter(status=models.STATUS_PUBLISHED) date_field = 'date_created' paginate_by = 5 @@ -54,12 +84,21 @@ class ArticleYearArchive(ArticleArchiveMixin, generic.YearArchiveView): allow_empty = True def get_queryset(self): - queryset = generic.YearArchiveView.get_queryset(self) - queryset = self.get_category(queryset) - return queryset + """ + Filter the Queryset by category. + + :return: models.Article.objects queryset + """ + return self.get_category( + super(ArticleYearArchive, self).get_queryset() + ) class ArticleMonthArchive(ArticleArchiveMixin, generic.MonthArchiveView): + """ + Displays the Articles filterd by a specific month + """ + queryset = models.Article.objects.filter(status=models.STATUS_PUBLISHED) date_field = 'date_created' month_format = '%m' @@ -68,16 +107,28 @@ class ArticleMonthArchive(ArticleArchiveMixin, generic.MonthArchiveView): allow_empty = True def get_queryset(self): - queryset = generic.MonthArchiveView.get_queryset(self) - queryset = self.get_category(queryset) - return queryset + """ + Filter the Queryset by category. + + :return: models.Article.objects queryset + """ + return self.get_category( + super(ArticleMonthArchive, self).get_queryset() + ) class ArticleDetail(generic.DetailView): + """ + Render the news Article, but only if it got published. + """ + queryset = models.Article.objects.filter(status=models.STATUS_PUBLISHED) class ArticleForm(PermissionRequiredMixin, generic.UpdateView): + """ + View to add or edit an Article + """ model = models.Article form_class = forms.ArticleForm permission_required = 'content.change_article' @@ -97,28 +148,11 @@ class ArticleForm(PermissionRequiredMixin, generic.UpdateView): return models.Article(author=self.request.user) -class ImageList(generic.View): - # noinspection PyMethodMayBeStatic - - def get(self, kwargs): - image_list = [] - response = HttpResponse(content_type='text/javascript') - response.write('var tinyMCEImageList = new Array(') - os.chdir(settings.MEDIA_ROOT) - for dirpath, dirnames, filenames in os.walk( - 'images'): # @UnusedVariable @IgnorePep8 - filenames.sort() - for filename in filenames: - image_list.append('["%(name)s", "%(path)s"]' % { - 'name': os.path.join(dirpath, filename), - 'path': os.path.join(settings.MEDIA_URL, dirpath, filename) - }) - response.write(', '.join(image_list)) - response.write(');') - return response - - class PageAddForm(PermissionRequiredMixin, generic.CreateView): + """ + Renders an Form to create a new page for users with conforming permissions. + """ + form_class = forms.PageForm template_name = 'content/page_form.html' permission_required = 'content.add_page' @@ -132,8 +166,16 @@ class PageAddForm(PermissionRequiredMixin, generic.CreateView): parent = models.Page.objects.get(path=path) return {'parent': parent} + @method_decorator(csp_update(SCRIPT_SRC="'unsafe-eval'")) + def dispatch(self, *args, **kwargs): + return super(PageAddForm, self).dispatch(*args, **kwargs) + class PageEditForm(PermissionRequiredMixin, generic.UpdateView): + """ + Renders an Form to edit a page for users with conforming permissions. + """ + form_class = forms.PageForm permission_required = 'content.change_page' @@ -145,6 +187,10 @@ class PageEditForm(PermissionRequiredMixin, generic.UpdateView): path = path[:-1] return models.Page.objects.get(path=path) + @method_decorator(csp_update(SCRIPT_SRC="'unsafe-eval'")) + def dispatch(self, *args, **kwargs): + return super(PageEditForm, self).dispatch(*args, **kwargs) + class PageHtml(generic.DetailView): @@ -184,23 +230,6 @@ class PagePdf(generic.DeleteView): raise Http404('File not Found %s.pdf' % self.kwargs['path']) -class PageList(generic.View): - # noinspection PyMethodMayBeStatic - - def get(self, kwargs): - response = HttpResponse(content_type='text/javascript') - response.write('var tinyMCELinkList = new Array(') - page_list = [] - for page in models.Page.objects.filter(status=models.STATUS_PUBLISHED): - page_list.append('["%(name)s", "%(path)s"]' % { - 'name': page.menu_name, - 'path': page.get_absolute_url() - }) - response.write(', '.join(page_list)) - response.write(');') - return response - - class StartPage(generic.TemplateView): template_name = 'index.html' diff --git a/src/events/context_processors.py b/src/events/context_processors.py index 0708049..e04a2a2 100644 --- a/src/events/context_processors.py +++ b/src/events/context_processors.py @@ -13,10 +13,10 @@ def upcoming_events(request): next_event = cache.get('next_event', False) upcoming_events = cache.get('upcoming_events', False) - if current_event == False: + if not current_event: current_event = Event.objects.current_event() cache.set('current_event', current_event, 360) - if next_event == False: + if not next_event: next_event = Event.objects.next_event() cache.set('next_event', next_event, 360) diff --git a/src/events/fixtures/test_events.json b/src/events/fixtures/test_events.json new file mode 100644 index 0000000..9f04b66 --- /dev/null +++ b/src/events/fixtures/test_events.json @@ -0,0 +1,1291 @@ +[ +{ + "model": "events.event", + "pk": 1, + "fields": { + "name": "Kasu Spieleabend", + "description": "Etwa alle 2 Wochen, abwechselnd Freitag oder Sonntag findet unser Spieleabend im Go 7 statt.\r\nJede Person ist willkommen, egal ob Clubmitglied oder nicht.\r\nGespielt werden kann alles was gef\u00e4llt. Es sind immer Leute da um unsere Spiele zu erkl\u00e4ren.\r\nF\u00fcr Vereinsmitglieder gibt es die M\u00f6glichkeit Rankingspiele zu absolvieren.\r\nTagesgeb\u00fchr f\u00fcr die R\u00e4ume: \u20ac 2,-- pro Person wenn gespielt wurde.", + "location": 1, + "start": "2015-08-16T12:00:00Z", + "end": "2015-08-16T21:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": null, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 2, + "fields": { + "name": "Kasu Spieleabend", + "description": "Unserer 2 W\u00f6chigen regul\u00e4ren Treffen", + "location": 1, + "start": "2015-08-23T12:00:00Z", + "end": "2015-08-23T21:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 1, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 4, + "fields": { + "name": "Kasu Spieleabend", + "description": "Alle 2 Wochen, abwechselnd Freitag oder Sonntag findet unser Spieleabend im Go 7 statt.\r\nJede Person ist willkommen, egal ob Clubmitglied oder nicht.\r\nGespielt werden kann alles was gef\u00e4llt. Es sind immer Leute da um unsere Spiele zu erkl\u00e4ren.\r\nF\u00fcr Vereinsmitglieder gibt es die M\u00f6glichkeit Rankingspiele zu absolvieren.\r\nTagesgeb\u00fchr f\u00fcr die R\u00e4ume: \u20ac 2,-- pro Person wenn gespielt wurde.", + "location": 1, + "start": "2015-01-02T13:00:00Z", + "end": "2015-01-03T01:00:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 1, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 5, + "fields": { + "name": "Kasu Spieleabend", + "description": "Alle 2 Wochen, abwechselnd Freitag oder Sonntag findet unser Spieleabend im Go 7 statt.\r\nJede Person ist willkommen, egal ob Clubmitglied oder nicht.\r\nGespielt werden kann alles was gef\u00e4llt. Es sind immer Leute da um unsere Spiele zu erkl\u00e4ren.\r\nF\u00fcr Vereinsmitglieder gibt es die M\u00f6glichkeit Rankingspiele zu absolvieren.\r\nTagesgeb\u00fchr f\u00fcr die R\u00e4ume: \u20ac 2,-- pro Person wenn gespielt wurde.", + "location": 1, + "start": "2015-01-04T13:00:00Z", + "end": "2015-01-04T22:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 1, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 6, + "fields": { + "name": "Kasu Spieleabend", + "description": "Alle 2 Wochen, abwechselnd Freitag oder Sonntag findet unser Spieleabend im Go 7 statt.\r\nJede Person ist willkommen, egal ob Clubmitglied oder nicht.\r\nGespielt werden kann alles was gef\u00e4llt. Es sind immer Leute da um unsere Spiele zu erkl\u00e4ren.\r\nF\u00fcr Vereinsmitglieder gibt es die M\u00f6glichkeit Rankingspiele zu absolvieren.\r\nTagesgeb\u00fchr f\u00fcr die R\u00e4ume: \u20ac 2,-- pro Person wenn gespielt wurde.", + "location": 1, + "start": "2015-01-16T13:00:00Z", + "end": "2015-01-16T22:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 1, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 7, + "fields": { + "name": "Kasu Spieleabend", + "description": "Alle 2 Wochen, abwechselnd Freitag oder Sonntag findet unser Spieleabend im Go 7 statt.\r\nJede Person ist willkommen, egal ob Clubmitglied oder nicht.\r\nGespielt werden kann alles was gef\u00e4llt. Es sind immer Leute da um unsere Spiele zu erkl\u00e4ren.\r\nF\u00fcr Vereinsmitglieder gibt es die M\u00f6glichkeit Rankingspiele zu absolvieren.\r\nTagesgeb\u00fchr f\u00fcr die R\u00e4ume: \u20ac 2,-- pro Person wenn gespielt wurde.", + "location": 1, + "start": "2015-02-01T13:00:00Z", + "end": "2015-02-01T22:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 1, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 8, + "fields": { + "name": "Kasu Spieleabend", + "description": "Alle 2 Wochen, abwechselnd Freitag oder Sonntag findet unser Spieleabend im Go 7 statt.\r\nJede Person ist willkommen, egal ob Clubmitglied oder nicht.\r\nGespielt werden kann alles was gef\u00e4llt. Es sind immer Leute da um unsere Spiele zu erkl\u00e4ren.\r\nF\u00fcr Vereinsmitglieder gibt es die M\u00f6glichkeit Rankingspiele zu absolvieren.\r\nTagesgeb\u00fchr f\u00fcr die R\u00e4ume: \u20ac 2,-- pro Person wenn gespielt wurde.", + "location": 1, + "start": "2015-02-13T13:00:00Z", + "end": "2015-02-13T22:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 1, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 9, + "fields": { + "name": "Kasu Spieleabend", + "description": "Alle 2 Wochen, abwechselnd Freitag oder Sonntag findet unser Spieleabend im Go 7 statt.\r\nJede Person ist willkommen, egal ob Clubmitglied oder nicht.\r\nGespielt werden kann alles was gef\u00e4llt. Es sind immer Leute da um unsere Spiele zu erkl\u00e4ren.\r\nF\u00fcr Vereinsmitglieder gibt es die M\u00f6glichkeit Rankingspiele zu absolvieren.\r\nTagesgeb\u00fchr f\u00fcr die R\u00e4ume: \u20ac 2,-- pro Person wenn gespielt wurde.", + "location": 1, + "start": "2015-02-27T13:00:00Z", + "end": "2015-02-28T02:00:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 1, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 10, + "fields": { + "name": "Kasu Spieleabend", + "description": "Alle 2 Wochen, abwechselnd Freitag oder Sonntag findet unser Spieleabend im Go 7 statt.\r\nJede Person ist willkommen, egal ob Clubmitglied oder nicht.\r\nGespielt werden kann alles was gef\u00e4llt. Es sind immer Leute da um unsere Spiele zu erkl\u00e4ren.\r\nF\u00fcr Vereinsmitglieder gibt es die M\u00f6glichkeit Rankingspiele zu absolvieren.\r\nTagesgeb\u00fchr f\u00fcr die R\u00e4ume: \u20ac 2,-- pro Person wenn gespielt wurde.", + "location": 1, + "start": "2015-03-15T13:00:00Z", + "end": "2015-03-15T22:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 1, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 11, + "fields": { + "name": "Kasu Spieleabend", + "description": "Alle 2 Wochen, abwechselnd Freitag oder Sonntag findet unser Spieleabend im Go 7 statt.\r\nJede Person ist willkommen, egal ob Clubmitglied oder nicht.\r\nGespielt werden kann alles was gef\u00e4llt. Es sind immer Leute da um unsere Spiele zu erkl\u00e4ren.\r\nF\u00fcr Vereinsmitglieder gibt es die M\u00f6glichkeit Rankingspiele zu absolvieren.\r\nTagesgeb\u00fchr f\u00fcr die R\u00e4ume: \u20ac 2,-- pro Person wenn gespielt wurde.", + "location": 1, + "start": "2015-04-19T12:00:00Z", + "end": "2015-04-19T21:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 1, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 12, + "fields": { + "name": "Kasu Spieleabend", + "description": "Alle 2 Wochen, abwechselnd Freitag oder Sonntag findet unser Spieleabend im Go 7 statt.\r\nJede Person ist willkommen, egal ob Clubmitglied oder nicht.\r\nGespielt werden kann alles was gef\u00e4llt. Es sind immer Leute da um unsere Spiele zu erkl\u00e4ren.\r\nF\u00fcr Vereinsmitglieder gibt es die M\u00f6glichkeit Rankingspiele zu absolvieren.\r\nTagesgeb\u00fchr f\u00fcr die R\u00e4ume: \u20ac 2,-- pro Person wenn gespielt wurde.", + "location": 1, + "start": "2015-05-01T12:00:00Z", + "end": "2015-05-01T21:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 1, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 13, + "fields": { + "name": "Kasu Spieleabend", + "description": "Alle 2 Wochen, abwechselnd Freitag oder Sonntag findet unser Spieleabend im Go 7 statt.\r\nJede Person ist willkommen, egal ob Clubmitglied oder nicht.\r\nGespielt werden kann alles was gef\u00e4llt. Es sind immer Leute da um unsere Spiele zu erkl\u00e4ren.\r\nF\u00fcr Vereinsmitglieder gibt es die M\u00f6glichkeit Rankingspiele zu absolvieren.\r\nTagesgeb\u00fchr f\u00fcr die R\u00e4ume: \u20ac 2,-- pro Person wenn gespielt wurde.", + "location": 1, + "start": "2015-05-17T12:00:00Z", + "end": "2015-05-17T21:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 1, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 14, + "fields": { + "name": "Kasu Spieleabend", + "description": "Alle 2 Wochen, abwechselnd Freitag oder Sonntag findet unser Spieleabend im Go 7 statt.\r\nJede Person ist willkommen, egal ob Clubmitglied oder nicht.\r\nGespielt werden kann alles was gef\u00e4llt. Es sind immer Leute da um unsere Spiele zu erkl\u00e4ren.\r\nF\u00fcr Vereinsmitglieder gibt es die M\u00f6glichkeit Rankingspiele zu absolvieren.\r\nTagesgeb\u00fchr f\u00fcr die R\u00e4ume: \u20ac 2,-- pro Person wenn gespielt wurde.", + "location": 1, + "start": "2015-05-29T12:00:00Z", + "end": "2015-05-29T21:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 1, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 15, + "fields": { + "name": "Kasu Spieleabend", + "description": "Alle 2 Wochen, abwechselnd Freitag oder Sonntag findet unser Spieleabend im Go 7 statt.\r\nJede Person ist willkommen, egal ob Clubmitglied oder nicht.\r\nGespielt werden kann alles was gef\u00e4llt. Es sind immer Leute da um unsere Spiele zu erkl\u00e4ren.\r\nF\u00fcr Vereinsmitglieder gibt es die M\u00f6glichkeit Rankingspiele zu absolvieren.\r\nTagesgeb\u00fchr f\u00fcr die R\u00e4ume: \u20ac 2,-- pro Person wenn gespielt wurde.", + "location": 1, + "start": "2015-06-12T12:00:00Z", + "end": "2015-06-12T21:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 1, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 16, + "fields": { + "name": "Kasu Spieleabend", + "description": "Alle 2 Wochen, abwechselnd Freitag oder Sonntag findet unser Spieleabend im Go 7 statt.\r\nJede Person ist willkommen, egal ob Clubmitglied oder nicht.\r\nGespielt werden kann alles was gef\u00e4llt. Es sind immer Leute da um unsere Spiele zu erkl\u00e4ren.\r\nF\u00fcr Vereinsmitglieder gibt es die M\u00f6glichkeit Rankingspiele zu absolvieren.\r\nTagesgeb\u00fchr f\u00fcr die R\u00e4ume: \u20ac 2,-- pro Person wenn gespielt wurde.", + "location": 1, + "start": "2015-06-28T12:00:00Z", + "end": "2015-06-28T21:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 1, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 17, + "fields": { + "name": "Kasu Spieleabend", + "description": "Alle 2 Wochen, abwechselnd Freitag oder Sonntag findet unser Spieleabend im Go 7 statt.\r\nJede Person ist willkommen, egal ob Clubmitglied oder nicht.\r\nGespielt werden kann alles was gef\u00e4llt. Es sind immer Leute da um unsere Spiele zu erkl\u00e4ren.\r\nF\u00fcr Vereinsmitglieder gibt es die M\u00f6glichkeit Rankingspiele zu absolvieren.\r\nTagesgeb\u00fchr f\u00fcr die R\u00e4ume: \u20ac 2,-- pro Person wenn gespielt wurde.", + "location": 1, + "start": "2015-07-10T12:00:00Z", + "end": "2015-07-10T21:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 1, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 18, + "fields": { + "name": "Kasu Spieleabend", + "description": "Alle 2 Wochen, abwechselnd Freitag oder Sonntag findet unser Spieleabend im Go 7 statt.\r\nJede Person ist willkommen, egal ob Clubmitglied oder nicht.\r\nGespielt werden kann alles was gef\u00e4llt. Es sind immer Leute da um unsere Spiele zu erkl\u00e4ren.\r\nF\u00fcr Vereinsmitglieder gibt es die M\u00f6glichkeit Rankingspiele zu absolvieren.\r\nTagesgeb\u00fchr f\u00fcr die R\u00e4ume: \u20ac 2,-- pro Person wenn gespielt wurde.", + "location": 1, + "start": "2015-07-19T12:00:00Z", + "end": "2015-07-19T21:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 1, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 19, + "fields": { + "name": "Kasu Spieleabend", + "description": "Alle 2 Wochen, abwechselnd Freitag oder Sonntag findet unser Spieleabend im Go 7 statt.\r\nJede Person ist willkommen, egal ob Clubmitglied oder nicht.\r\nGespielt werden kann alles was gef\u00e4llt. Es sind immer Leute da um unsere Spiele zu erkl\u00e4ren.\r\nF\u00fcr Vereinsmitglieder gibt es die M\u00f6glichkeit Rankingspiele zu absolvieren.\r\nTagesgeb\u00fchr f\u00fcr die R\u00e4ume: \u20ac 2,-- pro Person wenn gespielt wurde.", + "location": 1, + "start": "2015-07-31T12:00:00Z", + "end": "2015-07-31T21:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 1, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 23, + "fields": { + "name": "Kasu Spieleabend", + "description": "Alle 2 Wochen, abwechselnd Freitag oder Sonntag findet unser Spieleabend im Go 7 statt.\r\nJede Person ist willkommen, egal ob Clubmitglied oder nicht.\r\nGespielt werden kann alles was gef\u00e4llt. Es sind immer Leute da um unsere Spiele zu erkl\u00e4ren.\r\nF\u00fcr Vereinsmitglieder gibt es die M\u00f6glichkeit Rankingspiele zu absolvieren.\r\nTagesgeb\u00fchr f\u00fcr die R\u00e4ume: \u20ac 2,-- pro Person wenn gespielt wurde.", + "location": 1, + "start": "2015-10-02T13:00:00Z", + "end": "2015-10-02T21:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 1, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 24, + "fields": { + "name": "Kasu Spieleabend", + "description": "Alle 2 Wochen, abwechselnd Freitag oder Sonntag findet unser Spieleabend im Go 7 statt.\r\nJede Person ist willkommen, egal ob Clubmitglied oder nicht.\r\nGespielt werden kann alles was gef\u00e4llt. Es sind immer Leute da um unsere Spiele zu erkl\u00e4ren.\r\nF\u00fcr Vereinsmitglieder gibt es die M\u00f6glichkeit Rankingspiele zu absolvieren.\r\nTagesgeb\u00fchr f\u00fcr die R\u00e4ume: \u20ac 2,-- pro Person wenn gespielt wurde.", + "location": 1, + "start": "2015-10-18T12:00:00Z", + "end": "2015-10-18T21:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 1, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 25, + "fields": { + "name": "Kasu Spieleabend", + "description": "Alle 2 Wochen, abwechselnd Freitag oder Sonntag findet unser Spieleabend im Go 7 statt.\r\nJede Person ist willkommen, egal ob Clubmitglied oder nicht.\r\nGespielt werden kann alles was gef\u00e4llt. Es sind immer Leute da um unsere Spiele zu erkl\u00e4ren.\r\nF\u00fcr Vereinsmitglieder gibt es die M\u00f6glichkeit Rankingspiele zu absolvieren.\r\nTagesgeb\u00fchr f\u00fcr die R\u00e4ume: \u20ac 2,-- pro Person wenn gespielt wurde.", + "location": 1, + "start": "2015-10-30T14:00:00Z", + "end": "2015-10-30T22:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 1, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 27, + "fields": { + "name": "Kasu Spieleabend", + "description": "Alle 2 Wochen, abwechselnd Freitag oder Sonntag findet unser Spieleabend im Go 7 statt.\r\nJede Person ist willkommen, egal ob Clubmitglied oder nicht.\r\nGespielt werden kann alles was gef\u00e4llt. Es sind immer Leute da um unsere Spiele zu erkl\u00e4ren.\r\nF\u00fcr Vereinsmitglieder gibt es die M\u00f6glichkeit Rankingspiele zu absolvieren.\r\nTagesgeb\u00fchr f\u00fcr die R\u00e4ume: \u20ac 2,-- pro Person wenn gespielt wurde.", + "location": 1, + "start": "2015-12-04T14:00:00Z", + "end": "2015-12-04T22:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 1, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 28, + "fields": { + "name": "Kasu Weihnachtsfeier", + "description": "

      Unsere Vereinsweihnachtsfeier mit Keksen, Punsch und Engerl-Bengerl :)

      \r\n", + "location": 1, + "start": "2015-12-20T13:00:00Z", + "end": "2015-12-20T22:59:00Z", + "url": "", + "image": "events/2015-12-20/kasu-weihnachtsfeier.jpg", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": null, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 62, + "fields": { + "name": "Kasu Spieleabend", + "description": "

      Etwa alle 2 Wochen, abwechselnd Freitag oder Sonntag findet unser Spieleabend im Go 7 statt. Jede Person ist willkommen, egal ob Clubmitglied oder nicht. Gespielt werden kann alles was gefällt. Es sind immer Leute da um unsere Spiele zu erklären. Für Vereinsmitglieder gibt es die Möglichkeit Rankingspiele zu absolvieren. Tagesgebühr für die Räume: € 2,-- pro Person wenn gespielt wurde.

      \r\n", + "location": 1, + "start": "2015-09-18T13:00:00Z", + "end": "2015-09-18T21:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 1, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 63, + "fields": { + "name": "Kasu Halloween-Feier", + "description": "

      Wir feiern wieder Halloween!

      \r\n\r\n

      Wir laden euch ein zu einem netten Abend mit Mahjong und bizzarren Filmen.

      \r\n\r\n

      Da am gleichen Abend ein GO-Spieleabend ist, werden wir mit den Filmen erst abends (gegen 19 Uhr) beginnen, zum Spielen könnt ihr aber schon ab 16 Uhr vorbei kommen.

      \r\n\r\n

      Mitgebrachte Knabbereien und Getränke sind immer gerne gesehen :)

      \r\n", + "location": 1, + "start": "2015-10-31T15:00:00Z", + "end": "2015-10-31T22:30:00Z", + "url": "", + "image": "events/2015-10-31/kasu-halloween-feier.jpg", + "mahjong_tournament": false, + "mahjong_season": 2015, + "photo_count": 0, + "event_series": null, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 64, + "fields": { + "name": "Kasu Spieleabend", + "description": "Etwa alle 2 Wochen, abwechselnd Freitag oder Sonntag findet unser Spieleabend im Go 7 statt.\r\nJede Person ist willkommen, egal ob Clubmitglied oder nicht.\r\nGespielt werden kann alles was gef\u00e4llt. Es sind immer Leute da um unsere Spiele zu erkl\u00e4ren.\r\nF\u00fcr Vereinsmitglieder gibt es die M\u00f6glichkeit Rankingspiele zu absolvieren.\r\nTagesgeb\u00fchr f\u00fcr die R\u00e4ume: \u20ac 2,-- pro Person wenn gespielt wurde.", + "location": 1, + "start": "2015-10-09T12:00:00Z", + "end": "2015-10-09T21:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 1, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 65, + "fields": { + "name": "KASU Ranking Turnier 2016", + "description": "

      Erstes Turnier des Jahres 2016.

      \r\n", + "location": 1, + "start": "2016-01-03T13:00:00Z", + "end": "2016-01-03T21:00:00Z", + "url": "", + "image": "", + "mahjong_tournament": true, + "mahjong_season": 2016, + "photo_count": 0, + "event_series": null, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 66, + "fields": { + "name": "Kasu Spieleabend", + "description": "Etwa alle 2 Wochen, abwechselnd Freitag oder Sonntag findet unser Spieleabend im Go 7 statt.\r\nJede Person ist willkommen, egal ob Clubmitglied oder nicht.\r\nGespielt werden kann alles was gef\u00e4llt. Es sind immer Leute da um unsere Spiele zu erkl\u00e4ren.\r\nF\u00fcr Vereinsmitglieder gibt es die M\u00f6glichkeit Rankingspiele zu absolvieren.\r\nTagesgeb\u00fchr f\u00fcr die R\u00e4ume: \u20ac 2,-- pro Person wenn gespielt wurde.", + "location": 1, + "start": "2015-11-20T14:00:00Z", + "end": "2015-11-20T22:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 1, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 67, + "fields": { + "name": "Kasu Generalversammlung und Spieleabend", + "description": "

      Unser regelmäßiger Spieleabend im GO7.

      \r\n\r\n

      Jede Person ist willkommen, egal ob Clubmitglied oder nicht. Gespielt werden kann alles was gefällt. Es sind immer Leute da um unsere Spiele zu erklären. Für Vereinsmitglieder gibt es die Möglichkeit Rankingspiele zu absolvieren. Tagesgebühr für die Räume: € 2,-- pro Person wenn gespielt wurde.

      \r\n\r\n

      Das erste Treffen 2016 beinhaltet auch die Kasu-Generalversammlung, welche um 18:00 beginnen wird. Dabei werden der Vorstand neu gewählt und wichtige Themen für das kommende Jahr besprochen. Wenn ihr euer Stimmrecht als Vereinsmitglied nutzen wollt, seid dabei!

      \r\n", + "location": 1, + "start": "2016-01-15T14:00:00Z", + "end": "2016-01-15T22:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": null, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 68, + "fields": { + "name": "Kasu Spieleabend", + "description": "

      Achtung!!!

      \r\n\r\n

      Beim heutigen Treffen wird voraussichtlich erst gegen 14:15 jemand da sein, um aufzusperren.

      \r\n\r\n

      Bitte bringt also etwas Geduld mit oder lasst euch mit der Anreise etwas Zeit :)

      \r\n\r\n

      Unser regelmäßiger Spieleabend im GO7.

      \r\n\r\n

      Jede Person ist willkommen, egal ob Clubmitglied oder nicht. Gespielt werden kann alles was gefällt. Es sind immer Leute da um unsere Spiele zu erklären. Für Vereinsmitglieder gibt es die Möglichkeit Rankingspiele zu absolvieren. Tagesgebühr für die Räume: € 2,-- pro Person wenn gespielt wurde.

      \r\n", + "location": 1, + "start": "2016-01-31T13:00:00Z", + "end": "2016-01-31T22:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": null, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 69, + "fields": { + "name": "Kasu Spieleabend", + "description": "

      Unser regelmäßiger Spieleabend im GO7.

      \r\n\r\n

      Jede Person ist willkommen, egal ob Clubmitglied oder nicht. Gespielt werden kann alles was gefällt. Es sind immer Leute da um unsere Spiele zu erklären. Für Vereinsmitglieder gibt es die Möglichkeit Rankingspiele zu absolvieren. Tagesgebühr für die Räume: € 2,-- pro Person wenn gespielt wurde.

      \r\n", + "location": 1, + "start": "2016-02-12T14:00:00Z", + "end": "2016-02-12T22:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 68, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 70, + "fields": { + "name": "Kasu Spieleabend", + "description": "

      Unser regelmäßiger Spieleabend im GO7.

      \r\n\r\n

      Jede Person ist willkommen, egal ob Clubmitglied oder nicht. Gespielt werden kann alles was gefällt. Es sind immer Leute da um unsere Spiele zu erklären. Für Vereinsmitglieder gibt es die Möglichkeit Rankingspiele zu absolvieren. Tagesgebühr für die Räume: € 2,-- pro Person wenn gespielt wurde.

      \r\n", + "location": 1, + "start": "2016-02-26T14:00:00Z", + "end": "2016-02-26T22:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 68, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 71, + "fields": { + "name": "Kasu Spieleabend", + "description": "

      Unser regelmäßiger Spieleabend im GO7.

      \r\n\r\n

      Jede Person ist willkommen, egal ob Clubmitglied oder nicht. Gespielt werden kann alles was gefällt. Es sind immer Leute da um unsere Spiele zu erklären. Für Vereinsmitglieder gibt es die Möglichkeit Rankingspiele zu absolvieren. Tagesgebühr für die Räume: € 2,-- pro Person wenn gespielt wurde.

      \r\n", + "location": 1, + "start": "2016-03-06T13:00:00Z", + "end": "2016-03-06T22:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 68, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 72, + "fields": { + "name": "Kasu Spieleabend", + "description": "

      Unser regelmäßiger Spieleabend im GO7.

      \r\n\r\n

      Jede Person ist willkommen, egal ob Clubmitglied oder nicht. Gespielt werden kann alles was gefällt. Es sind immer Leute da um unsere Spiele zu erklären. Für Vereinsmitglieder gibt es die Möglichkeit Rankingspiele zu absolvieren. Tagesgebühr für die Räume: € 2,-- pro Person wenn gespielt wurde.

      \r\n", + "location": 1, + "start": "2016-03-11T14:00:00Z", + "end": "2016-03-11T22:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 68, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 73, + "fields": { + "name": "Kasu Spieleabend", + "description": "

      Unser regelmäßiger Spieleabend im GO7.

      \r\n\r\n

      Jede Person ist willkommen, egal ob Clubmitglied oder nicht. Gespielt werden kann alles was gefällt. Es sind immer Leute da um unsere Spiele zu erklären. Für Vereinsmitglieder gibt es die Möglichkeit Rankingspiele zu absolvieren. Tagesgebühr für die Räume: € 2,-- pro Person wenn gespielt wurde.

      \r\n", + "location": 1, + "start": "2016-03-18T14:00:00Z", + "end": "2016-03-18T22:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 68, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 74, + "fields": { + "name": "Kasu Spieleabend", + "description": "

      Unser regelmäßiger Spieleabend im GO7.

      \r\n\r\n

      Jede Person ist willkommen, egal ob Clubmitglied oder nicht. Gespielt werden kann alles was gefällt. Es sind immer Leute da um unsere Spiele zu erklären. Für Vereinsmitglieder gibt es die Möglichkeit Rankingspiele zu absolvieren. Tagesgebühr für die Räume: € 2,-- pro Person wenn gespielt wurde.

      \r\n", + "location": 1, + "start": "2016-03-27T12:00:00Z", + "end": "2016-03-27T21:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 68, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 75, + "fields": { + "name": "Kasu Spieleabend", + "description": "

      Unser regelmäßiger Spieleabend im GO7.

      \r\n\r\n

      Jede Person ist willkommen, egal ob Clubmitglied oder nicht. Gespielt werden kann alles was gefällt. Es sind immer Leute da um unsere Spiele zu erklären. Für Vereinsmitglieder gibt es die Möglichkeit Rankingspiele zu absolvieren. Tagesgebühr für die Räume: € 2,-- pro Person wenn gespielt wurde.

      \r\n", + "location": 1, + "start": "2016-04-03T12:00:00Z", + "end": "2016-04-03T21:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 68, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 76, + "fields": { + "name": "Kasu Spieleabend", + "description": "

      Unser regelmäßiger Spieleabend im GO7.

      \r\n\r\n

      Jede Person ist willkommen, egal ob Clubmitglied oder nicht. Gespielt werden kann alles was gefällt. Es sind immer Leute da um unsere Spiele zu erklären. Für Vereinsmitglieder gibt es die Möglichkeit Rankingspiele zu absolvieren. Tagesgebühr für die Räume: € 2,-- pro Person wenn gespielt wurde.

      \r\n", + "location": 1, + "start": "2016-04-08T13:00:00Z", + "end": "2016-04-08T21:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 68, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 77, + "fields": { + "name": "Kasu Spieleabend", + "description": "

      Unser regelmäßiger Spieleabend im GO7.

      \r\n\r\n

      Jede Person ist willkommen, egal ob Clubmitglied oder nicht. Gespielt werden kann alles was gefällt. Es sind immer Leute da um unsere Spiele zu erklären. Für Vereinsmitglieder gibt es die Möglichkeit Rankingspiele zu absolvieren. Tagesgebühr für die Räume: € 2,-- pro Person wenn gespielt wurde.

      \r\n", + "location": 1, + "start": "2016-04-15T13:00:00Z", + "end": "2016-04-15T21:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 68, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 78, + "fields": { + "name": "Kasu Spieleabend", + "description": "

      Unser regelmäßiger Spieleabend im GO7.

      \r\n\r\n

      Jede Person ist willkommen, egal ob Clubmitglied oder nicht. Gespielt werden kann alles was gefällt. Es sind immer Leute da um unsere Spiele zu erklären. Für Vereinsmitglieder gibt es die Möglichkeit Rankingspiele zu absolvieren. Tagesgebühr für die Räume: € 2,-- pro Person wenn gespielt wurde.

      \r\n", + "location": 1, + "start": "2016-04-24T12:00:00Z", + "end": "2016-04-24T21:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 68, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 79, + "fields": { + "name": "Kasu Spieleabend", + "description": "

      Unser regelmäßiger Spieleabend im GO7.

      \r\n\r\n

      Jede Person ist willkommen, egal ob Clubmitglied oder nicht. Gespielt werden kann alles was gefällt. Es sind immer Leute da um unsere Spiele zu erklären. Für Vereinsmitglieder gibt es die Möglichkeit Rankingspiele zu absolvieren. Tagesgebühr für die Räume: € 2,-- pro Person wenn gespielt wurde.

      \r\n", + "location": 1, + "start": "2016-04-29T13:00:00Z", + "end": "2016-04-29T21:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 68, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 80, + "fields": { + "name": "Kasu Spieleabend", + "description": "

      Unser regelmäßiger Spieleabend im GO7.

      \r\n\r\n

      Jede Person ist willkommen, egal ob Clubmitglied oder nicht. Gespielt werden kann alles was gefällt. Es sind immer Leute da um unsere Spiele zu erklären. Für Vereinsmitglieder gibt es die Möglichkeit Rankingspiele zu absolvieren. Tagesgebühr für die Räume: € 2,-- pro Person wenn gespielt wurde.

      \r\n", + "location": 1, + "start": "2016-05-06T13:00:00Z", + "end": "2016-05-06T21:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 68, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 81, + "fields": { + "name": "Kasu Spieleabend", + "description": "

      Unser regelmäßiger Spieleabend im GO7.

      \r\n\r\n

      Jede Person ist willkommen, egal ob Clubmitglied oder nicht. Gespielt werden kann alles was gefällt. Es sind immer Leute da um unsere Spiele zu erklären. Für Vereinsmitglieder gibt es die Möglichkeit Rankingspiele zu absolvieren. Tagesgebühr für die Räume: € 2,-- pro Person wenn gespielt wurde.

      \r\n", + "location": 1, + "start": "2016-05-15T12:00:00Z", + "end": "2016-05-15T21:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 68, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 82, + "fields": { + "name": "Kasu Spieleabend", + "description": "

      Unser regelmäßiger Spieleabend im GO7.

      \r\n\r\n

      Jede Person ist willkommen, egal ob Clubmitglied oder nicht. Gespielt werden kann alles was gefällt. Es sind immer Leute da um unsere Spiele zu erklären. Für Vereinsmitglieder gibt es die Möglichkeit Rankingspiele zu absolvieren. Tagesgebühr für die Räume: € 2,-- pro Person wenn gespielt wurde.

      \r\n", + "location": 1, + "start": "2016-05-22T12:00:00Z", + "end": "2016-05-22T21:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 68, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 83, + "fields": { + "name": "Kasu Spieleabend", + "description": "

      Unser regelmäßiger Spieleabend im GO7.

      \r\n\r\n

      Jede Person ist willkommen, egal ob Clubmitglied oder nicht. Gespielt werden kann alles was gefällt. Es sind immer Leute da um unsere Spiele zu erklären. Für Vereinsmitglieder gibt es die Möglichkeit Rankingspiele zu absolvieren. Tagesgebühr für die Räume: € 2,-- pro Person wenn gespielt wurde.

      \r\n", + "location": 1, + "start": "2016-05-27T13:00:00Z", + "end": "2016-05-27T21:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 68, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 84, + "fields": { + "name": "Kasu Spieleabend", + "description": "

      ACHTUNG! Späterer Beginn!!

      \r\n\r\n

      Unser regelmäßiger Spieleabend im GO7.

      \r\n\r\n

      Jede Person ist willkommen, egal ob Clubmitglied oder nicht. Gespielt werden kann alles was gefällt. Es sind immer Leute da um unsere Spiele zu erklären. Für Vereinsmitglieder gibt es die Möglichkeit Rankingspiele zu absolvieren. Tagesgebühr für die Räume: € 2,-- pro Person wenn gespielt wurde.

      \r\n", + "location": 1, + "start": "2016-06-05T13:00:00Z", + "end": "2016-06-05T21:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 68, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 85, + "fields": { + "name": "Kasu Spieleabend", + "description": "

      Unser regelmäßiger Spieleabend im GO7.

      \r\n\r\n

      Jede Person ist willkommen, egal ob Clubmitglied oder nicht. Gespielt werden kann alles was gefällt. Es sind immer Leute da um unsere Spiele zu erklären. Für Vereinsmitglieder gibt es die Möglichkeit Rankingspiele zu absolvieren. Tagesgebühr für die Räume: € 2,-- pro Person wenn gespielt wurde.

      \r\n", + "location": 1, + "start": "2016-06-17T13:00:00Z", + "end": "2016-06-17T21:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 68, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 86, + "fields": { + "name": "Kasu Spieleabend", + "description": "

      Unser regelmäßiger Spieleabend im GO7.

      \r\n\r\n

      Jede Person ist willkommen, egal ob Clubmitglied oder nicht. Gespielt werden kann alles was gefällt. Es sind immer Leute da um unsere Spiele zu erklären. Für Vereinsmitglieder gibt es die Möglichkeit Rankingspiele zu absolvieren. Tagesgebühr für die Räume: € 2,-- pro Person wenn gespielt wurde.

      \r\n", + "location": 1, + "start": "2016-06-26T12:00:00Z", + "end": "2016-06-26T21:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 68, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 87, + "fields": { + "name": "Kasu Spieleabend", + "description": "

      Unser regelmäßiger Spieleabend im GO7.

      \r\n\r\n

      Jede Person ist willkommen, egal ob Clubmitglied oder nicht. Gespielt werden kann alles was gefällt. Es sind immer Leute da um unsere Spiele zu erklären. Für Vereinsmitglieder gibt es die Möglichkeit Rankingspiele zu absolvieren. Tagesgebühr für die Räume: € 2,-- pro Person wenn gespielt wurde.

      \r\n", + "location": 1, + "start": "2016-07-10T12:00:00Z", + "end": "2016-07-10T21:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 68, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 88, + "fields": { + "name": "Kasu Spieleabend", + "description": "

      Unser regelmäßiger Spieleabend im GO7.

      \r\n\r\n

      Jede Person ist willkommen, egal ob Clubmitglied oder nicht. Gespielt werden kann alles was gefällt. Es sind immer Leute da um unsere Spiele zu erklären. Für Vereinsmitglieder gibt es die Möglichkeit Rankingspiele zu absolvieren. Tagesgebühr für die Räume: € 2,-- pro Person wenn gespielt wurde.

      \r\n", + "location": 1, + "start": "2016-07-24T12:00:00Z", + "end": "2016-07-24T21:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 68, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 89, + "fields": { + "name": "Kasu Spieleabend", + "description": "

      Unser regelmäßiger Spieleabend im GO7.

      \r\n\r\n

      Jede Person ist willkommen, egal ob Clubmitglied oder nicht. Gespielt werden kann alles was gefällt. Es sind immer Leute da um unsere Spiele zu erklären. Für Vereinsmitglieder gibt es die Möglichkeit Rankingspiele zu absolvieren. Tagesgebühr für die Räume: € 2,-- pro Person wenn gespielt wurde.

      \r\n", + "location": 1, + "start": "2016-08-07T12:00:00Z", + "end": "2016-08-07T21:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 68, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 93, + "fields": { + "name": "Kasu Spieleabend", + "description": "

      Unser regelmäßiger Spieleabend im GO7.

      \r\n\r\n

      Jede Person ist willkommen, egal ob Clubmitglied oder nicht. Gespielt werden kann alles was gefällt. Es sind immer Leute da um unsere Spiele zu erklären. Für Vereinsmitglieder gibt es die Möglichkeit Rankingspiele zu absolvieren. Tagesgebühr für die Räume: € 2,-- pro Person wenn gespielt wurde.

      \r\n", + "location": 1, + "start": "2016-08-21T12:00:00Z", + "end": "2016-08-21T21:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 68, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 94, + "fields": { + "name": "Kasu Spieleabend", + "description": "

      Unser regelmäßiger Spieleabend im GO7.

      \r\n\r\n

      Jede Person ist willkommen, egal ob Clubmitglied oder nicht. Gespielt werden kann alles was gefällt. Es sind immer Leute da um unsere Spiele zu erklären. Für Vereinsmitglieder gibt es die Möglichkeit Rankingspiele zu absolvieren. Tagesgebühr für die Räume: € 2,-- pro Person wenn gespielt wurde.

      \r\n", + "location": 1, + "start": "2016-09-04T12:00:00Z", + "end": "2016-09-04T21:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 68, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 95, + "fields": { + "name": "Kasu Spieleabend", + "description": "

      Unser regelmäßiger Spieleabend im GO7.

      \r\n\r\n

      Jede Person ist willkommen, egal ob Clubmitglied oder nicht. Gespielt werden kann alles was gefällt. Es sind immer Leute da um unsere Spiele zu erklären. Für Vereinsmitglieder gibt es die Möglichkeit Rankingspiele zu absolvieren. Tagesgebühr für die Räume: € 2,-- pro Person wenn gespielt wurde.

      \r\n", + "location": 1, + "start": "2016-09-16T13:00:00Z", + "end": "2016-09-16T21:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 68, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 97, + "fields": { + "name": "Kasu Spieleabend", + "description": "

      Unser regelmäßiger Spieleabend im GO7.

      \r\n\r\n

      Jede Person ist willkommen, egal ob Clubmitglied oder nicht. Gespielt werden kann alles was gefällt. Es sind immer Leute da um unsere Spiele zu erklären. Für Vereinsmitglieder gibt es die Möglichkeit Rankingspiele zu absolvieren. Tagesgebühr für die Räume: € 2,-- pro Person wenn gespielt wurde.

      \r\n", + "location": 1, + "start": "2016-10-16T12:00:00Z", + "end": "2016-10-16T21:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 68, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 98, + "fields": { + "name": "Kasu Spieleabend", + "description": "

      Unser regelmäßiger Spieleabend im GO7.

      \r\n\r\n

      Jede Person ist willkommen, egal ob Clubmitglied oder nicht. Gespielt werden kann alles was gefällt. Es sind immer Leute da um unsere Spiele zu erklären. Für Vereinsmitglieder gibt es die Möglichkeit Rankingspiele zu absolvieren. Tagesgebühr für die Räume: € 2,-- pro Person wenn gespielt wurde.

      \r\n", + "location": 1, + "start": "2016-10-30T13:00:00Z", + "end": "2016-10-30T22:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 68, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 100, + "fields": { + "name": "Kasu Spieleabend", + "description": "

      Unser regelmäßiger Spieleabend im GO7.

      \r\n\r\n

      Jede Person ist willkommen, egal ob Clubmitglied oder nicht. Gespielt werden kann alles was gefällt. Es sind immer Leute da um unsere Spiele zu erklären. Für Vereinsmitglieder gibt es die Möglichkeit Rankingspiele zu absolvieren. Tagesgebühr für die Räume: € 2,-- pro Person wenn gespielt wurde.

      \r\n", + "location": 1, + "start": "2016-11-27T13:00:00Z", + "end": "2016-11-27T22:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 68, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 103, + "fields": { + "name": "Kasu Spieleabend", + "description": "

      Unser regelmäßiger Spieleabend im GO7.

      \r\n\r\n

      Jede Person ist willkommen, egal ob Clubmitglied oder nicht. Gespielt werden kann alles was gefällt. Es sind immer Leute da um unsere Spiele zu erklären. Für Vereinsmitglieder gibt es die Möglichkeit Rankingspiele zu absolvieren. Tagesgebühr für die Räume: € 2,-- pro Person wenn gespielt wurde.

      \r\n", + "location": 1, + "start": "2016-07-01T13:00:00Z", + "end": "2016-07-01T21:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 68, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 104, + "fields": { + "name": "Kasu Spieleabend", + "description": "

      Unser regelmäßiger Spieleabend im GO7.

      \r\n\r\n

      Jede Person ist willkommen, egal ob Clubmitglied oder nicht. Gespielt werden kann alles was gefällt. Es sind immer Leute da um unsere Spiele zu erklären. Für Vereinsmitglieder gibt es die Möglichkeit Rankingspiele zu absolvieren. Tagesgebühr für die Räume: € 2,-- pro Person wenn gespielt wurde.

      \r\n", + "location": 1, + "start": "2016-07-15T13:00:00Z", + "end": "2016-07-15T21:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 68, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 105, + "fields": { + "name": "Kasu Spieleabend", + "description": "

      ACHTUNG! Späterer Beginn!!

      \r\n\r\n

      Unser regelmäßiger Spieleabend im GO7.

      \r\n\r\n

      Jede Person ist willkommen, egal ob Clubmitglied oder nicht. Gespielt werden kann alles was gefällt. Es sind immer Leute da um unsere Spiele zu erklären. Für Vereinsmitglieder gibt es die Möglichkeit Rankingspiele zu absolvieren. Tagesgebühr für die Räume: € 2,-- pro Person wenn gespielt wurde.

      \r\n", + "location": 1, + "start": "2016-07-31T13:00:00Z", + "end": "2016-07-31T21:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 68, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 106, + "fields": { + "name": "Kasu Spieleabend", + "description": "

      Unser regelmäßiger Spieleabend im GO7.

      \r\n\r\n

      Jede Person ist willkommen, egal ob Clubmitglied oder nicht. Gespielt werden kann alles was gefällt. Es sind immer Leute da um unsere Spiele zu erklären. Für Vereinsmitglieder gibt es die Möglichkeit Rankingspiele zu absolvieren. Tagesgebühr für die Räume: € 2,-- pro Person wenn gespielt wurde.

      \r\n", + "location": 1, + "start": "2016-08-12T13:00:00Z", + "end": "2016-08-12T21:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 68, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 108, + "fields": { + "name": "Kasu Spieleabend", + "description": "

      Unser regelmäßiger Spieleabend im GO7.

      \r\n\r\n

      Jede Person ist willkommen, egal ob Clubmitglied oder nicht. Gespielt werden kann alles was gefällt. Es sind immer Leute da um unsere Spiele zu erklären. Für Vereinsmitglieder gibt es die Möglichkeit Rankingspiele zu absolvieren. Tagesgebühr für die Räume: € 2,-- pro Person wenn gespielt wurde.

      \r\n", + "location": 1, + "start": "2016-09-09T13:00:00Z", + "end": "2016-09-09T21:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 68, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 109, + "fields": { + "name": "Kasu Spieleabend", + "description": "

      Unser regelmäßiger Spieleabend im GO7.

      \r\n\r\n

      Jede Person ist willkommen, egal ob Clubmitglied oder nicht. Gespielt werden kann alles was gefällt. Es sind immer Leute da um unsere Spiele zu erklären. Für Vereinsmitglieder gibt es die Möglichkeit Rankingspiele zu absolvieren. Tagesgebühr für die Räume: € 2,-- pro Person wenn gespielt wurde.

      \r\n", + "location": 1, + "start": "2016-09-25T12:00:00Z", + "end": "2016-09-25T21:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 68, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 110, + "fields": { + "name": "Kasu Spieleabend", + "description": "

      Unser regelmäßiger Spieleabend im GO7.

      \r\n\r\n

      Jede Person ist willkommen, egal ob Clubmitglied oder nicht. Gespielt werden kann alles was gefällt. Es sind immer Leute da um unsere Spiele zu erklären. Für Vereinsmitglieder gibt es die Möglichkeit Rankingspiele zu absolvieren. Tagesgebühr für die Räume: € 2,-- pro Person wenn gespielt wurde.

      \r\n", + "location": 1, + "start": "2016-10-07T13:00:00Z", + "end": "2016-10-07T21:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 68, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 111, + "fields": { + "name": "Kasu Spieleabend", + "description": "

      Unser regelmäßiger Spieleabend im GO7. Heute auch Vorbereitung für das Turnier am Samstag und Sonntag!

      \r\n\r\n

      Jede Person ist willkommen, egal ob Clubmitglied oder nicht. Gespielt werden kann alles was gefällt. Es sind immer Leute da um unsere Spiele zu erklären. Für Vereinsmitglieder gibt es die Möglichkeit Rankingspiele zu absolvieren. Tagesgebühr für die Räume: € 2,-- pro Person wenn gespielt wurde.

      \r\n", + "location": 1, + "start": "2016-10-21T13:00:00Z", + "end": "2016-10-21T21:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 68, + "date_created": null, + "date_modified": "2016-10-16T08:41:25.360Z" + } +}, +{ + "model": "events.event", + "pk": 112, + "fields": { + "name": "Kasu Spieleabend", + "description": "

      Unser regelmäßiger Spieleabend im GO7.

      \r\n\r\n

      Jede Person ist willkommen, egal ob Clubmitglied oder nicht. Gespielt werden kann alles was gefällt. Es sind immer Leute da um unsere Spiele zu erklären. Für Vereinsmitglieder gibt es die Möglichkeit Rankingspiele zu absolvieren. Tagesgebühr für die Räume: € 2,-- pro Person wenn gespielt wurde.

      \r\n", + "location": 1, + "start": "2016-11-04T14:00:00Z", + "end": "2016-11-04T22:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 68, + "date_created": null, + "date_modified": "2016-10-12T20:24:39.910Z" + } +}, +{ + "model": "events.event", + "pk": 113, + "fields": { + "name": "Kasu Spieleabend", + "description": "

      Unser regelmäßiger Spieleabend im GO7.

      \r\n\r\n

      Jede Person ist willkommen, egal ob Clubmitglied oder nicht. Gespielt werden kann alles was gefällt. Es sind immer Leute da um unsere Spiele zu erklären. Für Vereinsmitglieder gibt es die Möglichkeit Rankingspiele zu absolvieren. Tagesgebühr für die Räume: € 2,-- pro Person wenn gespielt wurde.

      \r\n", + "location": 1, + "start": "2016-11-18T14:00:00Z", + "end": "2016-11-18T22:59:00Z", + "url": "", + "image": "", + "mahjong_tournament": false, + "mahjong_season": null, + "photo_count": 0, + "event_series": 68, + "date_created": null, + "date_modified": "2016-11-14T18:07:15.507Z" + } +}, +{ + "model": "events.location", + "pk": 1, + "fields": { + "name": "Go 7", + "description": "Das GO7 ist der zentrale Treffpunkt f\u00fcr Gospieler in Wien, aber an gewissen Tagen ist auch Kasu im GO7 anzutreffen.\r\n\r\nDer gro\u00dfz\u00fcge Hauptspielraum fasst bis zu 50 Personen, daneben gibt es 2 kleinere R\u00e4ume, wobei einer f\u00fcr die Raucher reserviert ist.\r\n\r\nDer Einfang befindet sich gleich bei der U3 Zieglergasse. Seit dem Umbau der Mah\u00fc ist der leicht versteckte Zugang zum Haus leicht zu finden. Es wurde ein digitales GO Brett vor dem Haus fix installiert.", + "image": "events/location/1.png", + "url": "http://goverband.at/wp/?page_id=758", + "postal_code": "1060", + "street_address": "Mariahilferstra\u00dfe 82", + "locality": "Wien", + "country": "AT", + "date_created": null, + "date_modified": "2016-10-12T20:24:44.566Z" + } +} +] diff --git a/src/events/forms.py b/src/events/forms.py index 2eeecfe..b68b5e4 100644 --- a/src/events/forms.py +++ b/src/events/forms.py @@ -8,7 +8,6 @@ from django.utils.translation import ugettext as _ from django.contrib.auth import get_user_model from . import models -from utils.html5.widgets import DateTimeInput user_query = get_user_model().objects.all() @@ -47,16 +46,17 @@ class EventForm(forms.ModelForm): start = forms.DateTimeField( label=_('start'), required=True, - widget=DateTimeInput() # widget=SplitDateTimeWidget() + widget=forms.SplitHiddenDateTimeWidget() ) end = forms.DateTimeField( label=_('end'), required=False, - widget=DateTimeInput() # widget=SplitDateTimeWidget() + widget=forms.SplitDateTimeWidget() ) class Meta(object): model = models.Event exclude = ('event_count', 'event_series', ) + EventSeriesFormset = forms.inlineformset_factory( models.Event, models.Event, fields=('start', 'end'), form=EventForm) diff --git a/src/events/locale/de/LC_MESSAGES/django.po b/src/events/locale/de/LC_MESSAGES/django.po index 19936a0..df46dfe 100644 --- a/src/events/locale/de/LC_MESSAGES/django.po +++ b/src/events/locale/de/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: kasu.events\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-09-28 00:25+0200\n" +"POT-Creation-Date: 2017-05-10 23:16+0200\n" "PO-Revision-Date: 2016-09-28 00:24+0200\n" "Last-Translator: Christian Berg \n" "Language-Team: Kasu \n" @@ -19,58 +19,58 @@ msgstr "" "X-Generator: Poedit 1.8.9\n" "X-Translated-Using: django-rosetta 0.7.6\n" -#: src/events/admin.py:16 src/events/models.py:109 +#: events/admin.py:16 events/models.py:114 msgid "Event Series" msgstr "Veranstaltungsreihen" -#: src/events/forms.py:23 +#: events/forms.py:23 msgid "Images" msgstr "Bilder" -#: src/events/forms.py:49 +#: events/forms.py:49 msgid "start" msgstr "Beginn" -#: src/events/forms.py:53 +#: events/forms.py:53 msgid "end" msgstr "Ende" -#: src/events/models.py:82 src/events/models.py:186 src/events/models.py:228 +#: events/models.py:84 events/models.py:207 events/models.py:260 msgid "Name" msgstr "Name" -#: src/events/models.py:83 src/events/models.py:187 src/events/models.py:233 +#: events/models.py:85 events/models.py:208 events/models.py:268 msgid "Description" msgstr "Beschreibung" -#: src/events/models.py:85 src/events/templates/events/event_detail.html:31 -#: src/events/templates/events/event_detail.html:74 -#: src/events/templates/events/event_list.html:28 -#: src/events/templates/events/photo_upload.html:13 +#: events/models.py:87 events/templates/events/event_detail.html:29 +#: events/templates/events/event_detail.html:87 +#: events/templates/events/event_list.html:28 +#: events/templates/events/photo_upload.html:13 msgid "Start" msgstr "Beginn" -#: src/events/models.py:86 src/events/templates/events/event_detail.html:32 -#: src/events/templates/events/event_detail.html:75 +#: events/models.py:88 events/templates/events/event_detail.html:30 +#: events/templates/events/event_detail.html:89 msgid "End" msgstr "Ende" -#: src/events/models.py:87 src/events/models.py:195 -#: src/events/templates/events/event_detail.html:36 -#: src/events/templates/events/event_detail.html:70 -#: src/events/templates/events/event_detail.html:76 +#: events/models.py:89 events/models.py:216 +#: events/templates/events/event_detail.html:34 +#: events/templates/events/event_detail.html:80 +#: events/templates/events/event_detail.html:92 msgid "Homepage" msgstr "Homepage" -#: src/events/models.py:89 src/events/models.py:189 src/events/models.py:229 +#: events/models.py:91 events/models.py:210 events/models.py:262 msgid "Image" msgstr "Bild" -#: src/events/models.py:96 +#: events/models.py:98 msgid "Mahjong Tournament" msgstr "Mahjong Turnier" -#: src/events/models.py:98 +#: events/models.py:100 msgid "" "This event is a tournament, different rules apply for the kyu " "ranking." @@ -78,11 +78,11 @@ msgstr "" "Diese Veranstaltung ist ein Turnier, es gelten andere Regeln für das Kyu " "Ranking." -#: src/events/models.py:102 +#: events/models.py:104 msgid "Mahjong Season" msgstr "Mahjong Saison" -#: src/events/models.py:110 +#: events/models.py:115 msgid "" "Wenn dieser Event zu einer Veranstaltungsreihe gehört werden Ort, " "Beschreibung, Bild und Homepage von dem hier angegebenen Event " @@ -91,236 +91,244 @@ msgstr "" "Wenn dieser Termin zu einer Veranstaltungsreihe gehört werden Ort, " "Beschreibung, Bild und Homepage von dem hier angegebenen Event übernommen." -#: src/events/models.py:117 +#: events/models.py:124 events/models.py:226 events/models.py:290 +msgid "first created at" +msgstr "" + +#: events/models.py:129 events/models.py:231 events/models.py:295 +msgid "latest updated at" +msgstr "" + +#: events/models.py:134 msgid "Event" msgstr "Termin" -#: src/events/models.py:118 +#: events/models.py:135 msgid "Events" msgstr "Termine" -#: src/events/models.py:131 +#: events/models.py:148 msgid "A event can't end before it had started" msgstr "Eine Veranstaltung kann nicht enden bevor sie begonnen hat" -#: src/events/models.py:196 +#: events/models.py:217 msgid "Postal Code" msgstr "Postleitzahl" -#: src/events/models.py:197 +#: events/models.py:218 msgid "Street Address" msgstr "Straße" -#: src/events/models.py:198 +#: events/models.py:219 msgid "Locality" msgstr "Ort" -#: src/events/models.py:199 +#: events/models.py:220 msgid "Country" msgstr "Land" -#: src/events/models.py:202 +#: events/models.py:235 msgid "Venue" msgstr "Veranstaltungsort" -#: src/events/models.py:203 +#: events/models.py:236 msgid "Venues" msgstr "Veranstaltungsorte" -#: src/events/models.py:239 +#: events/models.py:274 msgid "Startpage" msgstr "Startseite" -#: src/events/models.py:242 +#: events/models.py:277 msgid "Display this Photo on the Startpage Teaser" msgstr "Foto als Teaser auf der Startseite verwenden." -#: src/events/models.py:244 +#: events/models.py:279 msgid "Published on" msgstr "Veröffentlicht am" -#: src/events/models.py:246 +#: events/models.py:281 msgid "Number of views" msgstr "Wie oft gesehen" -#: src/events/models.py:258 src/events/templates/events/event_archive.html:38 -#: src/events/templates/events/event_list.html:18 +#: events/models.py:306 events/templates/events/event_archive.html:38 +#: events/templates/events/event_list.html:18 msgid "Event Image" msgstr "Veranstaltungsbild" -#: src/events/models.py:259 +#: events/models.py:307 msgid "Event Images" msgstr "Veranstaltungsbilder" -#: src/events/templates/events/event_archive.html:5 -#: src/events/templates/events/event_archive.html:9 +#: events/templates/events/event_archive.html:5 +#: events/templates/events/event_archive.html:9 msgid "Event Archive" msgstr "Veranstaltungsarchiv" -#: src/events/templates/events/event_archive.html:42 -#: src/events/templates/events/event_detail.html:72 -#: src/events/templates/events/event_list.html:22 -#: src/events/templates/events/photo_detail.html:48 +#: events/templates/events/event_archive.html:42 +#: events/templates/events/event_detail.html:85 +#: events/templates/events/event_list.html:22 +#: events/templates/events/photo_detail.html:53 msgid "Date" msgstr "Datum" -#: src/events/templates/events/event_archive.html:47 +#: events/templates/events/event_archive.html:47 msgid "Time" msgstr "Zeit" -#: src/events/templates/events/event_archive.html:49 -#: src/events/templates/events/photo_upload.html:16 +#: events/templates/events/event_archive.html:49 +#: events/templates/events/photo_upload.html:16 msgid "from" msgstr "von" -#: src/events/templates/events/event_archive.html:49 -#: src/events/templates/events/photo_upload.html:16 +#: events/templates/events/event_archive.html:49 +#: events/templates/events/photo_upload.html:16 msgid "to" msgstr "bis" -#: src/events/templates/events/event_archive.html:57 -#: src/events/templates/events/event_detail.html:33 -#: src/events/templates/events/event_detail.html:62 -#: src/events/templates/events/event_list.html:32 -#: src/events/templates/events/photo_upload.html:23 +#: events/templates/events/event_archive.html:57 +#: events/templates/events/event_detail.html:31 +#: events/templates/events/event_detail.html:72 +#: events/templates/events/event_list.html:32 +#: events/templates/events/photo_upload.html:23 msgid "Location" msgstr "Ort" -#: src/events/templates/events/event_archive.html:58 -#: src/events/templates/events/event_list.html:35 -#: src/events/templates/events/photo_upload.html:25 -#: src/events/templates/events/photo_upload.html:26 +#: events/templates/events/event_archive.html:58 +#: events/templates/events/event_list.html:35 +#: events/templates/events/photo_upload.html:25 +#: events/templates/events/photo_upload.html:26 msgid "Comments" msgstr "Kommentare" -#: src/events/templates/events/event_archive.html:59 -#: src/events/templates/events/event_detail.html:38 -#: src/events/templates/events/event_detail.html:48 -#: src/events/templates/events/photo_upload.html:28 -#: src/events/templates/events/photo_upload.html:29 +#: events/templates/events/event_archive.html:59 +#: events/templates/events/event_detail.html:36 +#: events/templates/events/event_detail.html:48 +#: events/templates/events/photo_upload.html:28 +#: events/templates/events/photo_upload.html:29 msgid "Photos" msgstr "Fotos" -#: src/events/templates/events/event_archive.html:60 -#: src/events/templates/events/event_archive.html:61 -#: src/events/templates/events/event_detail.html:37 -#: src/events/templates/events/event_detail.html:49 +#: events/templates/events/event_archive.html:60 +#: events/templates/events/event_archive.html:61 +#: events/templates/events/event_detail.html:35 +#: events/templates/events/event_detail.html:51 msgid "Hanchans" msgstr "Hanchans" -#: src/events/templates/events/event_detail.html:39 +#: events/templates/events/event_detail.html:37 msgid "tourney" msgstr "Turnier" -#: src/events/templates/events/event_detail.html:39 +#: events/templates/events/event_detail.html:37 msgid "other rules apply here" msgstr "hier gelten andere Regeln" -#: src/events/templates/events/event_detail.html:47 +#: events/templates/events/event_detail.html:45 msgid "Info" msgstr "Info" -#: src/events/templates/events/event_detail.html:50 +#: events/templates/events/event_detail.html:54 msgid "Mai-Star Games" msgstr "Mai-Star Spiele" -#: src/events/templates/events/event_detail.html:52 +#: events/templates/events/event_detail.html:57 msgid "Event Ranking" msgstr "Veranstaltungs Wertung" -#: src/events/templates/events/event_detail.html:90 +#: events/templates/events/event_detail.html:100 msgid "Share on Facebook" msgstr "Auf Facebook teilen" -#: src/events/templates/events/event_detail.html:96 +#: events/templates/events/event_detail.html:104 msgid "Share on Google+" msgstr "Auf Google+ teilen" -#: src/events/templates/events/event_detail.html:100 +#: events/templates/events/event_detail.html:109 msgid "Share on Twitter" msgstr "Auf Twitter teilen" -#: src/events/templates/events/event_detail.html:104 +#: events/templates/events/event_detail.html:113 msgid "Show on Google Maps" msgstr "Auf Google Maps zeigen" -#: src/events/templates/events/event_detail.html:121 -#: src/events/templates/events/event_form.html:9 src/events/views.py:106 +#: events/templates/events/event_detail.html:127 +#: events/templates/events/event_form.html:9 events/views.py:106 msgid "Edit Event" msgstr "Termin bearbeiten" -#: src/events/templates/events/event_detail.html:124 +#: events/templates/events/event_detail.html:131 msgid "Add Dates" msgstr "Termine hinzufügen" -#: src/events/templates/events/event_form.html:9 -#: src/events/templates/events/page.html:9 src/events/views.py:108 +#: events/templates/events/event_form.html:9 +#: events/templates/events/page.html:9 events/views.py:108 msgid "Add Event" msgstr "Neuer Termin" -#: src/events/templates/events/event_form.html:19 -#: src/events/templates/events/photo_list.html:35 +#: events/templates/events/event_form.html:19 +#: events/templates/events/photo_list.html:35 msgid "reset" msgstr "Zurücksetzen" -#: src/events/templates/events/event_form.html:20 -#: src/events/templates/events/eventseries_form.html:23 +#: events/templates/events/event_form.html:20 +#: events/templates/events/eventseries_form.html:25 msgid "save" msgstr "Speichern" -#: src/events/templates/events/event_list.html:4 -#: src/events/templates/events/event_list.html:5 +#: events/templates/events/event_list.html:4 +#: events/templates/events/event_list.html:5 msgid "Upcoming Events" msgstr "Bevorstehende Veranstaltungen" -#: src/events/templates/events/eventseries_form.html:22 +#: events/templates/events/eventseries_form.html:24 msgid "back" msgstr "Zurück" -#: src/events/templates/events/photo_confirm_delete.html:17 +#: events/templates/events/photo_confirm_delete.html:17 msgid "Cancel" msgstr "Abbrechen" -#: src/events/templates/events/photo_confirm_delete.html:21 -#: src/events/templates/events/photo_list.html:21 +#: events/templates/events/photo_confirm_delete.html:21 +#: events/templates/events/photo_list.html:21 msgid "Delete" msgstr "Löschen" -#: src/events/templates/events/photo_detail.html:39 +#: events/templates/events/photo_detail.html:44 msgid "previous" msgstr "Zurück" -#: src/events/templates/events/photo_detail.html:47 +#: events/templates/events/photo_detail.html:52 msgid "Photographer" msgstr "Fotograf" -#: src/events/templates/events/photo_detail.html:53 +#: events/templates/events/photo_detail.html:58 msgid "share on" msgstr "Teile auf" -#: src/events/templates/events/photo_detail.html:76 +#: events/templates/events/photo_detail.html:81 msgid "download" msgstr "Herunterladen" -#: src/events/templates/events/photo_detail.html:77 +#: events/templates/events/photo_detail.html:82 msgid "Rotate counter clockwise" msgstr "mit dem Uhrzeiger drehen" -#: src/events/templates/events/photo_detail.html:78 +#: events/templates/events/photo_detail.html:83 msgid "Rotate clockwise" msgstr "gegen den Uhrzeiger drehen" -#: src/events/templates/events/photo_detail.html:79 +#: events/templates/events/photo_detail.html:84 msgid "Save" msgstr "Speichern" -#: src/events/templates/events/photo_list.html:36 -#: src/events/templates/events/photo_upload.html:35 -#: src/events/templates/events/photo_upload.html:49 +#: events/templates/events/photo_list.html:36 +#: events/templates/events/photo_upload.html:35 +#: events/templates/events/photo_upload.html:49 msgid "Upload" msgstr "Hochladen" -#: src/events/views.py:209 +#: events/views.py:209 msgid "Event does not exist" msgstr "Veranstaltung gibt es nicht" diff --git a/src/events/migrations/0006_auto_20160916_1800.py b/src/events/migrations/0006_auto_20160916_1800.py index 33fe3cf..95a84ed 100644 --- a/src/events/migrations/0006_auto_20160916_1800.py +++ b/src/events/migrations/0006_auto_20160916_1800.py @@ -13,12 +13,14 @@ class Migration(migrations.Migration): operations = [ migrations.AlterModelOptions( name='photo', - options={'ordering': ['created_date'], 'get_latest_by': 'created_date', 'verbose_name': 'Veranstaltungsbild', 'verbose_name_plural': 'Veranstaltungsbilder'}, + options={'ordering': ['created_date'], 'get_latest_by': 'created_date', + 'verbose_name': 'Veranstaltungsbild', 'verbose_name_plural': 'Veranstaltungsbilder'}, ), migrations.AlterField( model_name='event', name='mahjong_season', - field=models.PositiveSmallIntegerField(null=True, verbose_name='Mahjong Saison', blank=True), + field=models.PositiveSmallIntegerField( + null=True, verbose_name='Mahjong Saison', blank=True), ), migrations.AlterField( model_name='photo', @@ -28,11 +30,13 @@ class Migration(migrations.Migration): migrations.AlterField( model_name='photo', name='on_startpage', - field=models.BooleanField(default=False, help_text='Foto als Teaser auf der Startseite verwenden.', db_index=True, verbose_name='Startseite'), + field=models.BooleanField( + default=False, help_text='Foto als Teaser auf der Startseite verwenden.', db_index=True, verbose_name='Startseite'), ), migrations.AlterField( model_name='photo', name='views', - field=models.PositiveIntegerField(default=0, verbose_name='Wie oft gesehen', editable=False), + field=models.PositiveIntegerField( + default=0, verbose_name='Wie oft gesehen', editable=False), ), ] diff --git a/src/events/migrations/0007_auto_20161012_2224.py b/src/events/migrations/0007_auto_20161012_2224.py index 1d9d4be..ed5a5dd 100644 --- a/src/events/migrations/0007_auto_20161012_2224.py +++ b/src/events/migrations/0007_auto_20161012_2224.py @@ -16,34 +16,40 @@ class Migration(migrations.Migration): migrations.AddField( model_name='event', name='date_created', - field=models.DateTimeField(auto_now_add=True, null=True, verbose_name='first created at', db_index=True), + field=models.DateTimeField( + auto_now_add=True, null=True, verbose_name='first created at', db_index=True), ), migrations.AddField( model_name='event', name='date_modified', - field=models.DateTimeField(default=datetime.datetime(2016, 10, 12, 20, 24, 39, 910492, tzinfo=utc), verbose_name='latest updated at', auto_now=True), + field=models.DateTimeField(default=datetime.datetime( + 2016, 10, 12, 20, 24, 39, 910492, tzinfo=utc), verbose_name='latest updated at', auto_now=True), preserve_default=False, ), migrations.AddField( model_name='location', name='date_created', - field=models.DateTimeField(auto_now_add=True, null=True, verbose_name='first created at', db_index=True), + field=models.DateTimeField( + auto_now_add=True, null=True, verbose_name='first created at', db_index=True), ), migrations.AddField( model_name='location', name='date_modified', - field=models.DateTimeField(default=datetime.datetime(2016, 10, 12, 20, 24, 44, 566305, tzinfo=utc), verbose_name='latest updated at', auto_now=True), + field=models.DateTimeField(default=datetime.datetime( + 2016, 10, 12, 20, 24, 44, 566305, tzinfo=utc), verbose_name='latest updated at', auto_now=True), preserve_default=False, ), migrations.AddField( model_name='photo', name='date_created', - field=models.DateTimeField(auto_now_add=True, null=True, verbose_name='first created at', db_index=True), + field=models.DateTimeField( + auto_now_add=True, null=True, verbose_name='first created at', db_index=True), ), migrations.AddField( model_name='photo', name='date_modified', - field=models.DateTimeField(default=datetime.datetime(2016, 10, 12, 20, 24, 50, 509970, tzinfo=utc), verbose_name='latest updated at', auto_now=True), + field=models.DateTimeField(default=datetime.datetime( + 2016, 10, 12, 20, 24, 50, 509970, tzinfo=utc), verbose_name='latest updated at', auto_now=True), preserve_default=False, ), ] diff --git a/src/events/models.py b/src/events/models.py index 1f608e8..a9e0a73 100644 --- a/src/events/models.py +++ b/src/events/models.py @@ -346,7 +346,6 @@ class Photo(models.Model): )[0] except IndexError: return None - return self.get_next_by_created_date(event=self.event) @property def previous_photo(self): @@ -366,4 +365,3 @@ class Photo(models.Model): )[0] except IndexError: return None - return self.get_previous_by_created_date(event=self.event) diff --git a/src/events/sitemaps.py b/src/events/sitemaps.py index b6c91e4..2682e05 100644 --- a/src/events/sitemaps.py +++ b/src/events/sitemaps.py @@ -1,11 +1,11 @@ from django.contrib.sitemaps import Sitemap from django.utils import timezone -from .models import Event, Photo +from .models import Event +from .models import Photo class EventSitemap(Sitemap): changefreq = "never" - priority = 0.6 protocol = 'https' def items(self): @@ -13,9 +13,8 @@ class EventSitemap(Sitemap): def priority(self, event): delta = timezone.now() - event.start - delta = abs(delta.days / 300.0 ) + delta = abs(delta.days / 300.0) return max(1 - delta, 0.1) def lastmod(self, event): return event.date_modified - diff --git a/src/events/templates/events/event_form.html b/src/events/templates/events/event_form.html index 0d2a21b..55ff52a 100755 --- a/src/events/templates/events/event_form.html +++ b/src/events/templates/events/event_form.html @@ -12,7 +12,6 @@

      Achtung! Das ist eine Veranstaltungsreihe! Diese kann man im Moment nur im Admin-Interface vernünfig bearbeiten.
      Du bearbeitest hier den "Hauptevent" der Reihe ({{event.event_set.count}}). Alle Änderungen (abgesehen von Name, Start und Ende) werden von den darauf folgendem Veranstaltungen übernommen. -

      {% endif %}

      diff --git a/src/events/templates/events/photo_upload.html b/src/events/templates/events/photo_upload.html index 6165b78..0db68d4 100755 --- a/src/events/templates/events/photo_upload.html +++ b/src/events/templates/events/photo_upload.html @@ -35,7 +35,7 @@ {%trans "Upload" %} {% endif %}

      - + {% endfor %} diff --git a/src/events/views.py b/src/events/views.py index aa371af..95076a4 100644 --- a/src/events/views.py +++ b/src/events/views.py @@ -6,7 +6,8 @@ from django.db.models import Q from django.contrib.auth.decorators import permission_required from django.contrib.auth import get_user_model from django.core.urlresolvers import reverse -from extra_views import ModelFormSetView, InlineFormSetView +from extra_views import InlineFormSetView +from extra_views import ModelFormSetView from django.http import HttpResponse, Http404 from django.shortcuts import redirect from django.utils import timezone diff --git a/src/kasu/locale/de/LC_MESSAGES/django.po b/src/kasu/locale/de/LC_MESSAGES/django.po index 4119c0c..c20cde8 100644 --- a/src/kasu/locale/de/LC_MESSAGES/django.po +++ b/src/kasu/locale/de/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: kasu.utils\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-09-28 00:25+0200\n" +"POT-Creation-Date: 2017-05-10 23:16+0200\n" "PO-Revision-Date: 2016-09-28 00:24+0200\n" "Last-Translator: Christian Berg \n" "Language-Team: Kasu \n" @@ -19,175 +19,174 @@ msgstr "" "X-Generator: Poedit 1.8.9\n" "X-Translated-Using: django-rosetta 0.7.6\n" -#: src/kasu/settings.py:160 +#: kasu/settings.py:160 msgid "German" msgstr "Deutsch" -#: src/kasu/settings.py:160 +#: kasu/settings.py:160 msgid "English" msgstr "Englisch" -#: src/kasu/templates/404.html:8 +#: kasu/templates/404.html:8 msgid "The page your requested does not exist on this server." msgstr "Die angeforderte Seite existiert auf diesem Server nicht." -#: src/kasu/templates/base.html:22 +#: kasu/templates/base.html:22 msgid "Current News" msgstr "Aktuelle Neuigkeiten" -#: src/kasu/templates/base.html:24 src/kasu/templates/index.html:40 +#: kasu/templates/base.html:24 kasu/templates/index.html:40 msgid "Recent Comments" msgstr "Kürzliche Kommentare" -#: src/kasu/templates/base.html:44 +#: kasu/templates/base.html:59 msgid "Menu" msgstr "Menü" -#: src/kasu/templates/base.html:65 +#: kasu/templates/base.html:80 msgid "Current Event" msgstr "Aktuelle Veranstaltung" -#: src/kasu/templates/base.html:68 +#: kasu/templates/base.html:83 msgid "Since" msgstr "seit" -#: src/kasu/templates/base.html:69 src/kasu/templates/base.html.py:81 +#: kasu/templates/base.html:84 kasu/templates/base.html:96 msgid "Start" msgstr "Beginn" -#: src/kasu/templates/base.html:72 src/kasu/templates/base.html.py:84 +#: kasu/templates/base.html:87 kasu/templates/base.html:99 msgid "Location" msgstr "Ort" -#: src/kasu/templates/base.html:75 src/kasu/templates/base.html.py:86 +#: kasu/templates/base.html:90 kasu/templates/base.html:101 msgid "More Details" msgstr "Mehr Details" -#: src/kasu/templates/base.html:77 +#: kasu/templates/base.html:92 msgid "Next Event" msgstr "Nächste Veranstaltung" -#: src/kasu/templates/base.html:80 +#: kasu/templates/base.html:95 msgid "in" msgstr "in" -#: src/kasu/templates/base.html:89 +#: kasu/templates/base.html:104 msgid "Upcoming events" msgstr "Bevorstehende Veranstaltungen" -#: src/kasu/templates/base.html:139 +#: kasu/templates/base.html:154 msgid "Add Subpage" msgstr "Unterseite Hinzufügen" -#: src/kasu/templates/base.html:144 +#: kasu/templates/base.html:159 msgid "Edit Page" msgstr "Seite bearbeiten" -#: src/kasu/templates/base.html:152 +#: kasu/templates/base.html:167 msgid "Imprint" msgstr "Impressum" -#: src/kasu/templates/base.html:153 +#: kasu/templates/base.html:168 msgid "contact" msgstr "Kontakt" -#: src/kasu/templates/base.html:158 +#: kasu/templates/base.html:173 msgid "Language" msgstr "Sprache" -#: src/kasu/templates/base.html:167 +#: kasu/templates/base.html:182 msgid "Go" msgstr "Los" -#: src/kasu/templates/base.html:172 +#: kasu/templates/base.html:187 msgid "Logged in as" msgstr "Angemeldet als" -#: src/kasu/templates/base.html:174 +#: kasu/templates/base.html:189 msgid "Admin" msgstr "Admin" -#: src/kasu/templates/base.html:175 +#: kasu/templates/base.html:190 msgid "Logout" msgstr "Abmelden" -#: src/kasu/templates/base.html:177 +#: kasu/templates/base.html:192 msgid "no user logged in" msgstr "Niemand angemeldet" -#: src/kasu/templates/base.html:178 src/kasu/templates/comments/form.html:43 +#: kasu/templates/base.html:193 kasu/templates/comments/form.html:43 msgid "register" msgstr "Registrieren" -#: src/kasu/templates/base.html:179 src/kasu/templates/comments/form.html:44 +#: kasu/templates/base.html:194 kasu/templates/comments/form.html:44 msgid "login" msgstr "anmelden" -#: src/kasu/templates/base.html:181 +#: kasu/templates/base.html:196 msgid "Login with Facebook" msgstr "über Facebook anmelden" -#: src/kasu/templates/base.html:183 +#: kasu/templates/base.html:198 msgid "Login with Twitter" msgstr "über Twitter anmelden" -#: src/kasu/templates/base.html:185 +#: kasu/templates/base.html:200 msgid "Login with Google" msgstr "über Google anmelden" -#: src/kasu/templates/comments/form.html:5 +#: kasu/templates/comments/form.html:5 msgid "New Comment" msgstr "Neuer Kommentar" -#: src/kasu/templates/comments/form.html:20 +#: kasu/templates/comments/form.html:20 msgid "now" msgstr "Jetzt" -#: src/kasu/templates/comments/form.html:25 +#: kasu/templates/comments/form.html:25 msgid "Preview" msgstr "Vorschau" -#: src/kasu/templates/comments/form.html:26 +#: kasu/templates/comments/form.html:26 msgid "Post" msgstr "Schreiben" -#: src/kasu/templates/comments/form.html:34 +#: kasu/templates/comments/form.html:34 msgid "not logged in" msgstr "Nicht angemeldet" -#: src/kasu/templates/comments/form.html:38 +#: kasu/templates/comments/form.html:38 msgid "Register now, or Login to leave a comment here." msgstr "Jetzt registrieren, oder anmelden um einen Kommentar zu schreiben." -#: src/kasu/templates/comments/list.html:2 src/kasu/templates/index.html:25 +#: kasu/templates/comments/list.html:2 kasu/templates/index.html:25 msgid "Comments" msgstr "Kommentare" -#: src/kasu/templates/comments/posted.html:4 -#: src/kasu/templates/comments/posted.html:7 +#: kasu/templates/comments/posted.html:4 kasu/templates/comments/posted.html:7 msgid "Thank you for your comment" msgstr "Danke für deinen Kommentar." -#: src/kasu/templates/comments/preview.html:4 -#: src/kasu/templates/comments/preview.html:6 +#: kasu/templates/comments/preview.html:4 +#: kasu/templates/comments/preview.html:6 msgid "Preview your comment" msgstr "Vorschau deines Kommentars" -#: src/kasu/templates/comments/preview.html:10 +#: kasu/templates/comments/preview.html:10 msgid "Please correct the error below" msgid_plural "Please correct the errors below" msgstr[0] "Bitte den Fehler weiter unten beheben" msgstr[1] "Bitte die Fehler weiter unten beheben" -#: src/kasu/templates/index.html:4 +#: kasu/templates/index.html:4 msgid "traditional Asian game culture" msgstr "traditionelle asiatische Spielkultur" -#: src/kasu/templates/index.html:33 +#: kasu/templates/index.html:33 msgid "Read More" msgstr "Mehr lesen" -#: src/kasu/templates/index.html:47 +#: kasu/templates/index.html:47 #, python-format msgid "" "\n" @@ -204,1019 +203,1019 @@ msgstr "" " \n" " " -#: src/kasu/templates/index.html:59 +#: kasu/templates/index.html:59 msgid "Kasu in the social network" msgstr "Kasu im sozialem Netzwerk" -#: src/kasu/templates/index.html:62 src/kasu/templates/index.html.py:65 +#: kasu/templates/index.html:62 kasu/templates/index.html:65 msgid "Visit us on" msgstr "Besuche uns auf" -#: src/kasu/templates/index.html:74 +#: kasu/templates/index.html:74 msgid "Add Article" msgstr "Artikel hinzufügen" -#: src/kasu/templates/paginator.html:4 +#: kasu/templates/paginator.html:4 msgid "Previous" msgstr "Vorherige" -#: src/kasu/templates/paginator.html:12 +#: kasu/templates/paginator.html:12 msgid "Next" msgstr "Nächste" -#: src/kasu/utils.py:19 +#: kasu/utils.py:19 msgid "United Kingdom" msgstr "Vereinigtes Königreich" -#: src/kasu/utils.py:20 +#: kasu/utils.py:20 msgid "Afghanistan" msgstr "Afghanistan" -#: src/kasu/utils.py:21 +#: kasu/utils.py:21 msgid "Aland Islands" msgstr "Aland Islands" -#: src/kasu/utils.py:22 +#: kasu/utils.py:22 msgid "Albania" msgstr "Albanien" -#: src/kasu/utils.py:23 +#: kasu/utils.py:23 msgid "Algeria" msgstr "Algerien" -#: src/kasu/utils.py:24 +#: kasu/utils.py:24 msgid "American Samoa" msgstr "Amerikanisch-Samoa" -#: src/kasu/utils.py:25 +#: kasu/utils.py:25 msgid "Andorra" msgstr "Andorra" -#: src/kasu/utils.py:26 +#: kasu/utils.py:26 msgid "Angola" msgstr "Angola" -#: src/kasu/utils.py:27 +#: kasu/utils.py:27 msgid "Anguilla" msgstr "Anguilla" -#: src/kasu/utils.py:28 +#: kasu/utils.py:28 msgid "Antarctica" msgstr "Antarktika" -#: src/kasu/utils.py:29 +#: kasu/utils.py:29 msgid "Antigua and Barbuda" msgstr "Antigua und Barbuda" -#: src/kasu/utils.py:30 +#: kasu/utils.py:30 msgid "Argentina" msgstr "Argentinien" -#: src/kasu/utils.py:31 +#: kasu/utils.py:31 msgid "Armenia" msgstr "Armenien" -#: src/kasu/utils.py:32 +#: kasu/utils.py:32 msgid "Aruba" msgstr "Aruba" -#: src/kasu/utils.py:33 +#: kasu/utils.py:33 msgid "Australia" msgstr "Australien" -#: src/kasu/utils.py:34 +#: kasu/utils.py:34 msgid "Austria" msgstr "Österreich" -#: src/kasu/utils.py:35 +#: kasu/utils.py:35 msgid "Azerbaijan" msgstr "Aserbaidschan" -#: src/kasu/utils.py:36 +#: kasu/utils.py:36 msgid "Bahamas" msgstr "Bahamas" -#: src/kasu/utils.py:37 +#: kasu/utils.py:37 msgid "Bahrain" msgstr "Bahrein" -#: src/kasu/utils.py:38 +#: kasu/utils.py:38 msgid "Bangladesh" msgstr "Bangladesch" -#: src/kasu/utils.py:39 +#: kasu/utils.py:39 msgid "Barbados" msgstr "Barbados" -#: src/kasu/utils.py:40 +#: kasu/utils.py:40 msgid "Belarus" msgstr "Weißrussland" -#: src/kasu/utils.py:41 +#: kasu/utils.py:41 msgid "Belgium" msgstr "Belgien" -#: src/kasu/utils.py:42 +#: kasu/utils.py:42 msgid "Belize" msgstr "Belize" -#: src/kasu/utils.py:43 +#: kasu/utils.py:43 msgid "Benin" msgstr "Benin" -#: src/kasu/utils.py:44 +#: kasu/utils.py:44 msgid "Bermuda" msgstr "Bermuda" -#: src/kasu/utils.py:45 +#: kasu/utils.py:45 msgid "Bhutan" msgstr "Bhutan" -#: src/kasu/utils.py:46 +#: kasu/utils.py:46 msgid "Bolivia" msgstr "Bolivien" -#: src/kasu/utils.py:47 +#: kasu/utils.py:47 msgid "Bosnia and Herzegovina" msgstr "Bosnien und Herzegowina" -#: src/kasu/utils.py:48 +#: kasu/utils.py:48 msgid "Botswana" msgstr "Botswana" -#: src/kasu/utils.py:49 +#: kasu/utils.py:49 msgid "Bouvet Island" msgstr "Bouvet Island" -#: src/kasu/utils.py:50 +#: kasu/utils.py:50 msgid "Brazil" msgstr "Brasilien" -#: src/kasu/utils.py:51 +#: kasu/utils.py:51 msgid "British Indian Ocean Territory" msgstr "British Indian Ocean Territory" -#: src/kasu/utils.py:52 +#: kasu/utils.py:52 msgid "Brunei Darussalam" msgstr "Brunei Darussalam" -#: src/kasu/utils.py:53 +#: kasu/utils.py:53 msgid "Bulgaria" msgstr "Bulgarien" -#: src/kasu/utils.py:54 +#: kasu/utils.py:54 msgid "Burkina Faso" msgstr "Burkina Faso" -#: src/kasu/utils.py:55 +#: kasu/utils.py:55 msgid "Burundi" msgstr "Burundi" -#: src/kasu/utils.py:56 +#: kasu/utils.py:56 msgid "Cambodia" msgstr "Kambodscha" -#: src/kasu/utils.py:57 +#: kasu/utils.py:57 msgid "Cameroon" msgstr "Kamerun" -#: src/kasu/utils.py:58 +#: kasu/utils.py:58 msgid "Canada" msgstr "Kanada" -#: src/kasu/utils.py:59 +#: kasu/utils.py:59 msgid "Cape Verde" msgstr "Cape Verde" -#: src/kasu/utils.py:60 +#: kasu/utils.py:60 msgid "Cayman Islands" msgstr "Cayman Islands" -#: src/kasu/utils.py:61 +#: kasu/utils.py:61 msgid "Central African Republic" msgstr "Zentralafrikanische Republik" -#: src/kasu/utils.py:62 +#: kasu/utils.py:62 msgid "Chad" msgstr "Tschad" -#: src/kasu/utils.py:63 +#: kasu/utils.py:63 msgid "Chile" msgstr "Chile" -#: src/kasu/utils.py:64 +#: kasu/utils.py:64 msgid "China" msgstr "China" -#: src/kasu/utils.py:65 +#: kasu/utils.py:65 msgid "Christmas Island" msgstr "Christmas Island" -#: src/kasu/utils.py:66 +#: kasu/utils.py:66 msgid "Cocos (Keeling) Islands" msgstr "Cocos (Keeling) Islands" -#: src/kasu/utils.py:67 +#: kasu/utils.py:67 msgid "Colombia" msgstr "Kolumbien" -#: src/kasu/utils.py:68 +#: kasu/utils.py:68 msgid "Comoros" msgstr "Komoren" -#: src/kasu/utils.py:69 +#: kasu/utils.py:69 msgid "Congo" msgstr "Kongo" -#: src/kasu/utils.py:70 +#: kasu/utils.py:70 msgid "Congo, The Democratic Republic of the" msgstr "Kongo, Demokratische Republik" -#: src/kasu/utils.py:71 +#: kasu/utils.py:71 msgid "Cook Islands" msgstr "Cook-Inseln" -#: src/kasu/utils.py:72 +#: kasu/utils.py:72 msgid "Costa Rica" msgstr "Costa Rica" -#: src/kasu/utils.py:73 +#: kasu/utils.py:73 msgid "Cote d'Ivoire" msgstr "Cote d'Ivoire" -#: src/kasu/utils.py:74 +#: kasu/utils.py:74 msgid "Croatia" msgstr "Kroatien" -#: src/kasu/utils.py:75 +#: kasu/utils.py:75 msgid "Cuba" msgstr "Kuba" -#: src/kasu/utils.py:76 +#: kasu/utils.py:76 msgid "Cyprus" msgstr "Zypern" -#: src/kasu/utils.py:77 +#: kasu/utils.py:77 msgid "Czech Republic" msgstr "Tschechische Republik" -#: src/kasu/utils.py:78 +#: kasu/utils.py:78 msgid "Denmark" msgstr "Dänemark" -#: src/kasu/utils.py:79 +#: kasu/utils.py:79 msgid "Djibouti" msgstr "Dschibuti" -#: src/kasu/utils.py:80 +#: kasu/utils.py:80 msgid "Dominica" msgstr "Dominica" -#: src/kasu/utils.py:81 +#: kasu/utils.py:81 msgid "Dominican Republic" msgstr "Dominikanische Republik" -#: src/kasu/utils.py:82 +#: kasu/utils.py:82 msgid "Ecuador" msgstr "Ecuador" -#: src/kasu/utils.py:83 +#: kasu/utils.py:83 msgid "Egypt" msgstr "Ägypten" -#: src/kasu/utils.py:84 +#: kasu/utils.py:84 msgid "El Salvador" msgstr "El Salvador" -#: src/kasu/utils.py:85 +#: kasu/utils.py:85 msgid "Equatorial Guinea" msgstr "Äquatorial-Guinea" -#: src/kasu/utils.py:86 +#: kasu/utils.py:86 msgid "Eritrea" msgstr "Eritrea" -#: src/kasu/utils.py:87 +#: kasu/utils.py:87 msgid "Estonia" msgstr "Estland" -#: src/kasu/utils.py:88 +#: kasu/utils.py:88 msgid "Ethiopia" msgstr "Äthiopien" -#: src/kasu/utils.py:89 +#: kasu/utils.py:89 msgid "Falkland Islands (Malvinas)" msgstr "Falklandinseln (Malvinas)" -#: src/kasu/utils.py:90 +#: kasu/utils.py:90 msgid "Faroe Islands" msgstr "Färöer-Inseln" -#: src/kasu/utils.py:91 +#: kasu/utils.py:91 msgid "Fiji" msgstr "Fidschi" -#: src/kasu/utils.py:92 +#: kasu/utils.py:92 msgid "Finland" msgstr "Finnland" -#: src/kasu/utils.py:93 +#: kasu/utils.py:93 msgid "France" msgstr "Frankreich" -#: src/kasu/utils.py:94 +#: kasu/utils.py:94 msgid "French Guiana" msgstr "Französisch-Guayana" -#: src/kasu/utils.py:95 +#: kasu/utils.py:95 msgid "French Polynesia" msgstr "Französisch-Polynesien" -#: src/kasu/utils.py:96 +#: kasu/utils.py:96 msgid "French Southern Territories" msgstr "Französisch Südliche Territorien" -#: src/kasu/utils.py:97 +#: kasu/utils.py:97 msgid "Gabon" msgstr "Gabun" -#: src/kasu/utils.py:98 +#: kasu/utils.py:98 msgid "Gambia" msgstr "Gambia" -#: src/kasu/utils.py:99 +#: kasu/utils.py:99 msgid "Georgia" msgstr "Georgia" -#: src/kasu/utils.py:100 +#: kasu/utils.py:100 msgid "Germany" msgstr "Deutschland" -#: src/kasu/utils.py:101 +#: kasu/utils.py:101 msgid "Ghana" msgstr "Ghana" -#: src/kasu/utils.py:102 +#: kasu/utils.py:102 msgid "Gibraltar" msgstr "Gibraltar" -#: src/kasu/utils.py:103 +#: kasu/utils.py:103 msgid "Greece" msgstr "Griechenland" -#: src/kasu/utils.py:104 +#: kasu/utils.py:104 msgid "Greenland" msgstr "Grönland" -#: src/kasu/utils.py:105 +#: kasu/utils.py:105 msgid "Grenada" msgstr "Grenada" -#: src/kasu/utils.py:106 +#: kasu/utils.py:106 msgid "Guadeloupe" msgstr "Guadeloupe" -#: src/kasu/utils.py:107 +#: kasu/utils.py:107 msgid "Guam" msgstr "Guam" -#: src/kasu/utils.py:108 +#: kasu/utils.py:108 msgid "Guatemala" msgstr "Guatemala" -#: src/kasu/utils.py:109 +#: kasu/utils.py:109 msgid "Guernsey" msgstr "Guernsey" -#: src/kasu/utils.py:110 +#: kasu/utils.py:110 msgid "Guinea" msgstr "Guinea" -#: src/kasu/utils.py:111 +#: kasu/utils.py:111 msgid "Guinea-Bissau" msgstr "Guinea-Bissau" -#: src/kasu/utils.py:112 +#: kasu/utils.py:112 msgid "Guyana" msgstr "Guyana" -#: src/kasu/utils.py:113 +#: kasu/utils.py:113 msgid "Haiti" msgstr "Haiti" -#: src/kasu/utils.py:114 +#: kasu/utils.py:114 msgid "Heard Island and McDonald Islands" msgstr "Heard und McDonald Inseln" -#: src/kasu/utils.py:115 +#: kasu/utils.py:115 msgid "Holy See (Vatican City State)" msgstr "Heiliger Stuhl (Vatikanstadt)" -#: src/kasu/utils.py:116 +#: kasu/utils.py:116 msgid "Honduras" msgstr "Honduras" -#: src/kasu/utils.py:117 +#: kasu/utils.py:117 msgid "Hong Kong" msgstr "Hongkong" -#: src/kasu/utils.py:118 +#: kasu/utils.py:118 msgid "Hungary" msgstr "Ungarn" -#: src/kasu/utils.py:119 +#: kasu/utils.py:119 msgid "Iceland" msgstr "Island" -#: src/kasu/utils.py:120 +#: kasu/utils.py:120 msgid "India" msgstr "Indien" -#: src/kasu/utils.py:121 +#: kasu/utils.py:121 msgid "Indonesia" msgstr "Indonesien" -#: src/kasu/utils.py:122 +#: kasu/utils.py:122 msgid "Iran, Islamic Republic of" msgstr "Iran, Islamische Republik" -#: src/kasu/utils.py:123 +#: kasu/utils.py:123 msgid "Iraq" msgstr "Irak" -#: src/kasu/utils.py:124 +#: kasu/utils.py:124 msgid "Ireland" msgstr "Irland" -#: src/kasu/utils.py:125 +#: kasu/utils.py:125 msgid "Isle of Man" msgstr "Isle of Man" -#: src/kasu/utils.py:126 +#: kasu/utils.py:126 msgid "Israel" msgstr "Israel" -#: src/kasu/utils.py:127 +#: kasu/utils.py:127 msgid "Italy" msgstr "Italien" -#: src/kasu/utils.py:128 +#: kasu/utils.py:128 msgid "Jamaica" msgstr "Jamaika" -#: src/kasu/utils.py:129 +#: kasu/utils.py:129 msgid "Japan" msgstr "Japan" -#: src/kasu/utils.py:130 +#: kasu/utils.py:130 msgid "Jersey" msgstr "Jersey" -#: src/kasu/utils.py:131 +#: kasu/utils.py:131 msgid "Jordan" msgstr "Jordan" -#: src/kasu/utils.py:132 +#: kasu/utils.py:132 msgid "Kazakhstan" msgstr "Kasachstan" -#: src/kasu/utils.py:133 +#: kasu/utils.py:133 msgid "Kenya" msgstr "Kenia" -#: src/kasu/utils.py:134 +#: kasu/utils.py:134 msgid "Kiribati" msgstr "Kiribati" -#: src/kasu/utils.py:135 +#: kasu/utils.py:135 msgid "Korea, Democratic People's Republic of" msgstr "Korea, Demokratische Volksrepublik" -#: src/kasu/utils.py:136 +#: kasu/utils.py:136 msgid "Korea, Republic of" msgstr "Korea, Republik" -#: src/kasu/utils.py:137 +#: kasu/utils.py:137 msgid "Kuwait" msgstr "Kuwait" -#: src/kasu/utils.py:138 +#: kasu/utils.py:138 msgid "Kyrgyzstan" msgstr "Kirgisistan" -#: src/kasu/utils.py:139 +#: kasu/utils.py:139 msgid "Lao People's Democratic Republic" msgstr "Lao Demokratischen Volksrepublik" -#: src/kasu/utils.py:140 +#: kasu/utils.py:140 msgid "Latvia" msgstr "Lettland" -#: src/kasu/utils.py:141 +#: kasu/utils.py:141 msgid "Lebanon" msgstr "Libanon" -#: src/kasu/utils.py:142 +#: kasu/utils.py:142 msgid "Lesotho" msgstr "Lesotho" -#: src/kasu/utils.py:143 +#: kasu/utils.py:143 msgid "Liberia" msgstr "Liberia" -#: src/kasu/utils.py:144 +#: kasu/utils.py:144 msgid "Libyan Arab Jamahiriya" msgstr "Libyen" -#: src/kasu/utils.py:145 +#: kasu/utils.py:145 msgid "Liechtenstein" msgstr "Liechtenstein" -#: src/kasu/utils.py:146 +#: kasu/utils.py:146 msgid "Lithuania" msgstr "Litauen" -#: src/kasu/utils.py:147 +#: kasu/utils.py:147 msgid "Luxembourg" msgstr "Luxemburg" -#: src/kasu/utils.py:148 +#: kasu/utils.py:148 msgid "Macao" msgstr "Macao" -#: src/kasu/utils.py:149 +#: kasu/utils.py:149 msgid "Macedonia, The Former Yugoslav Republic of" msgstr "Mazedonien, die ehemalige jugoslawische Republik" -#: src/kasu/utils.py:150 +#: kasu/utils.py:150 msgid "Madagascar" msgstr "Madagaskar" -#: src/kasu/utils.py:151 +#: kasu/utils.py:151 msgid "Malawi" msgstr "Malawi" -#: src/kasu/utils.py:152 +#: kasu/utils.py:152 msgid "Malaysia" msgstr "Malaysia" -#: src/kasu/utils.py:153 +#: kasu/utils.py:153 msgid "Maldives" msgstr "Malediven" -#: src/kasu/utils.py:154 +#: kasu/utils.py:154 msgid "Mali" msgstr "Mali" -#: src/kasu/utils.py:155 +#: kasu/utils.py:155 msgid "Malta" msgstr "Malta" -#: src/kasu/utils.py:156 +#: kasu/utils.py:156 msgid "Marshall Islands" msgstr "Marshall Islands" -#: src/kasu/utils.py:157 +#: kasu/utils.py:157 msgid "Martinique" msgstr "Martinique" -#: src/kasu/utils.py:158 +#: kasu/utils.py:158 msgid "Mauritania" msgstr "Mauretanien" -#: src/kasu/utils.py:159 +#: kasu/utils.py:159 msgid "Mauritius" msgstr "Mauritius" -#: src/kasu/utils.py:160 +#: kasu/utils.py:160 msgid "Mayotte" msgstr "Mayotte" -#: src/kasu/utils.py:161 +#: kasu/utils.py:161 msgid "Mexico" msgstr "Mexiko" -#: src/kasu/utils.py:162 +#: kasu/utils.py:162 msgid "Micronesia, Federated States of" msgstr "Mikronesien, Föderierte Staaten von" -#: src/kasu/utils.py:163 +#: kasu/utils.py:163 msgid "Moldova" msgstr "Moldawien" -#: src/kasu/utils.py:164 +#: kasu/utils.py:164 msgid "Monaco" msgstr "Monaco" -#: src/kasu/utils.py:165 +#: kasu/utils.py:165 msgid "Mongolia" msgstr "Mongolei" -#: src/kasu/utils.py:166 +#: kasu/utils.py:166 msgid "Montenegro" msgstr "Montenegro" -#: src/kasu/utils.py:167 +#: kasu/utils.py:167 msgid "Montserrat" msgstr "Montserrat" -#: src/kasu/utils.py:168 +#: kasu/utils.py:168 msgid "Morocco" msgstr "Marokko" -#: src/kasu/utils.py:169 +#: kasu/utils.py:169 msgid "Mozambique" msgstr "Mosambik" -#: src/kasu/utils.py:170 +#: kasu/utils.py:170 msgid "Myanmar" msgstr "Myanmar" -#: src/kasu/utils.py:171 +#: kasu/utils.py:171 msgid "Namibia" msgstr "Namibia" -#: src/kasu/utils.py:172 +#: kasu/utils.py:172 msgid "Nauru" msgstr "Nauru" -#: src/kasu/utils.py:173 +#: kasu/utils.py:173 msgid "Nepal" msgstr "Nepal" -#: src/kasu/utils.py:174 +#: kasu/utils.py:174 msgid "Netherlands" msgstr "Niederlande" -#: src/kasu/utils.py:175 +#: kasu/utils.py:175 msgid "Netherlands Antilles" msgstr "Niederländische Antillen" -#: src/kasu/utils.py:176 +#: kasu/utils.py:176 msgid "New Caledonia" msgstr "Neukaledonien" -#: src/kasu/utils.py:177 +#: kasu/utils.py:177 msgid "New Zealand" msgstr "New Zealand" -#: src/kasu/utils.py:178 +#: kasu/utils.py:178 msgid "Nicaragua" msgstr "Nicaragua" -#: src/kasu/utils.py:179 +#: kasu/utils.py:179 msgid "Niger" msgstr "Niger" -#: src/kasu/utils.py:180 +#: kasu/utils.py:180 msgid "Nigeria" msgstr "Nigeria" -#: src/kasu/utils.py:181 +#: kasu/utils.py:181 msgid "Niue" msgstr "Niue" -#: src/kasu/utils.py:182 +#: kasu/utils.py:182 msgid "Norfolk Island" msgstr "Norfolk Island" -#: src/kasu/utils.py:183 +#: kasu/utils.py:183 msgid "Northern Mariana Islands" msgstr "Northern Mariana Islands" -#: src/kasu/utils.py:184 +#: kasu/utils.py:184 msgid "Norway" msgstr "Norwegen" -#: src/kasu/utils.py:185 +#: kasu/utils.py:185 msgid "Oman" msgstr "Oman" -#: src/kasu/utils.py:186 +#: kasu/utils.py:186 msgid "Pakistan" msgstr "Pakistan" -#: src/kasu/utils.py:187 +#: kasu/utils.py:187 msgid "Palau" msgstr "Palau" -#: src/kasu/utils.py:188 +#: kasu/utils.py:188 msgid "Palestinian Territory, Occupied" msgstr "Palästinensische Autonomiegebiete" -#: src/kasu/utils.py:189 +#: kasu/utils.py:189 msgid "Panama" msgstr "Panama" -#: src/kasu/utils.py:190 +#: kasu/utils.py:190 msgid "Papua New Guinea" msgstr "Papua-Neuguinea" -#: src/kasu/utils.py:191 +#: kasu/utils.py:191 msgid "Paraguay" msgstr "Paraguay" -#: src/kasu/utils.py:192 +#: kasu/utils.py:192 msgid "Peru" msgstr "Peru" -#: src/kasu/utils.py:193 +#: kasu/utils.py:193 msgid "Philippines" msgstr "Philippinen" -#: src/kasu/utils.py:194 +#: kasu/utils.py:194 msgid "Pitcairn" msgstr "Pitcairn" -#: src/kasu/utils.py:195 +#: kasu/utils.py:195 msgid "Poland" msgstr "Polen" -#: src/kasu/utils.py:196 +#: kasu/utils.py:196 msgid "Portugal" msgstr "Portugal" -#: src/kasu/utils.py:197 +#: kasu/utils.py:197 msgid "Puerto Rico" msgstr "Puerto Rico" -#: src/kasu/utils.py:198 +#: kasu/utils.py:198 msgid "Qatar" msgstr "Katar" -#: src/kasu/utils.py:199 +#: kasu/utils.py:199 msgid "Reunion" msgstr "Wiedervereinigung" -#: src/kasu/utils.py:200 +#: kasu/utils.py:200 msgid "Romania" msgstr "Rumänien" -#: src/kasu/utils.py:201 +#: kasu/utils.py:201 msgid "Russian Federation" msgstr "Russischen Föderation" -#: src/kasu/utils.py:202 +#: kasu/utils.py:202 msgid "Rwanda" msgstr "Ruanda" -#: src/kasu/utils.py:203 +#: kasu/utils.py:203 msgid "Saint Barthelemy" msgstr "Saint Barthelemy" -#: src/kasu/utils.py:204 +#: kasu/utils.py:204 msgid "Saint Helena" msgstr "Saint Helena" -#: src/kasu/utils.py:205 +#: kasu/utils.py:205 msgid "Saint Kitts and Nevis" msgstr "Saint Kitts und Nevis" -#: src/kasu/utils.py:206 +#: kasu/utils.py:206 msgid "Saint Lucia" msgstr "Santa Lucia" -#: src/kasu/utils.py:207 +#: kasu/utils.py:207 msgid "Saint Martin" msgstr "Santa Martin" -#: src/kasu/utils.py:208 +#: kasu/utils.py:208 msgid "Saint Pierre and Miquelon" msgstr "Saint Pierre und Miquelon" -#: src/kasu/utils.py:209 +#: kasu/utils.py:209 msgid "Saint Vincent and the Grenadines" msgstr "Saint Vincent und die Grenadinen" -#: src/kasu/utils.py:210 +#: kasu/utils.py:210 msgid "Samoa" msgstr "Samoa" -#: src/kasu/utils.py:211 +#: kasu/utils.py:211 msgid "San Marino" msgstr "San Marino" -#: src/kasu/utils.py:212 +#: kasu/utils.py:212 msgid "Sao Tome and Principe" msgstr "Sao Tome und Principe" -#: src/kasu/utils.py:213 +#: kasu/utils.py:213 msgid "Saudi Arabia" msgstr "Saudi-Arabien" -#: src/kasu/utils.py:214 +#: kasu/utils.py:214 msgid "Senegal" msgstr "Senegal" -#: src/kasu/utils.py:215 +#: kasu/utils.py:215 msgid "Serbia" msgstr "Serbien" -#: src/kasu/utils.py:216 +#: kasu/utils.py:216 msgid "Seychelles" msgstr "Seychellen" -#: src/kasu/utils.py:217 +#: kasu/utils.py:217 msgid "Sierra Leone" msgstr "Sierra Leone" -#: src/kasu/utils.py:218 +#: kasu/utils.py:218 msgid "Singapore" msgstr "Singapur" -#: src/kasu/utils.py:219 +#: kasu/utils.py:219 msgid "Slovakia" msgstr "Slowakei" -#: src/kasu/utils.py:220 +#: kasu/utils.py:220 msgid "Slovenia" msgstr "Slowenien" -#: src/kasu/utils.py:221 +#: kasu/utils.py:221 msgid "Solomon Islands" msgstr "Salomon-Inseln" -#: src/kasu/utils.py:222 +#: kasu/utils.py:222 msgid "Somalia" msgstr "Somalia" -#: src/kasu/utils.py:223 +#: kasu/utils.py:223 msgid "South Africa" msgstr "Südafrika" -#: src/kasu/utils.py:224 +#: kasu/utils.py:224 msgid "South Georgia and the South Sandwich Islands" msgstr "Südgeorgien und die Südlichen Sandwichinseln" -#: src/kasu/utils.py:225 +#: kasu/utils.py:225 msgid "Spain" msgstr "Spanien" -#: src/kasu/utils.py:226 +#: kasu/utils.py:226 msgid "Sri Lanka" msgstr "Sri Lanka" -#: src/kasu/utils.py:227 +#: kasu/utils.py:227 msgid "Sudan" msgstr "Sudan" -#: src/kasu/utils.py:228 +#: kasu/utils.py:228 msgid "Suriname" msgstr "Suriname" -#: src/kasu/utils.py:229 +#: kasu/utils.py:229 msgid "Svalbard and Jan Mayen" msgstr "Svalbard und Jan Mayen" -#: src/kasu/utils.py:230 +#: kasu/utils.py:230 msgid "Swaziland" msgstr "Swaziland" -#: src/kasu/utils.py:231 +#: kasu/utils.py:231 msgid "Sweden" msgstr "Schweden" -#: src/kasu/utils.py:232 +#: kasu/utils.py:232 msgid "Switzerland" msgstr "Schweiz" -#: src/kasu/utils.py:233 +#: kasu/utils.py:233 msgid "Syrian Arab Republic" msgstr "Arabische Republik Syrien" -#: src/kasu/utils.py:234 +#: kasu/utils.py:234 msgid "Taiwan, Province of China" msgstr "Taiwan, Province of China" -#: src/kasu/utils.py:235 +#: kasu/utils.py:235 msgid "Tajikistan" msgstr "Tadschikistan" -#: src/kasu/utils.py:236 +#: kasu/utils.py:236 msgid "Tanzania, United Republic of" msgstr "Tansania, Vereinigte Republik" -#: src/kasu/utils.py:237 +#: kasu/utils.py:237 msgid "Thailand" msgstr "Thailand" -#: src/kasu/utils.py:238 +#: kasu/utils.py:238 msgid "Timor-Leste" msgstr "Timor-Leste" -#: src/kasu/utils.py:239 +#: kasu/utils.py:239 msgid "Togo" msgstr "Togo" -#: src/kasu/utils.py:240 +#: kasu/utils.py:240 msgid "Tokelau" msgstr "Tokelau" -#: src/kasu/utils.py:241 +#: kasu/utils.py:241 msgid "Tonga" msgstr "Tonga" -#: src/kasu/utils.py:242 +#: kasu/utils.py:242 msgid "Trinidad and Tobago" msgstr "Trinidad und Tobago" -#: src/kasu/utils.py:243 +#: kasu/utils.py:243 msgid "Tunisia" msgstr "Tunesien" -#: src/kasu/utils.py:244 +#: kasu/utils.py:244 msgid "Turkey" msgstr "Türkei" -#: src/kasu/utils.py:245 +#: kasu/utils.py:245 msgid "Turkmenistan" msgstr "Turkmenistan" -#: src/kasu/utils.py:246 +#: kasu/utils.py:246 msgid "Turks and Caicos Islands" msgstr "Turks-und Caicosinseln" -#: src/kasu/utils.py:247 +#: kasu/utils.py:247 msgid "Tuvalu" msgstr "Tuvalu" -#: src/kasu/utils.py:248 +#: kasu/utils.py:248 msgid "Uganda" msgstr "Uganda" -#: src/kasu/utils.py:249 +#: kasu/utils.py:249 msgid "Ukraine" msgstr "Ukraine" -#: src/kasu/utils.py:250 +#: kasu/utils.py:250 msgid "United Arab Emirates" msgstr "Vereinigte Arabische Emirate" -#: src/kasu/utils.py:251 +#: kasu/utils.py:251 msgid "United States" msgstr "Vereinigte Staaten" -#: src/kasu/utils.py:252 +#: kasu/utils.py:252 msgid "United States Minor Outlying Islands" msgstr "United States Minor Outlying Islands" -#: src/kasu/utils.py:253 +#: kasu/utils.py:253 msgid "Uruguay" msgstr "Uruguay" -#: src/kasu/utils.py:254 +#: kasu/utils.py:254 msgid "Uzbekistan" msgstr "Usbekistan" -#: src/kasu/utils.py:255 +#: kasu/utils.py:255 msgid "Vanuatu" msgstr "Vanuatu" -#: src/kasu/utils.py:256 +#: kasu/utils.py:256 msgid "Venezuela" msgstr "Venezuela" -#: src/kasu/utils.py:257 +#: kasu/utils.py:257 msgid "Viet Nam" msgstr "Vietnam" -#: src/kasu/utils.py:258 +#: kasu/utils.py:258 msgid "Virgin Islands, British" msgstr "Virgin Islands, British" -#: src/kasu/utils.py:259 +#: kasu/utils.py:259 msgid "Virgin Islands, U.S." msgstr "Virgin Islands, US" -#: src/kasu/utils.py:260 +#: kasu/utils.py:260 msgid "Wallis and Futuna" msgstr "Wallis und Futuna" -#: src/kasu/utils.py:261 +#: kasu/utils.py:261 msgid "Western Sahara" msgstr "Westsahara" -#: src/kasu/utils.py:262 +#: kasu/utils.py:262 msgid "Yemen" msgstr "Jemen" -#: src/kasu/utils.py:263 +#: kasu/utils.py:263 msgid "Zambia" msgstr "Sambia" -#: src/kasu/utils.py:264 +#: kasu/utils.py:264 msgid "Zimbabwe" msgstr "Zimbabwe" -#: src/kasu/utils.py:270 +#: kasu/utils.py:270 msgid "Rejected" msgstr "Zurückgewiesen" -#: src/kasu/utils.py:271 +#: kasu/utils.py:271 msgid "Waiting..." msgstr "Wartend..." -#: src/kasu/utils.py:272 +#: kasu/utils.py:272 msgid "Published" msgstr "Veröffentlicht" diff --git a/src/kasu/settings.py b/src/kasu/settings.py index 4b708c5..f47b1ec 100644 --- a/src/kasu/settings.py +++ b/src/kasu/settings.py @@ -1,7 +1,9 @@ # -*- coding: utf-8 -*- from os import path -gettext = lambda s: s + +def gettext(s): return s + ADMINS = (('Max Mustermann', 'email@example.com'),) ALLOWED_HOSTS = ['.kasu.at'] @@ -39,6 +41,7 @@ PREREQ_APPS = [ 'django.contrib.sitemaps', 'django.contrib.staticfiles', 'django_comments', + 'captcha', 'ckeditor', 'ckeditor_uploader', 'easy_thumbnails', @@ -95,7 +98,7 @@ TEMPLATES = [ 'django.contrib.messages.context_processors.messages', 'django.contrib.messages.context_processors.messages', 'events.context_processors.upcoming_events', -'social_django.context_processors.backends', + 'social_django.context_processors.backends', 'social_django.context_processors.login_redirect' ], 'loaders': [ @@ -108,16 +111,6 @@ TEMPLATES = [ }, ] -#Settings for Security Middleware -CSP_DEFAULT_SRC = ("'self'",) -CSP_IMG_SRC = ("'self'", "'unsafe-eval'") -CSP_SCRIPT_SRC = ("'self'", "'unsafe-inline'", "'unsafe-eval'") -CSP_STYLE_SRC = ("'self'", "'unsafe-inline'") -SECURE_BROWSER_XSS_FILTER = True -SECURE_CONTENT_TYPE_NOSNIFF = True -SECURE_HSTS_INCLUDE_SUBDOMAINS = True -SECURE_HSTS_SECONDS = 31536000 -SECURE_SSL_REDIRECT = True SESSION_COOKIE_DOMAIN = 'kasu.at' # Die ganze Domain Kasu SESSION_COOKIE_AGE = 15768000 # Session dauer: 4 Wochen SESSION_COOKIE_SECURE = True @@ -169,21 +162,21 @@ CKEDITOR_CONFIGS = {'default': { 'width': '100%', 'extraPlugins': 'divarea', 'toolbarGroups': """[ - { name: 'clipboard', groups: [ 'clipboard', 'undo' ] }, - { name: 'editing', groups: [ 'find', 'selection', 'spellchecker' ] }, + { name: 'clipboard', groups: [ 'clipboard', 'undo' ] }, + { name: 'editing', groups: [ 'find', 'selection', 'spellchecker' ] }, { name: 'links' }, { name: 'insert' }, { name: 'forms' }, { name: 'tools' }, - { name: 'document', groups: [ 'mode', 'document', 'doctools' ] }, + { name: 'document', groups: [ 'mode', 'document', 'doctools' ] }, { name: 'others' }, '/', { name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] }, - { name: 'paragraph', groups: [ 'list', 'indent', 'blocks', 'align', 'bidi' ] }, + { name: 'paragraph', groups: [ 'list', 'indent', 'blocks', 'align', 'bidi' ] }, { name: 'styles' }, { name: 'colors' }, { name: 'about' } - ];""" + ];""" } } @@ -191,11 +184,9 @@ CKEDITOR_CONFIGS = {'default': { FACEBOOK_APP_ID = '' FACEBOOK_ACCESS_TOKEN = '' -# Settings for the redactor WYSIWYG Editor -REDACTOR_OPTIONS = {'lang': 'de', 'linebreaks': True} -REDACTOR_UPLOAD = 'uploads/' - # crendetials for reCaptcha (set in local_settings) +NOCAPTCHA = True +RECAPTCHA_USE_SSL = True RECAPTCHA_PUBLIC_KEY = '' RECAPTCHA_PRIVATE_KEY = '' RECAPTCHA_THEME = 'red' diff --git a/src/kasu/static/js/piwik.js b/src/kasu/static/js/piwik.js index 4003a58..961574a 100644 --- a/src/kasu/static/js/piwik.js +++ b/src/kasu/static/js/piwik.js @@ -1,8 +1,14 @@ -var idSite = 1; -var piwikTrackingApiUrl = 'https://kasu.at/piwik/piwik.php'; - -var _paq = _paq || []; -_paq.push(['setTrackerUrl', piwikTrackingApiUrl]); -_paq.push(['setSiteId', idSite]); -_paq.push(['trackPageView']); -_paq.push(['enableLinkTracking']); +/* Piwik */ + var _paq = _paq || []; + /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + (function() { + var u="//kasu.at/piwik/"; + _paq.push(['setTrackerUrl', u+'piwik.php']); + _paq.push(['setSiteId', '1']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s); + })(); + +/* End Piwik Code */ \ No newline at end of file diff --git a/src/kasu/templates/404.html b/src/kasu/templates/404.html index be8dd07..dac2bbe 100644 --- a/src/kasu/templates/404.html +++ b/src/kasu/templates/404.html @@ -4,7 +4,7 @@ {% block title %}404 - Seite nicht gefunden{% endblock %} {% block teaser %} -404 - Nōten! +

      404 - Nōten!

      {% trans 'The page your requested does not exist on this server.' %}

      {% endblock %} diff --git a/src/kasu/templates/base.html b/src/kasu/templates/base.html index e9f1fd9..49f65ce 100644 --- a/src/kasu/templates/base.html +++ b/src/kasu/templates/base.html @@ -35,21 +35,7 @@ {% endblock %} {% block extra_head %}{% endblock %} - - - +
    \n" -#: src/membership/templates/registration/login.html:25 +#: membership/templates/registration/login.html:27 +#, fuzzy +#| msgid "" +#| "\n" +#| "

    You can register here with your Google, or Facebook account.\n" +#| "If you don't own such an account, or do not want to use it for " +#| "authentication,\n" +#| "you can fill out our registration form.

    \n" msgid "" "\n" -"

    You can register here with your Google, or Facebook account.\n" -"If you don't own such an account, or do not want to use it for " -"authentication,\n" -"you can fill out our registration form.

    \n" +"

    You can register here with your Google, or Facebook account.\n" +" If you don't own such an account, or do not want to use it for\n" +" authentication,\n" +" you can fill out our registration form.

    \n" +" " msgstr "" "\n" "

    Du kannst dich auch über deinen Facebook, Google, oder Twitter Account " @@ -445,52 +467,51 @@ msgstr "" "Wenn du so etwas nicht besitzt, oder nicht verwenden möchtest, \n" "kannst du auch das Registrierungsformular ausfüllen.

    \n" -#: src/membership/templates/registration/login.html:41 -msgid "Your username and password didn't match. Please try again." +#: membership/templates/registration/login.html:45 +#, fuzzy +#| msgid "Your username and password didn't match. Please try again." +msgid "" +"Your username and password didn't match. Please try\n" +" again." msgstr "" "Benutzername und Passwort stimmen nicht überein. Bitte noch einmal versuchen." -#: src/membership/templates/registration/login.html:44 +#: membership/templates/registration/login.html:50 msgid "Forgot your Password?" msgstr "Passwort vergessen?" -#: src/membership/templates/registration/login.html:46 -#: src/membership/templates/registration/password_reset_complete.html:13 -msgid "Login" -msgstr "Anmelden" - -#: src/membership/templates/registration/login.html:52 +#: membership/templates/registration/login.html:60 msgid "or login with an existing Account" msgstr "oder über einen existierenden Account anmelden" -#: src/membership/templates/registration/login.html:53 +#: membership/templates/registration/login.html:63 msgid "Login with Facebook" msgstr "Über Facebook anmelden" -#: src/membership/templates/registration/login.html:54 +#: membership/templates/registration/login.html:66 msgid "Login with Twitter" msgstr "Über Twitter anmelden" -#: src/membership/templates/registration/login.html:55 +#: membership/templates/registration/login.html:69 msgid "Login with Google" msgstr "Über Google Anmelden" -#: src/membership/templates/registration/password_change_done.html:4 -#: src/membership/templates/registration/password_change_done.html:7 +#: membership/templates/registration/password_change_done.html:4 +#: membership/templates/registration/password_change_done.html:7 msgid "Password change successful" msgstr "Benutzerprofil erfolgreich geändert." -#: src/membership/templates/registration/password_change_done.html:8 +#: membership/templates/registration/password_change_done.html:8 msgid "Your password was changed." msgstr "Passwort geändet" -#: src/membership/templates/registration/password_change_form.html:4 -#: src/membership/templates/registration/password_change_form.html:9 -#: src/membership/templates/registration/password_change_form.html:16 +#: membership/templates/registration/password_change_form.html:4 +#: membership/templates/registration/password_change_form.html:9 +#: membership/templates/registration/password_change_form.html:16 msgid "Password change" msgstr "Passwort wechseln" -#: src/membership/templates/registration/password_change_form.html:10 +#: membership/templates/registration/password_change_form.html:10 msgid "" "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." @@ -498,23 +519,23 @@ msgstr "" "Zur Sicherheit bitte altes Passwort einmal und das gewünschte neue Passwort " "zweimal angeben, so können Tippfehler abgefangen werden." -#: src/membership/templates/registration/password_reset_complete.html:4 -#: src/membership/templates/registration/password_reset_complete.html:6 -#: src/membership/templates/registration/password_reset_complete.html:9 +#: membership/templates/registration/password_reset_complete.html:4 +#: membership/templates/registration/password_reset_complete.html:6 +#: membership/templates/registration/password_reset_complete.html:9 msgid "Password reset complete" msgstr "Das Rücksetzen des Passwortes ist abgeschlossen." -#: src/membership/templates/registration/password_reset_complete.html:10 +#: membership/templates/registration/password_reset_complete.html:10 msgid "Your password has been set. You may go ahead and log in now." msgstr "Das Passwort wurde gesetzt, Du kannst dich nun damit anmelden." -#: src/membership/templates/registration/password_reset_confirm.html:4 -#: src/membership/templates/registration/password_reset_confirm.html:6 -#: src/membership/templates/registration/password_reset_confirm.html:15 +#: membership/templates/registration/password_reset_confirm.html:4 +#: membership/templates/registration/password_reset_confirm.html:6 +#: membership/templates/registration/password_reset_confirm.html:15 msgid "Enter new password" msgstr "Neues Passwort eingeben" -#: src/membership/templates/registration/password_reset_confirm.html:12 +#: membership/templates/registration/password_reset_confirm.html:12 msgid "" "Please enter your new password twice so we can verify you typed it in " "correctly." @@ -522,15 +543,15 @@ msgstr "" "Bitte das Passwort zweimal eingeben, um sicher zu stellen das es korrekt " "eingetippt wurde." -#: src/membership/templates/registration/password_reset_confirm.html:18 +#: membership/templates/registration/password_reset_confirm.html:18 msgid "Change my password" msgstr "Passwort ändern" -#: src/membership/templates/registration/password_reset_confirm.html:26 +#: membership/templates/registration/password_reset_confirm.html:26 msgid "Password reset unsuccessful" msgstr "Passwort rücksetzen fehlgeschlagen" -#: src/membership/templates/registration/password_reset_confirm.html:27 +#: membership/templates/registration/password_reset_confirm.html:27 msgid "" "The password reset link was invalid, possibly because it has already been " "used. Please request a new password reset." @@ -538,22 +559,22 @@ msgstr "" "Der Link für die Rücksetzung des Passwortes war ungültig, vermutlich wurde " "er schon einmal benutzt. Bitte eine neue Rücksetzung beantragen." -#: src/membership/templates/registration/password_reset_done.html:4 -#: src/membership/templates/registration/password_reset_done.html:6 -#: src/membership/templates/registration/password_reset_done.html:12 +#: membership/templates/registration/password_reset_done.html:4 +#: membership/templates/registration/password_reset_done.html:6 +#: membership/templates/registration/password_reset_done.html:12 msgid "Password reset successful" msgstr "Passwort erfolgreich zurückgesetzt." -#: src/membership/templates/registration/password_reset_form.html:4 -#: src/membership/templates/registration/password_reset_form.html:6 +#: membership/templates/registration/password_reset_form.html:4 +#: membership/templates/registration/password_reset_form.html:6 msgid "Password reset" msgstr "Passwort zurücksetzen" -#: src/membership/templates/registration/password_reset_form.html:21 +#: membership/templates/registration/password_reset_form.html:21 msgid "Transmit" msgstr "Übermitteln" -#: src/membership/views.py:58 +#: membership/views.py:58 msgid "" "Activation successful. You can now login anytime with you username " "and password." @@ -561,11 +582,11 @@ msgstr "" "Die Aktivierung war erfolgreich. Du kannst dich ab jetzt jederzeit mit " "deinem Benutzernamen und Passwort anmelden." -#: src/membership/views.py:78 +#: membership/views.py:78 msgid "User Profile changed successfully" msgstr "Benutzerprofil erfolgreich geändert." -#: src/membership/views.py:92 +#: membership/views.py:92 #, python-format msgid "No %(verbose_name)s found matching the query" msgstr "Kein %(verbose_name)s gefunden welche der Anfrage entspricht" diff --git a/src/membership/migrations/0002_proxygroup.py b/src/membership/migrations/0002_proxygroup.py index ff25cef..a5c8c21 100644 --- a/src/membership/migrations/0002_proxygroup.py +++ b/src/membership/migrations/0002_proxygroup.py @@ -1,7 +1,8 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import models, migrations +from django.db import migrations +from django.db import models import django.contrib.auth.models diff --git a/src/membership/migrations/0003_auto_20150820_2122.py b/src/membership/migrations/0003_auto_20150820_2122.py index 8caf4c2..74482be 100644 --- a/src/membership/migrations/0003_auto_20150820_2122.py +++ b/src/membership/migrations/0003_auto_20150820_2122.py @@ -1,7 +1,8 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import models, migrations +from django.db import migrations +from django.db import models class Migration(migrations.Migration): diff --git a/src/membership/migrations/0004_remove_membership_comment.py b/src/membership/migrations/0004_remove_membership_comment.py index a821526..fd66fb8 100644 --- a/src/membership/migrations/0004_remove_membership_comment.py +++ b/src/membership/migrations/0004_remove_membership_comment.py @@ -1,7 +1,8 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import models, migrations +from django.db import migrations +from django.db import models class Migration(migrations.Migration): diff --git a/src/membership/migrations/0005_auto_20150901_2204.py b/src/membership/migrations/0005_auto_20150901_2204.py index 3ac89aa..8866326 100644 --- a/src/membership/migrations/0005_auto_20150901_2204.py +++ b/src/membership/migrations/0005_auto_20150901_2204.py @@ -1,7 +1,8 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import models, migrations +from django.db import migrations +from django.db import models import membership.models import utils import easy_thumbnails.fields diff --git a/src/membership/migrations/0006_auto_20160916_1759.py b/src/membership/migrations/0006_auto_20160916_1759.py index 6a8f7e4..607567f 100644 --- a/src/membership/migrations/0006_auto_20160916_1759.py +++ b/src/membership/migrations/0006_auto_20160916_1759.py @@ -14,6 +14,7 @@ class Migration(migrations.Migration): migrations.AlterField( model_name='membership', name='gender', - field=models.CharField(blank=True, max_length=1, null=True, verbose_name='Geschlecht', choices=[(b'm', 'M\xe4nnlich'), (b'f', 'Weiblich')]), + field=models.CharField(blank=True, max_length=1, null=True, verbose_name='Geschlecht', choices=[ + (b'm', 'M\xe4nnlich'), (b'f', 'Weiblich')]), ), ] diff --git a/src/membership/models.py b/src/membership/models.py index 25722a6..e756318 100644 --- a/src/membership/models.py +++ b/src/membership/models.py @@ -65,8 +65,9 @@ class ActivationManager(models.Manager): creates a PendingActivation instance with an random activation key. @param user: the user that requests activation. """ - salt = str(random.random()) - activation_key = hashlib.sha1(salt + user.username).hexdigest() + salt = str(user.pk * random.random()) + \ + user.registration_date.isoformat() + activation_key = hashlib.sha1(salt.encode('utf-8')).hexdigest() return self.create(user=user, activation_key=activation_key) diff --git a/src/membership/templates/membership/activation_error.html b/src/membership/templates/membership/activation_error.html index bd4055a..94d3abe 100644 --- a/src/membership/templates/membership/activation_error.html +++ b/src/membership/templates/membership/activation_error.html @@ -11,7 +11,7 @@
    • Der Aktivierungs Link ist nicht korrekt. Bitte kopiere die ganze Zeile aus der E-Mail in die Adressleiste.
    • -
    • Der Aktivierungs Schlüssel ist abgelaufen. Dieser ist nur {{ expiration_days }} Tage gültig.In diesem Fall fülle das Registrierungs Formular bitte erneut aus.

    • +
    • Der Aktivierungs Schlüssel ist abgelaufen. Dieser ist nur {{ expiration_days }} Tage gültig.In diesem Fall fülle das Registrierungs Formular bitte erneut aus.
    • Der Account wurde schon aktiviert. Dies passiert sehr schnell, veruche zuerst dich mit deinen Daten anzumelden. Sollte das nicht funktionieren, kannst du dir ja mal neue Zugangsdaten zuschicken lassen.
    • Ein obskurer Fehler ist aufgetreten. In diesem Fall, nimm bitte Kontakt mit dem Webadmin auf.
    diff --git a/src/membership/templates/membership/register_form.html b/src/membership/templates/membership/register_form.html index 8a34645..59519bf 100644 --- a/src/membership/templates/membership/register_form.html +++ b/src/membership/templates/membership/register_form.html @@ -2,6 +2,7 @@ {% load i18n fieldset_extras %} {% block title %}{% trans "Registration"%}{% endblock %} + {% block teaser%}

    {% trans "Registration"%}

    @@ -41,5 +42,4 @@

    -{% endblock %} - +{% endblock %} \ No newline at end of file diff --git a/src/membership/templates/registration/password_change_form.html b/src/membership/templates/registration/password_change_form.html index f5f9c98..2e2ec52 100755 --- a/src/membership/templates/registration/password_change_form.html +++ b/src/membership/templates/registration/password_change_form.html @@ -25,6 +25,5 @@ - {% endblock %} diff --git a/src/membership/urls.py b/src/membership/urls.py index f46ea6f..fe65be6 100644 --- a/src/membership/urls.py +++ b/src/membership/urls.py @@ -4,7 +4,8 @@ Created on 03.10.2011 @author: christian """ import django.contrib.auth.views as auth_views -from django.conf.urls import url, include +from django.conf.urls import include +from django.conf.urls import url from . import views diff --git a/src/membership/views.py b/src/membership/views.py index cd2018d..08ec84c 100644 --- a/src/membership/views.py +++ b/src/membership/views.py @@ -12,10 +12,14 @@ from mahjong_ranking.models import KyuDanRanking, SeasonRanking from utils import mixins from . import forms, models RECAPTCHA_CSP = { - 'SCRIPT_SRC': ['https://www.google.com/recaptcha/', 'https://www.gstatic.com/recaptcha/'], - 'FRAME_SRC': 'https://www.google.com/recaptcha/', - 'STYLE_SRC': "'unsafe-inline'" + 'SCRIPT_SRC': ( + 'https://www.google.com/recaptcha/', + 'https://www.gstatic.com/recaptcha/' + ), + 'CHILD_SRC': ('https://www.google.com/recaptcha/',) } + + class ActivateRegistration(generic.DetailView): """ Activates the Registration of an User and logs him in diff --git a/src/utils/__init__.py b/src/utils/__init__.py index e276d4d..1803d2d 100644 --- a/src/utils/__init__.py +++ b/src/utils/__init__.py @@ -11,13 +11,14 @@ from .html_cleaner import HtmlCleaner from .massmailer import MassMailer +CLEANER = HtmlCleaner() STATUS_REJECTED, STATUS_WAITING, STATUS_PUBLISHED = -1, 0, 1 STATUS_CHOICES = ( (STATUS_REJECTED, _('Rejected')), (STATUS_WAITING, _('Waiting...')), (STATUS_PUBLISHED, _('Published')), ) -cleaner = HtmlCleaner() + class OverwriteStorage(FileSystemStorage): diff --git a/src/utils/forms.py b/src/utils/forms.py deleted file mode 100644 index dea314c..0000000 --- a/src/utils/forms.py +++ /dev/null @@ -1,59 +0,0 @@ -""" -Created on 24.11.2011 - -@author: christian -""" -import datetime - -from django import forms - - -class DateInput(forms.widgets.DateInput): - input_type = 'date' - attrs = {'class': 'dateinput'} - - def __init__(self, attrs=None, **kwargs): - forms.widgets.DateInput.__init__(self, - attrs=attrs, - format='%Y-%m-%d', - **kwargs) - - -class NumberInput(forms.widgets.Input): - input_type = 'number' - - -class TimeInput(forms.widgets.Select): - - def __init__(self, attrs=None, ): - timeset = datetime.datetime(2000, 1, 1, 0, 0) - choices = [('', '-------')] - while timeset < datetime.datetime(2000, 1, 2, 0, 0): - choices.append(( - timeset.strftime('%H:%M:%S'), - timeset.strftime('%H:%M') - )) - timeset += datetime.timedelta(minutes=30) - forms.widgets.Select.__init__(self, attrs=attrs, choices=choices) - - def render(self, name, value, attrs=None, choices=()): - return forms.widgets.Select.render(self, name, value, attrs=attrs, - choices=choices) - - -class SplitDateTimeWidget(forms.widgets.MultiWidget): - """ - A Widget that splits datetime input into two boxes. - """ - - def __init__(self, attrs=None, date_format='%Y-%m-%d'): - widgets = ( - DateInput(attrs=attrs, format=date_format), - TimeInput(attrs=attrs) - ) - super(SplitDateTimeWidget, self).__init__(widgets, attrs) - - def decompress(self, value): - if value: - return [value.date(), value.time()] - return [None, None] diff --git a/src/utils/html5/__init__.py b/src/utils/html5/__init__.py deleted file mode 100644 index 1d43238..0000000 --- a/src/utils/html5/__init__.py +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/python -from . import base - -registry = base.LookupRegistry() - - -def url_autodiscover(): - import copy - from django.conf import settings - from django.utils.importlib import import_module - from django.utils.module_loading import module_has_submodule - - for app in settings.INSTALLED_APPS: - mod = import_module(app) - # Attempt to import the app's lookups module. - try: - before_import_registry = copy.copy(registry._registry) - import_module('%s.lookups' % app) - except: - registry._registry = before_import_registry - - if module_has_submodule(mod, 'lookups'): - raise diff --git a/src/utils/html5/base.py b/src/utils/html5/base.py deleted file mode 100644 index e58b4e4..0000000 --- a/src/utils/html5/base.py +++ /dev/null @@ -1,139 +0,0 @@ -import re - -from django.core.urlresolvers import reverse -from django.core.serializers.json import DjangoJSONEncoder -from django.http import HttpResponse -from django.utils.encoding import smart_text, force_text - - -try: - import json -except ImportError: - from django.utils import simplejson as json - - -class LookupBase(object): - - @classmethod - def name(cls): - app_name = cls.__module__.split('.')[-2].lower() - class_name = cls.__name__.lower() - name = u'%s-%s' % (app_name, class_name) - return name - - @classmethod - def url(cls): - return reverse('autocomplete-lookup', args=[cls.name()]) - - def get_query(self, request, term): - return [] - - def get_item_label(self, item): - return smart_text(item) - - def get_item_id(self, item): - return smart_text(item) - - def get_item_value(self, item): - return smart_text(item) - - def get_item(self, value): - return value - - def create_item(self, value): - raise NotImplemented() - - def format_item(self, item): - return { - 'id': self.get_item_id(item), - 'value': self.get_item_value(item), - 'label': self.get_item_label(item) - } - - def results(self, request): - term = request.GET.get('term', '') - raw_data = self.get_query(request, term) - data = [] - for item in raw_data: - data.append(self.format_item(item)) - content = json.dumps(data, cls=DjangoJSONEncoder, ensure_ascii=False) - return HttpResponse(content, content_type='application/json') - - -class LookupAlreadyRegistered(Exception): - pass - - -class LookupNotRegistered(Exception): - pass - - -class LookupInvalid(Exception): - pass - - -class LookupRegistry(object): - - def __init__(self): - self._registry = {} - - def validate(self, lookup): - if not issubclass(lookup, LookupBase): - raise LookupInvalid(u'Registered lookups must inherit from the \ - LookupBase class') - - def register(self, lookup): - self.validate(lookup) - name = force_text(lookup.name()) - if name in self._registry: - raise LookupAlreadyRegistered(u'The name %s is already registered' - % name) - self._registry[name] = lookup - - def unregister(self, lookup): - self.validate(lookup) - name = force_text(lookup.name()) - if name not in self._registry: - raise LookupNotRegistered(u'The name %s is not registered' % name) - del self._registry[name] - - def get(self, key): - return self._registry.get(key, None) - - -class ModelLookup(LookupBase): - model = None - filters = {} - search_field = '' - - def get_query(self, request, term): - qs = self.get_queryset() - if term and self.search_field: - qs = qs.filter(**{self.search_field: term}) - return qs - - def get_queryset(self): - qs = self.model._default_manager.get_query_set() - if self.filters: - qs = qs.filter(**self.filters) - return qs - - def get_item_id(self, item): - return item.pk - - def get_item(self, value): - item = None - if value: - try: - item = self.get_queryset().filter(pk=value)[0] - except IndexError: - pass - return item - - def create_item(self, value): - data = {} - if self.search_field: - field_name = re.sub(r'__\w+$', '', self.search_field) - if field_name: - data = {field_name: value} - return self.model(**data) diff --git a/src/utils/html5/forms.py b/src/utils/html5/forms.py deleted file mode 100644 index d859779..0000000 --- a/src/utils/html5/forms.py +++ /dev/null @@ -1,250 +0,0 @@ -""" -Created on 08.05.2011 - -@author: christian -""" -import re - -from django.conf import settings -from django.core import validators -from django.core.validators import EMPTY_VALUES -from django.forms import utils, Form, ModelForm, ValidationError -import sys -import django.forms.fields -from django.utils.translation import gettext as _ - - -from . import widgets - - -class Html5Mixin(object): - - def widget_attrs(self, widget): - """ - Overwrites the standard Widget Attributes to add some HTML5 Stuff - :param widget: A Widget Object - """ - attrs = super(Html5Mixin, self).widget_attrs(widget) - if self.required and not isinstance(widget, widgets.CheckboxInput): - attrs['required'] = 'required' - if self.help_text: - attrs['title'] = self.help_text - attrs['placeholder'] = self.help_text - if hasattr(self, 'placeholder'): - attrs['placeholder'] = self.placeholder - - if self.accesskey: - attrs['accesskey'] = self.accesskey - return attrs - - def __init__(self, *args, **kwargs): - self.accesskey = kwargs.pop('accesskey', None) - super(Html5Mixin, self).__init__(*args, **kwargs) - - -class AutoCompleteSelectField(Html5Mixin, django.forms.Field): - widget = widgets.AutoCompleteSelectWidget - default_error_messages = { - 'invalid_choice': _(u'Select a valid choice. That choice is not one \ - of the available choices.'), - } - - def __init__(self, lookup_class, *args, **kwargs): - self.lookup_class = lookup_class - self.allow_new = kwargs.pop('allow_new', False) - if not kwargs['widget']: - kwargs['widget'] = self.widget(lookup_class, - allow_new=self.allow_new) - super(AutoCompleteSelectField, self).__init__(*args, **kwargs) - - def to_python(self, value): - if value in EMPTY_VALUES: - return None - if isinstance(value, list): - # Input comes from an AutoComplete widget. It's two - # components: text and id - if len(value) != 2: - raise django.forms.ValidationError( - self.error_messages['invalid_choice']) - lookup = self.lookup_class() - if value[1] in EMPTY_VALUES: - if not self.allow_new: - if value[0]: - raise django.forms.ValidationError( - self.error_messages['invalid_choice']) - else: - return None - value = lookup.create_item(value[0]) - else: - value = lookup.get_item(value[1]) - if value is None: - raise django.forms.ValidationError( - self.error_messages['invalid_choice']) - return value - - -class AutoComboboxSelectField(AutoCompleteSelectField): - widget = widgets.AutoComboboxSelectWidget - - -class AutoCompleteSelectMultipleField(Html5Mixin, django.forms.Field): - widget = widgets.AutoCompleteSelectMultipleWidget - - default_error_messages = { - 'invalid_choice': _(u'Select a valid choice. \ - That choice is not one of the available choices.'), - } - - def __init__(self, lookup_class, *args, **kwargs): - self.lookup_class = lookup_class - kwargs['widget'] = self.widget(lookup_class) - self.attrs['autofocus'] = 'autofocus' - super(AutoCompleteSelectMultipleField, self).__init__(*args, **kwargs) - - def to_python(self, value): - if value in EMPTY_VALUES: - return None - lookup = self.lookup_class() - items = [] - for v in value: - if v not in EMPTY_VALUES: - item = lookup.get_item(v) - if item is None: - raise django.forms.ValidationError( - self.error_messages['invalid_choice']) - items.append(item) - return items - - -class AutoComboboxSelectMultipleField(AutoCompleteSelectMultipleField): - widget = widgets.AutoComboboxSelectMultipleWidget - - -class BooleanField(Html5Mixin, django.forms.BooleanField): - widget = widgets.CheckboxInput - - -class CharField(Html5Mixin, django.forms.CharField): - pass - - -class DateField(Html5Mixin, django.forms.fields.DateField): - placeholder = _('yyyy-mm-dd') - widget = widgets.DateInput - - -class DateTimeField(Html5Mixin, django.forms.fields.DateTimeField): - widget = widgets.DateTimeInput - - -class EmailField(Html5Mixin, django.forms.fields.EmailField): - widget = widgets.EmailInput - - -class FileField(Html5Mixin, django.forms.fields.FileField): - widget = widgets.NumberInput - pass - - -class FloatField(Html5Mixin, django.forms.fields.FloatField): - pass - - -class HiddenInput(Html5Mixin, django.forms.HiddenInput): - pass - - -class IntegerField(Html5Mixin, django.forms.fields.IntegerField): - widget = widgets.NumberInput - - def widget_attrs(self, widget): - attrs = super(IntegerField, self).widget_attrs(widget) - if isinstance(widget, widgets.NumberInput): - if self.min_value is not None: - attrs['min'] = self.min_value - if self.max_value is not None: - attrs['max'] = self.max_value - return attrs - - -class ModelChoiceField(Html5Mixin, django.forms.ModelChoiceField): - pass - - -class PasswordInput(Html5Mixin, django.forms.PasswordInput): - pass - - -class PhoneField(Html5Mixin, django.forms.CharField): - widget = widgets.PhoneInput - - def __init__(self, regex=None, max_length=None, min_length=None, - error_message=None, *args, **kwargs): - super(PhoneField, self).__init__(max_length, min_length, - *args, **kwargs) - self._set_regex(u'^[0-9+-/ ]+$') - - def _get_regex(self): - return self._regex - - def _set_regex(self, regex=u'^[0-9+-/ ]+$'): - regex = re.compile(regex, re.UNICODE) - self._regex = regex - if hasattr(self, '_regex_validator') \ - and self._regex_validator in self.validators: - self.validators.remove(self._regex_validator) - self._regex_validator = validators.RegexValidator(regex=regex) - self.validators.append(self._regex_validator) - - regex = property(_get_regex, _set_regex) - - -class ReCaptchaField(django.forms.fields.CharField): - - def __init__(self, *args, **kwargs): - self.widget = widgets.ReCaptchaInput - self.required = True - super(ReCaptchaField, self).__init__(*args, **kwargs) - - def get_remote_ip(self): - f = sys._getframe() - while f: - if 'request' in f.f_locals: - request = f.f_locals['request'] - if request: - remote_ip = request.META.get('REMOTE_ADDR', None) - forwarded_ip = request.META.get('HTTP_X_FORWARDED_FOR', None) - return forwarded_ip or remote_ip - f = f.f_back - - def clean(self, values): - """ test the google recaptcha""" - import json, urllib, urllib2 - - url = "https://www.google.com/recaptcha/api/siteverify" - challenge_value = values[0] - data = urllib.urlencode({ - 'secret': settings.RECAPTCHA_PRIVATE_KEY, - 'response': values[1], - 'remoteip': self.get_remote_ip() - }) - req = urllib2.Request(url, data) - response = urllib2.urlopen(req) - result = json.loads(response.read()) - - # result["success"] will be True on a success - if not result["success"]: - raise ValidationError( - _(u'Only humans are allowed to submit this form.')) - - -class RegexField(Html5Mixin, django.forms.RegexField): - pass - - -class SlugField(Html5Mixin, django.forms.SlugField): - pass - - -class URLField(Html5Mixin, django.forms.fields.URLField): - widget = widgets.URLInput diff --git a/src/utils/html5/models.py b/src/utils/html5/models.py deleted file mode 100644 index f1ee133..0000000 --- a/src/utils/html5/models.py +++ /dev/null @@ -1,148 +0,0 @@ -""" -Created on 08.05.2011 - -@author: christian -""" -from django.db import models -from django.db.models import ForeignKey # @UnusedImport -from django.utils import six - -from . import forms, widgets - - -class BooleanField(models.BooleanField): - - def formfield(self, **kwargs): - defaults = {'form_class': forms.BooleanField} - defaults.update(kwargs) - return super(BooleanField, self).formfield(**defaults) - - -class CharField(models.CharField): - - def formfield(self, **kwargs): - defaults = {'form_class': forms.CharField} - defaults.update(kwargs) - return super(CharField, self).formfield(**defaults) - - -class DateField(models.DateField): - - def formfield(self, **kwargs): - defaults = { - 'form_class': forms.DateField} - defaults.update(kwargs) - return super(DateField, self).formfield(**defaults) - - -class DateTimeField(models.DateTimeField): - - def formfield(self, **kwargs): - defaults = {'form_class': forms.DateTimeField} - defaults.update(kwargs) - return super(DateTimeField, self).formfield(**defaults) - - -class EmailField(models.EmailField): - - def formfield(self, **kwargs): - defaults = {'form_class': forms.EmailField} - defaults.update(kwargs) - return super(EmailField, self).formfield(**defaults) - - -class FileField(models.FileField): - - def formfield(self, **kwargs): - defaults = {'form_class': forms.FileField} - defaults.update(kwargs) - return super(FileField, self).formfield(**defaults) - - -class ForeignKey(models.ForeignKey): - - def formfield(self, **kwargs): - db = kwargs.pop('using', None) - if isinstance(self.rel.to, six.string_types): - raise ValueError("Cannot create form field for %r yet, because " - "its related model %r has not been loaded yet" % - (self.name, self.rel.to)) - queryset = self.rel.to._default_manager.using(db) - queryset = queryset.complex_filter(self.rel.limit_choices_to) - defaults = { - 'form_class': forms.ModelChoiceField, - 'queryset': queryset, - 'to_field_name': self.rel.field_name, - } - defaults.update(kwargs) - return super(ForeignKey, self).formfield(**defaults) - - -class ImageField(models.ImageField): - pass - - -class IntegerField(models.IntegerField): - - def formfield(self, **kwargs): - defaults = {'form_class': forms.IntegerField} - defaults.update(kwargs) - return super(IntegerField, self).formfield(**defaults) - - -class NullBooleanField(models.NullBooleanField): - - def formfield(self, **kwargs): - defaults = {'form_class': forms.BooleanField} - defaults.update(kwargs) - return super(NullBooleanField, self).formfield(**defaults) - - -class PositiveSmallIntegerField(models.PositiveSmallIntegerField): - - def formfield(self, **kwargs): - defaults = { - 'form_class': forms.IntegerField, - 'min_value': 0, - 'max_value': 32767 - } - defaults.update(kwargs) - return super(PositiveSmallIntegerField, self).formfield(**defaults) - - -class PositiveIntegerField(models.IntegerField): - - def formfield(self, **kwargs): - defaults = { - 'form_class': forms.IntegerField, - 'min_value': 0 - } - defaults.update(kwargs) - return super(PositiveIntegerField, self).formfield(**defaults) - - -class SlugField(models.SlugField): - - def formfield(self, **kwargs): - defaults = {'form_class': forms.SlugField} - defaults.update(kwargs) - return super(SlugField, self).formfield(**defaults) - - -class TextField(models.TextField): - - def formfield(self, **kwargs): - defaults = { - 'form_class': forms.CharField, - 'widget': widgets.Textarea - } - defaults.update(kwargs) - return super(TextField, self).formfield(**defaults) - - -class URLField(models.URLField): - - def formfield(self, **kwargs): - defaults = {'form_class': forms.URLField} - defaults.update(kwargs) - return super(URLField, self).formfield(**defaults) diff --git a/src/utils/html5/views.py b/src/utils/html5/views.py deleted file mode 100644 index 7d6e322..0000000 --- a/src/utils/html5/views.py +++ /dev/null @@ -1,16 +0,0 @@ -""" -Created on 05.08.2011 - -@author: christian -""" -from django.http import Http404 - -from . import registry - - -def get_lookup(request, lookup_name): - lookup_cls = registry.get(lookup_name) - if lookup_cls is None: - raise Http404(u'Lookup %s not found' % lookup_name) - lookup = lookup_cls() - return lookup.results(request) diff --git a/src/utils/html5/widgets.py b/src/utils/html5/widgets.py deleted file mode 100644 index 6a4c31a..0000000 --- a/src/utils/html5/widgets.py +++ /dev/null @@ -1,324 +0,0 @@ -""" -Created on 08.05.2011 - -@author: christian -""" -from django.conf import settings -from django.forms import widgets -from django.forms.utils import flatatt -from django.utils import formats -from django.utils.encoding import force_text -from django.utils.html import conditional_escape -from django.utils.http import urlencode -from django.utils.safestring import mark_safe - - -class AutoCompleteWidget(widgets.TextInput): - - def __init__(self, lookup_class, attrs=None, *args, **kwargs): - self.lookup_class = lookup_class - self.allow_new = kwargs.pop('allow_new', False) - self.qs = {} - super(AutoCompleteWidget, self).__init__(*args, **kwargs) - if attrs is not None: - self.attrs = attrs.copy() - else: - self.attrs = {} - - def update_query_parameters(self, qs_dict): - self.qs.update(qs_dict) - - def build_attrs(self, extra_attrs=None, **kwargs): - attrs = super(AutoCompleteWidget, self).build_attrs(extra_attrs, - **kwargs) # @IgnorePep8 - url = self.lookup_class.url() - if self.qs: - url = '%s?%s' % (url, urlencode(self.qs)) - attrs[u'data-selectable-url'] = url - attrs[u'data-selectable-type'] = 'text' - attrs[u'data-selectable-allow-new'] = str(self.allow_new).lower() - return attrs - - -class AutoComboboxWidget(AutoCompleteWidget): - - def build_attrs(self, extra_attrs=None, **kwargs): - attrs = super(AutoComboboxWidget, self).build_attrs(extra_attrs, - **kwargs) # @IgnorePep8 - attrs[u'data-selectable-type'] = 'combobox' - return attrs - - -class DateInput(widgets.DateInput): - input_type = 'date' - attrs = {'class': 'dateinput'} - - def __init__(self, attrs=None, date_format='%Y-%m-%d'): - super(DateInput, self).__init__(attrs) - if date_format: - self.format = date_format - self.manual_format = True - else: - self.format = formats.get_format('DATE_INPUT_FORMATS')[0] - self.manual_format = False - - -class DateTimeInput(widgets.MultiWidget): - """ - A Widget that splits datetime input into two boxes. - """ - - def __init__(self, attrs=None, date_format='%Y-%m-%d', - time_format='%H:%M'): # @IgnorePep8 - widgets = ( - DateInput(attrs=attrs, date_format=date_format), - TimeInput(attrs=attrs, time_format=time_format) - ) - super(DateTimeInput, self).__init__(widgets, attrs) - - def decompress(self, value): - if value: - return [value.date(), value.time()] - return [None, None] - - -class CheckboxInput(widgets.CheckboxInput): - input_type = 'checkbox' - is_checkbox = True - - def render(self, name, value, attrs=None): - final_attrs = self.build_attrs(attrs, type='checkbox', name=name) - title = force_text(self.attrs.get('title', '')) - try: - result = self.check_test(value) - except: # Silently catch exceptions - result = False - if result: - final_attrs['checked'] = 'checked' - if not ( - value is True or value is False or value is None or value == ''): # @IgnorePep8 - # Only add the 'value' attribute if a value is non-empty. - final_attrs['value'] = force_text(value) - - return mark_safe(u' %s' % (flatatt(final_attrs), title)) - - -class EmailInput(widgets.TextInput): - input_type = 'email' - - -class NumberInput(widgets.TextInput): - input_type = 'number' - - def __init__(self, attrs=None): - widgets.Input.__init__(self, attrs=attrs) - - -class PhoneInput(widgets.TextInput): - input_type = 'tel' - - -class RangeInput(widgets.TextInput): - input_type = 'range' - - -class ReCaptchaInput(widgets.Widget): - """ - Der HTML Code von Googles ReCaptcha als Form Widget - """ - recaptcha_challenge_name = 'g-recaptcha-response' - recaptcha_response_name = 'g-recaptcha-response' - - def render(self, name, value, attrs=None): - html_code = u''' - -
    - '''.format(public_key=settings.RECAPTCHA_PUBLIC_KEY) - return mark_safe(html_code) - - def value_from_datadict(self, data, files, name): - return [data.get(self.recaptcha_challenge_name, None), - data.get(self.recaptcha_response_name, None)] - - -class SelectableMultiWidget(widgets.MultiWidget): - - def update_query_parameters(self, qs_dict): - self.widgets[0].update_query_parameters(qs_dict) - - -class Textarea(widgets.Widget): - - def __init__(self, attrs=None): - # The 'rows' and 'cols' attributes are required for HTML correctness. - default_attrs = {'cols': '40', 'rows': '10'} - if attrs: - default_attrs.update(attrs) - super(Textarea, self).__init__(default_attrs) - - def render(self, name, value, attrs=None): - value = '' if value is None else value - final_attrs = self.build_attrs(attrs, name=name) - return mark_safe(u'%s' % (flatatt(final_attrs), - conditional_escape( - force_text( - value)))) - - -class TextInput(widgets.TextInput): - pass - - -class TimeInput(widgets.TimeInput): - input_type = 'time' - - def __init__(self, attrs=None, time_format='%H:%M'): - default_attrs = {'maxlength': 5, 'size': 5} - if attrs: - default_attrs.update(attrs) - super(TimeInput, self).__init__(default_attrs) - - if time_format: - self.format = time_format - self.manual_format = True - else: - self.format = formats.get_format('TIME_INPUT_FORMATS')[0] - self.manual_format = False - - -class URLInput(widgets.Input): - input_type = 'url' - - -class LookupMultipleHiddenInput(widgets.MultipleHiddenInput): - - def __init__(self, lookup_class, *args, **kwargs): - self.lookup_class = lookup_class - super(LookupMultipleHiddenInput, self).__init__(*args, **kwargs) - - def render(self, name, value, attrs=None, choices=()): - lookup = self.lookup_class() - value = [] if value is None else value - final_attrs = self.build_attrs(attrs, type=self.input_type, name=name) - id_ = final_attrs.get('id', None) - inputs = [] - model = getattr(self.lookup_class, 'model', None) - for i, v in enumerate(value): - item = None - if model and isinstance(v, model): - item = v - v = lookup.get_item_id(item) - input_attrs = dict(value=force_text(v), **final_attrs) - if id_: - # An ID attribute was given. Add a numeric index as a suffix - # so that the inputs don't all have the same ID attribute. - input_attrs['id'] = '%s_%s' % (id_, i) - if v: - item = item or lookup.get_item(v) - input_attrs['title'] = lookup.get_item_value(item) - inputs.append(u'' % flatatt(input_attrs)) - return mark_safe(u'\n'.join(inputs)) - - def build_attrs(self, extra_attrs=None, **kwargs): - attrs = super(LookupMultipleHiddenInput, self).build_attrs(extra_attrs, - **kwargs) # @IgnorePep8 - attrs[u'data-selectable-type'] = 'hidden-multiple' - return attrs - - -class AutoCompleteSelectMultipleWidget(SelectableMultiWidget): - - def __init__(self, lookup_class, *args, **kwargs): - self.lookup_class = lookup_class - widgets = [ - AutoCompleteWidget(lookup_class, allow_new=False, - attrs={u'data-selectable-multiple': 'true'}), - LookupMultipleHiddenInput(lookup_class) - ] - super(AutoCompleteSelectMultipleWidget, self).__init__(widgets, *args, - **kwargs) # @IgnorePep8 - - def value_from_datadict(self, data, files, name): - return self.widgets[1].value_from_datadict(data, files, name + '_1') - - def render(self, name, value, attrs=None): - if value and not hasattr(value, '__iter__'): - value = [value] - value = [u'', value] - return super(AutoCompleteSelectMultipleWidget, self).render(name, value, - attrs) # @IgnorePep8 - - -class AutoComboboxSelectMultipleWidget(SelectableMultiWidget): - - def __init__(self, lookup_class, *args, **kwargs): - self.lookup_class = lookup_class - widgets = [ - AutoComboboxWidget(lookup_class, allow_new=False, - attrs={u'data-selectable-multiple': 'true'}), - LookupMultipleHiddenInput(lookup_class) - ] - super(AutoComboboxSelectMultipleWidget, self).__init__(widgets, *args, - **kwargs) # @IgnorePep8 - - def value_from_datadict(self, data, files, name): - return self.widgets[1].value_from_datadict(data, files, name + '_1') - - def render(self, name, value, attrs=None): - if value and not hasattr(value, '__iter__'): - value = [value] - value = [u'', value] - return super(AutoComboboxSelectMultipleWidget, self).render(name, value, - attrs) # @IgnorePep8 - - -class AutoCompleteSelectWidget(SelectableMultiWidget): - - def __init__(self, lookup_class, *args, **kwargs): - self.lookup_class = lookup_class - self.allow_new = kwargs.pop('allow_new', False) - widget_set = [ - AutoCompleteWidget(lookup_class, allow_new=self.allow_new), - widgets.HiddenInput(attrs={u'data-selectable-type': 'hidden'}) - ] - super(AutoCompleteSelectWidget, self).__init__(widget_set, *args, - **kwargs) # @IgnorePep8 - - def decompress(self, value): - if value: - lookup = self.lookup_class() - model = getattr(self.lookup_class, 'model', None) - if model and isinstance(value, model): - item = value - value = lookup.get_item_id(item) - else: - item = lookup.get_item(value) - item_value = lookup.get_item_value(item) - return [item_value, value] - return [None, None] - - -class AutoComboboxSelectWidget(SelectableMultiWidget): - - def __init__(self, lookup_class, *args, **kwargs): - self.lookup_class = lookup_class - self.allow_new = kwargs.pop('allow_new', False) - widget_set = [ - AutoComboboxWidget(lookup_class, allow_new=self.allow_new), - widgets.HiddenInput(attrs={u'data-selectable-type': 'hidden'}) - ] - super(AutoComboboxSelectWidget, self).__init__(widget_set, *args, - **kwargs) # @IgnorePep8 - - def decompress(self, value): - if value: - lookup = self.lookup_class() - model = getattr(self.lookup_class, 'model', None) - if model and isinstance(value, model): - item = value - value = lookup.get_item_id(item) - else: - item = lookup.get_item(value) - item_value = lookup.get_item_value(item) - return [item_value, value] - return [None, None] diff --git a/src/utils/html_cleaner.py b/src/utils/html_cleaner.py index 54785a3..379c16d 100644 --- a/src/utils/html_cleaner.py +++ b/src/utils/html_cleaner.py @@ -4,10 +4,14 @@ Created on 19.10.2011 @author: christian """ from bs4 import BeautifulSoup -#TODO: Nach BeatutifulSoup 4 convertieren +# TODO: Nach BeatutifulSoup 4 convertieren class HtmlCleaner(object): + """ + Tries to clean up HTML code, to reomve all possibilities of an XSS Attack + and unwanted inline Javascript and CSS. + """ ACCEPTABLE_ELEMENTS = ['a', 'abbr', 'acronym', 'address', 'area', 'b', 'big', 'blockquote', 'br', 'button', 'caption', 'center', 'cite', @@ -23,7 +27,7 @@ class HtmlCleaner(object): 'tfoot', 'th', 'thead', 'tr', 'tt', 'u', 'ul', 'var'] - ACCEPTABELE_ATTRIBUTES = [ + ACCEPTABLE_ATTRIBUTES = [ 'abbr', 'accept', 'accept-charset', 'accesskey', 'action', 'align', 'class', 'alt', 'axis', 'char', 'charoff', 'charset', 'checked', 'cite', 'clear', 'cols', @@ -35,17 +39,28 @@ class HtmlCleaner(object): 'span', 'src', 'start', 'summary', 'tabindex', 'target', 'title', 'type', 'usemap', 'valign', 'value', 'vspace', 'width'] - counter = 1 tag_removed = False def clean_attributes(self, tag): + """ + reomves all attributes from an element that arenÄt whitelisted. + :param tag: an BeautifulSoup Tag element that should be scrubbed + :return: None + """ for attr in list(tag.attrs.keys()): - if attr not in self.ACCEPTABELE_ATTRIBUTES: + if attr not in self.ACCEPTABLE_ATTRIBUTES: del tag[attr] elif tag[attr].count('script:'): del tag[attr] def clean_tag(self, tag): + """ + Removes the entire tag with all its content, when its not on the + whitelist. If the tag is acceptable it will be passed to + clean_attributes + :param tag: BeautifulSoup Tag element that should be scrubbed + :return: None + """ if tag.name not in self.ACCEPTABLE_ELEMENTS: tag.extract() # remove the bad ones self.tag_removed = True @@ -55,12 +70,12 @@ class HtmlCleaner(object): def clean_html(self, fragment=''): """ Reparses and cleans the html from XSS Attacks until it stops changing. - @param fragment: + :param str fragment: HTML Text that should be cleaned up + :return str: scrubbed HTML Text """ while True: soup = BeautifulSoup(fragment, "html.parser") self.tag_removed = False - self.counter += 1 for tag in soup.find_all(True): self.clean_tag(tag) fragment = str(soup) diff --git a/src/utils/locale/de/LC_MESSAGES/django.po b/src/utils/locale/de/LC_MESSAGES/django.po index 2dda81b..4a6a454 100644 --- a/src/utils/locale/de/LC_MESSAGES/django.po +++ b/src/utils/locale/de/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: kasu.utils\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-09-28 00:25+0200\n" +"POT-Creation-Date: 2017-05-10 23:16+0200\n" "PO-Revision-Date: 2016-09-28 00:24+0200\n" "Last-Translator: Christian Berg \n" "Language-Team: Kasu \n" @@ -18,1056 +18,1053 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 1.8.9\n" -#: src/utils/__init__.py:16 +#: utils/__init__.py:16 msgid "Rejected" msgstr "Zurückgewiesen" -#: src/utils/__init__.py:17 +#: utils/__init__.py:17 msgid "Waiting..." msgstr "Wartend..." -#: src/utils/__init__.py:18 +#: utils/__init__.py:18 msgid "Published" msgstr "Veröffentlicht" -#: src/utils/countries.py:4 +#: utils/countries.py:4 msgid "United Kingdom" msgstr "Vereinigtes Königreich" -#: src/utils/countries.py:5 +#: utils/countries.py:5 msgid "Afghanistan" msgstr "Afghanistan" -#: src/utils/countries.py:6 +#: utils/countries.py:6 msgid "Aland Islands" msgstr "Aland Islands" -#: src/utils/countries.py:7 +#: utils/countries.py:7 msgid "Albania" msgstr "Albanien" -#: src/utils/countries.py:8 +#: utils/countries.py:8 msgid "Algeria" msgstr "Algerien" -#: src/utils/countries.py:9 +#: utils/countries.py:9 msgid "American Samoa" msgstr "Amerikanisch-Samoa" -#: src/utils/countries.py:10 +#: utils/countries.py:10 msgid "Andorra" msgstr "Andorra" -#: src/utils/countries.py:11 +#: utils/countries.py:11 msgid "Angola" msgstr "Angola" -#: src/utils/countries.py:12 +#: utils/countries.py:12 msgid "Anguilla" msgstr "Anguilla" -#: src/utils/countries.py:13 +#: utils/countries.py:13 msgid "Antarctica" msgstr "Antarktika" -#: src/utils/countries.py:14 +#: utils/countries.py:14 msgid "Antigua and Barbuda" msgstr "Antigua und Barbuda" -#: src/utils/countries.py:15 +#: utils/countries.py:15 msgid "Argentina" msgstr "Argentinien" -#: src/utils/countries.py:16 +#: utils/countries.py:16 msgid "Armenia" msgstr "Armenien" -#: src/utils/countries.py:17 +#: utils/countries.py:17 msgid "Aruba" msgstr "Aruba" -#: src/utils/countries.py:18 +#: utils/countries.py:18 msgid "Australia" msgstr "Australien" -#: src/utils/countries.py:19 +#: utils/countries.py:19 msgid "Austria" msgstr "Österreich" -#: src/utils/countries.py:20 +#: utils/countries.py:20 msgid "Azerbaijan" msgstr "Aserbaidschan" -#: src/utils/countries.py:21 +#: utils/countries.py:21 msgid "Bahamas" msgstr "Bahamas" -#: src/utils/countries.py:22 +#: utils/countries.py:22 msgid "Bahrain" msgstr "Bahrein" -#: src/utils/countries.py:23 +#: utils/countries.py:23 msgid "Bangladesh" msgstr "Bangladesch" -#: src/utils/countries.py:24 +#: utils/countries.py:24 msgid "Barbados" msgstr "Barbados" -#: src/utils/countries.py:25 +#: utils/countries.py:25 msgid "Belarus" msgstr "Weißrussland" -#: src/utils/countries.py:26 +#: utils/countries.py:26 msgid "Belgium" msgstr "Belgien" -#: src/utils/countries.py:27 +#: utils/countries.py:27 msgid "Belize" msgstr "Belize" -#: src/utils/countries.py:28 +#: utils/countries.py:28 msgid "Benin" msgstr "Benin" -#: src/utils/countries.py:29 +#: utils/countries.py:29 msgid "Bermuda" msgstr "Bermuda" -#: src/utils/countries.py:30 +#: utils/countries.py:30 msgid "Bhutan" msgstr "Bhutan" -#: src/utils/countries.py:31 +#: utils/countries.py:31 msgid "Bolivia" msgstr "Bolivien" -#: src/utils/countries.py:32 +#: utils/countries.py:32 msgid "Bosnia and Herzegovina" msgstr "Bosnien und Herzegowina" -#: src/utils/countries.py:33 +#: utils/countries.py:33 msgid "Botswana" msgstr "Botswana" -#: src/utils/countries.py:34 +#: utils/countries.py:34 msgid "Bouvet Island" msgstr "Bouvet Island" -#: src/utils/countries.py:35 +#: utils/countries.py:35 msgid "Brazil" msgstr "Brasilien" -#: src/utils/countries.py:36 +#: utils/countries.py:36 msgid "British Indian Ocean Territory" msgstr "British Indian Ocean Territory" -#: src/utils/countries.py:37 +#: utils/countries.py:37 msgid "Brunei Darussalam" msgstr "Brunei Darussalam" -#: src/utils/countries.py:38 +#: utils/countries.py:38 msgid "Bulgaria" msgstr "Bulgarien" -#: src/utils/countries.py:39 +#: utils/countries.py:39 msgid "Burkina Faso" msgstr "Burkina Faso" -#: src/utils/countries.py:40 +#: utils/countries.py:40 msgid "Burundi" msgstr "Burundi" -#: src/utils/countries.py:41 +#: utils/countries.py:41 msgid "Cambodia" msgstr "Kambodscha" -#: src/utils/countries.py:42 +#: utils/countries.py:42 msgid "Cameroon" msgstr "Kamerun" -#: src/utils/countries.py:43 +#: utils/countries.py:43 msgid "Canada" msgstr "Kanada" -#: src/utils/countries.py:44 +#: utils/countries.py:44 msgid "Cape Verde" msgstr "Cape Verde" -#: src/utils/countries.py:45 +#: utils/countries.py:45 msgid "Cayman Islands" msgstr "Cayman Islands" -#: src/utils/countries.py:46 +#: utils/countries.py:46 msgid "Central African Republic" msgstr "Zentralafrikanische Republik" -#: src/utils/countries.py:47 +#: utils/countries.py:47 msgid "Chad" msgstr "Tschad" -#: src/utils/countries.py:48 +#: utils/countries.py:48 msgid "Chile" msgstr "Chile" -#: src/utils/countries.py:49 +#: utils/countries.py:49 msgid "China" msgstr "China" -#: src/utils/countries.py:50 +#: utils/countries.py:50 msgid "Christmas Island" msgstr "Christmas Island" -#: src/utils/countries.py:51 +#: utils/countries.py:51 msgid "Cocos (Keeling) Islands" msgstr "Cocos (Keeling) Islands" -#: src/utils/countries.py:52 +#: utils/countries.py:52 msgid "Colombia" msgstr "Kolumbien" -#: src/utils/countries.py:53 +#: utils/countries.py:53 msgid "Comoros" msgstr "Komoren" -#: src/utils/countries.py:54 +#: utils/countries.py:54 msgid "Congo" msgstr "Kongo" -#: src/utils/countries.py:55 +#: utils/countries.py:55 msgid "Congo, The Democratic Republic of the" msgstr "Kongo, Demokratische Republik" -#: src/utils/countries.py:56 +#: utils/countries.py:56 msgid "Cook Islands" msgstr "Cook-Inseln" -#: src/utils/countries.py:57 +#: utils/countries.py:57 msgid "Costa Rica" msgstr "Costa Rica" -#: src/utils/countries.py:58 +#: utils/countries.py:58 msgid "Cote d'Ivoire" msgstr "Cote d'Ivoire" -#: src/utils/countries.py:59 +#: utils/countries.py:59 msgid "Croatia" msgstr "Kroatien" -#: src/utils/countries.py:60 +#: utils/countries.py:60 msgid "Cuba" msgstr "Kuba" -#: src/utils/countries.py:61 +#: utils/countries.py:61 msgid "Cyprus" msgstr "Zypern" -#: src/utils/countries.py:62 +#: utils/countries.py:62 msgid "Czech Republic" msgstr "Tschechische Republik" -#: src/utils/countries.py:63 +#: utils/countries.py:63 msgid "Denmark" msgstr "Dänemark" -#: src/utils/countries.py:64 +#: utils/countries.py:64 msgid "Djibouti" msgstr "Dschibuti" -#: src/utils/countries.py:65 +#: utils/countries.py:65 msgid "Dominica" msgstr "Dominica" -#: src/utils/countries.py:66 +#: utils/countries.py:66 msgid "Dominican Republic" msgstr "Dominikanische Republik" -#: src/utils/countries.py:67 +#: utils/countries.py:67 msgid "Ecuador" msgstr "Ecuador" -#: src/utils/countries.py:68 +#: utils/countries.py:68 msgid "Egypt" msgstr "Ägypten" -#: src/utils/countries.py:69 +#: utils/countries.py:69 msgid "El Salvador" msgstr "El Salvador" -#: src/utils/countries.py:70 +#: utils/countries.py:70 msgid "Equatorial Guinea" msgstr "Äquatorial-Guinea" -#: src/utils/countries.py:71 +#: utils/countries.py:71 msgid "Eritrea" msgstr "Eritrea" -#: src/utils/countries.py:72 +#: utils/countries.py:72 msgid "Estonia" msgstr "Estland" -#: src/utils/countries.py:73 +#: utils/countries.py:73 msgid "Ethiopia" msgstr "Äthiopien" -#: src/utils/countries.py:74 +#: utils/countries.py:74 msgid "Falkland Islands (Malvinas)" msgstr "Falklandinseln (Malvinas)" -#: src/utils/countries.py:75 +#: utils/countries.py:75 msgid "Faroe Islands" msgstr "Färöer-Inseln" -#: src/utils/countries.py:76 +#: utils/countries.py:76 msgid "Fiji" msgstr "Fidschi" -#: src/utils/countries.py:77 +#: utils/countries.py:77 msgid "Finland" msgstr "Finnland" -#: src/utils/countries.py:78 +#: utils/countries.py:78 msgid "France" msgstr "Frankreich" -#: src/utils/countries.py:79 +#: utils/countries.py:79 msgid "French Guiana" msgstr "Französisch-Guayana" -#: src/utils/countries.py:80 +#: utils/countries.py:80 msgid "French Polynesia" msgstr "Französisch-Polynesien" -#: src/utils/countries.py:81 +#: utils/countries.py:81 msgid "French Southern Territories" msgstr "Französisch Südliche Territorien" -#: src/utils/countries.py:82 +#: utils/countries.py:82 msgid "Gabon" msgstr "Gabun" -#: src/utils/countries.py:83 +#: utils/countries.py:83 msgid "Gambia" msgstr "Gambia" -#: src/utils/countries.py:84 +#: utils/countries.py:84 msgid "Georgia" msgstr "Georgia" -#: src/utils/countries.py:85 +#: utils/countries.py:85 msgid "Germany" msgstr "Deutschland" -#: src/utils/countries.py:86 +#: utils/countries.py:86 msgid "Ghana" msgstr "Ghana" -#: src/utils/countries.py:87 +#: utils/countries.py:87 msgid "Gibraltar" msgstr "Gibraltar" -#: src/utils/countries.py:88 +#: utils/countries.py:88 msgid "Greece" msgstr "Griechenland" -#: src/utils/countries.py:89 +#: utils/countries.py:89 msgid "Greenland" msgstr "Grönland" -#: src/utils/countries.py:90 +#: utils/countries.py:90 msgid "Grenada" msgstr "Grenada" -#: src/utils/countries.py:91 +#: utils/countries.py:91 msgid "Guadeloupe" msgstr "Guadeloupe" -#: src/utils/countries.py:92 +#: utils/countries.py:92 msgid "Guam" msgstr "Guam" -#: src/utils/countries.py:93 +#: utils/countries.py:93 msgid "Guatemala" msgstr "Guatemala" -#: src/utils/countries.py:94 +#: utils/countries.py:94 msgid "Guernsey" msgstr "Guernsey" -#: src/utils/countries.py:95 +#: utils/countries.py:95 msgid "Guinea" msgstr "Guinea" -#: src/utils/countries.py:96 +#: utils/countries.py:96 msgid "Guinea-Bissau" msgstr "Guinea-Bissau" -#: src/utils/countries.py:97 +#: utils/countries.py:97 msgid "Guyana" msgstr "Guyana" -#: src/utils/countries.py:98 +#: utils/countries.py:98 msgid "Haiti" msgstr "Haiti" -#: src/utils/countries.py:99 +#: utils/countries.py:99 msgid "Heard Island and McDonald Islands" msgstr "Heard und McDonald Inseln" -#: src/utils/countries.py:100 +#: utils/countries.py:100 msgid "Holy See (Vatican City State)" msgstr "Heiliger Stuhl (Vatikanstadt)" -#: src/utils/countries.py:101 +#: utils/countries.py:101 msgid "Honduras" msgstr "Honduras" -#: src/utils/countries.py:102 +#: utils/countries.py:102 msgid "Hong Kong" msgstr "Hongkong" -#: src/utils/countries.py:103 +#: utils/countries.py:103 msgid "Hungary" msgstr "Ungarn" -#: src/utils/countries.py:104 +#: utils/countries.py:104 msgid "Iceland" msgstr "Island" -#: src/utils/countries.py:105 +#: utils/countries.py:105 msgid "India" msgstr "Indien" -#: src/utils/countries.py:106 +#: utils/countries.py:106 msgid "Indonesia" msgstr "Indonesien" -#: src/utils/countries.py:107 +#: utils/countries.py:107 msgid "Iran, Islamic Republic of" msgstr "Iran, Islamische Republik" -#: src/utils/countries.py:108 +#: utils/countries.py:108 msgid "Iraq" msgstr "Irak" -#: src/utils/countries.py:109 +#: utils/countries.py:109 msgid "Ireland" msgstr "Irland" -#: src/utils/countries.py:110 +#: utils/countries.py:110 msgid "Isle of Man" msgstr "Isle of Man" -#: src/utils/countries.py:111 +#: utils/countries.py:111 msgid "Israel" msgstr "Israel" -#: src/utils/countries.py:112 +#: utils/countries.py:112 msgid "Italy" msgstr "Italien" -#: src/utils/countries.py:113 +#: utils/countries.py:113 msgid "Jamaica" msgstr "Jamaika" -#: src/utils/countries.py:114 +#: utils/countries.py:114 msgid "Japan" msgstr "Japan" -#: src/utils/countries.py:115 +#: utils/countries.py:115 msgid "Jersey" msgstr "Jersey" -#: src/utils/countries.py:116 +#: utils/countries.py:116 msgid "Jordan" msgstr "Jordan" -#: src/utils/countries.py:117 +#: utils/countries.py:117 msgid "Kazakhstan" msgstr "Kasachstan" -#: src/utils/countries.py:118 +#: utils/countries.py:118 msgid "Kenya" msgstr "Kenia" -#: src/utils/countries.py:119 +#: utils/countries.py:119 msgid "Kiribati" msgstr "Kiribati" -#: src/utils/countries.py:120 +#: utils/countries.py:120 msgid "Korea, Democratic People's Republic of" msgstr "Korea, Demokratische Volksrepublik" -#: src/utils/countries.py:121 +#: utils/countries.py:121 msgid "Korea, Republic of" msgstr "Korea, Republik" -#: src/utils/countries.py:122 +#: utils/countries.py:122 msgid "Kuwait" msgstr "Kuwait" -#: src/utils/countries.py:123 +#: utils/countries.py:123 msgid "Kyrgyzstan" msgstr "Kirgisistan" -#: src/utils/countries.py:124 +#: utils/countries.py:124 msgid "Lao People's Democratic Republic" msgstr "Lao Demokratischen Volksrepublik" -#: src/utils/countries.py:125 +#: utils/countries.py:125 msgid "Latvia" msgstr "Lettland" -#: src/utils/countries.py:126 +#: utils/countries.py:126 msgid "Lebanon" msgstr "Libanon" -#: src/utils/countries.py:127 +#: utils/countries.py:127 msgid "Lesotho" msgstr "Lesotho" -#: src/utils/countries.py:128 +#: utils/countries.py:128 msgid "Liberia" msgstr "Liberia" -#: src/utils/countries.py:129 +#: utils/countries.py:129 msgid "Libyan Arab Jamahiriya" msgstr "Libyen" -#: src/utils/countries.py:130 +#: utils/countries.py:130 msgid "Liechtenstein" msgstr "Liechtenstein" -#: src/utils/countries.py:131 +#: utils/countries.py:131 msgid "Lithuania" msgstr "Litauen" -#: src/utils/countries.py:132 +#: utils/countries.py:132 msgid "Luxembourg" msgstr "Luxemburg" -#: src/utils/countries.py:133 +#: utils/countries.py:133 msgid "Macao" msgstr "Macao" -#: src/utils/countries.py:134 +#: utils/countries.py:134 msgid "Macedonia, The Former Yugoslav Republic of" msgstr "Mazedonien, die ehemalige jugoslawische Republik" -#: src/utils/countries.py:135 +#: utils/countries.py:135 msgid "Madagascar" msgstr "Madagaskar" -#: src/utils/countries.py:136 +#: utils/countries.py:136 msgid "Malawi" msgstr "Malawi" -#: src/utils/countries.py:137 +#: utils/countries.py:137 msgid "Malaysia" msgstr "Malaysia" -#: src/utils/countries.py:138 +#: utils/countries.py:138 msgid "Maldives" msgstr "Malediven" -#: src/utils/countries.py:139 +#: utils/countries.py:139 msgid "Mali" msgstr "Mali" -#: src/utils/countries.py:140 +#: utils/countries.py:140 msgid "Malta" msgstr "Malta" -#: src/utils/countries.py:141 +#: utils/countries.py:141 msgid "Marshall Islands" msgstr "Marshall Islands" -#: src/utils/countries.py:142 +#: utils/countries.py:142 msgid "Martinique" msgstr "Martinique" -#: src/utils/countries.py:143 +#: utils/countries.py:143 msgid "Mauritania" msgstr "Mauretanien" -#: src/utils/countries.py:144 +#: utils/countries.py:144 msgid "Mauritius" msgstr "Mauritius" -#: src/utils/countries.py:145 +#: utils/countries.py:145 msgid "Mayotte" msgstr "Mayotte" -#: src/utils/countries.py:146 +#: utils/countries.py:146 msgid "Mexico" msgstr "Mexiko" -#: src/utils/countries.py:147 +#: utils/countries.py:147 msgid "Micronesia, Federated States of" msgstr "Mikronesien, Föderierte Staaten von" -#: src/utils/countries.py:148 +#: utils/countries.py:148 msgid "Moldova" msgstr "Moldawien" -#: src/utils/countries.py:149 +#: utils/countries.py:149 msgid "Monaco" msgstr "Monaco" -#: src/utils/countries.py:150 +#: utils/countries.py:150 msgid "Mongolia" msgstr "Mongolei" -#: src/utils/countries.py:151 +#: utils/countries.py:151 msgid "Montenegro" msgstr "Montenegro" -#: src/utils/countries.py:152 +#: utils/countries.py:152 msgid "Montserrat" msgstr "Montserrat" -#: src/utils/countries.py:153 +#: utils/countries.py:153 msgid "Morocco" msgstr "Marokko" -#: src/utils/countries.py:154 +#: utils/countries.py:154 msgid "Mozambique" msgstr "Mosambik" -#: src/utils/countries.py:155 +#: utils/countries.py:155 msgid "Myanmar" msgstr "Myanmar" -#: src/utils/countries.py:156 +#: utils/countries.py:156 msgid "Namibia" msgstr "Namibia" -#: src/utils/countries.py:157 +#: utils/countries.py:157 msgid "Nauru" msgstr "Nauru" -#: src/utils/countries.py:158 +#: utils/countries.py:158 msgid "Nepal" msgstr "Nepal" -#: src/utils/countries.py:159 +#: utils/countries.py:159 msgid "Netherlands" msgstr "Niederlande" -#: src/utils/countries.py:160 +#: utils/countries.py:160 msgid "Netherlands Antilles" msgstr "Niederländische Antillen" -#: src/utils/countries.py:161 +#: utils/countries.py:161 msgid "New Caledonia" msgstr "Neukaledonien" -#: src/utils/countries.py:162 +#: utils/countries.py:162 msgid "New Zealand" msgstr "New Zealand" -#: src/utils/countries.py:163 +#: utils/countries.py:163 msgid "Nicaragua" msgstr "Nicaragua" -#: src/utils/countries.py:164 +#: utils/countries.py:164 msgid "Niger" msgstr "Niger" -#: src/utils/countries.py:165 +#: utils/countries.py:165 msgid "Nigeria" msgstr "Nigeria" -#: src/utils/countries.py:166 +#: utils/countries.py:166 msgid "Niue" msgstr "Niue" -#: src/utils/countries.py:167 +#: utils/countries.py:167 msgid "Norfolk Island" msgstr "Norfolk Island" -#: src/utils/countries.py:168 +#: utils/countries.py:168 msgid "Northern Mariana Islands" msgstr "Northern Mariana Islands" -#: src/utils/countries.py:169 +#: utils/countries.py:169 msgid "Norway" msgstr "Norwegen" -#: src/utils/countries.py:170 +#: utils/countries.py:170 msgid "Oman" msgstr "Oman" -#: src/utils/countries.py:171 +#: utils/countries.py:171 msgid "Pakistan" msgstr "Pakistan" -#: src/utils/countries.py:172 +#: utils/countries.py:172 msgid "Palau" msgstr "Palau" -#: src/utils/countries.py:173 +#: utils/countries.py:173 msgid "Palestinian Territory, Occupied" msgstr "Palästinensische Autonomiegebiete" -#: src/utils/countries.py:174 +#: utils/countries.py:174 msgid "Panama" msgstr "Panama" -#: src/utils/countries.py:175 +#: utils/countries.py:175 msgid "Papua New Guinea" msgstr "Papua-Neuguinea" -#: src/utils/countries.py:176 +#: utils/countries.py:176 msgid "Paraguay" msgstr "Paraguay" -#: src/utils/countries.py:177 +#: utils/countries.py:177 msgid "Peru" msgstr "Peru" -#: src/utils/countries.py:178 +#: utils/countries.py:178 msgid "Philippines" msgstr "Philippinen" -#: src/utils/countries.py:179 +#: utils/countries.py:179 msgid "Pitcairn" msgstr "Pitcairn" -#: src/utils/countries.py:180 +#: utils/countries.py:180 msgid "Poland" msgstr "Polen" -#: src/utils/countries.py:181 +#: utils/countries.py:181 msgid "Portugal" msgstr "Portugal" -#: src/utils/countries.py:182 +#: utils/countries.py:182 msgid "Puerto Rico" msgstr "Puerto Rico" -#: src/utils/countries.py:183 +#: utils/countries.py:183 msgid "Qatar" msgstr "Katar" -#: src/utils/countries.py:184 +#: utils/countries.py:184 msgid "Reunion" msgstr "Wiedervereinigung" -#: src/utils/countries.py:185 +#: utils/countries.py:185 msgid "Romania" msgstr "Rumänien" -#: src/utils/countries.py:186 +#: utils/countries.py:186 msgid "Russian Federation" msgstr "Russischen Föderation" -#: src/utils/countries.py:187 +#: utils/countries.py:187 msgid "Rwanda" msgstr "Ruanda" -#: src/utils/countries.py:188 +#: utils/countries.py:188 msgid "Saint Barthelemy" msgstr "Saint Barthelemy" -#: src/utils/countries.py:189 +#: utils/countries.py:189 msgid "Saint Helena" msgstr "Saint Helena" -#: src/utils/countries.py:190 +#: utils/countries.py:190 msgid "Saint Kitts and Nevis" msgstr "Saint Kitts und Nevis" -#: src/utils/countries.py:191 +#: utils/countries.py:191 msgid "Saint Lucia" msgstr "Santa Lucia" -#: src/utils/countries.py:192 +#: utils/countries.py:192 msgid "Saint Martin" msgstr "Santa Martin" -#: src/utils/countries.py:193 +#: utils/countries.py:193 msgid "Saint Pierre and Miquelon" msgstr "Saint Pierre und Miquelon" -#: src/utils/countries.py:194 +#: utils/countries.py:194 msgid "Saint Vincent and the Grenadines" msgstr "Saint Vincent und die Grenadinen" -#: src/utils/countries.py:195 +#: utils/countries.py:195 msgid "Samoa" msgstr "Samoa" -#: src/utils/countries.py:196 +#: utils/countries.py:196 msgid "San Marino" msgstr "San Marino" -#: src/utils/countries.py:197 +#: utils/countries.py:197 msgid "Sao Tome and Principe" msgstr "Sao Tome und Principe" -#: src/utils/countries.py:198 +#: utils/countries.py:198 msgid "Saudi Arabia" msgstr "Saudi-Arabien" -#: src/utils/countries.py:199 +#: utils/countries.py:199 msgid "Senegal" msgstr "Senegal" -#: src/utils/countries.py:200 +#: utils/countries.py:200 msgid "Serbia" msgstr "Serbien" -#: src/utils/countries.py:201 +#: utils/countries.py:201 msgid "Seychelles" msgstr "Seychellen" -#: src/utils/countries.py:202 +#: utils/countries.py:202 msgid "Sierra Leone" msgstr "Sierra Leone" -#: src/utils/countries.py:203 +#: utils/countries.py:203 msgid "Singapore" msgstr "Singapur" -#: src/utils/countries.py:204 +#: utils/countries.py:204 msgid "Slovakia" msgstr "Slowakei" -#: src/utils/countries.py:205 +#: utils/countries.py:205 msgid "Slovenia" msgstr "Slowenien" -#: src/utils/countries.py:206 +#: utils/countries.py:206 msgid "Solomon Islands" msgstr "Salomon-Inseln" -#: src/utils/countries.py:207 +#: utils/countries.py:207 msgid "Somalia" msgstr "Somalia" -#: src/utils/countries.py:208 +#: utils/countries.py:208 msgid "South Africa" msgstr "Südafrika" -#: src/utils/countries.py:209 +#: utils/countries.py:209 msgid "South Georgia and the South Sandwich Islands" msgstr "Südgeorgien und die Südlichen Sandwichinseln" -#: src/utils/countries.py:210 +#: utils/countries.py:210 msgid "Spain" msgstr "Spanien" -#: src/utils/countries.py:211 +#: utils/countries.py:211 msgid "Sri Lanka" msgstr "Sri Lanka" -#: src/utils/countries.py:212 +#: utils/countries.py:212 msgid "Sudan" msgstr "Sudan" -#: src/utils/countries.py:213 +#: utils/countries.py:213 msgid "Suriname" msgstr "Suriname" -#: src/utils/countries.py:214 +#: utils/countries.py:214 msgid "Svalbard and Jan Mayen" msgstr "Svalbard und Jan Mayen" -#: src/utils/countries.py:215 +#: utils/countries.py:215 msgid "Swaziland" msgstr "Swaziland" -#: src/utils/countries.py:216 +#: utils/countries.py:216 msgid "Sweden" msgstr "Schweden" -#: src/utils/countries.py:217 +#: utils/countries.py:217 msgid "Switzerland" msgstr "Schweiz" -#: src/utils/countries.py:218 +#: utils/countries.py:218 msgid "Syrian Arab Republic" msgstr "Arabische Republik Syrien" -#: src/utils/countries.py:219 +#: utils/countries.py:219 msgid "Taiwan, Province of China" msgstr "Taiwan, Province of China" -#: src/utils/countries.py:220 +#: utils/countries.py:220 msgid "Tajikistan" msgstr "Tadschikistan" -#: src/utils/countries.py:221 +#: utils/countries.py:221 msgid "Tanzania, United Republic of" msgstr "Tansania, Vereinigte Republik" -#: src/utils/countries.py:222 +#: utils/countries.py:222 msgid "Thailand" msgstr "Thailand" -#: src/utils/countries.py:223 +#: utils/countries.py:223 msgid "Timor-Leste" msgstr "Timor-Leste" -#: src/utils/countries.py:224 +#: utils/countries.py:224 msgid "Togo" msgstr "Togo" -#: src/utils/countries.py:225 +#: utils/countries.py:225 msgid "Tokelau" msgstr "Tokelau" -#: src/utils/countries.py:226 +#: utils/countries.py:226 msgid "Tonga" msgstr "Tonga" -#: src/utils/countries.py:227 +#: utils/countries.py:227 msgid "Trinidad and Tobago" msgstr "Trinidad und Tobago" -#: src/utils/countries.py:228 +#: utils/countries.py:228 msgid "Tunisia" msgstr "Tunesien" -#: src/utils/countries.py:229 +#: utils/countries.py:229 msgid "Turkey" msgstr "Türkei" -#: src/utils/countries.py:230 +#: utils/countries.py:230 msgid "Turkmenistan" msgstr "Turkmenistan" -#: src/utils/countries.py:231 +#: utils/countries.py:231 msgid "Turks and Caicos Islands" msgstr "Turks-und Caicosinseln" -#: src/utils/countries.py:232 +#: utils/countries.py:232 msgid "Tuvalu" msgstr "Tuvalu" -#: src/utils/countries.py:233 +#: utils/countries.py:233 msgid "Uganda" msgstr "Uganda" -#: src/utils/countries.py:234 +#: utils/countries.py:234 msgid "Ukraine" msgstr "Ukraine" -#: src/utils/countries.py:235 +#: utils/countries.py:235 msgid "United Arab Emirates" msgstr "Vereinigte Arabische Emirate" -#: src/utils/countries.py:236 +#: utils/countries.py:236 msgid "United States" msgstr "Vereinigte Staaten" -#: src/utils/countries.py:237 +#: utils/countries.py:237 msgid "United States Minor Outlying Islands" msgstr "United States Minor Outlying Islands" -#: src/utils/countries.py:238 +#: utils/countries.py:238 msgid "Uruguay" msgstr "Uruguay" -#: src/utils/countries.py:239 +#: utils/countries.py:239 msgid "Uzbekistan" msgstr "Usbekistan" -#: src/utils/countries.py:240 +#: utils/countries.py:240 msgid "Vanuatu" msgstr "Vanuatu" -#: src/utils/countries.py:241 +#: utils/countries.py:241 msgid "Venezuela" msgstr "Venezuela" -#: src/utils/countries.py:242 +#: utils/countries.py:242 msgid "Viet Nam" msgstr "Vietnam" -#: src/utils/countries.py:243 +#: utils/countries.py:243 msgid "Virgin Islands, British" msgstr "Virgin Islands, British" -#: src/utils/countries.py:244 +#: utils/countries.py:244 msgid "Virgin Islands, U.S." msgstr "Virgin Islands, US" -#: src/utils/countries.py:245 +#: utils/countries.py:245 msgid "Wallis and Futuna" msgstr "Wallis und Futuna" -#: src/utils/countries.py:246 +#: utils/countries.py:246 msgid "Western Sahara" msgstr "Westsahara" -#: src/utils/countries.py:247 +#: utils/countries.py:247 msgid "Yemen" msgstr "Jemen" -#: src/utils/countries.py:248 +#: utils/countries.py:248 msgid "Zambia" msgstr "Sambia" -#: src/utils/countries.py:249 +#: utils/countries.py:249 msgid "Zimbabwe" msgstr "Zimbabwe" -#: src/utils/html5/forms.py:48 +#: utils/html5/forms.py:48 msgid "" "Select a valid choice. That choice is not one of the available " "choices." msgstr "" "Bitte eine gültige Auswahl treffen. Diese Option steht nicht zur Verfügung." -#: src/utils/html5/forms.py:94 +#: utils/html5/forms.py:94 msgid "" "Select a valid choice. That choice is not one of the available " "choices." msgstr "" "Bitte eine gültige Auswahl treffen. Diese Option steht nicht zur Verfügung." -#: src/utils/html5/forms.py:132 +#: utils/html5/forms.py:132 msgid "yyyy-mm-dd" msgstr "tt.mm.jjjj" -#: src/utils/html5/forms.py:238 +#: utils/html5/forms.py:238 msgid "Only humans are allowed to submit this form." msgstr "Nur Menschen dürfen dieses Formular übermitteln." -#: src/utils/management/commands/compresscss.py:22 -#: src/utils/management/commands/compressjs.py:21 +#: utils/management/commands/compresscss.py:22 +#: utils/management/commands/compressjs.py:21 msgid "Reads raw CSS from stdin, and writes compressed CSS to stdout." msgstr "Lese das CSS von stdin, und gebe es in komprimierter Form wieder aus." -#: src/utils/management/commands/compresscss.py:222 -#: src/utils/management/commands/scss-compiler.py:29 +#: utils/management/commands/scss-compiler.py:20 +msgid "Compile SCSS rules." +msgstr "kompiliere SCSS Regeln." + +#: utils/management/commands/scss-compiler.py:29 #, python-format msgid "Compressing CSS for %s" msgstr "Komprimiere CSS für %s" -#: src/utils/management/commands/compressjs.py:29 -#, python-format -msgid "Compressing JavaScript for %s" -msgstr "Komprimiere JavaScript für %s" - -#: src/utils/management/commands/scss-compiler.py:20 -msgid "Compile SCSS rules." -msgstr "kompiliere SCSS Regeln." - -#: src/utils/mixins.py:28 +#: utils/mixins.py:28 msgid "You need to be logged in" msgstr "Eine Anmeldung ist erforderlich" -#: src/utils/mixins.py:60 +#: utils/mixins.py:60 msgid "You don't have the permission to do this" msgstr "Du hast nicht genügend Rechte dafür." -#: src/utils/mixins.py:100 +#: utils/mixins.py:100 msgid "You don't have the permissions for this" msgstr "Du hast nicht genügend Rechte dafür." +#~ msgid "Compressing JavaScript for %s" +#~ msgstr "Komprimiere JavaScript für %s" + #~ msgid "dd.mm.yyyy" #~ msgstr "tt.mm.jjjj" diff --git a/src/utils/management/__init__.py b/src/utils/management/__init__.py deleted file mode 100644 index 013e4b7..0000000 --- a/src/utils/management/__init__.py +++ /dev/null @@ -1 +0,0 @@ -#!/usr/bin/python diff --git a/src/utils/management/commands/__init__.py b/src/utils/management/commands/__init__.py deleted file mode 100644 index 013e4b7..0000000 --- a/src/utils/management/commands/__init__.py +++ /dev/null @@ -1 +0,0 @@ -#!/usr/bin/python diff --git a/src/utils/management/commands/compresscss.py b/src/utils/management/commands/compresscss.py deleted file mode 100644 index 6c6b4c7..0000000 --- a/src/utils/management/commands/compresscss.py +++ /dev/null @@ -1,239 +0,0 @@ -""" -Created on 06.06.2011 - -@author: christian -""" -import fnmatch -from optparse import make_option -import os -import re - -from django.conf import settings -from django.contrib.sites.models import Site -from django.core.management.base import BaseCommand -from django.utils.translation import ugettext as _ - - -class Command(BaseCommand): - """ - classdocs - """ - can_import_settings = True - help = _("Reads raw CSS from stdin, and writes compressed CSS to stdout.") - option_list = BaseCommand.option_list + ( - make_option('-w', '--wrap', - type='int', - default=None, - metavar='N', - help="Wrap output to approximately N chars per line."), - ) - - def remove_comments(self, css): - """Remove all CSS comment blocks.""" - - iemac = False - preserve = False - comment_start = css.find("/*") - while comment_start >= 0: - # Preserve comments that look like `/*!...*/`. - # Slicing is used to make sure we don"t get an IndexError. - preserve = css[comment_start + 2:comment_start + 3] == "!" - - comment_end = css.find("*/", comment_start + 2) - if comment_end < 0: - if not preserve: - css = css[:comment_start] - break - elif comment_end >= (comment_start + 2): - if css[comment_end - 1] == "\\": - # This is an IE Mac-specific comment; leave this one - # and the following one alone. - comment_start = comment_end + 2 - iemac = True - elif iemac: - comment_start = comment_end + 2 - iemac = False - elif not preserve: - css = css[:comment_start] + css[comment_end + 2:] - else: - comment_start = comment_end + 2 - comment_start = css.find("/*", comment_start) - - return css - - def remove_unnecessary_whitespace(self, css): - """Remove unnecessary whitespace characters.""" - - def pseudoclasscolon(css): - """ - Prevents 'p :link' from becoming 'p:link'. - - Translates 'p :link' into 'p ___PSEUDOCLASSCOLON___link'; this is - translated back again later. - """ - - regex = re.compile(r"(^|\})(([^\{\:])+\:)+([^\{]*\{)") - match = regex.search(css) - while match: - css = ''.join([ - css[:match.start()], - match.group().replace(":", "___PSEUDOCLASSCOLON___"), - css[match.end():]]) - match = regex.search(css) - return css - - css = pseudoclasscolon(css) - # Remove spaces from before things. - css = re.sub(r"\s+([!{};:>+\(\)\],])", r"\1", css) - - # If there is a `@charset`, - # then only allow one, and move to the beginning. - css = re.sub(r"^(.*)(@charset \"[^\"]*\";)", r"\2\1", css) - css = re.sub(r"^(\s*@charset [^;]+;\s*)+", r"\1", css) - - # Put the space back in for a few cases, such as `@media screen` and - # `(-webkit-min-device-pixel-ratio:0)`. - css = re.sub(r"\band\(", "and (", css) - - # Put the colons back. - css = css.replace('___PSEUDOCLASSCOLON___', ':') - - # Remove spaces from after things. - css = re.sub(r"([!{}:;>+\(\[,])\s+", r"\1", css) - - return css - - def remove_unnecessary_semicolons(self, css): - """Remove unnecessary semicolons.""" - - return re.sub(r";+\}", "}", css) - - def remove_empty_rules(self, css): - """Remove empty rules.""" - - return re.sub(r"[^\}\{]+\{\}", "", css) - - def normalize_rgb_colors_to_hex(self, css): - """Convert `rgb(51,102,153)` to `#336699`.""" - - regex = re.compile(r"rgb\s*\(\s*([0-9,\s]+)\s*\)") - match = regex.search(css) - while match: - colors = match.group(1).split(",") - hexcolor = '#%.2x%.2x%.2x' % map(int, colors) - css = css.replace(match.group(), hexcolor) - match = regex.search(css) - return css - - def condense_zero_units(self, css): - """Replace `0(px, em, %, etc)` with `0`.""" - - return re.sub(r"([\s:])(0)(px|em|%|in|cm|mm|pc|pt|ex)", r"\1\2", css) - - def condense_multidimensional_zeros(self, css): - """Replace `:0 0 0 0;`, `:0 0 0;` etc. with `:0;`.""" - - css = css.replace(":0 0 0 0;", ":0;") - css = css.replace(":0 0 0;", ":0;") - css = css.replace(":0 0;", ":0;") - - # Revert `background-position:0;` to the valid `background-position:0 - # 0;`. - css = css.replace("background-position:0;", "background-position:0 0;") - - return css - - def condense_floating_points(self, css): - """Replace `0.6` with `.6` where possible.""" - - return re.sub(r"(:|\s)0+\.(\d+)", r"\1.\2", css) - - def condense_hex_colors(self, css): - """Shorten colors from #AABBCC to #ABC where possible.""" - - regex = re.compile( - r"([^\"'=\s])(\s*)#([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])") - match = regex.search(css) - while match: - first = match.group(3) + match.group(5) + match.group(7) - second = match.group(4) + match.group(6) + match.group(8) - if first.lower() == second.lower(): - css = css.replace(match.group(), - match.group(1) + match.group(2) + '#' + first) - match = regex.search(css, match.end() - 3) - else: - match = regex.search(css, match.end()) - return css - - def condense_whitespace(self, css): - """Condense multiple adjacent whitespace characters into one.""" - - return re.sub(r"\s+", " ", css) - - def condense_semicolons(self, css): - """Condense multiple adjacent semicolon characters into one.""" - - return re.sub(r";;+", ";", css) - - def wrap_css_lines(self, css, line_length): - """Wrap the lines of the given CSS to an approximate length.""" - - lines = [] - line_start = 0 - for i, char in enumerate(css): - # It's safe to break after `}` characters. - if char == '}' and (i - line_start >= line_length): - lines.append(css[line_start:i + 1]) - line_start = i + 1 - - if line_start < len(css): - lines.append(css[line_start:]) - return '\n'.join(lines) - - def compress(self, css, wrap=None): - css = self.remove_comments(css) - css = self.condense_whitespace(css) - # A pseudo class for the Box Model Hack - # (see http://tantek.com/CSS/Examples/boxmodelhack.html) - css = css.replace('"\\"}\\""', "___PSEUDOCLASSBMH___") - css = self.remove_unnecessary_whitespace(css) - css = self.remove_unnecessary_semicolons(css) - css = self.condense_zero_units(css) - css = self.condense_multidimensional_zeros(css) - css = self.condense_floating_points(css) - css = self.normalize_rgb_colors_to_hex(css) - css = self.condense_hex_colors(css) - if wrap is not None: - css = self.wrap_css_lines(css, wrap) - css = css.replace("___PSEUDOCLASSBMH___", '"\\"}\\""') - css = self.condense_semicolons(css) - # A Hack for IE compatiblity - # These crappy browser has issues with AND Statments in @MEDIA Blocks - css = css.replace('and(', 'and (') - return css.strip() - - def handle(self, *args, **options): - CSS_ROOT = os.path.join(settings.STATICFILES_DIRS[0], 'css') - for site in Site.objects.all(): - css_input = os.path.join(CSS_ROOT, site.domain) - css_output = '%s/%s.css' % (CSS_ROOT, - site.domain.replace('.', '_')) - - print("Compressing CSS for {}".format(site.name)) - print("Input Dir: {}".format(css_input)) - print("Output File: {}".format(css_output)) - - try: - os.makedirs(css_input) - except OSError: - pass - css = '' - """Read each .css file in the css_input directory, - and append their content""" - for file_name in fnmatch.filter(sorted(os.listdir(css_input)), - '*.css'): - print('Adding: {}'.format(file_name)) - with open(os.path.join(css_input, file_name), 'r') as css_file: - css += css_file.read() - with open(css_output, 'w') as css_file: - css_file.write(self.compress(css)) diff --git a/src/utils/management/commands/compressjs.py b/src/utils/management/commands/compressjs.py deleted file mode 100644 index 9382c69..0000000 --- a/src/utils/management/commands/compressjs.py +++ /dev/null @@ -1,47 +0,0 @@ -""" -Created on 06.06.2011 - -@author: christian -""" -import fnmatch -import os - -from django.conf import settings -from django.contrib.sites.models import Site -from django.core.management.base import BaseCommand -from django.utils.translation import ugettext as _ -import jsmin - - -class Command(BaseCommand): - """ - classdocs - """ - can_import_settings = True - help = _("Reads raw CSS from stdin, and writes compressed CSS to stdout.") - - def handle(self, *args, **options): - JS_ROOT = os.path.join(settings.STATICFILES_DIRS[0], 'js') - for site in Site.objects.all(): - js_input = os.path.join(JS_ROOT, site.domain) - js_output = '%s/%s.js' % (JS_ROOT, site.domain.replace('.', '_')) - - print("Compressing JavaScript for {}".format(site.name)) - print("Input Dir: {}".format(js_input)) - print("Output File: %s".format(js_output)) - - try: - os.makedirs(js_input) - except OSError: - pass - output = '' - # Read each .js file in the js_input directory, and append their - # content - js_files = fnmatch.filter(sorted(os.listdir(js_input)), '*.js') - for file_name in js_files: - print(" Adding: {}...".format(file_name)) - input_file_name = os.path.join(js_input, file_name) - with open(input_file_name, 'r') as input_file: - output += input_file.read() - with open(js_output, 'w') as output_file: - output_file.write(jsmin.jsmin(output)) diff --git a/src/utils/management/commands/scss-compiler.py b/src/utils/management/commands/scss-compiler.py deleted file mode 100644 index 2ab97b1..0000000 --- a/src/utils/management/commands/scss-compiler.py +++ /dev/null @@ -1,47 +0,0 @@ -""" -Created on 06.06.2011 - -@author: christian -""" -import os -import fnmatch - -from django.conf import settings -from django.contrib.sites.models import Site -from django.core.management.base import BaseCommand -from django.utils.translation import ugettext as _ - - -class Command(BaseCommand): - """ - classdocs - """ - can_import_settings = True - help = _("Compile SCSS rules.") - - def handle(self, *args, **options): - CSS_ROOT = os.path.join(settings.STATICFILES_DIRS[0], 'css') - for site in Site.objects.all(): - css_input = os.path.join(CSS_ROOT, site.domain) - css_output = '%s/%s.css' % (CSS_ROOT, - site.domain.replace('.', '_')) - - print _("Compressing CSS for %s") % site.name - print "Input Dir: %s" % css_input - print "Output File: %s" % css_output - - try: - os.makedirs(css_input) - except OSError: - pass - css = '' - """Read each .css file in the css_input directory, - and append their content""" - for file_name in fnmatch.filter(sorted(os.listdir(css_input)), - '*.css'): - print ' Adding: %s' % file_name - with open(os.path.join(css_input, file_name), 'r') as css_file: - css += css_file.read() - with open(css_output, 'w') as css_file: - css_file.write(self.compress(css)) - # file.write(css) diff --git a/src/utils/massmailer.py b/src/utils/massmailer.py index d1d977d..41b66e2 100644 --- a/src/utils/massmailer.py +++ b/src/utils/massmailer.py @@ -2,8 +2,7 @@ import logging from django.core import mail from django.contrib.sites.models import Site -from django.conf import settings -from django.template import loader, Context +from django.template import loader from django.contrib.auth import get_user_model @@ -48,7 +47,7 @@ class MassMailer(object): if isinstance(recipient, self.USER_MODEL): self.recipients.add(recipient) else: - self.log.warn('%s is not a User Object!', recipient) + self.log.warning('%s is not a User Object!', recipient) def add_recipients(self, user_list): for user in user_list: @@ -56,10 +55,10 @@ class MassMailer(object): self.log.debug('Adding %s as Recipient' % user) self.recipients.add(user) else: - self.log.warn('%s is not a User Object!', user) + self.log.warning('%s is not a User Object!', user) def process_mails(self): - mail_context = Context(self.context) + mail_context = self.context mail_context['site'] = Site.objects.get_current() self.txt_template = loader.get_template(self.txt_template) @@ -103,7 +102,7 @@ class MassMailer(object): try: mail.send() except: - self.log.warn("Mail failed for: %s", mail.to) + self.log.warning("Mail failed for: %s", mail.to) else: self.log.info("Mail sent successful to: %s" % mail.to) self.close_smtp_connection() diff --git a/src/utils/tests.py b/src/utils/tests.py index bfb7515..d8d668b 100644 --- a/src/utils/tests.py +++ b/src/utils/tests.py @@ -5,7 +5,8 @@ import html_cleaner class HtmlTestCase(unittest.TestCase): known_html = ( ('Fett!', 'Fett!'), - ('Bad Link', 'Bad Link'), + ('Bad Link', + 'Bad Link'), (''' @@ -32,8 +33,8 @@ class HtmlTestCase(unittest.TestCase): href="http://www.xxxxxxxxxxxx.com">http://www.xxxxxxxxxxxx.com
    (xxx) xxx-xxxx ''', - '' - ) + '' + ) ) def test_html_cleaner(self): @@ -42,5 +43,6 @@ class HtmlTestCase(unittest.TestCase): for original, tidy in self.known_html: self.assertEqual(cleaner.clean_html(original), tidy) + if __name__ == '__main__': unittest.main() From 7a54e559318e4dad59d41877da73cc882ba0592c Mon Sep 17 00:00:00 2001 From: Xeniac Date: Fri, 9 Jun 2017 17:19:44 +0200 Subject: [PATCH 34/93] =?UTF-8?q?Coala=20.coafile=20hinzugef=C3=BCgt=20f?= =?UTF-8?q?=C3=BCr=20einfache=20=C3=BCberwachung=20der=20Codestandards.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .coafile | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .coafile diff --git a/.coafile b/.coafile new file mode 100644 index 0000000..9f8ce35 --- /dev/null +++ b/.coafile @@ -0,0 +1,5 @@ +[Python] +files = src/**/*.py +ignore = src/**/migrations/* +bears = SpaceConsistencyBear,PEP8Bear,PyLintBear,PyUnusedCodeBear +use_spaces = True From 8f4bdec7016c7b733981603ac5ebde29d2af72b3 Mon Sep 17 00:00:00 2001 From: Xeniac Date: Mon, 26 Jun 2017 17:12:57 +0200 Subject: [PATCH 35/93] Removed manual references on the CKEditor, they will be injected by django-ckeditor --- .../templates/content/article_archive.html | 24 ++++-- .../templates/content/article_form.html | 81 +++++++++++-------- src/content/templates/content/page_form.html | 13 +-- 3 files changed, 67 insertions(+), 51 deletions(-) diff --git a/src/content/templates/content/article_archive.html b/src/content/templates/content/article_archive.html index 2a9de09..d29c09a 100755 --- a/src/content/templates/content/article_archive.html +++ b/src/content/templates/content/article_archive.html @@ -36,11 +36,14 @@ @@ -49,7 +52,8 @@ {% block navigation %}