├── INSTALL
├── LICENSE
├── README
├── README.md
├── Rakefile
├── contrib
├── README
├── event_links.rb
├── penta_accounts_gender
├── penta_attendee
├── penta_conferences_arrived
├── penta_conferences_attend
├── penta_conferences_reconfirmed
├── penta_events_status
├── penta_events_track
├── penta_events_type
└── penta_travel_money
├── rails
├── .gitignore
├── README
├── Rakefile
├── app
│ ├── controllers
│ │ ├── admin_controller.rb
│ │ ├── application_controller.rb
│ │ ├── atom_controller.rb
│ │ ├── conference_controller.rb
│ │ ├── csv_controller.rb
│ │ ├── event_controller.rb
│ │ ├── feedback_controller.rb
│ │ ├── ical_controller.rb
│ │ ├── image_controller.rb
│ │ ├── localization_controller.rb
│ │ ├── pentabarf_controller.rb
│ │ ├── person_controller.rb
│ │ ├── report_controller.rb
│ │ ├── schedule_controller.rb
│ │ ├── search_controller.rb
│ │ ├── submission_controller.rb
│ │ ├── user_controller.rb
│ │ ├── xcal_controller.rb
│ │ └── xml_controller.rb
│ ├── helpers
│ │ ├── admin_helper.rb
│ │ ├── application_helper.rb
│ │ ├── atom_helper.rb
│ │ ├── conference_helper.rb
│ │ ├── csv_helper.rb
│ │ ├── event_helper.rb
│ │ ├── feedback_helper.rb
│ │ ├── image_helper.rb
│ │ ├── localization_helper.rb
│ │ ├── pentabarf_helper.rb
│ │ ├── person_helper.rb
│ │ ├── report_helper.rb
│ │ ├── schedule_helper.rb
│ │ ├── search_helper.rb
│ │ ├── submission_helper.rb
│ │ ├── user_helper.rb
│ │ ├── xcal_helper.rb
│ │ └── xml_helper.rb
│ ├── models
│ │ ├── account.rb
│ │ ├── account_activation.rb
│ │ ├── account_conference_permissions.rb
│ │ ├── account_password_reset.rb
│ │ ├── account_permissions.rb
│ │ ├── account_role.rb
│ │ ├── account_settings.rb
│ │ ├── activate_account.rb
│ │ ├── activate_account_id.rb
│ │ ├── attachment_type.rb
│ │ ├── attachment_type_localized.rb
│ │ ├── conference.rb
│ │ ├── conference_day.rb
│ │ ├── conference_image.rb
│ │ ├── conference_language.rb
│ │ ├── conference_link.rb
│ │ ├── conference_person.rb
│ │ ├── conference_person_link.rb
│ │ ├── conference_person_link_internal.rb
│ │ ├── conference_person_travel.rb
│ │ ├── conference_phase.rb
│ │ ├── conference_phase_conflict.rb
│ │ ├── conference_phase_localized.rb
│ │ ├── conference_release.rb
│ │ ├── conference_role.rb
│ │ ├── conference_role_permission.rb
│ │ ├── conference_room.rb
│ │ ├── conference_room_role.rb
│ │ ├── conference_team.rb
│ │ ├── conference_track.rb
│ │ ├── conflict.rb
│ │ ├── conflict_level.rb
│ │ ├── conflict_level_localized.rb
│ │ ├── conflict_localized.rb
│ │ ├── conflict_statistics.rb
│ │ ├── conflict_type.rb
│ │ ├── copy_event.rb
│ │ ├── country.rb
│ │ ├── country_localized.rb
│ │ ├── create_account.rb
│ │ ├── currency.rb
│ │ ├── currency_localized.rb
│ │ ├── custom.rb
│ │ ├── custom_conference.rb
│ │ ├── custom_conference_person.rb
│ │ ├── custom_event.rb
│ │ ├── custom_fields.rb
│ │ ├── custom_person.rb
│ │ ├── dinner_menu.rb
│ │ ├── domain.rb
│ │ ├── event.rb
│ │ ├── event_attachment.rb
│ │ ├── event_feedback.rb
│ │ ├── event_image.rb
│ │ ├── event_link.rb
│ │ ├── event_link_internal.rb
│ │ ├── event_origin.rb
│ │ ├── event_origin_localized.rb
│ │ ├── event_person.rb
│ │ ├── event_rating.rb
│ │ ├── event_rating_category.rb
│ │ ├── event_rating_remark.rb
│ │ ├── event_role.rb
│ │ ├── event_role_localized.rb
│ │ ├── event_role_state.rb
│ │ ├── event_role_state_localized.rb
│ │ ├── event_state.rb
│ │ ├── event_state_localized.rb
│ │ ├── event_state_progress.rb
│ │ ├── event_state_progress_localized.rb
│ │ ├── event_type.rb
│ │ ├── event_type_localized.rb
│ │ ├── forgot_password.rb
│ │ ├── im_type.rb
│ │ ├── im_type_localized.rb
│ │ ├── language.rb
│ │ ├── language_localized.rb
│ │ ├── link_type.rb
│ │ ├── link_type_localized.rb
│ │ ├── log.rb
│ │ ├── log_transaction_involved_tables.rb
│ │ ├── mime_type.rb
│ │ ├── mime_type_localized.rb
│ │ ├── notifier.rb
│ │ ├── object_domain.rb
│ │ ├── own_conference_events.rb
│ │ ├── own_conference_persons.rb
│ │ ├── own_events.rb
│ │ ├── permission.rb
│ │ ├── permission_localized.rb
│ │ ├── person.rb
│ │ ├── person_availability.rb
│ │ ├── person_im.rb
│ │ ├── person_image.rb
│ │ ├── person_language.rb
│ │ ├── person_phone.rb
│ │ ├── person_rating.rb
│ │ ├── phone_type.rb
│ │ ├── phone_type_localized.rb
│ │ ├── release.rb
│ │ ├── release
│ │ │ ├── conference.rb
│ │ │ ├── conference_day.rb
│ │ │ ├── conference_link.rb
│ │ │ ├── conference_person.rb
│ │ │ ├── conference_person_link.rb
│ │ │ ├── conference_room.rb
│ │ │ ├── conference_track.rb
│ │ │ ├── event.rb
│ │ │ ├── event_attachment.rb
│ │ │ ├── event_link.rb
│ │ │ ├── view_schedule_day.rb
│ │ │ ├── view_schedule_event.rb
│ │ │ ├── view_schedule_event_attachment.rb
│ │ │ ├── view_schedule_event_person.rb
│ │ │ ├── view_schedule_person.rb
│ │ │ ├── view_schedule_room.rb
│ │ │ └── view_schedule_track.rb
│ │ ├── release_preview.rb
│ │ ├── reset_password.rb
│ │ ├── role.rb
│ │ ├── role_localized.rb
│ │ ├── role_permission.rb
│ │ ├── set_config.rb
│ │ ├── submit_event.rb
│ │ ├── timezone.rb
│ │ ├── transport.rb
│ │ ├── transport_localized.rb
│ │ ├── ui_message.rb
│ │ ├── ui_message_localized.rb
│ │ ├── view_conference_image_modification.rb
│ │ ├── view_conference_language.rb
│ │ ├── view_conference_person.rb
│ │ ├── view_conference_rating.rb
│ │ ├── view_conflict_event.rb
│ │ ├── view_conflict_event_event.rb
│ │ ├── view_conflict_event_person.rb
│ │ ├── view_conflict_event_person_event.rb
│ │ ├── view_conflict_level.rb
│ │ ├── view_conflict_person.rb
│ │ ├── view_event.rb
│ │ ├── view_event_attachment.rb
│ │ ├── view_event_category_rating.rb
│ │ ├── view_event_duration.rb
│ │ ├── view_event_feedback.rb
│ │ ├── view_event_feedback_statistics.rb
│ │ ├── view_event_image_modification.rb
│ │ ├── view_event_origin.rb
│ │ ├── view_event_person.rb
│ │ ├── view_event_rating.rb
│ │ ├── view_event_rating_public.rb
│ │ ├── view_event_state_progress_statistic.rb
│ │ ├── view_event_state_statistic.rb
│ │ ├── view_find_account.rb
│ │ ├── view_find_conference.rb
│ │ ├── view_find_event.rb
│ │ ├── view_find_person.rb
│ │ ├── view_last_active.rb
│ │ ├── view_mail_accepted_speaker.rb
│ │ ├── view_mail_all_reviewer.rb
│ │ ├── view_mail_all_speaker.rb
│ │ ├── view_mail_missing_slides.rb
│ │ ├── view_own_events_coordinator.rb
│ │ ├── view_own_events_participant.rb
│ │ ├── view_person.rb
│ │ ├── view_person_image_modification.rb
│ │ ├── view_person_rating.rb
│ │ ├── view_recent_changes.rb
│ │ ├── view_report_accommodation.rb
│ │ ├── view_report_arrived.rb
│ │ ├── view_report_expenses.rb
│ │ ├── view_report_feedback.rb
│ │ ├── view_report_missing.rb
│ │ ├── view_report_not_arrived.rb
│ │ ├── view_report_paper.rb
│ │ ├── view_report_pickup.rb
│ │ ├── view_report_resources.rb
│ │ ├── view_report_review.rb
│ │ ├── view_report_slides.rb
│ │ ├── view_schedule.rb
│ │ ├── view_schedule_day.rb
│ │ ├── view_schedule_event.rb
│ │ ├── view_schedule_event_attachment.rb
│ │ ├── view_schedule_event_person.rb
│ │ ├── view_schedule_person.rb
│ │ ├── view_schedule_room.rb
│ │ └── view_schedule_track.rb
│ ├── stylesheets
│ │ ├── _base.sass
│ │ ├── _helper.sass
│ │ ├── _img.sass
│ │ ├── _sidebar.sass
│ │ └── main.sass
│ └── views
│ │ ├── admin
│ │ ├── _sidebar.rxml
│ │ ├── account_roles.rxml
│ │ ├── conference_role_permissions.rxml
│ │ ├── conflict_setup.rxml
│ │ ├── custom_fields.rxml
│ │ ├── index.rxml
│ │ └── role_permissions.rxml
│ │ ├── atom
│ │ └── recent_changes.rxml
│ │ ├── auth_failed.rxml
│ │ ├── conference
│ │ ├── _conference_comment.rxml
│ │ ├── _conference_days.rxml
│ │ ├── _conference_export.rxml
│ │ ├── _conference_feedback.rxml
│ │ ├── _conference_general.rxml
│ │ ├── _conference_rating.rxml
│ │ ├── _conference_room_roles.rxml
│ │ ├── _conference_rooms.rxml
│ │ ├── _conference_speaker_dinner.rxml
│ │ ├── _conference_teams.rxml
│ │ ├── _conference_tracks.rxml
│ │ ├── edit.rxml
│ │ └── select.rxml
│ │ ├── event
│ │ ├── _conflicts.rxml
│ │ ├── _event_comment.rxml
│ │ ├── _event_description.rxml
│ │ ├── _event_feedback.rxml
│ │ ├── _event_general.rxml
│ │ ├── _event_links.rxml
│ │ ├── _event_persons.rxml
│ │ ├── _event_rating.rxml
│ │ ├── _event_related.rxml
│ │ ├── _event_resources.rxml
│ │ ├── _event_schedule.rxml
│ │ ├── edit.rxml
│ │ ├── own.rxml
│ │ └── state.rxml
│ │ ├── feedback
│ │ ├── _sidebar.rxml
│ │ ├── event.rxml
│ │ └── thankyou.rxml
│ │ ├── layouts
│ │ ├── admin.rxml
│ │ ├── conference.rxml
│ │ ├── event.rxml
│ │ ├── feedback.rxml
│ │ ├── localization.rxml
│ │ ├── pentabarf.rxml
│ │ ├── person.rxml
│ │ ├── report.rxml
│ │ ├── schedule.rxml
│ │ ├── search.rxml
│ │ ├── submission.rxml
│ │ ├── user.rxml
│ │ └── xcal.rxml
│ │ ├── localization
│ │ ├── _localization_form.rxml
│ │ ├── _localization_form2.rxml
│ │ ├── _sidebar.rxml
│ │ └── index.rxml
│ │ ├── meditation.rhtml
│ │ ├── notifier
│ │ ├── activate_account.rhtml
│ │ ├── forgot_password.rhtml
│ │ └── general.rhtml
│ │ ├── pentabarf
│ │ ├── _activity.rxml
│ │ ├── _recipients.rxml
│ │ ├── conflicts.rxml
│ │ ├── index.rxml
│ │ ├── mail.rxml
│ │ ├── recent_changes.rxml
│ │ └── schedule.rxml
│ │ ├── person
│ │ ├── _conflicts.rxml
│ │ ├── _person_account.rxml
│ │ ├── _person_availability.rxml
│ │ ├── _person_comment.rxml
│ │ ├── _person_contact.rxml
│ │ ├── _person_description.rxml
│ │ ├── _person_events.rxml
│ │ ├── _person_general.rxml
│ │ ├── _person_links.rxml
│ │ ├── _person_rating.rxml
│ │ ├── _person_travel.rxml
│ │ └── edit.rxml
│ │ ├── report
│ │ ├── _review_table.rxml
│ │ ├── accommodation.rxml
│ │ ├── arrived.rxml
│ │ ├── expenses.rxml
│ │ ├── feedback.rxml
│ │ ├── index.rxml
│ │ ├── missing.rxml
│ │ ├── not_arrived.rxml
│ │ ├── paper.rxml
│ │ ├── pickup.rxml
│ │ ├── report.rxml
│ │ ├── resources.rxml
│ │ ├── review.rxml
│ │ └── slides.rxml
│ │ ├── schedule
│ │ ├── _event_infobox.rxml
│ │ ├── _event_navigation.rxml
│ │ ├── _sidebar.rxml
│ │ ├── day.rxml
│ │ ├── event.rxml
│ │ ├── events.rxml
│ │ ├── index.rxml
│ │ ├── speaker.rxml
│ │ └── speakers.rxml
│ │ ├── search
│ │ ├── _account_results.rxml
│ │ ├── _conference_results.rxml
│ │ ├── _event_results.rxml
│ │ ├── _person_results.rxml
│ │ ├── _sidebar_results.rxml
│ │ ├── account.rxml
│ │ ├── conference.rxml
│ │ ├── event.rxml
│ │ └── person.rxml
│ │ ├── shared
│ │ ├── _modification_buttons.rxml
│ │ └── _sidebar.rxml
│ │ ├── submission
│ │ ├── _event_description.rxml
│ │ ├── _event_feedback.rxml
│ │ ├── _event_files.rxml
│ │ ├── _event_general.rxml
│ │ ├── _event_links.rxml
│ │ ├── _event_resources.rxml
│ │ ├── _person_account.rxml
│ │ ├── _person_availability.rxml
│ │ ├── _person_contact.rxml
│ │ ├── _person_description.rxml
│ │ ├── _person_general.rxml
│ │ ├── _person_links.rxml
│ │ ├── _person_travel.rxml
│ │ ├── _sidebar.rxml
│ │ ├── _submission_comment.rxml
│ │ ├── event.rxml
│ │ ├── events.rxml
│ │ ├── index.rxml
│ │ └── person.rxml
│ │ ├── user
│ │ ├── _sidebar.rxml
│ │ ├── account_activated.rxml
│ │ ├── account_done.rxml
│ │ ├── forgot_password.rxml
│ │ ├── index.rxml
│ │ ├── new_account.rxml
│ │ ├── reset_link_sent.rxml
│ │ └── reset_password.rxml
│ │ ├── xcal
│ │ └── conference.rxml
│ │ └── xml
│ │ └── schedule.rxml
├── config
│ ├── .gitignore
│ ├── boot.rb
│ ├── compass.config
│ ├── database.yml.template
│ ├── environment.rb
│ ├── environments
│ │ ├── development.rb
│ │ ├── production.rb
│ │ └── test.rb
│ ├── initializers
│ │ └── security_fix.rb
│ ├── jabber.yml.template
│ ├── mail.yml.template
│ └── routes.rb
├── doc
│ └── README_FOR_APP
├── lib
│ ├── builder_enhancements.rb
│ ├── builder_helper.rb
│ ├── html_export.rb
│ ├── jabberlogger.rb
│ ├── localizer.rb
│ ├── log_entry.rb
│ ├── maillogger.rb
│ ├── momomoto_auth.rb
│ ├── momomoto_helper.rb
│ ├── momomoto_logging.rb
│ ├── momomoto_transaction_ids.rb
│ ├── pentacards.rb
│ ├── pope.rb
│ ├── tasks
│ │ └── rails_rcov.rake
│ └── token.rb
├── log
│ └── .gitignore
├── public
│ ├── 404.html
│ ├── 500.html
│ ├── favicon.ico
│ ├── htaccess.template
│ ├── images
│ │ ├── bullet.png
│ │ ├── erisdiscordia-128x128.png
│ │ ├── erisdiscordia-160x160.png
│ │ ├── erisdiscordia-bug-160x160.png
│ │ ├── icon-clock-128x128.png
│ │ ├── icon-clock-256x256.png
│ │ ├── icon-clock-64x64.png
│ │ ├── icon-conference-128x128.png
│ │ ├── icon-conference-32x32.png
│ │ ├── icon-conference-64x64.png
│ │ ├── icon-event-128x128.png
│ │ ├── icon-event-32x32.png
│ │ ├── icon-event-64x64.png
│ │ ├── icon-find-conference-32x32.png
│ │ ├── icon-find-event-32x32.png
│ │ ├── icon-find-person-32x32.png
│ │ ├── icon-im-32x32.png
│ │ ├── icon-link-32x32.png
│ │ ├── icon-list-64x64.png
│ │ ├── icon-minus-16x16.png
│ │ ├── icon-new-conference-32x32.png
│ │ ├── icon-new-event-32x32.png
│ │ ├── icon-new-person-32x32.png
│ │ ├── icon-person-128x128.png
│ │ ├── icon-person-32x32.png
│ │ ├── icon-person-64x64.png
│ │ ├── icon-phone-32x32.png
│ │ └── icon-plus-16x16.png
│ ├── javascripts
│ │ ├── application.js
│ │ ├── controls.js
│ │ ├── dragdrop.js
│ │ ├── effects.js
│ │ ├── jscalendar
│ │ │ ├── ChangeLog
│ │ │ ├── README
│ │ │ ├── calendar-blue.css
│ │ │ ├── calendar-blue2.css
│ │ │ ├── calendar-brown.css
│ │ │ ├── calendar-green.css
│ │ │ ├── calendar-setup.js
│ │ │ ├── calendar-setup_stripped.js
│ │ │ ├── calendar-system.css
│ │ │ ├── calendar-tas.css
│ │ │ ├── calendar-win2k-1.css
│ │ │ ├── calendar-win2k-2.css
│ │ │ ├── calendar-win2k-cold-1.css
│ │ │ ├── calendar-win2k-cold-2.css
│ │ │ ├── calendar.js
│ │ │ ├── calendar_stripped.js
│ │ │ ├── img.gif
│ │ │ ├── lang
│ │ │ │ ├── calendar-af.js
│ │ │ │ ├── calendar-al.js
│ │ │ │ ├── calendar-bg.js
│ │ │ │ ├── calendar-big5-utf8.js
│ │ │ │ ├── calendar-big5.js
│ │ │ │ ├── calendar-br.js
│ │ │ │ ├── calendar-ca.js
│ │ │ │ ├── calendar-cs-utf8.js
│ │ │ │ ├── calendar-cs-win.js
│ │ │ │ ├── calendar-da.js
│ │ │ │ ├── calendar-de.js
│ │ │ │ ├── calendar-du.js
│ │ │ │ ├── calendar-el.js
│ │ │ │ ├── calendar-en.js
│ │ │ │ ├── calendar-es.js
│ │ │ │ ├── calendar-fi.js
│ │ │ │ ├── calendar-fr.js
│ │ │ │ ├── calendar-he-utf8.js
│ │ │ │ ├── calendar-hr-utf8.js
│ │ │ │ ├── calendar-hr.js
│ │ │ │ ├── calendar-hu.js
│ │ │ │ ├── calendar-it.js
│ │ │ │ ├── calendar-jp.js
│ │ │ │ ├── calendar-ko-utf8.js
│ │ │ │ ├── calendar-ko.js
│ │ │ │ ├── calendar-lt-utf8.js
│ │ │ │ ├── calendar-lt.js
│ │ │ │ ├── calendar-lv.js
│ │ │ │ ├── calendar-nl.js
│ │ │ │ ├── calendar-no.js
│ │ │ │ ├── calendar-pl-utf8.js
│ │ │ │ ├── calendar-pl.js
│ │ │ │ ├── calendar-pt.js
│ │ │ │ ├── calendar-ro.js
│ │ │ │ ├── calendar-ru.js
│ │ │ │ ├── calendar-ru_win_.js
│ │ │ │ ├── calendar-si.js
│ │ │ │ ├── calendar-sk.js
│ │ │ │ ├── calendar-sp.js
│ │ │ │ ├── calendar-sv.js
│ │ │ │ ├── calendar-tr.js
│ │ │ │ ├── calendar-zh.js
│ │ │ │ └── cn_utf8.js
│ │ │ ├── menuarrow.gif
│ │ │ ├── menuarrow2.gif
│ │ │ └── skins
│ │ │ │ └── aqua
│ │ │ │ ├── active-bg.gif
│ │ │ │ ├── dark-bg.gif
│ │ │ │ ├── hover-bg.gif
│ │ │ │ ├── menuarrow.gif
│ │ │ │ ├── normal-bg.gif
│ │ │ │ ├── rowhover-bg.gif
│ │ │ │ ├── status-bg.gif
│ │ │ │ ├── theme.css
│ │ │ │ ├── title-bg.gif
│ │ │ │ └── today-bg.gif
│ │ ├── prototype.js
│ │ └── sortable.js
│ ├── logout.html
│ ├── robots.txt
│ └── stylesheets
│ │ └── main.css
├── script
│ ├── about
│ ├── breakpointer
│ ├── console
│ ├── dbconsole
│ ├── destroy
│ ├── generate
│ ├── html-export
│ ├── jabber
│ ├── pentacards
│ ├── performance
│ │ ├── benchmarker
│ │ └── profiler
│ ├── plugin
│ ├── process
│ │ ├── inspector
│ │ ├── reaper
│ │ └── spawner
│ ├── runner
│ └── server
├── test
│ ├── functional
│ │ ├── admin_controller_test.rb
│ │ ├── application_controller_test.rb
│ │ ├── atom_controller_test.rb
│ │ ├── conference_controller_test.rb
│ │ ├── csv_controller_test.rb
│ │ ├── event_controller_test.rb
│ │ ├── feedback_controller_test.rb
│ │ ├── ical_controller_test.rb
│ │ ├── image_controller_test.rb
│ │ ├── localization_controller_test.rb
│ │ ├── pentabarf_controller_test.rb
│ │ ├── person_controller_test.rb
│ │ ├── report_controller_test.rb
│ │ ├── schedule_controller_test.rb
│ │ ├── search_controller_test.rb
│ │ ├── submission_controller_test.rb
│ │ ├── user_controller_test.rb
│ │ ├── xcal_controller_test.rb
│ │ └── xml_controller_test.rb
│ ├── test_helper.rb
│ └── unit
│ │ ├── notifier_test.rb
│ │ ├── pentacards_test.rb
│ │ └── pope_test.rb
├── tmp
│ ├── html-export
│ │ └── .gitignore
│ └── pids
│ │ └── .gitignore
└── vendor
│ └── plugins
│ └── rails-dev-boost
│ ├── LICENSE
│ ├── TODO.txt
│ ├── init.rb
│ ├── lib
│ ├── rails_development_boost.rb
│ └── rails_development_boost
│ │ ├── dependencies_patch.rb
│ │ ├── dispatcher_patch.rb
│ │ ├── loaded_file.rb
│ │ └── view_helpers_patch.rb
│ └── test
│ ├── constants
│ ├── active_record
│ │ ├── comment.rb
│ │ ├── message.rb
│ │ ├── other.rb
│ │ └── post.rb
│ ├── deep_nesting
│ │ ├── a.rb
│ │ └── a
│ │ │ ├── b.rb
│ │ │ └── b
│ │ │ ├── c.rb
│ │ │ └── c
│ │ │ └── d.rb
│ ├── double_removal
│ │ ├── ns.rb
│ │ └── ns
│ │ │ ├── c.rb
│ │ │ └── m.rb
│ ├── mixins
│ │ ├── client.rb
│ │ ├── mixin.rb
│ │ └── update
│ │ │ └── mixin.rb
│ ├── nested_mixins
│ │ ├── b.rb
│ │ ├── b
│ │ │ └── c.rb
│ │ ├── ma.rb
│ │ ├── ma
│ │ │ ├── mb.rb
│ │ │ └── mb
│ │ │ │ └── mc.rb
│ │ ├── oa.rb
│ │ └── oa
│ │ │ ├── ob.rb
│ │ │ └── ob
│ │ │ └── oc.rb
│ ├── single_removal
│ │ ├── a.rb
│ │ └── b.rb
│ ├── singleton_mixins
│ │ ├── a.rb
│ │ └── b.rb
│ └── subclass
│ │ ├── a.rb
│ │ ├── b.rb
│ │ └── c.rb
│ ├── rails_development_boost_test.rb
│ └── stub_environment.rb
└── sql
├── Makefile
├── activate_trigger.sql
├── data
├── attachment_type.sql
├── attachment_type_localized.sql
├── auth.conference_role.sql
├── auth.conference_role_localized.sql
├── auth.conference_role_permission.sql
├── auth.domain.sql
├── auth.object_domain.sql
├── auth.permission.sql
├── auth.permission_localized.sql
├── auth.role.sql
├── auth.role_localized.sql
├── auth.role_permission.sql
├── conference_phase.sql
├── conference_phase_localized.sql
├── conflict.conference_phase_conflict.sql
├── conflict.conflict.sql
├── conflict.conflict_level.sql
├── conflict.conflict_level_localized.sql
├── conflict.conflict_localized.sql
├── conflict.conflict_type.sql
├── country.sql
├── country_localized.sql
├── currency.sql
├── currency_localized.sql
├── event_origin.sql
├── event_origin_localized.sql
├── event_role.sql
├── event_role_localized.sql
├── event_role_state.sql
├── event_role_state_localized.sql
├── event_state.sql
├── event_state_localized.sql
├── event_state_progress.sql
├── event_state_progress_localized.sql
├── event_type.sql
├── event_type_localized.sql
├── im_type.sql
├── im_type_localized.sql
├── import.sql
├── language.sql
├── language_localized.sql
├── link_type.sql
├── link_type_localized.sql
├── mime_type.sql
├── mime_type_localized.sql
├── phone_type.sql
├── phone_type_localized.sql
├── timezone.sql
├── transport.sql
├── transport_localized.sql
├── ui_message.sql
├── ui_message_localized.sql
└── update_data
├── functions.sql
├── functions
├── account
│ ├── own_conference_persons.sql
│ └── own_events.sql
├── add_attendee.sql
├── admin
│ └── merge_person.sql
├── auth
│ ├── account_conference_permissions.sql
│ ├── account_permissions.sql
│ ├── activate_account.sql
│ ├── activate_account_id.sql
│ ├── create_account.sql
│ ├── forgot_password.sql
│ └── reset_password.sql
├── conflict
│ ├── conflict_statistics.sql
│ ├── event
│ │ ├── abstract_length.sql
│ │ ├── accepted_without_timeslot.sql
│ │ ├── conference_language.sql
│ │ ├── conflict_event.sql
│ │ ├── description_length.sql
│ │ ├── incomplete.sql
│ │ ├── inconsistent_public_link.sql
│ │ ├── inconsistent_tag.sql
│ │ ├── missing_tag.sql
│ │ ├── no_abstract.sql
│ │ ├── no_coordinator.sql
│ │ ├── no_description.sql
│ │ ├── no_language_sql.sql
│ │ ├── no_paper.sql
│ │ ├── no_room_roles.sql
│ │ ├── no_slides.sql
│ │ ├── no_speaker.sql
│ │ ├── no_track.sql
│ │ ├── paper_unknown.sql
│ │ ├── slides_unknown.sql
│ │ └── unconfirmed_with_timeslot.sql
│ ├── event_event
│ │ ├── conflict_event_event.sql
│ │ ├── duplicate_tag.sql
│ │ ├── event_without_break_after.sql
│ │ ├── event_without_break_before.sql
│ │ └── time.sql
│ ├── event_person
│ │ ├── conflict_event_person.sql
│ │ ├── event_after_departure.sql
│ │ ├── event_before_arrival.sql
│ │ ├── language.sql
│ │ └── person_availability.sql
│ ├── event_person_event
│ │ ├── conflict_event_person_event.sql
│ │ ├── time_attendee.sql
│ │ ├── time_speaker_speaker.sql
│ │ ├── time_speaker_visitor.sql
│ │ └── time_visitor_visitor.sql
│ ├── person
│ │ ├── abstract_length.sql
│ │ ├── conflict_person.sql
│ │ ├── description_length.sql
│ │ ├── inconsistent_public_link.sql
│ │ ├── no_abstract.sql
│ │ ├── no_description.sql
│ │ └── no_mail.sql
│ ├── view_conflict_event.sql
│ ├── view_conflict_event_event.sql
│ ├── view_conflict_event_person.sql
│ ├── view_conflict_event_person_event.sql
│ └── view_conflict_person.sql
├── copy_event.sql
├── custom_field_trigger.sql
├── log
│ └── activate_logging.sql
├── related_event_keyword.sql
├── related_event_speaker.sql
├── remove_attendee.sql
└── submit_event.sql
├── index.sql
├── maintenance
├── upgrade_0.3.0_to_0.3.1.sql
├── upgrade_0.3.10_to_0.3.11.sql
├── upgrade_0.3.11_to_0.3.12.sql
├── upgrade_0.3.12_to_0.3.13.sql
├── upgrade_0.3.13_to_0.3.14.sql
├── upgrade_0.3.14_to_0.3.15.sql
├── upgrade_0.3.15_to_0.3.16.sql
├── upgrade_0.3.16_to_0.3.17.sql
├── upgrade_0.3.17_to_0.3.18.sql
├── upgrade_0.3.18_0.4.0.sql
├── upgrade_0.3.1_to_0.3.2.sql
├── upgrade_0.3.2_to_0.3.3.sql
├── upgrade_0.3.3_to_0.3.4.sql
├── upgrade_0.3.4_to_0.3.5.sql
├── upgrade_0.3.5_to_0.3.6.sql
├── upgrade_0.3.6_to_0.3.7.sql
├── upgrade_0.3.7_to_0.3.8.sql
├── upgrade_0.3.8_to_0.3.9.sql
├── upgrade_0.3.9_to_0.3.10.sql
├── upgrade_0.4.0_to_0.4.1.sql
├── upgrade_0.4.1_to_0.4.2.sql
└── upgrade_0.4.3_to_0.4.4.sql
├── pentabarf-user.sql
├── schema.sql
├── tables.sql
├── tables
├── attachment_type.sql
├── attachment_type_localized.sql
├── auth
│ ├── account.sql
│ ├── account_activation.sql
│ ├── account_conference_role.sql
│ ├── account_password_reset.sql
│ ├── account_role.sql
│ ├── account_settings.sql
│ ├── conference_role.sql
│ ├── conference_role_localized.sql
│ ├── conference_role_permission.sql
│ ├── domain.sql
│ ├── object_domain.sql
│ ├── permission.sql
│ ├── permission_localized.sql
│ ├── role.sql
│ ├── role_localized.sql
│ └── role_permission.sql
├── base
│ ├── logging.sql
│ └── release.sql
├── conference.sql
├── conference_day.sql
├── conference_image.sql
├── conference_language.sql
├── conference_link.sql
├── conference_person.sql
├── conference_person_link.sql
├── conference_person_link_internal.sql
├── conference_person_travel.sql
├── conference_phase.sql
├── conference_phase_localized.sql
├── conference_release.sql
├── conference_room.sql
├── conference_room_role.sql
├── conference_team.sql
├── conference_track.sql
├── conflict
│ ├── conference_phase_conflict.sql
│ ├── conflict.sql
│ ├── conflict_level.sql
│ ├── conflict_level_localized.sql
│ ├── conflict_localized.sql
│ └── conflict_type.sql
├── country.sql
├── country_localized.sql
├── currency.sql
├── currency_localized.sql
├── custom
│ ├── custom_conference.sql
│ ├── custom_conference_person.sql
│ ├── custom_event.sql
│ ├── custom_fields.sql
│ └── custom_person.sql
├── dinner_menu.sql
├── event.sql
├── event_attachment.sql
├── event_feedback.sql
├── event_image.sql
├── event_link.sql
├── event_link_internal.sql
├── event_origin.sql
├── event_origin_localized.sql
├── event_person.sql
├── event_rating.sql
├── event_rating_category.sql
├── event_rating_remark.sql
├── event_related.sql
├── event_role.sql
├── event_role_localized.sql
├── event_role_state.sql
├── event_role_state_localized.sql
├── event_state.sql
├── event_state_localized.sql
├── event_state_progress.sql
├── event_state_progress_localized.sql
├── event_type.sql
├── event_type_localized.sql
├── im_type.sql
├── im_type_localized.sql
├── language.sql
├── language_localized.sql
├── link_type.sql
├── link_type_localized.sql
├── log
│ ├── log_transaction.sql
│ └── log_transaction_involved_tables.sql
├── mime_type.sql
├── mime_type_localized.sql
├── person.sql
├── person_availability.sql
├── person_im.sql
├── person_image.sql
├── person_language.sql
├── person_phone.sql
├── person_rating.sql
├── phone_type.sql
├── phone_type_localized.sql
├── release
│ ├── conference.sql
│ ├── conference_day.sql
│ ├── conference_image.sql
│ ├── conference_link.sql
│ ├── conference_person.sql
│ ├── conference_person_link.sql
│ ├── conference_room.sql
│ ├── conference_track.sql
│ ├── event.sql
│ ├── event_attachment.sql
│ ├── event_image.sql
│ ├── event_link.sql
│ ├── event_person.sql
│ ├── person.sql
│ └── person_image.sql
├── timezone.sql
├── transport.sql
├── transport_localized.sql
├── ui_message.sql
└── ui_message_localized.sql
├── test.sql
├── trigger.sql
├── types.sql
├── views.sql
└── views
├── conference_image_modification.sql
├── conference_person.sql
├── conference_person_link_internal.sql
├── conference_rating.sql
├── event.sql
├── event_attachment.sql
├── event_feedback.sql
├── event_feedback_statistics.sql
├── event_image_modification.sql
├── event_link_internal.sql
├── event_person.sql
├── event_rating.sql
├── event_related.sql
├── find
├── find_conference.sql
├── find_event.sql
├── find_person.sql
└── view_find_account.sql
├── last_active.sql
├── mail
├── mail_accepted_speaker.sql
├── mail_all_reviewer.sql
├── mail_all_speaker.sql
└── mail_missing_slides.sql
├── person.sql
├── person_image_modification.sql
├── person_rating.sql
├── recent_changes.sql
├── release
├── view_person.sql
├── view_schedule_day.sql
├── view_schedule_event.sql
├── view_schedule_event_attachment.sql
├── view_schedule_event_person.sql
├── view_schedule_person.sql
├── view_schedule_room.sql
└── view_schedule_track.sql
├── report
├── report_accommodation.sql
├── report_arrived.sql
├── report_events.sql
├── report_expenses.sql
├── report_feedback.sql
├── report_missing.sql
├── report_not_arrived.sql
├── report_paper.sql
├── report_pickup.sql
├── report_resources.sql
├── report_schedule_coordinator.sql
├── report_schedule_gender.sql
├── report_slides.sql
└── view_report_review.sql
├── schedule
├── view_schedule.sql
├── view_schedule_day.sql
├── view_schedule_event.sql
├── view_schedule_event_attachment.sql
├── view_schedule_event_person.sql
├── view_schedule_person.sql
├── view_schedule_room.sql
└── view_schedule_track.sql
├── view_conference_language.sql
├── view_event_category_rating.sql
├── view_event_duration.sql
├── view_event_state_progress_statistic.sql
├── view_event_state_statistic.sql
├── view_own_events_coordinator.sql
└── view_own_events_participant.sql
/INSTALL:
--------------------------------------------------------------------------------
1 |
2 | The installation instructions for pentabarf can be found in the pentabarf
3 | wiki http://pentabarf.org/Installation
4 |
5 |
--------------------------------------------------------------------------------
/README:
--------------------------------------------------------------------------------
1 |
2 | Pentabarf is a conference planning software written in Ruby
3 | ( using the Rails framework) and PL/pgSQL.
4 |
5 | Pentabarf supports you in the submission collection, content planning,
6 | schedule creation, feedback collection and has various exports to put
7 | these data to use in other systems.
8 |
9 |
--------------------------------------------------------------------------------
/contrib/README:
--------------------------------------------------------------------------------
1 | Contrib
2 | -------
3 |
4 | This directory contains additional files and tools supplied by people
5 | using pentabarf. Some of the files may not work right away on an
6 | unmodified pentabarf version, but they will at least give you a good
7 | idea what you could do yourself.
8 |
--------------------------------------------------------------------------------
/rails/.gitignore:
--------------------------------------------------------------------------------
1 | app/stylesheets/.sass-cache
2 | tmp/sass-cache
3 |
--------------------------------------------------------------------------------
/rails/Rakefile:
--------------------------------------------------------------------------------
1 | # Add your own tasks in files placed in lib/tasks ending in .rake,
2 | # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
3 |
4 | require(File.join(File.dirname(__FILE__), 'config', 'boot'))
5 |
6 | require 'rake'
7 | require 'rake/testtask'
8 | require 'rake/rdoctask'
9 |
10 | require 'tasks/rails'
11 |
--------------------------------------------------------------------------------
/rails/app/controllers/atom_controller.rb:
--------------------------------------------------------------------------------
1 | class AtomController < ApplicationController
2 |
3 | def recent_changes
4 | response.content_type = Mime::ATOM
5 | @current_language = POPE.user.current_language
6 | @changes = View_recent_changes.select( {}, {:limit => 25 } )
7 | end
8 |
9 | def check_permission
10 | POPE.permission?('pentabarf::login')
11 | end
12 |
13 | end
14 |
--------------------------------------------------------------------------------
/rails/app/helpers/admin_helper.rb:
--------------------------------------------------------------------------------
1 | module AdminHelper
2 | end
3 |
--------------------------------------------------------------------------------
/rails/app/helpers/atom_helper.rb:
--------------------------------------------------------------------------------
1 | module AtomHelper
2 | end
3 |
--------------------------------------------------------------------------------
/rails/app/helpers/conference_helper.rb:
--------------------------------------------------------------------------------
1 | module ConferenceHelper
2 | end
3 |
--------------------------------------------------------------------------------
/rails/app/helpers/csv_helper.rb:
--------------------------------------------------------------------------------
1 | module CsvHelper
2 | end
3 |
--------------------------------------------------------------------------------
/rails/app/helpers/feedback_helper.rb:
--------------------------------------------------------------------------------
1 | module FeedbackHelper
2 | end
3 |
--------------------------------------------------------------------------------
/rails/app/helpers/image_helper.rb:
--------------------------------------------------------------------------------
1 | module ImageHelper
2 | end
3 |
--------------------------------------------------------------------------------
/rails/app/helpers/localization_helper.rb:
--------------------------------------------------------------------------------
1 | module LocalizationHelper
2 | end
3 |
--------------------------------------------------------------------------------
/rails/app/helpers/pentabarf_helper.rb:
--------------------------------------------------------------------------------
1 | module PentabarfHelper
2 |
3 | end
4 |
5 |
--------------------------------------------------------------------------------
/rails/app/helpers/person_helper.rb:
--------------------------------------------------------------------------------
1 | module PersonHelper
2 | end
3 |
--------------------------------------------------------------------------------
/rails/app/helpers/report_helper.rb:
--------------------------------------------------------------------------------
1 | module ReportHelper
2 | end
3 |
--------------------------------------------------------------------------------
/rails/app/helpers/search_helper.rb:
--------------------------------------------------------------------------------
1 | module SearchHelper
2 | end
3 |
--------------------------------------------------------------------------------
/rails/app/helpers/submission_helper.rb:
--------------------------------------------------------------------------------
1 | module SubmissionHelper
2 | end
3 |
--------------------------------------------------------------------------------
/rails/app/helpers/user_helper.rb:
--------------------------------------------------------------------------------
1 | module UserHelper
2 | end
3 |
--------------------------------------------------------------------------------
/rails/app/helpers/xcal_helper.rb:
--------------------------------------------------------------------------------
1 | module XcalHelper
2 | end
3 |
--------------------------------------------------------------------------------
/rails/app/helpers/xml_helper.rb:
--------------------------------------------------------------------------------
1 | module XmlHelper
2 | end
3 |
--------------------------------------------------------------------------------
/rails/app/models/account_activation.rb:
--------------------------------------------------------------------------------
1 | class Account_activation < Momomoto::Table
2 | schema_name "auth"
3 |
4 | def self.log_content_columns
5 | []
6 | end
7 |
8 | end
9 |
10 |
--------------------------------------------------------------------------------
/rails/app/models/account_conference_permissions.rb:
--------------------------------------------------------------------------------
1 | class Account_conference_permissions < Momomoto::Procedure
2 | schema_name "auth"
3 | end
4 |
5 |
--------------------------------------------------------------------------------
/rails/app/models/account_password_reset.rb:
--------------------------------------------------------------------------------
1 | class Account_password_reset < Momomoto::Table
2 | schema_name "auth"
3 |
4 | def self.log_content_columns
5 | []
6 | end
7 |
8 | end
9 |
10 |
--------------------------------------------------------------------------------
/rails/app/models/account_permissions.rb:
--------------------------------------------------------------------------------
1 | class Account_permissions < Momomoto::Procedure
2 | schema_name "auth"
3 | end
4 |
5 |
--------------------------------------------------------------------------------
/rails/app/models/account_role.rb:
--------------------------------------------------------------------------------
1 | class Account_role < Momomoto::Table
2 | schema_name "auth"
3 |
4 | def self.log_content_columns
5 | columns.keys - [:account_id]
6 | end
7 |
8 | def self.log_change_url( change )
9 | {:controller=>'admin',:action=>:account_roles,:id=>change.account_id}
10 | rescue
11 | {}
12 | end
13 |
14 | def self.log_change_title( change )
15 | Account.log_change_title( Account.select_single({:account_id=>change.account_id}))
16 | rescue
17 | change.account_id
18 | end
19 |
20 | end
21 |
22 |
--------------------------------------------------------------------------------
/rails/app/models/account_settings.rb:
--------------------------------------------------------------------------------
1 | require 'yaml'
2 | class Account_settings < Momomoto::Table
3 | schema_name "auth"
4 | module Methods
5 |
6 | def current_language
7 | get_column(:current_language) || 'en'
8 | end
9 |
10 | def preferences
11 | YAML.load( get_column( :preferences ) ) rescue {}
12 | end
13 |
14 | def preferences=( value )
15 | set_column( :preferences, value.to_yaml )
16 | end
17 |
18 | end
19 | end
20 |
21 |
--------------------------------------------------------------------------------
/rails/app/models/activate_account.rb:
--------------------------------------------------------------------------------
1 | class Activate_account < Momomoto::Procedure
2 | schema_name "auth"
3 | end
4 |
5 |
--------------------------------------------------------------------------------
/rails/app/models/activate_account_id.rb:
--------------------------------------------------------------------------------
1 | class Activate_account_id < Momomoto::Procedure
2 | schema_name "auth"
3 | end
4 |
5 |
--------------------------------------------------------------------------------
/rails/app/models/attachment_type.rb:
--------------------------------------------------------------------------------
1 | class Attachment_type < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/attachment_type_localized.rb:
--------------------------------------------------------------------------------
1 | class Attachment_type_localized < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/conference_day.rb:
--------------------------------------------------------------------------------
1 | class Conference_day < Momomoto::Table
2 | default_order( :conference_day )
3 |
4 | def self.log_change_url( change )
5 | {:controller=>'conference',:action=>:edit,:conference_id=>change.conference_id}
6 | end
7 |
8 | def self.log_change_title( change )
9 | Conference.log_change_title( Conference.select_single(:conference_id=>change.conference_id))
10 | rescue
11 | ""
12 | end
13 |
14 | end
15 |
16 |
--------------------------------------------------------------------------------
/rails/app/models/conference_image.rb:
--------------------------------------------------------------------------------
1 | class Conference_image < Momomoto::Table
2 |
3 | def self.log_content_columns
4 | columns.keys - [:conference_id]
5 | end
6 |
7 | def self.log_hidden_columns
8 | [:image]
9 | end
10 |
11 | def self.log_change_url( change )
12 | {:controller=>'conference',:action=>:edit,:conference_id=>change.conference_id}
13 | end
14 |
15 | def self.log_change_title( change )
16 | Conference.log_change_title( Conference.select_single(:conference_id=>change.conference_id))
17 | rescue
18 | ""
19 | end
20 |
21 | end
22 |
23 |
--------------------------------------------------------------------------------
/rails/app/models/conference_language.rb:
--------------------------------------------------------------------------------
1 | class Conference_language < Momomoto::Table
2 |
3 | def self.log_content_columns
4 | columns.keys - [:conference_id]
5 | end
6 |
7 | def self.log_change_url( change )
8 | {:controller=>'conference',:action=>:edit,:conference_id=>change.conference_id}
9 | end
10 |
11 | def self.log_change_title( change )
12 | Conference.log_change_title( Conference.select_single(:conference_id=>change.conference_id))
13 | rescue
14 | ""
15 | end
16 |
17 | end
18 |
--------------------------------------------------------------------------------
/rails/app/models/conference_link.rb:
--------------------------------------------------------------------------------
1 | class Conference_link < Momomoto::Table
2 |
3 | def self.log_content_columns
4 | columns.keys - [:conference_id,:conference_link_id]
5 | end
6 |
7 | def self.log_change_url( change )
8 | {:controller=>'conference',:action=>:edit,:conference_id=>change.conference_id}
9 | end
10 |
11 | def self.log_change_title( change )
12 | Conference.log_change_title( Conference.select_single({:conference_id=>change.conference_id}))
13 | rescue
14 | ""
15 | end
16 |
17 | end
18 |
19 |
--------------------------------------------------------------------------------
/rails/app/models/conference_person.rb:
--------------------------------------------------------------------------------
1 | class Conference_person < Momomoto::Table
2 |
3 | def self.log_content_columns
4 | columns.keys - [:conference_person_id]
5 | end
6 |
7 | def self.log_change_url( change )
8 | {:controller=>'person',:action=>:edit,:person_id=>change.person_id}
9 | end
10 |
11 | def self.log_change_title( change )
12 | person = Person.select_single({:person_id=>change.person_id})
13 | begin
14 | conf = Conference.select_single({:conference_id=>change.conference_id})
15 | "#{conf.acronym}: #{person.name}"
16 | rescue
17 | Person.log_change_title( person )
18 | end
19 | rescue
20 | ""
21 | end
22 |
23 | end
24 |
25 |
--------------------------------------------------------------------------------
/rails/app/models/conference_person_link.rb:
--------------------------------------------------------------------------------
1 | class Conference_person_link < Momomoto::Table
2 |
3 | def self.log_content_columns
4 | columns.keys - [:conference_person_id,:conference_person_link_id]
5 | end
6 |
7 | def self.log_change_url( change )
8 | person = Conference_person.select_single({:conference_person_id=>change.conference_person_id})
9 | {:controller=>'person',:action=>:edit,:person_id=>person.person_id}
10 | rescue
11 | {}
12 | end
13 |
14 | def self.log_change_title( change )
15 | Conference_person.log_change_title( Conference_person.select_single({:conference_person_id=>change.conference_person_id}) )
16 | rescue
17 | ""
18 | end
19 |
20 | end
21 |
22 |
--------------------------------------------------------------------------------
/rails/app/models/conference_person_link_internal.rb:
--------------------------------------------------------------------------------
1 | class Conference_person_link_internal < Momomoto::Table
2 |
3 | def self.log_content_columns
4 | columns.keys - [:conference_person_id,:conference_person_link_internal_id]
5 | end
6 |
7 | def self.log_change_url( change )
8 | person = Conference_person.select_single({:conference_person_id=>change.conference_person_id})
9 | {:controller=>'person',:action=>:edit,:id=>person.person_id}
10 | rescue
11 | {}
12 | end
13 |
14 | def self.log_change_title( change )
15 | Conference_person.log_change_title( Conference_person.select_single({:conference_person_id=>change.conference_person_id}) )
16 | rescue
17 | ""
18 | end
19 |
20 | end
21 |
22 |
--------------------------------------------------------------------------------
/rails/app/models/conference_person_travel.rb:
--------------------------------------------------------------------------------
1 | class Conference_person_travel < Momomoto::Table
2 |
3 | def self.log_content_columns
4 | columns.keys - [:conference_person_id]
5 | end
6 |
7 | def self.log_change_url( change )
8 | cp = Conference_person.select_single({:conference_person_id=>change.conference_person_id})
9 | {:controller=>'person',:action=>:edit,:person_id=>cp.person_id}
10 | rescue
11 | {}
12 | end
13 |
14 | def self.log_change_title( change )
15 | Conference_person.log_change_title( Conference_person.select_single({:conference_person_id=>change.conference_person_id}) )
16 | rescue
17 | ""
18 | end
19 |
20 | end
21 |
22 |
--------------------------------------------------------------------------------
/rails/app/models/conference_phase.rb:
--------------------------------------------------------------------------------
1 | class Conference_phase < Momomoto::Table
2 | end
3 |
--------------------------------------------------------------------------------
/rails/app/models/conference_phase_conflict.rb:
--------------------------------------------------------------------------------
1 | class Conference_phase_conflict < Momomoto::Table
2 | schema_name "conflict"
3 | end
4 |
5 |
--------------------------------------------------------------------------------
/rails/app/models/conference_phase_localized.rb:
--------------------------------------------------------------------------------
1 | class Conference_phase_localized < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/conference_release.rb:
--------------------------------------------------------------------------------
1 | class Conference_release < Momomoto::Table
2 |
3 | def self.log_content_columns
4 | columns.keys - [:conference_release_id]
5 | end
6 |
7 | end
8 |
9 |
--------------------------------------------------------------------------------
/rails/app/models/conference_role.rb:
--------------------------------------------------------------------------------
1 | class Conference_role < Momomoto::Table
2 | schema_name "auth"
3 | default_order [:rank,:conference_role]
4 | end
5 |
--------------------------------------------------------------------------------
/rails/app/models/conference_role_permission.rb:
--------------------------------------------------------------------------------
1 | class Conference_role_permission < Momomoto::Table
2 | schema_name "auth"
3 | end
4 |
5 |
--------------------------------------------------------------------------------
/rails/app/models/conference_room.rb:
--------------------------------------------------------------------------------
1 | class Conference_room < Momomoto::Table
2 | default_order( [:rank, Momomoto::lower(:conference_room)] )
3 | end
4 |
5 |
--------------------------------------------------------------------------------
/rails/app/models/conference_room_role.rb:
--------------------------------------------------------------------------------
1 | class Conference_room_role < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/conference_team.rb:
--------------------------------------------------------------------------------
1 | class Conference_team < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/conference_track.rb:
--------------------------------------------------------------------------------
1 | class Conference_track < Momomoto::Table
2 | default_order( [:rank, Momomoto::lower(:conference_track)] )
3 | end
4 |
5 |
--------------------------------------------------------------------------------
/rails/app/models/conflict.rb:
--------------------------------------------------------------------------------
1 | class Conflict < Momomoto::Table
2 | schema_name 'conflict'
3 | end
4 |
5 |
--------------------------------------------------------------------------------
/rails/app/models/conflict_level.rb:
--------------------------------------------------------------------------------
1 | class Conflict_level < Momomoto::Table
2 | schema_name 'conflict'
3 | end
4 |
5 |
--------------------------------------------------------------------------------
/rails/app/models/conflict_level_localized.rb:
--------------------------------------------------------------------------------
1 | class Conflict_level_localized < Momomoto::Table
2 | schema_name "conflict"
3 | end
4 |
5 |
--------------------------------------------------------------------------------
/rails/app/models/conflict_localized.rb:
--------------------------------------------------------------------------------
1 | class Conflict_localized < Momomoto::Table
2 | schema_name 'conflict'
3 | end
4 |
5 |
--------------------------------------------------------------------------------
/rails/app/models/conflict_statistics.rb:
--------------------------------------------------------------------------------
1 | class Conflict_statistics < Momomoto::Procedure
2 | schema_name 'conflict'
3 | end
4 |
5 |
--------------------------------------------------------------------------------
/rails/app/models/conflict_type.rb:
--------------------------------------------------------------------------------
1 | class Conflict_type < Momomoto::Table
2 | schema_name 'conflict'
3 | end
4 |
5 |
--------------------------------------------------------------------------------
/rails/app/models/copy_event.rb:
--------------------------------------------------------------------------------
1 | class Copy_event < Momomoto::Procedure
2 | end
3 |
--------------------------------------------------------------------------------
/rails/app/models/country.rb:
--------------------------------------------------------------------------------
1 | class Country < Momomoto::Table
2 | end
3 |
--------------------------------------------------------------------------------
/rails/app/models/country_localized.rb:
--------------------------------------------------------------------------------
1 | class Country_localized < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/create_account.rb:
--------------------------------------------------------------------------------
1 | class Create_account < Momomoto::Procedure
2 | schema_name "auth"
3 | end
4 |
--------------------------------------------------------------------------------
/rails/app/models/currency.rb:
--------------------------------------------------------------------------------
1 | class Currency < Momomoto::Table
2 | end
3 |
--------------------------------------------------------------------------------
/rails/app/models/currency_localized.rb:
--------------------------------------------------------------------------------
1 | class Currency_localized < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/custom.rb:
--------------------------------------------------------------------------------
1 |
2 | module Custom
3 |
4 | def self.const_missing( table )
5 | klass = Class.new( Momomoto::Table )
6 | klass.schema_name = "custom"
7 | klass.table_name = "custom_#{table.to_s.downcase}"
8 | Custom.const_set(table, klass)
9 | end
10 |
11 | end
12 |
13 |
--------------------------------------------------------------------------------
/rails/app/models/custom_conference.rb:
--------------------------------------------------------------------------------
1 | Custom_conference = Custom::Conference
2 |
3 |
--------------------------------------------------------------------------------
/rails/app/models/custom_conference_person.rb:
--------------------------------------------------------------------------------
1 | Custom_conference_person = Custom::Conference_person
2 |
3 |
--------------------------------------------------------------------------------
/rails/app/models/custom_event.rb:
--------------------------------------------------------------------------------
1 | Custom_event = Custom::Event
2 |
--------------------------------------------------------------------------------
/rails/app/models/custom_fields.rb:
--------------------------------------------------------------------------------
1 | Custom_fields = Custom::Fields
2 |
--------------------------------------------------------------------------------
/rails/app/models/custom_person.rb:
--------------------------------------------------------------------------------
1 | Custom_person = Custom::Person
2 |
3 |
--------------------------------------------------------------------------------
/rails/app/models/dinner_menu.rb:
--------------------------------------------------------------------------------
1 | class Dinner_menu < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/domain.rb:
--------------------------------------------------------------------------------
1 | class Domain < Momomoto::Table
2 | schema_name "auth"
3 | end
4 |
5 |
--------------------------------------------------------------------------------
/rails/app/models/event.rb:
--------------------------------------------------------------------------------
1 | class Event < Momomoto::Table
2 | SubmissionFields = [:title,:subtitle,:paper,:slides,:language,:conference_track_id,:event_type,:abstract,:description,:resources,:duration,:submission_notes]
3 |
4 | module Methods
5 |
6 | def persons( *args )
7 | event_person( *args )
8 | end
9 |
10 | end
11 |
12 | def self.log_content_columns
13 | columns.keys - [:event_id]
14 | end
15 |
16 | def self.log_change_url( change )
17 | {:controller=>'event',:action=>:edit,:event_id=>change.event_id}
18 | end
19 |
20 | def self.log_change_title( change )
21 | conf = Conference.select_single(:conference_id=>change.conference_id)
22 | "#{conf.acronym}: #{change.title}"
23 | rescue
24 | change.title
25 | end
26 |
27 | end
28 |
--------------------------------------------------------------------------------
/rails/app/models/event_attachment.rb:
--------------------------------------------------------------------------------
1 | class Event_attachment < Momomoto::Table
2 |
3 | def self.log_content_columns
4 | columns.keys - [:event_id]
5 | end
6 |
7 | def self.log_hidden_columns
8 | [:data]
9 | end
10 |
11 | def self.log_change_url( change )
12 | {:controller=>'event',:action=>:edit,:event_id=>change.event_id}
13 | end
14 |
15 | def self.log_change_title( change )
16 | Event.log_change_title( Event.select_single({:event_id=>change.event_id}))
17 | rescue
18 | ""
19 | end
20 |
21 | end
22 |
23 |
--------------------------------------------------------------------------------
/rails/app/models/event_feedback.rb:
--------------------------------------------------------------------------------
1 | class Event_feedback < Momomoto::Table
2 |
3 | def self.log_content_columns
4 | columns.keys - [:eval_time,:event_id,:event_feedback_id]
5 | end
6 |
7 | def self.log_change_url( change )
8 | {:controller=>'event',:action=>:edit,:event_id=>change.event_id}
9 | end
10 |
11 | def self.log_change_title( change )
12 | Event.log_change_title( Event.select_single({:event_id=>change.event_id}))
13 | rescue
14 | ""
15 | end
16 |
17 | end
18 |
19 |
--------------------------------------------------------------------------------
/rails/app/models/event_image.rb:
--------------------------------------------------------------------------------
1 | class Event_image < Momomoto::Table
2 |
3 | def self.log_hidden_columns
4 | [:image]
5 | end
6 |
7 | def self.log_content_columns
8 | columns.keys - [:event_id]
9 | end
10 |
11 | def self.log_change_url( change )
12 | {:controller=>'event',:action=>:edit,:event_id=>change.event_id}
13 | end
14 |
15 | def self.log_change_title( change )
16 | Event.log_change_title( Event.select_single({:event_id=>change.event_id}))
17 | rescue
18 | ""
19 | end
20 |
21 | end
22 |
23 |
--------------------------------------------------------------------------------
/rails/app/models/event_link.rb:
--------------------------------------------------------------------------------
1 | class Event_link < Momomoto::Table
2 |
3 | def self.log_content_columns
4 | columns.keys - [:event_id,:event_link_id]
5 | end
6 |
7 | def self.log_change_url( change )
8 | {:controller=>'event',:action=>:edit,:event_id=>change.event_id}
9 | end
10 |
11 | def self.log_change_title( change )
12 | Event.log_change_title( Event.select_single({:event_id=>change.event_id}))
13 | rescue
14 | ""
15 | end
16 |
17 | end
18 |
19 |
--------------------------------------------------------------------------------
/rails/app/models/event_link_internal.rb:
--------------------------------------------------------------------------------
1 | class Event_link_internal < Momomoto::Table
2 |
3 | def self.log_content_columns
4 | columns.keys - [:event_id,:event_link_internal_id]
5 | end
6 |
7 | def self.log_change_url( change )
8 | {:controller=>'event',:action=>:edit,:event_id=>change.event_id}
9 | end
10 |
11 | def self.log_change_title( change )
12 | Event.log_change_title( Event.select_single({:event_id=>change.event_id}))
13 | rescue
14 | ""
15 | end
16 |
17 | end
18 |
19 |
--------------------------------------------------------------------------------
/rails/app/models/event_origin.rb:
--------------------------------------------------------------------------------
1 | class Event_origin < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/event_origin_localized.rb:
--------------------------------------------------------------------------------
1 | class Event_origin_localized < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/event_person.rb:
--------------------------------------------------------------------------------
1 | class Event_person < Momomoto::Table
2 |
3 | def self.log_content_columns
4 | columns.keys - [:event_person_id,:event_id]
5 | end
6 |
7 | def self.log_change_title( change )
8 | "#{Event.log_change_title( Event.select_single({:event_id=>change.event_id}))}: #{Person.log_change_title( Person.select_single(:person_id=>change.person_id))}"
9 | rescue
10 | ""
11 | end
12 |
13 | def self.log_change_url( change )
14 | {:controller=>'event',:action=>:edit,:id=>change.event_id}
15 | end
16 |
17 | end
18 |
19 |
--------------------------------------------------------------------------------
/rails/app/models/event_rating.rb:
--------------------------------------------------------------------------------
1 | class Event_rating < Momomoto::Table
2 |
3 | def self.log_content_columns
4 | columns.keys - [:eval_time,:event_id]
5 | end
6 |
7 | def self.log_change_title( change )
8 | Event.log_change_title( Event.select_single({:event_id=>change.event_id}))
9 | rescue
10 | ""
11 | end
12 |
13 | def self.log_change_url( change )
14 | {:controller=>'event',:action=>:edit,:event_id=>change.event_id}
15 | end
16 |
17 | end
18 |
19 |
--------------------------------------------------------------------------------
/rails/app/models/event_rating_category.rb:
--------------------------------------------------------------------------------
1 | class Event_rating_category < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/event_rating_remark.rb:
--------------------------------------------------------------------------------
1 | class Event_rating_remark < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/event_role.rb:
--------------------------------------------------------------------------------
1 | class Event_role < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/event_role_localized.rb:
--------------------------------------------------------------------------------
1 | class Event_role_localized < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/event_role_state.rb:
--------------------------------------------------------------------------------
1 | class Event_role_state < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/event_role_state_localized.rb:
--------------------------------------------------------------------------------
1 | class Event_role_state_localized < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/event_state.rb:
--------------------------------------------------------------------------------
1 | class Event_state < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/event_state_localized.rb:
--------------------------------------------------------------------------------
1 | class Event_state_localized < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/event_state_progress.rb:
--------------------------------------------------------------------------------
1 | class Event_state_progress < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/event_state_progress_localized.rb:
--------------------------------------------------------------------------------
1 | class Event_state_progress_localized < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/event_type.rb:
--------------------------------------------------------------------------------
1 | class Event_type < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/event_type_localized.rb:
--------------------------------------------------------------------------------
1 | class Event_type_localized < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/forgot_password.rb:
--------------------------------------------------------------------------------
1 | class Forgot_password < Momomoto::Procedure
2 | schema_name "auth"
3 | end
4 |
5 |
--------------------------------------------------------------------------------
/rails/app/models/im_type.rb:
--------------------------------------------------------------------------------
1 | class Im_type < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/im_type_localized.rb:
--------------------------------------------------------------------------------
1 | class Im_type_localized < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/language.rb:
--------------------------------------------------------------------------------
1 | class Language < Momomoto::Table
2 | end
3 |
--------------------------------------------------------------------------------
/rails/app/models/language_localized.rb:
--------------------------------------------------------------------------------
1 | class Language_localized < Momomoto::Table
2 | default_order :name
3 | end
4 |
5 |
--------------------------------------------------------------------------------
/rails/app/models/link_type.rb:
--------------------------------------------------------------------------------
1 | class Link_type < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/link_type_localized.rb:
--------------------------------------------------------------------------------
1 | class Link_type_localized < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/log.rb:
--------------------------------------------------------------------------------
1 |
2 | module Log
3 |
4 | def self.const_missing( table )
5 | klass = Class.new( Momomoto::Table )
6 | klass.schema_name = "log"
7 |
8 | # copy custom methods from base class to log class if available
9 | if "::#{table}".constantize.const_defined?('Methods')
10 | klass.const_set(:Methods, "::#{table}::Methods".constantize)
11 | end
12 |
13 | Log.const_set(table, klass)
14 | end
15 |
16 | end
17 |
18 |
--------------------------------------------------------------------------------
/rails/app/models/log_transaction_involved_tables.rb:
--------------------------------------------------------------------------------
1 | class Log_transaction_involved_tables < Momomoto::Table
2 | schema_name 'log'
3 | end
4 |
5 |
--------------------------------------------------------------------------------
/rails/app/models/mime_type.rb:
--------------------------------------------------------------------------------
1 | class Mime_type < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/mime_type_localized.rb:
--------------------------------------------------------------------------------
1 | class Mime_type_localized < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/object_domain.rb:
--------------------------------------------------------------------------------
1 | class Object_domain < Momomoto::Table
2 | schema_name "auth"
3 | end
4 |
5 |
--------------------------------------------------------------------------------
/rails/app/models/own_conference_events.rb:
--------------------------------------------------------------------------------
1 | class Own_conference_events < Momomoto::Procedure
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/own_conference_persons.rb:
--------------------------------------------------------------------------------
1 | class Own_conference_persons < Momomoto::Procedure
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/own_events.rb:
--------------------------------------------------------------------------------
1 | class Own_events < Momomoto::Procedure
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/permission.rb:
--------------------------------------------------------------------------------
1 | class Permission < Momomoto::Table
2 | schema_name "auth"
3 | end
4 |
--------------------------------------------------------------------------------
/rails/app/models/permission_localized.rb:
--------------------------------------------------------------------------------
1 | class Permission_localized < Momomoto::Table
2 | schema_name "auth"
3 | end
4 |
5 |
--------------------------------------------------------------------------------
/rails/app/models/person.rb:
--------------------------------------------------------------------------------
1 | class Person < Momomoto::Table
2 | module Methods
3 |
4 | def name
5 | if public_name
6 | public_name
7 | elsif first_name && last_name
8 | "#{first_name} #{last_name}"
9 | elsif last_name
10 | last_name
11 | else
12 | nickname
13 | end
14 | end
15 |
16 | end
17 |
18 | def self.log_change_url( change )
19 | {:controller=>'person',:action=>:edit,:id=>change.person_id}
20 | end
21 |
22 | def self.log_change_title( change )
23 | change.name
24 | end
25 |
26 | end
27 |
28 |
--------------------------------------------------------------------------------
/rails/app/models/person_availability.rb:
--------------------------------------------------------------------------------
1 | class Person_availability < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/person_im.rb:
--------------------------------------------------------------------------------
1 | class Person_im < Momomoto::Table
2 |
3 | def self.log_content_columns
4 | columns.keys - [:person_id,:person_im_id]
5 | end
6 |
7 | def self.log_change_title( change )
8 | Person.log_change_title( Person.select_single({:person_id=>change.person_id}))
9 | rescue
10 | ""
11 | end
12 |
13 | def self.log_change_url( change )
14 | {:controller=>'person',:action=>:edit,:person_id=>change.person_id}
15 | end
16 |
17 | end
18 |
19 |
--------------------------------------------------------------------------------
/rails/app/models/person_image.rb:
--------------------------------------------------------------------------------
1 | class Person_image < Momomoto::Table
2 |
3 | def self.log_hidden_columns
4 | [:image]
5 | end
6 |
7 | def self.log_content_columns
8 | columns.keys - [:person_id]
9 | end
10 |
11 | def self.log_change_title( change )
12 | Person.log_change_title( Person.select_single({:person_id=>change.person_id}))
13 | rescue
14 | ""
15 | end
16 |
17 | def self.log_change_url( change )
18 | {:controller=>'person',:action=>:edit,:person_id=>change.person_id}
19 | end
20 |
21 | end
22 |
23 |
--------------------------------------------------------------------------------
/rails/app/models/person_language.rb:
--------------------------------------------------------------------------------
1 | class Person_language < Momomoto::Table
2 |
3 | def self.log_content_columns
4 | columns.keys - [:person_id]
5 | end
6 |
7 | def self.log_change_title( change )
8 | Person.log_change_title( Person.select_single({:person_id=>change.person_id}))
9 | rescue
10 | ""
11 | end
12 |
13 | def self.log_change_url( change )
14 | {:controller=>'person',:action=>:edit,:person_id=>change.person_id}
15 | end
16 |
17 | end
18 |
19 |
--------------------------------------------------------------------------------
/rails/app/models/person_phone.rb:
--------------------------------------------------------------------------------
1 | class Person_phone < Momomoto::Table
2 |
3 | def self.log_content_columns
4 | columns.keys - [:person_id,:person_phone_id]
5 | end
6 |
7 | def self.log_change_title( change )
8 | Person.log_change_title( Person.select_single({:person_id=>change.person_id}))
9 | rescue
10 | ""
11 | end
12 |
13 | def self.log_change_url( change )
14 | {:controller=>'person',:action=>:edit,:person_id=>change.person_id}
15 | end
16 |
17 | end
18 |
19 |
--------------------------------------------------------------------------------
/rails/app/models/person_rating.rb:
--------------------------------------------------------------------------------
1 | class Person_rating < Momomoto::Table
2 |
3 | def self.log_content_columns
4 | columns.keys - [:person_id]
5 | end
6 |
7 | def self.log_change_title( change )
8 | Person.log_change_title( Person.select_single({:person_id=>change.person_id}))
9 | rescue
10 | ""
11 | end
12 |
13 | def self.log_change_url( change )
14 | {:controller=>'person',:action=>:edit,:person_id=>change.person_id}
15 | end
16 |
17 | end
18 |
19 |
--------------------------------------------------------------------------------
/rails/app/models/phone_type.rb:
--------------------------------------------------------------------------------
1 | class Phone_type < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/phone_type_localized.rb:
--------------------------------------------------------------------------------
1 | class Phone_type_localized < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/release.rb:
--------------------------------------------------------------------------------
1 |
2 | module Release
3 |
4 | #FIXME: disabled for now because it doesn't work in development mode
5 | # def self.const_missing( table )
6 | # table_name = table.to_s.downcase
7 | # raise "Invalid class name" unless table_name.match(/^[a-z_]+$/)
8 | # begin
9 | # require "release/#{table_name}"
10 | # raise LoadError if not local_constants.member?( table.to_s )
11 | # Release.const_get(table)
12 | # rescue LoadError
13 | # klass = Class.new( Momomoto::Table )
14 | # klass.schema_name = "release"
15 | # klass.table_name = table_name
16 | #
17 | # Release.const_set(table, klass)
18 | # end
19 | # end
20 |
21 | end
22 |
23 |
--------------------------------------------------------------------------------
/rails/app/models/release/conference_day.rb:
--------------------------------------------------------------------------------
1 | class Release::Conference_day < Momomoto::Table
2 |
3 | schema_name 'release'
4 |
5 | end
6 |
7 |
--------------------------------------------------------------------------------
/rails/app/models/release/conference_link.rb:
--------------------------------------------------------------------------------
1 | class Release::Conference_link < Momomoto::Table
2 |
3 | schema_name "release"
4 |
5 | end
6 |
--------------------------------------------------------------------------------
/rails/app/models/release/conference_person.rb:
--------------------------------------------------------------------------------
1 | class Release::Conference_person < Momomoto::Table
2 |
3 | schema_name 'release'
4 |
5 | end
6 |
7 |
--------------------------------------------------------------------------------
/rails/app/models/release/conference_person_link.rb:
--------------------------------------------------------------------------------
1 | class Release::Conference_person_link < Momomoto::Table
2 |
3 | schema_name "release"
4 |
5 | end
6 |
--------------------------------------------------------------------------------
/rails/app/models/release/conference_room.rb:
--------------------------------------------------------------------------------
1 | class Release::Conference_room < Momomoto::Table
2 |
3 | schema_name 'release'
4 |
5 | end
6 |
7 |
--------------------------------------------------------------------------------
/rails/app/models/release/conference_track.rb:
--------------------------------------------------------------------------------
1 | class Release::Conference_track < Momomoto::Table
2 |
3 | schema_name 'release'
4 |
5 | end
6 |
7 |
--------------------------------------------------------------------------------
/rails/app/models/release/event.rb:
--------------------------------------------------------------------------------
1 | class Release::Event < Momomoto::Table
2 |
3 | schema_name 'release'
4 |
5 | module Methods
6 |
7 | def attachments
8 | Release::Event_attachment.select({:event_id=>event_id,:conference_release_id=>conference_release_id,:public=>'t'})
9 | end
10 |
11 | end
12 |
13 | end
14 |
--------------------------------------------------------------------------------
/rails/app/models/release/event_attachment.rb:
--------------------------------------------------------------------------------
1 | class Release::Event_attachment < Momomoto::Table
2 |
3 | schema_name "release"
4 |
5 | end
6 |
7 |
--------------------------------------------------------------------------------
/rails/app/models/release/event_link.rb:
--------------------------------------------------------------------------------
1 | class Release::Event_link < Momomoto::Table
2 |
3 | schema_name "release"
4 |
5 | end
6 |
7 |
--------------------------------------------------------------------------------
/rails/app/models/release/view_schedule_day.rb:
--------------------------------------------------------------------------------
1 | class Release::View_schedule_day < Momomoto::Table
2 |
3 | schema_name "release"
4 |
5 | end
6 |
7 |
--------------------------------------------------------------------------------
/rails/app/models/release/view_schedule_event.rb:
--------------------------------------------------------------------------------
1 | class Release::View_schedule_event < Momomoto::Table
2 |
3 | schema_name "release"
4 |
5 | fk_helper_multiple :links, Release::Event_link, [:conference_release_id,:event_id]
6 | fk_helper_multiple :persons, Release::View_schedule_event_person, [:conference_release_id,:event_id,:translated]
7 | fk_helper_multiple :attachments, Release::View_schedule_event_attachment, [:conference_release_id,:event_id,:translated]
8 |
9 | end
10 |
11 |
--------------------------------------------------------------------------------
/rails/app/models/release/view_schedule_event_attachment.rb:
--------------------------------------------------------------------------------
1 | class Release::View_schedule_event_attachment < Momomoto::Table
2 |
3 | schema_name "release"
4 |
5 | fk_helper_single :event_attachment, Release::Event_attachment, [:conference_release_id,:event_attachment_id]
6 |
7 | end
8 |
9 |
--------------------------------------------------------------------------------
/rails/app/models/release/view_schedule_event_person.rb:
--------------------------------------------------------------------------------
1 | class Release::View_schedule_event_person < Momomoto::Table
2 |
3 | schema_name "release"
4 |
5 | end
6 |
7 |
--------------------------------------------------------------------------------
/rails/app/models/release/view_schedule_person.rb:
--------------------------------------------------------------------------------
1 | class Release::View_schedule_person < Momomoto::Table
2 |
3 | schema_name "release"
4 |
5 | fk_helper_multiple :events, Release::View_schedule_event_person, [:conference_release_id,:person_id]
6 | fk_helper_multiple :links, Release::Conference_person_link, [:conference_release_id,:conference_person_id]
7 |
8 | end
9 |
10 |
--------------------------------------------------------------------------------
/rails/app/models/release/view_schedule_room.rb:
--------------------------------------------------------------------------------
1 | class Release::View_schedule_room < Momomoto::Table
2 |
3 | schema_name "release"
4 |
5 | end
6 |
7 |
--------------------------------------------------------------------------------
/rails/app/models/release/view_schedule_track.rb:
--------------------------------------------------------------------------------
1 | class Release::View_schedule_track < Momomoto::Table
2 |
3 | schema_name "release"
4 |
5 | end
6 |
7 |
--------------------------------------------------------------------------------
/rails/app/models/release_preview.rb:
--------------------------------------------------------------------------------
1 |
2 | module Release_preview
3 | class Conference < Momomoto::Table
4 |
5 | fk_helper_multiple :events, View_schedule_event, [:conference_id]
6 | fk_helper_multiple :persons, View_schedule_person, [:conference_id]
7 | fk_helper_multiple :days, View_schedule_day, [:conference_id]
8 | fk_helper_multiple :rooms, View_schedule_room, [:conference_id]
9 | fk_helper_multiple :tracks, View_schedule_track, [:conference_id]
10 | fk_helper_multiple :links, Conference_link, [:conference_id]
11 |
12 | module Methods
13 |
14 | def release
15 | Conference_release.new({:conference_release=>'PREVIEW'})
16 | end
17 |
18 | end
19 |
20 | end
21 | end
22 |
--------------------------------------------------------------------------------
/rails/app/models/reset_password.rb:
--------------------------------------------------------------------------------
1 | class Reset_password < Momomoto::Procedure
2 | schema_name "auth"
3 | end
4 |
5 |
--------------------------------------------------------------------------------
/rails/app/models/role.rb:
--------------------------------------------------------------------------------
1 | class Role < Momomoto::Table
2 | schema_name "auth"
3 | default_order [:rank,:role]
4 | end
5 |
6 |
--------------------------------------------------------------------------------
/rails/app/models/role_localized.rb:
--------------------------------------------------------------------------------
1 | class Role_localized < Momomoto::Table
2 | schema_name 'auth'
3 | end
4 |
5 |
--------------------------------------------------------------------------------
/rails/app/models/role_permission.rb:
--------------------------------------------------------------------------------
1 | class Role_permission < Momomoto::Table
2 | schema_name "auth"
3 | end
4 |
5 |
--------------------------------------------------------------------------------
/rails/app/models/set_config.rb:
--------------------------------------------------------------------------------
1 | class Set_config < Momomoto::Procedure
2 | schema_name( 'pg_catalog' )
3 | parameters( [
4 | {:setting=>Momomoto::Datatype::Text.new},
5 | {:value=>Momomoto::Datatype::Text.new},
6 | {:is_local=>Momomoto::Datatype::Boolean.new(:not_null=>true)}
7 | ])
8 | end
9 |
10 |
--------------------------------------------------------------------------------
/rails/app/models/submit_event.rb:
--------------------------------------------------------------------------------
1 | class Submit_event < Momomoto::Procedure
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/timezone.rb:
--------------------------------------------------------------------------------
1 | class Timezone < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/transport.rb:
--------------------------------------------------------------------------------
1 | class Transport < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/transport_localized.rb:
--------------------------------------------------------------------------------
1 | class Transport_localized < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/ui_message.rb:
--------------------------------------------------------------------------------
1 | class Ui_message < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/ui_message_localized.rb:
--------------------------------------------------------------------------------
1 | class Ui_message_localized < Momomoto::Table
2 |
3 | def self.log_change_title( change )
4 | change.ui_message
5 | end
6 |
7 | def self.log_change_url( change )
8 | {:controller=>'localization',:action=>:ui_message,:id=>change.ui_message}
9 | end
10 |
11 | def self.log_content_columns
12 | columns.keys - [:ui_message]
13 | end
14 |
15 | end
16 |
17 |
--------------------------------------------------------------------------------
/rails/app/models/view_conference_image_modification.rb:
--------------------------------------------------------------------------------
1 | class View_conference_image_modification < Momomoto::Table
2 | default_order(Momomoto::desc(:last_modified))
3 | end
4 |
5 |
--------------------------------------------------------------------------------
/rails/app/models/view_conference_language.rb:
--------------------------------------------------------------------------------
1 | class View_conference_language < Momomoto::Table
2 |
3 | module Methods
4 |
5 | def current_transaction_id
6 | log_entry = Log::Conference_language.select_single({:conference_id=>get_column(:conference_id),:language=>get_column(:language)},{:order=>Momomoto::desc(:log_transaction_id),:limit=>1})
7 | return log_entry.log_transaction_id
8 | rescue Momomoto::Nothing_found
9 | 0
10 | end
11 |
12 | end
13 |
14 | end
15 |
16 |
--------------------------------------------------------------------------------
/rails/app/models/view_conference_person.rb:
--------------------------------------------------------------------------------
1 | class View_conference_person < Momomoto::Table
2 | default_order( Momomoto.lower(:name) )
3 | end
4 |
5 |
--------------------------------------------------------------------------------
/rails/app/models/view_conference_rating.rb:
--------------------------------------------------------------------------------
1 | class View_conference_rating < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/view_conflict_event.rb:
--------------------------------------------------------------------------------
1 | class View_conflict_event < Momomoto::Procedure
2 | schema_name "conflict"
3 | end
4 |
5 |
--------------------------------------------------------------------------------
/rails/app/models/view_conflict_event_event.rb:
--------------------------------------------------------------------------------
1 | class View_conflict_event_event < Momomoto::Procedure
2 | schema_name "conflict"
3 | end
4 |
5 |
--------------------------------------------------------------------------------
/rails/app/models/view_conflict_event_person.rb:
--------------------------------------------------------------------------------
1 | class View_conflict_event_person < Momomoto::Procedure
2 | schema_name "conflict"
3 | end
4 |
5 |
--------------------------------------------------------------------------------
/rails/app/models/view_conflict_event_person_event.rb:
--------------------------------------------------------------------------------
1 | class View_conflict_event_person_event < Momomoto::Procedure
2 | schema_name "conflict"
3 | end
4 |
5 |
--------------------------------------------------------------------------------
/rails/app/models/view_conflict_level.rb:
--------------------------------------------------------------------------------
1 | class View_conflict_level < Momomoto::Table
2 | default_order( :rank )
3 | end
4 |
5 |
--------------------------------------------------------------------------------
/rails/app/models/view_conflict_person.rb:
--------------------------------------------------------------------------------
1 | class View_conflict_person < Momomoto::Procedure
2 | schema_name "conflict"
3 | end
4 |
5 |
--------------------------------------------------------------------------------
/rails/app/models/view_event.rb:
--------------------------------------------------------------------------------
1 | class View_event < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/view_event_attachment.rb:
--------------------------------------------------------------------------------
1 | class View_event_attachment < Momomoto::Table
2 |
3 | module Methods
4 |
5 | def current_transaction_id
6 | log_entry = Log::Event_attachment.select_single({:event_attachment_id=>get_column(:event_attachment_id)},{:order=>Momomoto::desc(:log_transaction_id),:limit=>1})
7 | return log_entry.log_transaction_id
8 | rescue Momomoto::Nothing_found
9 | 0
10 | end
11 |
12 | end
13 |
14 | fk_helper_single :event_attachment, Event_attachment, [:event_attachment_id]
15 |
16 | end
17 |
18 |
--------------------------------------------------------------------------------
/rails/app/models/view_event_category_rating.rb:
--------------------------------------------------------------------------------
1 | class View_event_category_rating < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/view_event_duration.rb:
--------------------------------------------------------------------------------
1 | class View_event_duration < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/view_event_feedback.rb:
--------------------------------------------------------------------------------
1 | class View_event_feedback < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/view_event_feedback_statistics.rb:
--------------------------------------------------------------------------------
1 | class View_event_feedback_statistics < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/view_event_image_modification.rb:
--------------------------------------------------------------------------------
1 | class View_event_image_modification < Momomoto::Table
2 | default_order(Momomoto::desc(:last_modified))
3 | end
4 |
5 |
--------------------------------------------------------------------------------
/rails/app/models/view_event_origin.rb:
--------------------------------------------------------------------------------
1 | class View_event_origin < Momomoto::Table
2 | default_order( Momomoto::lower(:name) )
3 | end
4 |
5 |
--------------------------------------------------------------------------------
/rails/app/models/view_event_person.rb:
--------------------------------------------------------------------------------
1 | class View_event_person < Momomoto::Table
2 |
3 | module Methods
4 |
5 | def current_transaction_id
6 | log_entry = Log::Event_person.select_single({:event_person_id=>get_column(:event_person_id)},{:order=>Momomoto::desc(:log_transaction_id),:limit=>1})
7 | return log_entry.log_transaction_id
8 | rescue Momomoto::Nothing_found
9 | 0
10 | end
11 |
12 | end
13 |
14 | end
15 |
16 |
--------------------------------------------------------------------------------
/rails/app/models/view_event_rating.rb:
--------------------------------------------------------------------------------
1 | class View_event_rating < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/view_event_rating_public.rb:
--------------------------------------------------------------------------------
1 | class View_event_rating_public < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/view_event_state_progress_statistic.rb:
--------------------------------------------------------------------------------
1 | class View_event_state_progress_statistic < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/view_event_state_statistic.rb:
--------------------------------------------------------------------------------
1 | class View_event_state_statistic < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/view_find_account.rb:
--------------------------------------------------------------------------------
1 | class View_find_account < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/view_find_conference.rb:
--------------------------------------------------------------------------------
1 | class View_find_conference < Momomoto::Table
2 | default_order( Momomoto.lower(:acronym) )
3 | end
4 |
5 |
--------------------------------------------------------------------------------
/rails/app/models/view_find_event.rb:
--------------------------------------------------------------------------------
1 | class View_find_event < Momomoto::Table
2 | default_order( Momomoto.lower([:title,:subtitle]))
3 | end
4 |
5 |
--------------------------------------------------------------------------------
/rails/app/models/view_find_person.rb:
--------------------------------------------------------------------------------
1 | class View_find_person < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/view_last_active.rb:
--------------------------------------------------------------------------------
1 | class View_last_active < Momomoto::Table
2 | end
3 |
--------------------------------------------------------------------------------
/rails/app/models/view_mail_accepted_speaker.rb:
--------------------------------------------------------------------------------
1 | class View_mail_accepted_speaker < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/view_mail_all_reviewer.rb:
--------------------------------------------------------------------------------
1 | class View_mail_all_reviewer < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/view_mail_all_speaker.rb:
--------------------------------------------------------------------------------
1 | class View_mail_all_speaker < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/view_mail_missing_slides.rb:
--------------------------------------------------------------------------------
1 | class View_mail_missing_slides < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/view_own_events_coordinator.rb:
--------------------------------------------------------------------------------
1 | class View_own_events_coordinator < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/view_own_events_participant.rb:
--------------------------------------------------------------------------------
1 | class View_own_events_participant < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/view_person.rb:
--------------------------------------------------------------------------------
1 | class View_person < Momomoto::Table
2 | default_order( Momomoto.lower(:name) )
3 | end
4 |
5 |
--------------------------------------------------------------------------------
/rails/app/models/view_person_image_modification.rb:
--------------------------------------------------------------------------------
1 | class View_person_image_modification < Momomoto::Table
2 | default_order(Momomoto::desc(:last_modified))
3 | end
4 |
5 |
--------------------------------------------------------------------------------
/rails/app/models/view_person_rating.rb:
--------------------------------------------------------------------------------
1 | class View_person_rating < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/view_recent_changes.rb:
--------------------------------------------------------------------------------
1 | class View_recent_changes < Momomoto::Table
2 | end
3 |
--------------------------------------------------------------------------------
/rails/app/models/view_report_accommodation.rb:
--------------------------------------------------------------------------------
1 | class View_report_accommodation < Momomoto::Table
2 | end
3 |
--------------------------------------------------------------------------------
/rails/app/models/view_report_arrived.rb:
--------------------------------------------------------------------------------
1 | class View_report_arrived < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/view_report_expenses.rb:
--------------------------------------------------------------------------------
1 | class View_report_expenses < Momomoto::Table
2 | Reportfields = [:name,:fee,:fee_currency_name,:travel_cost,:travel_currency_name,:accommodation_cost,:accommodation_currency_name]
3 | end
4 |
5 |
--------------------------------------------------------------------------------
/rails/app/models/view_report_feedback.rb:
--------------------------------------------------------------------------------
1 | class View_report_feedback < Momomoto::Table
2 | Reportfields = [:title,:comments,:votes]
3 | end
4 |
5 |
--------------------------------------------------------------------------------
/rails/app/models/view_report_missing.rb:
--------------------------------------------------------------------------------
1 | class View_report_missing < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/view_report_not_arrived.rb:
--------------------------------------------------------------------------------
1 | class View_report_not_arrived < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/view_report_paper.rb:
--------------------------------------------------------------------------------
1 | class View_report_paper < Momomoto::Table
2 | Reportfields = [:title,:paper_submitted,:pages]
3 | end
4 |
5 |
--------------------------------------------------------------------------------
/rails/app/models/view_report_pickup.rb:
--------------------------------------------------------------------------------
1 | class View_report_pickup < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/view_report_resources.rb:
--------------------------------------------------------------------------------
1 | class View_report_resources < Momomoto::Table
2 | Reportfields = [:title,:resources]
3 | end
4 |
5 |
--------------------------------------------------------------------------------
/rails/app/models/view_report_review.rb:
--------------------------------------------------------------------------------
1 | class View_report_review < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/view_report_slides.rb:
--------------------------------------------------------------------------------
1 | class View_report_slides < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/view_schedule.rb:
--------------------------------------------------------------------------------
1 | class View_schedule < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/view_schedule_day.rb:
--------------------------------------------------------------------------------
1 | class View_schedule_day < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/view_schedule_event.rb:
--------------------------------------------------------------------------------
1 | class View_schedule_event < Momomoto::Table
2 |
3 | fk_helper_multiple :links, Event_link, [:event_id]
4 | fk_helper_multiple :persons, View_schedule_event_person, [:event_id,:translated]
5 | fk_helper_multiple :attachments, View_schedule_event_attachment, [:event_id,:translated]
6 |
7 | end
8 |
9 |
--------------------------------------------------------------------------------
/rails/app/models/view_schedule_event_attachment.rb:
--------------------------------------------------------------------------------
1 | class View_schedule_event_attachment < Momomoto::Table
2 |
3 | fk_helper_single :event_attachment, Event_attachment, [:event_attachment_id]
4 |
5 | end
6 |
7 |
--------------------------------------------------------------------------------
/rails/app/models/view_schedule_event_person.rb:
--------------------------------------------------------------------------------
1 | class View_schedule_event_person < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/view_schedule_person.rb:
--------------------------------------------------------------------------------
1 | class View_schedule_person < Momomoto::Table
2 |
3 | fk_helper_multiple :events, View_schedule_event_person, [:conference_id,:person_id]
4 | fk_helper_multiple :links, Conference_person_link, [:conference_person_id]
5 |
6 | end
7 |
8 |
--------------------------------------------------------------------------------
/rails/app/models/view_schedule_room.rb:
--------------------------------------------------------------------------------
1 | class View_schedule_room < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/models/view_schedule_track.rb:
--------------------------------------------------------------------------------
1 | class View_schedule_track < Momomoto::Table
2 | end
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/stylesheets/_helper.sass:
--------------------------------------------------------------------------------
1 |
2 | =border-radius(!radius)
3 | :-moz-border-radius = !radius
4 | :-webkit-border-radius = !radius
5 | :border-radius = !radius
6 |
7 |
--------------------------------------------------------------------------------
/rails/app/stylesheets/_img.sass:
--------------------------------------------------------------------------------
1 |
2 | img
3 | border: none
4 | vertical-align: middle
5 | border: 0px
6 | margin: 0px
7 |
8 | &.tiny
9 | height: 16px
10 | width: 16px
11 |
12 | &.small
13 | height: 32px
14 | width: 32px
15 |
16 | &.medium
17 | height: 48px
18 | width: 48px
19 |
20 | &.large
21 | height: 64px
22 | width: 64px
23 |
24 | &.huge
25 | height: 128px
26 | width: 128px
27 |
28 | a img
29 | border: 1px solid transparent
30 |
31 | &:hover
32 | border: 1px solid red
33 |
34 |
--------------------------------------------------------------------------------
/rails/app/views/admin/index.rxml:
--------------------------------------------------------------------------------
1 | xml.div
2 |
--------------------------------------------------------------------------------
/rails/app/views/auth_failed.rxml:
--------------------------------------------------------------------------------
1 | xml.html do
2 | xml.head do
3 | xml.title "Authentication failed."
4 | end
5 | xml.body do
6 | xml.p "Authentication failed."
7 | xml.p do
8 | xml.text! 'If you forgot your password you may '
9 | xml.a 'reset your password', :href=>url_for(:controller=>'user',:action=>:forgot_password)
10 | xml.text! '.'
11 | end
12 | end
13 | end
14 |
15 |
--------------------------------------------------------------------------------
/rails/app/views/conference/_conference_comment.rxml:
--------------------------------------------------------------------------------
1 | xml.div(:id=>'content-comment') do
2 | xml.img( :src=>url_for(:controller=>'image',:action=>:conference,:id=>@conference.conference_id,:size=>'128x128'),:style=>'float: right;')
3 | xml << text_area_fieldset( @conference, :remark, {:rows=>5,:cols=>60})
4 | end
5 |
6 |
--------------------------------------------------------------------------------
/rails/app/views/conference/select.rxml:
--------------------------------------------------------------------------------
1 | xml.div({:id=>'data'}) do
2 |
3 | xml.fieldset do
4 | xml.h2 "You have not yet selected a current conference to work with."
5 |
6 | xml.br
7 | xml.p "Please select a current conference from the listbox on the left."
8 |
9 | xml.p "or"
10 |
11 | xml.p do
12 | xml.a("Create a new conference.", :href=>url_for({:action=>:new}))
13 | end
14 |
15 | end
16 |
17 | end
18 |
19 |
--------------------------------------------------------------------------------
/rails/app/views/event/_event_comment.rxml:
--------------------------------------------------------------------------------
1 | xml.div(:id=>'content-comment') do
2 | if not @event.new_record?
3 | xml.img( :src=>url_for(:controller=>'image',:action=>:event,:id=>@event.event_id,:size=>'128x128'),:style=>'float: right;',:height=>128,:width=>128)
4 | end
5 | xml << text_area_fieldset( @event, :remark, {:rows=>5,:cols=>60})
6 | end
7 |
8 |
--------------------------------------------------------------------------------
/rails/app/views/event/_event_related.rxml:
--------------------------------------------------------------------------------
1 | xml.div(:id=>'content-related') do
2 |
3 | xml.fieldset do
4 | xml.legend local('related')
5 |
6 | end
7 |
8 | end
9 |
--------------------------------------------------------------------------------
/rails/app/views/event/_event_resources.rxml:
--------------------------------------------------------------------------------
1 | xml.div(:id=>'content-resources') do
2 |
3 | xml << text_area_fieldset( @event, :resources, {:rows=>12} )
4 |
5 | end
6 |
--------------------------------------------------------------------------------
/rails/app/views/event/own.rxml:
--------------------------------------------------------------------------------
1 | tabs = [:participant,:coordinator]
2 |
3 | xml << js_tabs( tabs )
4 |
5 | xml.div({:id=>'data'}) do
6 |
7 | tabs.each do | tab |
8 | xml.div(:id=>"content-#{tab}") do
9 | xml.fieldset do
10 | xml.legend local("own_events::tab::#{tab}")
11 | xml << event_table( @events[tab],{:id=>"event_table_#{tab}"})
12 | end
13 | end
14 | end
15 |
16 | xml.script( "switch_tab();", { :type => 'text/javascript' } )
17 | end
18 |
19 |
20 |
--------------------------------------------------------------------------------
/rails/app/views/event/state.rxml:
--------------------------------------------------------------------------------
1 | xml.div({:id=>:data}) do
2 |
3 | xml.fieldset do
4 | xml.div({:id=>:results})
5 | xml << event_table( @results )
6 | end
7 |
8 | xml.a({:href=>url_for({:controller=>'csv',:action=>:events,:id=>@results.map(&:event_id).join(' ')})}) do
9 | xml.button("CSV",{:type=>:button})
10 | end
11 |
12 | end
13 |
14 |
--------------------------------------------------------------------------------
/rails/app/views/feedback/thankyou.rxml:
--------------------------------------------------------------------------------
1 | xml.div({:class=>:section}) do
2 | xml.p(local('feedback::thankyou'))
3 | xml.p do
4 | xml.text! "Return to "
5 | xml.a(@event.title,{:href=>"#{@conference.export_base_url}events/#{@event.event_id}.#{@current_language}.html"})
6 | end
7 | end
8 |
--------------------------------------------------------------------------------
/rails/app/views/layouts/schedule.rxml:
--------------------------------------------------------------------------------
1 | xml.div(:id=>'content') do
2 | xml << @content_for_layout
3 | end
4 | xml << @conference.schedule_html_include if @conference.schedule_html_include
5 |
--------------------------------------------------------------------------------
/rails/app/views/layouts/xcal.rxml:
--------------------------------------------------------------------------------
1 | xml.instruct!
2 | xml.iCalendar(:"xmlns:xCal"=>"urn:ietf:params:xml:ns:xcal", :"xmlns:pentabarf"=>"http://pentabarf.org") do
3 | xml.vcalendar do
4 | xml.version "2.0"
5 | xml.prodid "-//Pentabarf//Schedule #{@conference.release}//EN"
6 | xml.tag! :"x-wr-caldesc", "#{@conference.acronym} Schedule Release #{@conference.release}"
7 | xml.tag! :"x-wr-calname", "#{@conference.acronym} Schedule"
8 | xml << yield
9 | end
10 | end
11 |
--------------------------------------------------------------------------------
/rails/app/views/notifier/activate_account.rhtml:
--------------------------------------------------------------------------------
1 | Dear <%= @name %>,
2 |
3 | Thank you for taking the time to create an account. To enable your account just
4 | click on this link:
5 | <%= @link %>
6 |
7 | This link will only work exactly once. After activating you can directly login
8 | at the submission interface.
9 |
10 |
--------------------------------------------------------------------------------
/rails/app/views/notifier/forgot_password.rhtml:
--------------------------------------------------------------------------------
1 | Dear <%= @name %>,
2 |
3 | Someone (probably you, from IP address <%= @remote_ip %>)
4 | requested a password reset.
5 |
6 | To reset your password just follow the link where you can define a new
7 | password:
8 | <%= @link %>
9 |
10 |
--------------------------------------------------------------------------------
/rails/app/views/notifier/general.rhtml:
--------------------------------------------------------------------------------
1 | <%= @text %>
2 |
--------------------------------------------------------------------------------
/rails/app/views/pentabarf/_activity.rxml:
--------------------------------------------------------------------------------
1 | xml.div do
2 | @last_active.each do | name |
3 | xml.a({:href=>url_for(:controller=>'person',:action=>:edit,:id=>name.person_id), :title => name.name }) do
4 | xml.span( name.login_name, {:class=>'user'})
5 | xml.span( name.login_diff.strftime('%M:%S'), {:class=>'time'})
6 | end
7 | end
8 | end
9 |
--------------------------------------------------------------------------------
/rails/app/views/pentabarf/_recipients.rxml:
--------------------------------------------------------------------------------
1 | xml.ul({:class=>:recipients}) do
2 | @recipients.each do | r |
3 | xml.li do
4 | xml.a(r.name,{:href=>url_for({:controller=>'person',:action=>:edit,:id=>r.person_id}),:title=>r.email})
5 | end
6 | end
7 | end
8 |
9 |
--------------------------------------------------------------------------------
/rails/app/views/pentabarf/recent_changes.rxml:
--------------------------------------------------------------------------------
1 | xml.div( :id => 'object-image' ) do
2 | xml.img( :src => image_path( 'icon-list-64x64.png' ), :class => 'object-image' )
3 | end
4 |
5 | xml.div( :id => 'data' ) do
6 | xml.fieldset do
7 | xml.ul({:id=>:recent_changes_list,:class=>:recent_changes}) do
8 |
9 | @changes.each do | changeset |
10 | xml << LogEntry.new( changeset, controller ).to_xml
11 | end
12 |
13 | end
14 | end
15 | end
16 |
17 |
--------------------------------------------------------------------------------
/rails/app/views/person/_person_comment.rxml:
--------------------------------------------------------------------------------
1 | xml.div(:id=>'content-comment') do
2 | xml.img( :src=>url_for(:controller=>'image',:action=>:person,:id=>@person.person_id,:size=>'128x128'),:style=>'float: right;')
3 | xml << text_area_fieldset( @conference_person, :remark, {:rows=>5,:cols=>60})
4 | end
5 |
6 |
--------------------------------------------------------------------------------
/rails/app/views/person/_person_description.rxml:
--------------------------------------------------------------------------------
1 | xml.div(:id=>'content-description') do
2 |
3 | xml << text_area_fieldset( @conference_person, :abstract, {:rows=>5,:counter=>@conference.abstract_length,:markup_help=>true} )
4 | xml << text_area_fieldset( @conference_person, :description, {:rows=>12,:counter=>@conference.description_length,:markup_help=>true} )
5 |
6 | end
7 |
8 |
--------------------------------------------------------------------------------
/rails/app/views/report/index.rxml:
--------------------------------------------------------------------------------
1 | xml.div({:id=>:data}) do
2 | xml.ul do
3 | ReportController::REPORTS.each do | report |
4 | xml.li do
5 | xml.a( local("report::#{report}"),{:href=>url_for({:action=>report})})
6 | end
7 | end
8 | end
9 | end
10 |
--------------------------------------------------------------------------------
/rails/app/views/search/_event_results.rxml:
--------------------------------------------------------------------------------
1 |
2 | paginate( xml, @results, params[:id].to_i ) do | results |
3 | xml << event_table( results ) if results.length > 0
4 | end
5 |
6 | xml.a({:href=>url_for({:controller=>'csv',:action=>:events,:id=>@results.map(&:event_id).join(' ')})}) do
7 | xml.button("CSV",{:type=>:button})
8 | end
9 |
--------------------------------------------------------------------------------
/rails/app/views/shared/_modification_buttons.rxml:
--------------------------------------------------------------------------------
1 | xml.div( :id => 'buttons', :style => 'display: none;' ) do
2 | xml.button( local('form::cancel'), {:type=>'button',:id=>'cancel-button',:accesskey=>'c',:onclick=>'clear_tainting();window.location.reload( true );'} )
3 | xml.button( local('form::save'), {:type=>'submit',:id=>'submit-button',:accesskey=>'s',:onclick=>'clear_tainting();'} )
4 | end
5 |
--------------------------------------------------------------------------------
/rails/app/views/submission/_event_description.rxml:
--------------------------------------------------------------------------------
1 | xml.div(:id=>'content-description') do
2 |
3 | xml << text_area_fieldset( @event, :abstract, {:rows=>5,:counter=>@conference.abstract_length,:markup_help=>true} )
4 | xml << text_area_fieldset( @event, :description, {:rows=>12,:counter=>@conference.description_length,:markup_help=>true} )
5 |
6 | end
7 |
8 |
--------------------------------------------------------------------------------
/rails/app/views/submission/_event_resources.rxml:
--------------------------------------------------------------------------------
1 | xml.div(:id=>'content-resources') do
2 |
3 | xml << text_area_fieldset( @event, :resources, {:rows=>12} )
4 |
5 | end
6 |
--------------------------------------------------------------------------------
/rails/app/views/submission/_person_description.rxml:
--------------------------------------------------------------------------------
1 | xml.div(:id=>'content-description') do
2 |
3 | xml << text_area_fieldset( @conference_person, :abstract, {:rows=>5,:counter=>@conference.abstract_length,:markup_help=>true,
4 | :hint=>"Required. One or two sentences or a short paragraph about yourself."} )
5 | xml << text_area_fieldset( @conference_person, :description, {:rows=>12,:counter=>@conference.description_length,:markup_help=>true,
6 | :hint=>"Optional. Another paragraph about yourself. Please don't duplicate the brief biography!"} )
7 |
8 | end
9 |
10 |
--------------------------------------------------------------------------------
/rails/app/views/submission/_submission_comment.rxml:
--------------------------------------------------------------------------------
1 | xml.div(:id=>'content-comment') do
2 | xml.img( :src=>url_for(:controller=>'image',:action=>:event,:id=>@event.event_id,:size=>'128x128'),:style=>'float: right;') if not @event.new_record?
3 | xml << text_area_fieldset( @event, :submission_notes, {:rows=>5,:cols=>60})
4 | end
5 |
6 |
--------------------------------------------------------------------------------
/rails/app/views/user/account_activated.rxml:
--------------------------------------------------------------------------------
1 |
2 | xml.h3 local('user::thank_you')
3 | xml.p local('user::account_activated_please_login')
4 |
5 | xml.a( local('user::proceed_to_submission'),{:href=>url_for(:controller=>'submission',:conference=> params[:id] ),:style=>"color:blue;text-decoration:underline;margin-left: 5em;"})
6 |
7 |
--------------------------------------------------------------------------------
/rails/app/views/user/account_done.rxml:
--------------------------------------------------------------------------------
1 |
2 | xml.p local('user::thanks_for_registering')
3 |
4 |
--------------------------------------------------------------------------------
/rails/app/views/user/forgot_password.rxml:
--------------------------------------------------------------------------------
1 | xml.div(:id=>:data) do
2 | xml.p local('user::forgot_password_heading')
3 | xml.form(:action=>url_for(:action=>:save_forgot_password)) do
4 | xml.table do
5 | xml.tr do
6 | xml.td( local('account::login_name') )
7 | xml.td do xml.input({:type=>:text,:name=>'login_name'}) end
8 | end
9 | end
10 | xml.input(:type=>:submit)
11 | end
12 | end
13 |
14 |
--------------------------------------------------------------------------------
/rails/app/views/user/index.rxml:
--------------------------------------------------------------------------------
1 | xml.div do
2 | xml.h3 do
3 | xml.a( local('user::index_heading'),{:href=>url_for(:action=>:new_account,:id=>params[:id]),:style=>"text-decoration:underline;color:blue;"})
4 | end
5 | if @conferences
6 | xml.p local('user::use_account_for_these_conferences')
7 | xml.div do
8 | xml.ul do
9 | @conferences.each do | conf |
10 | xml.li do
11 | xml.a(conf.title, {:style=>"text-decoration: underline;color: blue;",:href=>url_for(:controller=>'submission',:conference=>conf.acronym,:action=>:index)})
12 | end
13 | end
14 | end
15 | end
16 | end
17 |
18 | end
19 |
--------------------------------------------------------------------------------
/rails/app/views/user/reset_link_sent.rxml:
--------------------------------------------------------------------------------
1 | xml.div(:id=>:data) do
2 | xml.p local('user::reset_link_has_been_sent')
3 | end
4 |
5 |
--------------------------------------------------------------------------------
/rails/app/views/user/reset_password.rxml:
--------------------------------------------------------------------------------
1 | xml.div(:id=>:data) do
2 | xml.p local('user::enter_new_password')
3 | xml.form(:action=>url_for(:action=>:save_reset_password,:id=>params[:id]),:id=>'content_form',:method=>'post',:enctype=>'multipart/form-data') do
4 |
5 | xml.table do
6 | xml.tr do
7 | xml.td local('account::password')
8 | xml.td do xml.input(:type=>:password,:name=>:password) end
9 | end
10 | xml.tr do
11 | xml.td local('account::repeat_password')
12 | xml.td do xml.input(:type=>:password,:name=>:password2) end
13 | end
14 | end
15 |
16 | xml.input({:type=>:submit})
17 |
18 | end
19 | end
20 |
--------------------------------------------------------------------------------
/rails/config/.gitignore:
--------------------------------------------------------------------------------
1 | *.yml
2 |
--------------------------------------------------------------------------------
/rails/config/compass.config:
--------------------------------------------------------------------------------
1 | # Require any additional compass plugins here.
2 | project_type = :rails
3 | project_path = RAILS_ROOT if defined?(RAILS_ROOT)
4 | # Set this to the root of your project when deployed:
5 | http_path = "/"
6 | css_dir = "public/stylesheets"
7 | sass_dir = "app/stylesheets"
8 | images_dir = "public/images"
9 | javascripts_dir = "public/javascripts"
10 | # To enable relative paths to assets via compass helper functions. Uncomment:
11 | # relative_assets = true
12 | http_images_path = "/images"
13 | http_stylesheets_path = "/stylesheets"
14 | http_javascripts_path = "/javascripts"
15 |
--------------------------------------------------------------------------------
/rails/config/database.yml.template:
--------------------------------------------------------------------------------
1 | production:
2 | adapter: postgresql
3 | database: pentabarf
4 | username: pentabarf
5 | password:
6 | host: localhost
7 |
8 | development:
9 | adapter: postgresql
10 | database: pentabarf
11 | username: pentabarf
12 | password:
13 | host: localhost
14 |
15 | # Warning: The database defined as 'test' will be erased and
16 | # re-generated from your development database when you run 'rake'.
17 | # Do not set this db to the same as development or production.
18 | test:
19 | adapter: postgresql
20 | database: pentabarf_test
21 | username: pentabarf
22 | password:
23 | host: localhost
24 |
25 |
--------------------------------------------------------------------------------
/rails/config/initializers/security_fix.rb:
--------------------------------------------------------------------------------
1 | ActionController::Base.param_parsers.delete(Mime::XML)
2 |
--------------------------------------------------------------------------------
/rails/config/jabber.yml.template:
--------------------------------------------------------------------------------
1 | daemon:
2 | jid:
3 | server:
4 | port:
5 | password:
6 | socket_path: /tmp/xmpp
7 |
8 | recipients:
9 | - sven@pentabarf.org
10 |
11 |
--------------------------------------------------------------------------------
/rails/config/mail.yml.template:
--------------------------------------------------------------------------------
1 | address: localhost
2 | port: 25
3 | domain: localhost
4 | #user_name:
5 | #password:
6 | #authentication: login
7 | from: noreply@pentabarf.org
8 | always_cc:
9 |
10 | exception_recipients:
11 | - foo@example.com
12 |
13 | exception_subject: 'Pentabarf Exception'
14 |
15 |
--------------------------------------------------------------------------------
/rails/doc/README_FOR_APP:
--------------------------------------------------------------------------------
1 | Use this README file to introduce your application and point to useful places in the API for learning more.
2 | Run "rake appdoc" to generate API documentation for your models and controllers.
--------------------------------------------------------------------------------
/rails/lib/builder_enhancements.rb:
--------------------------------------------------------------------------------
1 |
2 | require 'builder'
3 |
4 | module Builder
5 |
6 | class XmlMarkup
7 |
8 | def input( options, &block )
9 | options[:id] ||= options[:name]
10 | method_missing(:input, options, &block)
11 | end
12 |
13 | def textarea( value, options, &block )
14 | options[:id] ||= options[:name]
15 | method_missing(:textarea, value, options, &block)
16 | end
17 |
18 | def form( options, &block )
19 | options[:method] ||= :post
20 | method_missing(:form, options) do | xml |
21 | xml.input({:type=>:hidden,:name=>:token,:id=>"token#{options[:action]}",:value=>Token.generate(options[:action])})
22 | yield( xml )
23 | end
24 | end
25 |
26 | end
27 |
28 | end
29 |
30 |
--------------------------------------------------------------------------------
/rails/lib/maillogger.rb:
--------------------------------------------------------------------------------
1 |
2 | class MailLogger
3 |
4 | class << self
5 |
6 | def init
7 | @@config = YAML.load_file( File.join( RAILS_ROOT, 'config', 'mail.yml' ) )
8 |
9 | raise 'Mail not configured' if !( @@config['from'] && @@config['exception_recipients'] )
10 |
11 | return true
12 | rescue Exception
13 | return false
14 | end
15 |
16 | def log( subject, text )
17 | return if !class_variables.member?(:@@config) && !init
18 |
19 | subject = @@config['exception_subject'].to_s + ': ' + subject
20 |
21 | @@config['exception_recipients'].each do | recipient |
22 | Notifier::deliver_general(recipient, subject, text, @@config['from'])
23 | end
24 |
25 | end
26 |
27 | end
28 |
29 | end
30 |
31 |
--------------------------------------------------------------------------------
/rails/lib/momomoto_auth.rb:
--------------------------------------------------------------------------------
1 |
2 | module Momomoto
3 |
4 | class Table
5 |
6 | class << self
7 |
8 | alias_method( :__select, :select )
9 |
10 | def select( *args )
11 | results = __select( *args )
12 | return POPE.table_select( self, results )
13 | end
14 |
15 |
16 | alias_method( :__write, :write )
17 |
18 | def write( *args )
19 | if args[0].dirty?
20 | POPE.table_write( self, *args )
21 | return __write( *args )
22 | end
23 | false
24 | end
25 |
26 | alias_method( :__delete, :delete )
27 |
28 | def delete( *args )
29 | POPE.table_delete( self, *args )
30 | __delete( *args )
31 | end
32 |
33 | end
34 |
35 | end
36 |
37 | end
38 |
--------------------------------------------------------------------------------
/rails/lib/token.rb:
--------------------------------------------------------------------------------
1 |
2 | require 'digest/sha1'
3 |
4 | # class that handles token generation
5 | class Token
6 | class << self
7 |
8 | def generate( url )
9 | salt = POPE.user.password[0..15] rescue ""
10 | Digest::SHA1.hexdigest( url + Digest::SHA1.hexdigest( salt ) )
11 | end
12 |
13 | end
14 | end
15 |
--------------------------------------------------------------------------------
/rails/log/.gitignore:
--------------------------------------------------------------------------------
1 | *.log
2 |
--------------------------------------------------------------------------------
/rails/public/404.html:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 | File not found
6 |
7 |
8 |
--------------------------------------------------------------------------------
/rails/public/500.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Server Error
6 |
7 |
8 |
9 |
10 |
11 |

12 |
13 |
The server is having technical difficulties please try again later.
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/rails/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/favicon.ico
--------------------------------------------------------------------------------
/rails/public/images/bullet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/images/bullet.png
--------------------------------------------------------------------------------
/rails/public/images/erisdiscordia-128x128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/images/erisdiscordia-128x128.png
--------------------------------------------------------------------------------
/rails/public/images/erisdiscordia-160x160.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/images/erisdiscordia-160x160.png
--------------------------------------------------------------------------------
/rails/public/images/erisdiscordia-bug-160x160.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/images/erisdiscordia-bug-160x160.png
--------------------------------------------------------------------------------
/rails/public/images/icon-clock-128x128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/images/icon-clock-128x128.png
--------------------------------------------------------------------------------
/rails/public/images/icon-clock-256x256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/images/icon-clock-256x256.png
--------------------------------------------------------------------------------
/rails/public/images/icon-clock-64x64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/images/icon-clock-64x64.png
--------------------------------------------------------------------------------
/rails/public/images/icon-conference-128x128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/images/icon-conference-128x128.png
--------------------------------------------------------------------------------
/rails/public/images/icon-conference-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/images/icon-conference-32x32.png
--------------------------------------------------------------------------------
/rails/public/images/icon-conference-64x64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/images/icon-conference-64x64.png
--------------------------------------------------------------------------------
/rails/public/images/icon-event-128x128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/images/icon-event-128x128.png
--------------------------------------------------------------------------------
/rails/public/images/icon-event-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/images/icon-event-32x32.png
--------------------------------------------------------------------------------
/rails/public/images/icon-event-64x64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/images/icon-event-64x64.png
--------------------------------------------------------------------------------
/rails/public/images/icon-find-conference-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/images/icon-find-conference-32x32.png
--------------------------------------------------------------------------------
/rails/public/images/icon-find-event-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/images/icon-find-event-32x32.png
--------------------------------------------------------------------------------
/rails/public/images/icon-find-person-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/images/icon-find-person-32x32.png
--------------------------------------------------------------------------------
/rails/public/images/icon-im-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/images/icon-im-32x32.png
--------------------------------------------------------------------------------
/rails/public/images/icon-link-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/images/icon-link-32x32.png
--------------------------------------------------------------------------------
/rails/public/images/icon-list-64x64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/images/icon-list-64x64.png
--------------------------------------------------------------------------------
/rails/public/images/icon-minus-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/images/icon-minus-16x16.png
--------------------------------------------------------------------------------
/rails/public/images/icon-new-conference-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/images/icon-new-conference-32x32.png
--------------------------------------------------------------------------------
/rails/public/images/icon-new-event-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/images/icon-new-event-32x32.png
--------------------------------------------------------------------------------
/rails/public/images/icon-new-person-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/images/icon-new-person-32x32.png
--------------------------------------------------------------------------------
/rails/public/images/icon-person-128x128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/images/icon-person-128x128.png
--------------------------------------------------------------------------------
/rails/public/images/icon-person-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/images/icon-person-32x32.png
--------------------------------------------------------------------------------
/rails/public/images/icon-person-64x64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/images/icon-person-64x64.png
--------------------------------------------------------------------------------
/rails/public/images/icon-phone-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/images/icon-phone-32x32.png
--------------------------------------------------------------------------------
/rails/public/images/icon-plus-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/images/icon-plus-16x16.png
--------------------------------------------------------------------------------
/rails/public/javascripts/jscalendar/img.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/javascripts/jscalendar/img.gif
--------------------------------------------------------------------------------
/rails/public/javascripts/jscalendar/lang/calendar-bg.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/javascripts/jscalendar/lang/calendar-bg.js
--------------------------------------------------------------------------------
/rails/public/javascripts/jscalendar/lang/calendar-big5.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/javascripts/jscalendar/lang/calendar-big5.js
--------------------------------------------------------------------------------
/rails/public/javascripts/jscalendar/lang/calendar-ca.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/javascripts/jscalendar/lang/calendar-ca.js
--------------------------------------------------------------------------------
/rails/public/javascripts/jscalendar/lang/calendar-cs-win.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/javascripts/jscalendar/lang/calendar-cs-win.js
--------------------------------------------------------------------------------
/rails/public/javascripts/jscalendar/lang/calendar-es.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/javascripts/jscalendar/lang/calendar-es.js
--------------------------------------------------------------------------------
/rails/public/javascripts/jscalendar/lang/calendar-fr.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/javascripts/jscalendar/lang/calendar-fr.js
--------------------------------------------------------------------------------
/rails/public/javascripts/jscalendar/lang/calendar-hr.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/javascripts/jscalendar/lang/calendar-hr.js
--------------------------------------------------------------------------------
/rails/public/javascripts/jscalendar/lang/calendar-hu.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/javascripts/jscalendar/lang/calendar-hu.js
--------------------------------------------------------------------------------
/rails/public/javascripts/jscalendar/lang/calendar-jp.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/javascripts/jscalendar/lang/calendar-jp.js
--------------------------------------------------------------------------------
/rails/public/javascripts/jscalendar/lang/calendar-ko.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/javascripts/jscalendar/lang/calendar-ko.js
--------------------------------------------------------------------------------
/rails/public/javascripts/jscalendar/lang/calendar-lt.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/javascripts/jscalendar/lang/calendar-lt.js
--------------------------------------------------------------------------------
/rails/public/javascripts/jscalendar/lang/calendar-lv.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/javascripts/jscalendar/lang/calendar-lv.js
--------------------------------------------------------------------------------
/rails/public/javascripts/jscalendar/lang/calendar-ru_win_.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/javascripts/jscalendar/lang/calendar-ru_win_.js
--------------------------------------------------------------------------------
/rails/public/javascripts/jscalendar/lang/calendar-sp.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/javascripts/jscalendar/lang/calendar-sp.js
--------------------------------------------------------------------------------
/rails/public/javascripts/jscalendar/lang/calendar-sv.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/javascripts/jscalendar/lang/calendar-sv.js
--------------------------------------------------------------------------------
/rails/public/javascripts/jscalendar/lang/calendar-tr.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/javascripts/jscalendar/lang/calendar-tr.js
--------------------------------------------------------------------------------
/rails/public/javascripts/jscalendar/lang/calendar-zh.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/javascripts/jscalendar/lang/calendar-zh.js
--------------------------------------------------------------------------------
/rails/public/javascripts/jscalendar/menuarrow.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/javascripts/jscalendar/menuarrow.gif
--------------------------------------------------------------------------------
/rails/public/javascripts/jscalendar/menuarrow2.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/javascripts/jscalendar/menuarrow2.gif
--------------------------------------------------------------------------------
/rails/public/javascripts/jscalendar/skins/aqua/active-bg.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/javascripts/jscalendar/skins/aqua/active-bg.gif
--------------------------------------------------------------------------------
/rails/public/javascripts/jscalendar/skins/aqua/dark-bg.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/javascripts/jscalendar/skins/aqua/dark-bg.gif
--------------------------------------------------------------------------------
/rails/public/javascripts/jscalendar/skins/aqua/hover-bg.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/javascripts/jscalendar/skins/aqua/hover-bg.gif
--------------------------------------------------------------------------------
/rails/public/javascripts/jscalendar/skins/aqua/menuarrow.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/javascripts/jscalendar/skins/aqua/menuarrow.gif
--------------------------------------------------------------------------------
/rails/public/javascripts/jscalendar/skins/aqua/normal-bg.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/javascripts/jscalendar/skins/aqua/normal-bg.gif
--------------------------------------------------------------------------------
/rails/public/javascripts/jscalendar/skins/aqua/rowhover-bg.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/javascripts/jscalendar/skins/aqua/rowhover-bg.gif
--------------------------------------------------------------------------------
/rails/public/javascripts/jscalendar/skins/aqua/status-bg.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/javascripts/jscalendar/skins/aqua/status-bg.gif
--------------------------------------------------------------------------------
/rails/public/javascripts/jscalendar/skins/aqua/title-bg.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/javascripts/jscalendar/skins/aqua/title-bg.gif
--------------------------------------------------------------------------------
/rails/public/javascripts/jscalendar/skins/aqua/today-bg.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/javascripts/jscalendar/skins/aqua/today-bg.gif
--------------------------------------------------------------------------------
/rails/public/javascripts/sortable.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/public/javascripts/sortable.js
--------------------------------------------------------------------------------
/rails/public/logout.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Logout
6 |
7 |
8 | You are logged out now.
9 |
10 |
11 |
--------------------------------------------------------------------------------
/rails/public/robots.txt:
--------------------------------------------------------------------------------
1 | # See http://www.robotstxt.org/wc/norobots.html for documentation on how to use the robots.txt file
--------------------------------------------------------------------------------
/rails/script/about:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | require File.dirname(__FILE__) + '/../config/boot'
3 | require 'commands/about'
--------------------------------------------------------------------------------
/rails/script/breakpointer:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | require File.dirname(__FILE__) + '/../config/boot'
3 | require 'commands/breakpointer'
--------------------------------------------------------------------------------
/rails/script/console:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | require File.dirname(__FILE__) + '/../config/boot'
3 | require 'commands/console'
--------------------------------------------------------------------------------
/rails/script/dbconsole:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | require File.dirname(__FILE__) + '/../config/boot'
3 | require 'commands/dbconsole'
4 |
--------------------------------------------------------------------------------
/rails/script/destroy:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | require File.dirname(__FILE__) + '/../config/boot'
3 | require 'commands/destroy'
--------------------------------------------------------------------------------
/rails/script/generate:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | require File.dirname(__FILE__) + '/../config/boot'
3 | require 'commands/generate'
--------------------------------------------------------------------------------
/rails/script/pentacards:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 |
3 | require 'config/environment.rb'
4 | require 'lib/pentacards'
5 |
6 | if ARGV.length != 1
7 | puts "Usage: #{$0} "
8 | exit
9 | end
10 |
11 | conference = Conference.select_single({:acronym=>ARGV[0]})
12 |
13 | # find all events
14 | events = View_event.select({:translated => 'en', :conference_id => conference.conference_id})
15 |
16 | puts "creating pentacards for #{events.length} events"
17 |
18 | pc = Pentacards.new( events, 2, 2 )
19 |
20 | File.open("pentacards.pdf", "wb") do |f|
21 | f.write( pc.render )
22 | end
23 |
24 |
--------------------------------------------------------------------------------
/rails/script/performance/benchmarker:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | require File.dirname(__FILE__) + '/../../config/boot'
3 | require 'commands/performance/benchmarker'
4 |
--------------------------------------------------------------------------------
/rails/script/performance/profiler:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | require File.dirname(__FILE__) + '/../../config/boot'
3 | require 'commands/performance/profiler'
4 |
--------------------------------------------------------------------------------
/rails/script/plugin:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | require File.dirname(__FILE__) + '/../config/boot'
3 | require 'commands/plugin'
--------------------------------------------------------------------------------
/rails/script/process/inspector:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | require File.dirname(__FILE__) + '/../../config/boot'
3 | require 'commands/process/inspector'
4 |
--------------------------------------------------------------------------------
/rails/script/process/reaper:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | require File.dirname(__FILE__) + '/../../config/boot'
3 | require 'commands/process/reaper'
4 |
--------------------------------------------------------------------------------
/rails/script/process/spawner:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | require File.dirname(__FILE__) + '/../../config/boot'
3 | require 'commands/process/spawner'
4 |
--------------------------------------------------------------------------------
/rails/script/runner:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | require File.dirname(__FILE__) + '/../config/boot'
3 | require 'commands/runner'
--------------------------------------------------------------------------------
/rails/script/server:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | require File.dirname(__FILE__) + '/../config/boot'
3 | require 'commands/server'
--------------------------------------------------------------------------------
/rails/test/functional/atom_controller_test.rb:
--------------------------------------------------------------------------------
1 | require File.dirname(__FILE__) + '/../test_helper'
2 | require 'atom_controller'
3 |
4 | # Re-raise errors caught by the controller.
5 | class AtomController; def rescue_action(e) raise e end; end
6 |
7 | class AtomControllerTest < ActionController::TestCase
8 | def setup
9 | @controller = AtomController.new
10 | @request = ActionController::TestRequest.new
11 | @response = ActionController::TestResponse.new
12 | authenticate_user( Account.select_single(:login_name=>'committee') )
13 | end
14 |
15 | def test_recent_changes
16 | get :recent_changes
17 | assert_response :success
18 | end
19 |
20 | end
21 |
--------------------------------------------------------------------------------
/rails/test/functional/csv_controller_test.rb:
--------------------------------------------------------------------------------
1 | require File.dirname(__FILE__) + '/../test_helper'
2 | require 'csv_controller'
3 |
4 | # Re-raise errors caught by the controller.
5 | class CsvController; def rescue_action(e) raise e end; end
6 |
7 | class CsvControllerTest < ActionController::TestCase
8 | def setup
9 | @controller = CsvController.new
10 | @request = ActionController::TestRequest.new
11 | @response = ActionController::TestResponse.new
12 | end
13 |
14 | # Replace this with your real tests.
15 | def test_truth
16 | assert true
17 | end
18 | end
19 |
--------------------------------------------------------------------------------
/rails/test/functional/feedback_controller_test.rb:
--------------------------------------------------------------------------------
1 | require File.dirname(__FILE__) + '/../test_helper'
2 | require 'feedback_controller'
3 |
4 | # Re-raise errors caught by the controller.
5 | class FeedbackController; def rescue_action(e) raise e end; end
6 |
7 | class FeedbackControllerTest < ActionController::TestCase
8 | def setup
9 | @controller = FeedbackController.new
10 | @request = ActionController::TestRequest.new
11 | @response = ActionController::TestResponse.new
12 | end
13 |
14 | # Replace this with your real tests.
15 | def test_truth
16 | assert true
17 | end
18 | end
19 |
--------------------------------------------------------------------------------
/rails/test/functional/ical_controller_test.rb:
--------------------------------------------------------------------------------
1 | require File.dirname(__FILE__) + '/../test_helper'
2 | require 'ical_controller'
3 |
4 | # Re-raise errors caught by the controller.
5 | class IcalController; def rescue_action(e) raise e end; end
6 |
7 | class IcalControllerTest < ActionController::TestCase
8 | def setup
9 | @controller = IcalController.new
10 | @request = ActionController::TestRequest.new
11 | @response = ActionController::TestResponse.new
12 | authenticate_user( Account.select_single(:login_name=>'committee') )
13 | end
14 |
15 | def teardown
16 | POPE.deauth
17 | end
18 |
19 | def test_conference
20 | get :conference, {:conference_id => 1}
21 | assert_response :success
22 | end
23 |
24 | end
25 |
--------------------------------------------------------------------------------
/rails/test/functional/search_controller_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | class SearchControllerTest < ActionController::TestCase
4 | # Replace this with your real tests.
5 | test "the truth" do
6 | assert true
7 | end
8 | end
9 |
--------------------------------------------------------------------------------
/rails/test/functional/xcal_controller_test.rb:
--------------------------------------------------------------------------------
1 | require File.dirname(__FILE__) + '/../test_helper'
2 | require 'xcal_controller'
3 |
4 | # Re-raise errors caught by the controller.
5 | class XcalController; def rescue_action(e) raise e end; end
6 |
7 | class XcalControllerTest < ActionController::TestCase
8 | def setup
9 | @controller = XcalController.new
10 | @request = ActionController::TestRequest.new
11 | @response = ActionController::TestResponse.new
12 | authenticate_user( Account.select_single(:login_name=>'committee') )
13 | end
14 |
15 | def teardown
16 | POPE.deauth
17 | end
18 |
19 | def test_conference
20 | get :conference, {:conference_id => 1}
21 | assert_response :success
22 | end
23 |
24 | end
25 |
--------------------------------------------------------------------------------
/rails/test/functional/xml_controller_test.rb:
--------------------------------------------------------------------------------
1 | require File.dirname(__FILE__) + '/../test_helper'
2 | require 'xml_controller'
3 |
4 | # Re-raise errors caught by the controller.
5 | class XmlController; def rescue_action(e) raise e end; end
6 |
7 | class XmlControllerTest < ActionController::TestCase
8 | def setup
9 | @controller = XmlController.new
10 | @request = ActionController::TestRequest.new
11 | @response = ActionController::TestResponse.new
12 | authenticate_user( Account.select_single(:login_name=>'committee') )
13 | end
14 |
15 | def teardown
16 | POPE.deauth
17 | end
18 |
19 | def test_schedule
20 | get :schedule, {:conference_id=>1}
21 | assert_response :success
22 | end
23 |
24 | end
25 |
--------------------------------------------------------------------------------
/rails/test/unit/pentacards_test.rb:
--------------------------------------------------------------------------------
1 | require File.dirname(__FILE__) + '/../test_helper'
2 |
3 | class PentacardsTest < Test::Unit::TestCase
4 |
5 | def test_pentacards_generation
6 | conference = Conference.select_single({:conference_id=>1})
7 | events = View_event.select({:translated => 'en', :conference_id => conference.conference_id})
8 | pc = Pentacards.new( events, 2, 2 )
9 | pc.render
10 | end
11 |
12 | end
13 |
--------------------------------------------------------------------------------
/rails/test/unit/pope_test.rb:
--------------------------------------------------------------------------------
1 | require File.dirname(__FILE__) + '/../test_helper'
2 |
3 | class PopeTest < Test::Unit::TestCase
4 |
5 | def setup
6 | POPE.send( :instance_variable_set, :@user, Pope::User.new( Account.select_single(:login_name=>'testcase_norole') ))
7 | end
8 |
9 | def test_single_domain_permissions
10 | chunky = Person.new
11 | chunky.public_name = 'Chunky Bacon'
12 | assert_raise( Pope::PermissionError ) { chunky.write }
13 |
14 | POPE.instance_eval{ @permissions = [:'person::create'] }
15 | assert_nothing_raised{ chunky.write }
16 | assert_raise( Pope::PermissionError ) { chunky.delete }
17 |
18 | POPE.instance_eval{ @permissions = [:'person::delete'] }
19 | assert_nothing_raised{ chunky.delete }
20 | end
21 |
22 | end
23 |
--------------------------------------------------------------------------------
/rails/tmp/html-export/.gitignore:
--------------------------------------------------------------------------------
1 | */*
2 |
--------------------------------------------------------------------------------
/rails/tmp/pids/.gitignore:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FOSDEM/pentabarf/d3cea552a46b8ff70662c9a5edeac228fc8918d0/rails/tmp/pids/.gitignore
--------------------------------------------------------------------------------
/rails/vendor/plugins/rails-dev-boost/TODO.txt:
--------------------------------------------------------------------------------
1 | * Update ActiveRecord reflections for which the module passed as the :extend option has been unloaded.
2 | - update reference: MacroReflection#@options[:extend]
3 |
--------------------------------------------------------------------------------
/rails/vendor/plugins/rails-dev-boost/init.rb:
--------------------------------------------------------------------------------
1 | if Rails.env.development? || (config.respond_to?(:soft_reload) && config.soft_reload)
2 | require 'rails_development_boost'
3 | RailsDevelopmentBoost.apply!
4 | end
5 |
--------------------------------------------------------------------------------
/rails/vendor/plugins/rails-dev-boost/lib/rails_development_boost.rb:
--------------------------------------------------------------------------------
1 | module RailsDevelopmentBoost
2 | def self.apply!
3 | [DispatcherPatch, DependenciesPatch, ViewHelpersPatch].each &:apply!
4 | end
5 |
6 | autoload :DispatcherPatch, 'rails_development_boost/dispatcher_patch'
7 | autoload :DependenciesPatch, 'rails_development_boost/dependencies_patch'
8 | autoload :LoadedFile, 'rails_development_boost/loaded_file'
9 | autoload :ViewHelpersPatch, 'rails_development_boost/view_helpers_patch'
10 | end
11 |
--------------------------------------------------------------------------------
/rails/vendor/plugins/rails-dev-boost/lib/rails_development_boost/loaded_file.rb:
--------------------------------------------------------------------------------
1 | module RailsDevelopmentBoost
2 | class LoadedFile
3 | attr_accessor :path, :constants
4 |
5 | def initialize(path, constants=[])
6 | @path = path
7 | @constants = constants
8 | @mtime = current_mtime
9 | end
10 |
11 | def changed?
12 | previous_mtime, @mtime = @mtime, current_mtime
13 | previous_mtime != @mtime
14 | end
15 |
16 | private
17 |
18 | def current_mtime
19 | File.file?(@path) ? File.mtime(@path) : nil
20 | end
21 | end
22 | end
23 |
--------------------------------------------------------------------------------
/rails/vendor/plugins/rails-dev-boost/lib/rails_development_boost/view_helpers_patch.rb:
--------------------------------------------------------------------------------
1 | module RailsDevelopmentBoost
2 | module ViewHelpersPatch
3 | def self.apply!
4 | [ActionController, ActionMailer].each {|mod| mod::Helpers::ClassMethods.send(:include, self)}
5 | end
6 |
7 | # we need to explicitly associate helpers to their including controllers/mailers
8 | def add_template_helper_with_const_association_tracking(helper_module)
9 | ActiveSupport::Dependencies.add_explicit_dependency(helper_module, self)
10 | add_template_helper_without_const_association_tracking(helper_module)
11 | end
12 |
13 | def self.included(base)
14 | base.alias_method_chain :add_template_helper, :const_association_tracking
15 | end
16 | end
17 | end
18 |
--------------------------------------------------------------------------------
/rails/vendor/plugins/rails-dev-boost/test/constants/active_record/comment.rb:
--------------------------------------------------------------------------------
1 | class Comment < Message
2 | end
3 |
--------------------------------------------------------------------------------
/rails/vendor/plugins/rails-dev-boost/test/constants/active_record/message.rb:
--------------------------------------------------------------------------------
1 | class Message < ActiveRecord::Base
2 | end
3 |
--------------------------------------------------------------------------------
/rails/vendor/plugins/rails-dev-boost/test/constants/active_record/other.rb:
--------------------------------------------------------------------------------
1 | class Other < ActiveRecord::Base
2 | end
3 |
--------------------------------------------------------------------------------
/rails/vendor/plugins/rails-dev-boost/test/constants/active_record/post.rb:
--------------------------------------------------------------------------------
1 | class Post < Message
2 | has_many :comments
3 | end
4 |
--------------------------------------------------------------------------------
/rails/vendor/plugins/rails-dev-boost/test/constants/deep_nesting/a.rb:
--------------------------------------------------------------------------------
1 | module A
2 | end
3 |
--------------------------------------------------------------------------------
/rails/vendor/plugins/rails-dev-boost/test/constants/deep_nesting/a/b.rb:
--------------------------------------------------------------------------------
1 | module A::B
2 | end
3 |
--------------------------------------------------------------------------------
/rails/vendor/plugins/rails-dev-boost/test/constants/deep_nesting/a/b/c.rb:
--------------------------------------------------------------------------------
1 | module A::B::C
2 | end
3 |
--------------------------------------------------------------------------------
/rails/vendor/plugins/rails-dev-boost/test/constants/deep_nesting/a/b/c/d.rb:
--------------------------------------------------------------------------------
1 | module A::B::C::D
2 | end
3 |
--------------------------------------------------------------------------------
/rails/vendor/plugins/rails-dev-boost/test/constants/double_removal/ns.rb:
--------------------------------------------------------------------------------
1 | class Ns
2 | include M
3 | end
4 |
--------------------------------------------------------------------------------
/rails/vendor/plugins/rails-dev-boost/test/constants/double_removal/ns/c.rb:
--------------------------------------------------------------------------------
1 | class Ns::C
2 | include Ns::M
3 | end
4 |
--------------------------------------------------------------------------------
/rails/vendor/plugins/rails-dev-boost/test/constants/double_removal/ns/m.rb:
--------------------------------------------------------------------------------
1 | module Ns::M
2 | end
3 |
--------------------------------------------------------------------------------
/rails/vendor/plugins/rails-dev-boost/test/constants/mixins/client.rb:
--------------------------------------------------------------------------------
1 | class Client
2 | include Mixin
3 | end
4 |
--------------------------------------------------------------------------------
/rails/vendor/plugins/rails-dev-boost/test/constants/mixins/mixin.rb:
--------------------------------------------------------------------------------
1 | module Mixin
2 | def from_mixin
3 | end
4 | end
5 |
--------------------------------------------------------------------------------
/rails/vendor/plugins/rails-dev-boost/test/constants/mixins/update/mixin.rb:
--------------------------------------------------------------------------------
1 | module Mixin
2 | def from_mixin_update
3 | end
4 | end
5 |
--------------------------------------------------------------------------------
/rails/vendor/plugins/rails-dev-boost/test/constants/nested_mixins/b.rb:
--------------------------------------------------------------------------------
1 | module B
2 | end
3 |
--------------------------------------------------------------------------------
/rails/vendor/plugins/rails-dev-boost/test/constants/nested_mixins/b/c.rb:
--------------------------------------------------------------------------------
1 | class B::C
2 | end
3 |
--------------------------------------------------------------------------------
/rails/vendor/plugins/rails-dev-boost/test/constants/nested_mixins/ma.rb:
--------------------------------------------------------------------------------
1 | module Ma
2 | include Mb
3 | end
4 |
--------------------------------------------------------------------------------
/rails/vendor/plugins/rails-dev-boost/test/constants/nested_mixins/ma/mb.rb:
--------------------------------------------------------------------------------
1 | module Ma::Mb
2 | include Mc
3 | end
4 |
--------------------------------------------------------------------------------
/rails/vendor/plugins/rails-dev-boost/test/constants/nested_mixins/ma/mb/mc.rb:
--------------------------------------------------------------------------------
1 | module Ma::Mb::Mc
2 | end
3 |
--------------------------------------------------------------------------------
/rails/vendor/plugins/rails-dev-boost/test/constants/nested_mixins/oa.rb:
--------------------------------------------------------------------------------
1 | module Oa
2 | include Ma::Mb
3 | Ob
4 | end
5 |
--------------------------------------------------------------------------------
/rails/vendor/plugins/rails-dev-boost/test/constants/nested_mixins/oa/ob.rb:
--------------------------------------------------------------------------------
1 | module Oa::Ob
2 | Oc
3 | end
4 |
--------------------------------------------------------------------------------
/rails/vendor/plugins/rails-dev-boost/test/constants/nested_mixins/oa/ob/oc.rb:
--------------------------------------------------------------------------------
1 | class Oa::Ob::Oc < B::C
2 | end
3 |
--------------------------------------------------------------------------------
/rails/vendor/plugins/rails-dev-boost/test/constants/single_removal/a.rb:
--------------------------------------------------------------------------------
1 | class A
2 | end
3 |
--------------------------------------------------------------------------------
/rails/vendor/plugins/rails-dev-boost/test/constants/single_removal/b.rb:
--------------------------------------------------------------------------------
1 | class B
2 | end
3 |
--------------------------------------------------------------------------------
/rails/vendor/plugins/rails-dev-boost/test/constants/singleton_mixins/a.rb:
--------------------------------------------------------------------------------
1 | module A
2 | extend B
3 | end
4 |
--------------------------------------------------------------------------------
/rails/vendor/plugins/rails-dev-boost/test/constants/singleton_mixins/b.rb:
--------------------------------------------------------------------------------
1 | module B
2 | end
3 |
--------------------------------------------------------------------------------
/rails/vendor/plugins/rails-dev-boost/test/constants/subclass/a.rb:
--------------------------------------------------------------------------------
1 | class A
2 | end
3 |
--------------------------------------------------------------------------------
/rails/vendor/plugins/rails-dev-boost/test/constants/subclass/b.rb:
--------------------------------------------------------------------------------
1 | class B < A
2 | end
3 |
--------------------------------------------------------------------------------
/rails/vendor/plugins/rails-dev-boost/test/constants/subclass/c.rb:
--------------------------------------------------------------------------------
1 | class C
2 | end
3 |
--------------------------------------------------------------------------------
/sql/Makefile:
--------------------------------------------------------------------------------
1 |
2 | PSQL=psql
3 |
4 | LOG_TARGETS = install all import user
5 | LOG_FILE = install.log
6 |
7 | ifneq ($(LOGGING_ENABLED),y)
8 | $(LOG_TARGETS):
9 | @$(MAKE) LOGGING_ENABLED=y $@ 2>&1 | tee "$(LOG_FILE)"
10 | else
11 |
12 | all: install import
13 |
14 | install:
15 | -createlang plpgsql
16 | ${PSQL} -f schema.sql
17 | ${PSQL} -f tables.sql
18 | ${PSQL} -f index.sql
19 | ${PSQL} -f views.sql
20 | ${PSQL} -f types.sql
21 | ${PSQL} -f functions.sql
22 | ${PSQL} -f trigger.sql
23 | ${PSQL} -f activate_trigger.sql
24 | ${PSQL} -c 'SELECT log.activate_logging();'
25 |
26 | import:
27 | cd data && ${PSQL} -f import.sql
28 |
29 | user:
30 | ${PSQL} -f pentabarf-user.sql
31 |
32 | endif
33 |
--------------------------------------------------------------------------------
/sql/activate_trigger.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TRIGGER related_event_after_insert AFTER INSERT ON event_related FOR STATEMENT EXECUTE PROCEDURE event_related_trigger_insert();
3 |
4 | CREATE TRIGGER related_event_after_delete AFTER DELETE ON event_related FOR STATEMENT EXECUTE PROCEDURE event_related_trigger_delete();
5 |
6 | CREATE TRIGGER conference_release_after_insert AFTER INSERT ON conference_release FOR EACH ROW EXECUTE PROCEDURE conference_release_trigger_insert();
7 |
8 | CREATE TRIGGER custom_fields_trigger BEFORE INSERT OR UPDATE OR DELETE ON custom.custom_fields FOR EACH ROW EXECUTE PROCEDURE custom_field_trigger();
9 |
10 |
--------------------------------------------------------------------------------
/sql/data/attachment_type.sql:
--------------------------------------------------------------------------------
1 |
2 | SET client_encoding = 'UTF8';
3 | SET search_path = public, pg_catalog;
4 |
5 | INSERT INTO attachment_type (attachment_type, rank) VALUES ('audio', 4);
6 | INSERT INTO attachment_type (attachment_type, rank) VALUES ('other', 3);
7 | INSERT INTO attachment_type (attachment_type, rank) VALUES ('paper', 2);
8 | INSERT INTO attachment_type (attachment_type, rank) VALUES ('slides', 1);
9 | INSERT INTO attachment_type (attachment_type, rank) VALUES ('video', 5);
10 |
--------------------------------------------------------------------------------
/sql/data/auth.conference_role.sql:
--------------------------------------------------------------------------------
1 |
2 | SET client_encoding = 'UTF8';
3 | SET search_path = auth, pg_catalog;
4 |
5 | INSERT INTO conference_role (conference_role, rank) VALUES ('admin', NULL);
6 | INSERT INTO conference_role (conference_role, rank) VALUES ('committee', NULL);
7 | INSERT INTO conference_role (conference_role, rank) VALUES ('reviewer', NULL);
8 |
--------------------------------------------------------------------------------
/sql/data/auth.conference_role_localized.sql:
--------------------------------------------------------------------------------
1 |
2 | SET client_encoding = 'UTF8';
3 | SET search_path = auth, pg_catalog;
4 |
5 |
--------------------------------------------------------------------------------
/sql/data/auth.role.sql:
--------------------------------------------------------------------------------
1 |
2 | SET client_encoding = 'UTF8';
3 | SET search_path = auth, pg_catalog;
4 |
5 | INSERT INTO role (role, rank) VALUES ('admin', 2);
6 | INSERT INTO role (role, rank) VALUES ('committee', 3);
7 | INSERT INTO role (role, rank) VALUES ('developer', 1);
8 | INSERT INTO role (role, rank) VALUES ('reviewer', 4);
9 | INSERT INTO role (role, rank) VALUES ('submitter', 7);
10 |
--------------------------------------------------------------------------------
/sql/data/conference_phase.sql:
--------------------------------------------------------------------------------
1 |
2 | SET client_encoding = 'UTF8';
3 | SET search_path = public, pg_catalog;
4 |
5 | INSERT INTO conference_phase (conference_phase, rank) VALUES ('aftermath', 5);
6 | INSERT INTO conference_phase (conference_phase, rank) VALUES ('bureaucracy', 4);
7 | INSERT INTO conference_phase (conference_phase, rank) VALUES ('chaos', 1);
8 | INSERT INTO conference_phase (conference_phase, rank) VALUES ('confusion', 3);
9 | INSERT INTO conference_phase (conference_phase, rank) VALUES ('discord', 2);
10 |
--------------------------------------------------------------------------------
/sql/data/conflict.conflict_level.sql:
--------------------------------------------------------------------------------
1 |
2 | SET client_encoding = 'UTF8';
3 | SET search_path = conflict, pg_catalog;
4 |
5 | INSERT INTO conflict_level (conflict_level, rank) VALUES ('error', 4);
6 | INSERT INTO conflict_level (conflict_level, rank) VALUES ('fatal', 5);
7 | INSERT INTO conflict_level (conflict_level, rank) VALUES ('note', 2);
8 | INSERT INTO conflict_level (conflict_level, rank) VALUES ('silent', 1);
9 | INSERT INTO conflict_level (conflict_level, rank) VALUES ('warning', 3);
10 |
--------------------------------------------------------------------------------
/sql/data/conflict.conflict_type.sql:
--------------------------------------------------------------------------------
1 |
2 | SET client_encoding = 'UTF8';
3 | SET search_path = conflict, pg_catalog;
4 |
5 | INSERT INTO conflict_type (conflict_type) VALUES ('event');
6 | INSERT INTO conflict_type (conflict_type) VALUES ('event_event');
7 | INSERT INTO conflict_type (conflict_type) VALUES ('event_person');
8 | INSERT INTO conflict_type (conflict_type) VALUES ('event_person_event');
9 | INSERT INTO conflict_type (conflict_type) VALUES ('person');
10 |
--------------------------------------------------------------------------------
/sql/data/currency_localized.sql:
--------------------------------------------------------------------------------
1 |
2 | SET client_encoding = 'UTF8';
3 | SET search_path = public, pg_catalog;
4 |
5 | INSERT INTO currency_localized (currency, translated, name) VALUES ('JPY', 'de', 'Yen');
6 | INSERT INTO currency_localized (currency, translated, name) VALUES ('JPY', 'en', 'Yen');
7 |
--------------------------------------------------------------------------------
/sql/data/event_origin.sql:
--------------------------------------------------------------------------------
1 |
2 | SET client_encoding = 'UTF8';
3 | SET search_path = public, pg_catalog;
4 |
5 | INSERT INTO event_origin (event_origin, rank) VALUES ('idea', 1);
6 | INSERT INTO event_origin (event_origin, rank) VALUES ('submission', 2);
7 |
--------------------------------------------------------------------------------
/sql/data/event_origin_localized.sql:
--------------------------------------------------------------------------------
1 |
2 | SET client_encoding = 'UTF8';
3 | SET search_path = public, pg_catalog;
4 |
5 | INSERT INTO event_origin_localized (event_origin, translated, name) VALUES ('idea', 'de', 'Idee');
6 | INSERT INTO event_origin_localized (event_origin, translated, name) VALUES ('idea', 'en', 'Idea');
7 | INSERT INTO event_origin_localized (event_origin, translated, name) VALUES ('idea', 'pt', 'Idéia');
8 | INSERT INTO event_origin_localized (event_origin, translated, name) VALUES ('submission', 'de', 'Submission');
9 | INSERT INTO event_origin_localized (event_origin, translated, name) VALUES ('submission', 'en', 'Submission');
10 | INSERT INTO event_origin_localized (event_origin, translated, name) VALUES ('submission', 'pt', 'Submissão');
11 |
--------------------------------------------------------------------------------
/sql/data/event_state.sql:
--------------------------------------------------------------------------------
1 |
2 | SET client_encoding = 'UTF8';
3 | SET search_path = public, pg_catalog;
4 |
5 | INSERT INTO event_state (event_state, rank) VALUES ('accepted', 2);
6 | INSERT INTO event_state (event_state, rank) VALUES ('rejected', 3);
7 | INSERT INTO event_state (event_state, rank) VALUES ('undecided', 1);
8 |
--------------------------------------------------------------------------------
/sql/data/im_type.sql:
--------------------------------------------------------------------------------
1 |
2 | SET client_encoding = 'UTF8';
3 | SET search_path = public, pg_catalog;
4 |
5 | INSERT INTO im_type (im_type, scheme, rank) VALUES ('aim', 'aim', 3);
6 | INSERT INTO im_type (im_type, scheme, rank) VALUES ('gadugadu', 'gadugadu', 6);
7 | INSERT INTO im_type (im_type, scheme, rank) VALUES ('icq', 'icq', 2);
8 | INSERT INTO im_type (im_type, scheme, rank) VALUES ('jabber', 'jabber', 1);
9 | INSERT INTO im_type (im_type, scheme, rank) VALUES ('msn', 'msn', 4);
10 | INSERT INTO im_type (im_type, scheme, rank) VALUES ('yahoo', 'yahoo', 5);
11 |
--------------------------------------------------------------------------------
/sql/data/link_type.sql:
--------------------------------------------------------------------------------
1 |
2 | SET client_encoding = 'UTF8';
3 | SET search_path = public, pg_catalog;
4 |
5 | INSERT INTO link_type (link_type, template, rank) VALUES ('orga wiki', 'https://22c3.cccv.de/wiki/', NULL);
6 | INSERT INTO link_type (link_type, template, rank) VALUES ('rt cccv', 'https://rt.cccv.de/Ticket/Display.html?id=', NULL);
7 | INSERT INTO link_type (link_type, template, rank) VALUES ('rt entheovision', 'https://rt.entheovision.de/Ticket/Display.html?id=', NULL);
8 | INSERT INTO link_type (link_type, template, rank) VALUES ('url', NULL, 1);
9 |
--------------------------------------------------------------------------------
/sql/data/link_type_localized.sql:
--------------------------------------------------------------------------------
1 |
2 | SET client_encoding = 'UTF8';
3 | SET search_path = public, pg_catalog;
4 |
5 | INSERT INTO link_type_localized (link_type, translated, name) VALUES ('orga wiki', 'de', 'Orga-Wiki');
6 | INSERT INTO link_type_localized (link_type, translated, name) VALUES ('orga wiki', 'en', 'Orga-Wiki');
7 | INSERT INTO link_type_localized (link_type, translated, name) VALUES ('rt cccv', 'de', 'Request Tracker');
8 | INSERT INTO link_type_localized (link_type, translated, name) VALUES ('rt cccv', 'en', 'Request Tracker');
9 | INSERT INTO link_type_localized (link_type, translated, name) VALUES ('url', 'de', 'URL');
10 | INSERT INTO link_type_localized (link_type, translated, name) VALUES ('url', 'en', 'URL');
11 |
--------------------------------------------------------------------------------
/sql/data/phone_type.sql:
--------------------------------------------------------------------------------
1 |
2 | SET client_encoding = 'UTF8';
3 | SET search_path = public, pg_catalog;
4 |
5 | INSERT INTO phone_type (phone_type, scheme, rank) VALUES ('dect', 'tel', NULL);
6 | INSERT INTO phone_type (phone_type, scheme, rank) VALUES ('fax', 'fax', NULL);
7 | INSERT INTO phone_type (phone_type, scheme, rank) VALUES ('mobile', 'tel', NULL);
8 | INSERT INTO phone_type (phone_type, scheme, rank) VALUES ('phone', 'tel', NULL);
9 | INSERT INTO phone_type (phone_type, scheme, rank) VALUES ('private', 'tel', NULL);
10 | INSERT INTO phone_type (phone_type, scheme, rank) VALUES ('secretary', 'tel', NULL);
11 | INSERT INTO phone_type (phone_type, scheme, rank) VALUES ('skype', 'skype', NULL);
12 | INSERT INTO phone_type (phone_type, scheme, rank) VALUES ('work', 'tel', NULL);
13 |
--------------------------------------------------------------------------------
/sql/data/transport.sql:
--------------------------------------------------------------------------------
1 |
2 | SET client_encoding = 'UTF8';
3 | SET search_path = public, pg_catalog;
4 |
5 | INSERT INTO transport (transport, rank) VALUES ('car', NULL);
6 | INSERT INTO transport (transport, rank) VALUES ('plane', NULL);
7 | INSERT INTO transport (transport, rank) VALUES ('submarine', NULL);
8 | INSERT INTO transport (transport, rank) VALUES ('train', NULL);
9 | INSERT INTO transport (transport, rank) VALUES ('ufo', NULL);
10 |
--------------------------------------------------------------------------------
/sql/functions/account/own_conference_persons.sql:
--------------------------------------------------------------------------------
1 |
2 | -- get conference_person_ids of all conference_persons with a specific person_id
3 | CREATE OR REPLACE FUNCTION own_conference_persons( person_id INTEGER ) RETURNS SETOF INTEGER AS $$
4 | SELECT conference_person_id
5 | FROM conference_person
6 | WHERE person_id = $1;
7 | $$ LANGUAGE SQL RETURNS NULL ON NULL INPUT;
8 |
9 |
--------------------------------------------------------------------------------
/sql/functions/auth/account_conference_permissions.sql:
--------------------------------------------------------------------------------
1 |
2 | -- returns list of permissions an account has in a certain conference
3 |
4 | CREATE OR REPLACE FUNCTION auth.account_conference_permissions( account_id INTEGER ) RETURNS SETOF auth.conference_permission AS $$
5 | SELECT DISTINCT conference_id, permission
6 | FROM auth.account_conference_role
7 | INNER JOIN auth.conference_role_permission USING( conference_role )
8 | WHERE
9 | account_conference_role.account_id = $1;
10 | $$ LANGUAGE SQL;
11 |
12 |
--------------------------------------------------------------------------------
/sql/functions/auth/account_permissions.sql:
--------------------------------------------------------------------------------
1 |
2 | -- function for getting the global permissions of an account
3 |
4 | CREATE OR REPLACE FUNCTION auth.account_permissions( account_id INTEGER ) RETURNS SETOF TEXT AS $$
5 | SELECT DISTINCT permission
6 | FROM auth.account_role
7 | INNER JOIN auth.role_permission USING( role )
8 | WHERE account_role.account_id = $1;
9 | $$ LANGUAGE SQL;
10 |
11 |
--------------------------------------------------------------------------------
/sql/functions/auth/forgot_password.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE OR REPLACE FUNCTION auth.forgot_password( p_account_id INTEGER, p_activation_string CHAR(64)) RETURNS INTEGER AS $$
3 | BEGIN
4 |
5 | PERFORM account_id FROM auth.account_password_reset WHERE account_id = p_account_id;
6 | IF FOUND THEN
7 | RAISE EXCEPTION 'This account has already been reset in the last 24 hours.';
8 | END IF;
9 | INSERT INTO auth.account_password_reset(account_id, activation_string, reset_time) VALUES (p_account_id, p_activation_string, now());
10 |
11 | RETURN p_account_id;
12 | END;
13 | $$ LANGUAGE plpgsql RETURNS NULL ON NULL INPUT;
14 |
15 |
--------------------------------------------------------------------------------
/sql/functions/conflict/event/abstract_length.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE OR REPLACE FUNCTION conflict.conflict_event_abstract_length(INTEGER) RETURNS SETOF conflict.conflict_event AS $$
3 | SELECT
4 | event_id
5 | FROM
6 | event
7 | INNER JOIN conference ON (
8 | conference.conference_id = event.conference_id AND
9 | conference.abstract_length IS NOT NULL )
10 | WHERE
11 | conference.conference_id = $1 AND
12 | length( event.abstract ) > conference.abstract_length;
13 | $$ LANGUAGE SQL;
14 |
15 |
--------------------------------------------------------------------------------
/sql/functions/conflict/event/accepted_without_timeslot.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE OR REPLACE FUNCTION conflict.conflict_event_accepted_without_timeslot(INTEGER) RETURNS SETOF conflict.conflict_event AS $$
3 | SELECT event_id
4 | FROM event
5 | WHERE event.conference_id = $1 AND
6 | event.event_state = 'accepted' AND
7 | event.event_state_progress = 'reconfirmed' AND
8 | ( event.start_time IS NULL OR
9 | event.conference_room_id IS NULL )
10 | $$ LANGUAGE SQL;
11 |
12 |
--------------------------------------------------------------------------------
/sql/functions/conflict/event/conference_language.sql:
--------------------------------------------------------------------------------
1 |
2 | -- returns all events with a language not in conference_language
3 | CREATE OR REPLACE FUNCTION conflict.conflict_event_conference_language(INTEGER) RETURNS SETOF conflict.conflict_event AS $$
4 | SELECT
5 | event_id
6 | FROM
7 | event
8 | WHERE
9 | event.conference_id = $1 AND
10 | event.language IS NOT NULL AND
11 | NOT EXISTS (SELECT 1
12 | FROM conference_language
13 | WHERE conference_id = $1 AND
14 | language = event.language);
15 | $$ LANGUAGE SQL;
16 |
17 |
--------------------------------------------------------------------------------
/sql/functions/conflict/event/description_length.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE OR REPLACE FUNCTION conflict.conflict_event_description_length(INTEGER) RETURNS SETOF conflict.conflict_event AS $$
3 | DECLARE
4 | cur_conference_id ALIAS FOR $1;
5 | cur_conference RECORD;
6 | cur_event RECORD;
7 | BEGIN
8 | SELECT INTO cur_conference abstract_length, description_length FROM conference WHERE conference_id = cur_conference_id;
9 | FOR cur_event IN
10 | SELECT event_id
11 | FROM event
12 | WHERE conference_id = cur_conference_id AND
13 | length(description) > cur_conference.description_length
14 | LOOP
15 | RETURN NEXT cur_event;
16 | END LOOP;
17 | END;
18 | $$ LANGUAGE 'plpgsql' RETURNS NULL ON NULL INPUT;
19 |
20 |
--------------------------------------------------------------------------------
/sql/functions/conflict/event/incomplete.sql:
--------------------------------------------------------------------------------
1 |
2 | -- returns all accepted events with incomplete conference_day/time/room
3 | CREATE OR REPLACE FUNCTION conflict.conflict_event_incomplete(INTEGER) RETURNS SETOF conflict.conflict_event AS $$
4 | SELECT event_id
5 | FROM event
6 | WHERE conference_id = $1 AND
7 | event_state = 'accepted' AND
8 | event_state_progress = 'reconfirmed' AND
9 | (conference_day_id IS NULL OR
10 | conference_room_id IS NULL OR
11 | start_time IS NULL) AND
12 | (conference_day_id IS NOT NULL OR
13 | conference_room_id IS NOT NULL OR
14 | start_time IS NOT NULL)
15 | $$ LANGUAGE SQL;
16 |
17 |
--------------------------------------------------------------------------------
/sql/functions/conflict/event/inconsistent_public_link.sql:
--------------------------------------------------------------------------------
1 |
2 | -- returns all events with inconsistent public links
3 | CREATE OR REPLACE FUNCTION conflict.conflict_event_inconsistent_public_link(INTEGER) RETURNS SETOF conflict.conflict_event AS $$
4 | SELECT event_id
5 | FROM event
6 | WHERE conference_id = $1 AND
7 | EXISTS (SELECT 1 FROM event_link
8 | WHERE event_id = event.event_id AND
9 | url NOT SIMILAR TO '[a-z]+:%');
10 | $$ LANGUAGE SQL;
11 |
12 |
--------------------------------------------------------------------------------
/sql/functions/conflict/event/inconsistent_tag.sql:
--------------------------------------------------------------------------------
1 |
2 | -- returns all accepted events with inconsistent slug
3 | CREATE OR REPLACE FUNCTION conflict.conflict_event_inconsistent_tag(INTEGER) RETURNS SETOF conflict.conflict_event AS $$
4 | SELECT event_id
5 | FROM event
6 | WHERE event.slug IS NOT NULL AND
7 | conference_id = $1 AND
8 | event.event_state = 'accepted' AND
9 | event.slug NOT SIMILAR TO E'[a-z0-9\\_]+'
10 | $$ LANGUAGE SQL;
11 |
12 |
--------------------------------------------------------------------------------
/sql/functions/conflict/event/missing_tag.sql:
--------------------------------------------------------------------------------
1 |
2 | -- returns all accepted events with missing tag (slug)
3 | CREATE OR REPLACE FUNCTION conflict.conflict_event_missing_tag(INTEGER) RETURNS SETOF conflict.conflict_event AS $$
4 | SELECT event_id
5 | FROM event
6 | WHERE conference_id = $1 AND
7 | event_state = 'accepted' AND
8 | event.slug IS NULL
9 | $$ LANGUAGE SQL;
10 |
11 |
--------------------------------------------------------------------------------
/sql/functions/conflict/event/no_abstract.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE OR REPLACE FUNCTION conflict.conflict_event_no_abstract(INTEGER) RETURNS SETOF conflict.conflict_event AS $$
3 | SELECT
4 | event_id
5 | FROM event
6 | WHERE
7 | event.abstract IS NULL AND
8 | event.conference_id = $1;
9 | $$ LANGUAGE SQL;
10 |
11 |
--------------------------------------------------------------------------------
/sql/functions/conflict/event/no_coordinator.sql:
--------------------------------------------------------------------------------
1 |
2 | -- returns all events without coordinator
3 | CREATE OR REPLACE FUNCTION conflict.conflict_event_no_coordinator(integer) RETURNS setof conflict.conflict_event AS $$
4 | SELECT event_id FROM event
5 | WHERE event.conference_id = $1
6 | AND NOT EXISTS (SELECT 1 FROM event_person
7 | WHERE event_person.event_id = event.event_id AND
8 | event_role = 'coordinator');
9 | $$ LANGUAGE SQL;
10 |
11 |
--------------------------------------------------------------------------------
/sql/functions/conflict/event/no_description.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE OR REPLACE FUNCTION conflict.conflict_event_no_description(INTEGER) RETURNS SETOF conflict.conflict_event AS $$
3 | SELECT event_id
4 | FROM event
5 | WHERE event.description IS NULL AND
6 | event.conference_id = $1;
7 | $$ LANGUAGE SQL;
8 |
9 |
--------------------------------------------------------------------------------
/sql/functions/conflict/event/no_language_sql.sql:
--------------------------------------------------------------------------------
1 |
2 | -- returns all accepted events with no language set
3 | CREATE OR REPLACE FUNCTION conflict.conflict_event_no_language(INTEGER) RETURNS SETOF conflict.conflict_event AS $$
4 | SELECT event_id
5 | FROM event
6 | WHERE conference_id = $1 AND
7 | event_state = 'accepted' AND
8 | language IS NULL
9 | $$ LANGUAGE SQL;
10 |
11 |
--------------------------------------------------------------------------------
/sql/functions/conflict/event/no_paper.sql:
--------------------------------------------------------------------------------
1 |
2 | -- returns all accepted events with no paper but the f_paper flag set
3 | CREATE OR REPLACE FUNCTION conflict.conflict_event_no_paper(INTEGER) RETURNS SETOF conflict.conflict_event AS $$
4 | SELECT event_id
5 | FROM event
6 | WHERE conference_id = $1 AND
7 | event.event_state = 'accepted' AND
8 | event.event_state_progress = 'reconfirmed' AND
9 | paper = 't' AND
10 | NOT EXISTS (SELECT 1 FROM event_attachment
11 | WHERE event_attachment.event_id = event.event_id AND
12 | event_attachment.attachment_type = 'paper' AND
13 | event_attachment.public = 't')
14 | $$ LANGUAGE SQL;
15 |
16 |
--------------------------------------------------------------------------------
/sql/functions/conflict/event/no_slides.sql:
--------------------------------------------------------------------------------
1 |
2 | -- returns all accepted events with no paper but the f_slides flag set
3 | CREATE OR REPLACE FUNCTION conflict.conflict_event_no_slides(INTEGER) RETURNS SETOF conflict.conflict_event AS $$
4 | SELECT event_id
5 | FROM event
6 | WHERE conference_id = $1 AND
7 | event_state = 'accepted' AND
8 | event_state_progress = 'reconfirmed' AND
9 | slides = 't' AND
10 | NOT EXISTS (SELECT 1 FROM event_attachment
11 | WHERE event_id = event.event_id AND
12 | event_attachment.attachment_type = 'slides' AND
13 | event_attachment.public = 't')
14 | $$ LANGUAGE SQL;
15 |
16 |
--------------------------------------------------------------------------------
/sql/functions/conflict/event/no_speaker.sql:
--------------------------------------------------------------------------------
1 |
2 | -- returns all confirmed events without confirmed speaker/moderator
3 | CREATE OR REPLACE FUNCTION conflict.conflict_event_no_speaker(integer) RETURNS SETOF conflict.conflict_event AS $$
4 | SELECT event_id
5 | FROM event
6 | WHERE event.conference_id = $1 AND
7 | event_state = 'accepted' AND
8 | event_state_progress = 'reconfirmed' AND
9 | NOT EXISTS (SELECT 1
10 | FROM event_person
11 | INNER JOIN event_role USING (event_role)
12 | WHERE event_person.event_id = event.event_id AND
13 | event_role.public = true AND
14 | event_role_state = 'confirmed');
15 | $$ LANGUAGE SQL;
16 |
17 |
--------------------------------------------------------------------------------
/sql/functions/conflict/event/no_track.sql:
--------------------------------------------------------------------------------
1 |
2 | -- returns all accepted events with no conference track set
3 | CREATE OR REPLACE FUNCTION conflict.conflict_event_no_track(INTEGER) RETURNS SETOF conflict.conflict_event AS $$
4 | SELECT event_id
5 | FROM event
6 | WHERE conference_id = $1 AND
7 | event_state = 'accepted' AND
8 | conference_track_id IS NULL
9 | $$ LANGUAGE SQL;
10 |
11 |
--------------------------------------------------------------------------------
/sql/functions/conflict/event/paper_unknown.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE OR REPLACE FUNCTION conflict.conflict_event_paper_unknown( conference_id INTEGER ) RETURNS SETOF conflict.conflict_event AS $$
3 | SELECT event_id
4 | FROM event
5 | WHERE event.conference_id = $1 AND
6 | event.event_state = 'accepted' AND
7 | event.paper IS NULL
8 | $$ LANGUAGE SQL;
9 |
10 |
--------------------------------------------------------------------------------
/sql/functions/conflict/event/slides_unknown.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE OR REPLACE FUNCTION conflict.conflict_event_slides_unknown( conference_id INTEGER ) RETURNS SETOF conflict.conflict_event AS $$
3 | SELECT event_id
4 | FROM event
5 | WHERE event.conference_id = $1 AND
6 | event.event_state = 'accepted' AND
7 | event.slides IS NULL
8 | $$ LANGUAGE SQL;
9 |
10 |
--------------------------------------------------------------------------------
/sql/functions/conflict/event/unconfirmed_with_timeslot.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE OR REPLACE FUNCTION conflict.conflict_event_unconfirmed_with_timeslot(INTEGER) RETURNS SETOF conflict.conflict_event AS $$
3 | SELECT event_id
4 | FROM event
5 | WHERE event.conference_id = $1 AND
6 | event.event_state = 'accepted' AND
7 | event.event_state_progress <> 'reconfirmed' AND
8 | event.start_time IS NOT NULL AND
9 | event.conference_room_id IS NOT NULL
10 | $$ LANGUAGE SQL;
11 |
12 |
--------------------------------------------------------------------------------
/sql/functions/conflict/person/inconsistent_public_link.sql:
--------------------------------------------------------------------------------
1 |
2 | -- returns all persons with inconsistent public links
3 | CREATE OR REPLACE FUNCTION conflict.conflict_person_inconsistent_public_link(integer) RETURNS SETOF conflict.conflict_person AS $$
4 | SELECT person_id
5 | FROM person
6 | INNER JOIN conference_person USING (person_id)
7 | WHERE conference_person.conference_id = $1 AND
8 | EXISTS (SELECT 1 FROM conference_person_link
9 | WHERE conference_person_id = conference_person.conference_person_id AND
10 | url NOT SIMILAR TO '[a-z]+:%')
11 | $$ LANGUAGE SQL;
12 |
13 |
--------------------------------------------------------------------------------
/sql/functions/conflict/person/no_mail.sql:
--------------------------------------------------------------------------------
1 |
2 | -- returns all speaker/moderator without email
3 | CREATE OR REPLACE FUNCTION conflict.conflict_person_no_email(integer) RETURNS SETOF conflict.conflict_person AS $$
4 | SELECT person_id FROM person
5 | INNER JOIN event_person USING (person_id)
6 | INNER JOIN event USING (event_id)
7 | WHERE person.email IS NULL AND
8 | event.conference_id = $1;
9 | $$ LANGUAGE SQL;
10 |
11 |
--------------------------------------------------------------------------------
/sql/functions/remove_attendee.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE OR REPLACE FUNCTION remove_attendee(person_id INTEGER, event_id INTEGER) RETURNS INTEGER AS $$
3 | DELETE FROM event_person
4 | WHERE event_id = $2 AND
5 | person_id = $1 AND
6 | event_role = 'attendee';
7 | SELECT $1;
8 | $$ LANGUAGE SQL RETURNS NULL ON NULL INPUT;
9 |
10 |
--------------------------------------------------------------------------------
/sql/maintenance/upgrade_0.3.12_to_0.3.13.sql:
--------------------------------------------------------------------------------
1 |
2 | BEGIN;
3 |
4 | ALTER TABLE base.event_role ADD COLUMN participant BOOL NOT NULL DEFAULT FALSE;
5 | UPDATE event_role set participant = TRUE WHERE event_role IN ('speaker','visitor','reporter','attendee');
6 |
7 | DROP TABLE log.person_availability;
8 | DROP TRIGGER person_availability_log_trigger ON person_availability;
9 |
10 | COMMIT;
11 |
12 |
--------------------------------------------------------------------------------
/sql/maintenance/upgrade_0.3.13_to_0.3.14.sql:
--------------------------------------------------------------------------------
1 |
2 | BEGIN;
3 |
4 | ALTER TABLE base.account DROP CONSTRAINT account_login_name_key;
5 | ALTER TABLE auth.account ADD CONSTRAINT account_login_name_key UNIQUE(login_name);
6 |
7 | COMMIT;
8 |
9 |
--------------------------------------------------------------------------------
/sql/maintenance/upgrade_0.4.0_to_0.4.1.sql:
--------------------------------------------------------------------------------
1 |
2 | BEGIN;
3 |
4 | INSERT INTO auth.conference_role_permission (conference_role, permission) VALUES ('reviewer', 'review::modify');
5 |
6 | ALTER TABLE event_role ADD COLUMN public BOOL NOT NULL DEFAULT false;
7 | UPDATE event_role SET public = true WHERE event_role IN ('moderator','speaker');
8 |
9 | ALTER TABLE event_type ADD COLUMN public_role_required BOOL NOT NULL DEFAULT TRUE;
10 |
11 | SELECT log.activate_logging();
12 |
13 | COMMIT;
14 |
15 |
--------------------------------------------------------------------------------
/sql/maintenance/upgrade_0.4.1_to_0.4.2.sql:
--------------------------------------------------------------------------------
1 |
2 | BEGIN;
3 |
4 | DROP TABLE event_transaction;
5 | DROP TABLE conference_transaction;
6 | DROP TABLE person_transaction;
7 |
8 | COMMIT;
9 |
10 |
--------------------------------------------------------------------------------
/sql/pentabarf-user.sql:
--------------------------------------------------------------------------------
1 |
2 | -- create a first user for logging into pentabarf password pentabarf
3 |
4 | INSERT INTO person( nickname ) VALUES ( 'pentabarf' );
5 | INSERT INTO auth.account( login_name, email, salt, password, person_id ) VALUES ( 'pentabarf', 'pentabarf@localhost', 'dc0e832c22403520','19ab65831813936c9cea5800bb7e3ccc', currval( pg_get_serial_sequence('base.person','person_id')));
6 |
7 |
8 | -- give this user admin privileges
9 |
10 | INSERT INTO auth.account_role VALUES ( currval( pg_get_serial_sequence( 'base.account', 'account_id' ) ), 'admin' );
11 |
12 |
13 |
--------------------------------------------------------------------------------
/sql/schema.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE SCHEMA auth;
3 | CREATE SCHEMA base;
4 | CREATE SCHEMA log;
5 | CREATE SCHEMA conflict;
6 | CREATE SCHEMA release;
7 | CREATE SCHEMA custom;
8 |
9 |
--------------------------------------------------------------------------------
/sql/tables/attachment_type.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE base.attachment_type (
3 | attachment_type TEXT NOT NULL,
4 | rank INTEGER
5 | );
6 |
7 | CREATE TABLE attachment_type (
8 | PRIMARY KEY (attachment_type)
9 | ) INHERITS( base.attachment_type );
10 |
11 | CREATE TABLE log.attachment_type (
12 | ) INHERITS( base.logging, base.attachment_type );
13 |
14 | CREATE INDEX log_attachment_type_attachment_type_idx ON log.attachment_type( attachment_type );
15 | CREATE INDEX log_attachment_type_log_transaction_id_idx ON log.attachment_type( log_transaction_id );
16 |
17 |
--------------------------------------------------------------------------------
/sql/tables/auth/account_role.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE base.account_role (
3 | account_id INTEGER NOT NULL,
4 | role TEXT NOT NULL
5 | );
6 |
7 | CREATE TABLE auth.account_role (
8 | PRIMARY KEY( account_id, role ),
9 | FOREIGN KEY( account_id) REFERENCES auth.account( account_id ) ON UPDATE CASCADE ON DELETE CASCADE,
10 | FOREIGN KEY( role ) REFERENCES auth.role( role ) ON UPDATE CASCADE ON DELETE CASCADE
11 | ) INHERITS( base.account_role );
12 |
13 | CREATE TABLE log.account_role() INHERITS( base.logging, base.account_role );
14 |
15 | CREATE INDEX log_account_role_account_id_idx ON log.account_role( account_id );
16 | CREATE INDEX log_account_role_log_transaction_id_idx ON log.account_role( log_transaction_id );
17 |
18 |
--------------------------------------------------------------------------------
/sql/tables/auth/account_settings.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE base.account_settings (
3 | account_id INTEGER NOT NULL,
4 | current_language TEXT NOT NULL DEFAULT 'en',
5 | current_conference_id INTEGER,
6 | preferences TEXT,
7 | last_login TIMESTAMP
8 | );
9 |
10 | CREATE TABLE auth.account_settings (
11 | FOREIGN KEY( account_id ) REFERENCES auth.account( account_id ) ON UPDATE CASCADE ON DELETE CASCADE,
12 | FOREIGN KEY( current_conference_id ) REFERENCES conference( conference_id ) ON UPDATE CASCADE ON DELETE CASCADE,
13 | PRIMARY KEY( account_id )
14 | ) INHERITS( base.account_settings );
15 |
16 |
--------------------------------------------------------------------------------
/sql/tables/auth/conference_role.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE base.conference_role (
3 | conference_role TEXT NOT NULL,
4 | rank INTEGER
5 | );
6 |
7 | CREATE TABLE auth.conference_role (
8 | PRIMARY KEY( conference_role )
9 | ) INHERITS( base.conference_role );
10 |
11 | CREATE TABLE log.conference_role (
12 | ) INHERITS( base.logging, base.conference_role );
13 |
14 | CREATE INDEX log_conference_role_conference_role_idx ON log.conference_role( conference_role );
15 | CREATE INDEX log_conference_role_log_transaction_id_idx ON log.conference_role( log_transaction_id );
16 |
17 |
--------------------------------------------------------------------------------
/sql/tables/auth/domain.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE base.domain(
3 | domain TEXT NOT NULL
4 | );
5 |
6 | CREATE TABLE auth.domain(
7 | PRIMARY KEY(domain)
8 | ) INHERITS( base.domain );
9 |
10 | CREATE TABLE log.domain(
11 | ) INHERITS( base.logging,base.domain );
12 |
13 | CREATE INDEX log_domain_domain_idx ON log.domain( domain );
14 | CREATE INDEX log_domain_log_transaction_id_idx ON log.domain( log_transaction_id );
15 |
16 |
--------------------------------------------------------------------------------
/sql/tables/auth/object_domain.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE base.object_domain(
3 | object TEXT NOT NULL,
4 | domain TEXT NOT NULL
5 | );
6 |
7 | CREATE TABLE auth.object_domain(
8 | PRIMARY KEY(object, domain),
9 | FOREIGN KEY(domain) REFERENCES auth.domain(domain) ON UPDATE CASCADE ON DELETE CASCADE
10 | ) INHERITS( base.object_domain );
11 |
12 | CREATE TABLE log.object_domain(
13 | ) INHERITS( base.logging, base.object_domain );
14 |
15 | CREATE INDEX log_object_domain_object_idx ON log.object_domain( object );
16 | CREATE INDEX log_object_domain_log_transaction_id_idx ON log.object_domain( log_transaction_id );
17 |
18 |
--------------------------------------------------------------------------------
/sql/tables/auth/permission.sql:
--------------------------------------------------------------------------------
1 |
2 | -- table containing possible permissions
3 |
4 | CREATE TABLE base.permission (
5 | permission TEXT NOT NULL,
6 | conference_permission BOOL NOT NULL DEFAULT FALSE,
7 | rank INTEGER
8 | );
9 |
10 | CREATE TABLE auth.permission (
11 | PRIMARY KEY(permission)
12 | ) INHERITS( base.permission );
13 |
14 | CREATE TABLE log.permission (
15 | PRIMARY KEY(log_transaction_id,permission)
16 | ) INHERITS( base.logging, base.permission );
17 |
18 | CREATE INDEX log_permission_permission_idx ON log.permission( permission );
19 | CREATE INDEX log_permission_log_transaction_id_idx ON log.permission( log_transaction_id );
20 |
21 |
--------------------------------------------------------------------------------
/sql/tables/auth/role.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE base.role (
3 | role TEXT NOT NULL,
4 | rank INTEGER
5 | );
6 |
7 | CREATE TABLE auth.role (
8 | PRIMARY KEY( role )
9 | ) INHERITS( base.role );
10 |
11 | CREATE TABLE log.role (
12 | ) INHERITS( base.logging, base.role );
13 |
14 | CREATE INDEX log_role_role_idx ON log.role( role );
15 | CREATE INDEX log_role_log_transaction_id_idx ON log.role( log_transaction_id );
16 |
17 |
--------------------------------------------------------------------------------
/sql/tables/auth/role_localized.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE base.role_localized (
3 | role TEXT NOT NULL,
4 | translated TEXT NOT NULL,
5 | name TEXT NOT NULL
6 | );
7 |
8 | CREATE TABLE auth.role_localized (
9 | PRIMARY KEY( role, translated ),
10 | FOREIGN KEY( role ) REFERENCES auth.role( role ) ON UPDATE CASCADE ON DELETE CASCADE,
11 | FOREIGN KEY( translated ) REFERENCES language( language ) ON UPDATE CASCADE ON DELETE CASCADE
12 | ) INHERITS( base.role_localized );
13 |
14 | CREATE TABLE log.role_localized (
15 | ) INHERITS( base.logging, base.role_localized );
16 |
17 | CREATE INDEX log_role_localized_role_idx ON log.role_localized( role );
18 | CREATE INDEX log_role_localized_log_transaction_id_idx ON log.role_localized( log_transaction_id );
19 |
20 |
--------------------------------------------------------------------------------
/sql/tables/base/logging.sql:
--------------------------------------------------------------------------------
1 |
2 | -- all logging tables are inherited from this table
3 |
4 | CREATE TABLE base.logging (
5 | log_transaction_id BIGINT,
6 | log_operation char(1)
7 | );
8 |
9 | CREATE SEQUENCE log.log_transaction_id_seq;
10 |
11 |
12 |
--------------------------------------------------------------------------------
/sql/tables/base/release.sql:
--------------------------------------------------------------------------------
1 |
2 | -- all release tables are inherited from this table
3 |
4 | CREATE TABLE base.release (
5 | conference_release_id INTEGER
6 | );
7 |
8 |
--------------------------------------------------------------------------------
/sql/tables/conference_day.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE base.conference_day (
3 | conference_day_id SERIAL NOT NULL,
4 | conference_id INTEGER NOT NULL,
5 | conference_day DATE NOT NULL,
6 | name TEXT,
7 | public BOOL NOT NULL DEFAULT TRUE
8 | );
9 |
10 | CREATE TABLE conference_day (
11 | FOREIGN KEY( conference_id ) REFERENCES conference( conference_id ) ON UPDATE CASCADE ON DELETE CASCADE,
12 | PRIMARY KEY( conference_day_id )
13 | ) INHERITS( base.conference_day );
14 |
15 | CREATE TABLE log.conference_day (
16 | ) INHERITS( base.logging, base.conference_day );
17 |
18 | CREATE INDEX log_conference_day_conference_day_id_idx ON log.conference_day( conference_day_id );
19 | CREATE INDEX log_conference_day_log_transaction_id_idx ON log.conference_day( log_transaction_id );
20 |
21 |
--------------------------------------------------------------------------------
/sql/tables/conference_link.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE base.conference_link (
3 | conference_link_id SERIAL NOT NULL,
4 | conference_id INTEGER NOT NULL,
5 | url TEXT NOT NULL,
6 | title TEXT,
7 | rank INTEGER
8 | );
9 |
10 | CREATE TABLE conference_link (
11 | FOREIGN KEY (conference_id) REFERENCES conference (conference_id) ON UPDATE CASCADE ON DELETE CASCADE,
12 | PRIMARY KEY (conference_link_id)
13 | ) INHERITS( base.conference_link );
14 |
15 | CREATE TABLE log.conference_link (
16 | ) INHERITS( base.logging,base.conference_link );
17 |
18 | CREATE INDEX log_conference_link_conference_id_idx ON log.conference_link( conference_id );
19 | CREATE INDEX log_conference_link_log_transaction_id_idx ON log.conference_link( log_transaction_id );
20 |
21 |
--------------------------------------------------------------------------------
/sql/tables/conference_phase.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE base.conference_phase (
3 | conference_phase TEXT NOT NULL,
4 | rank INTEGER
5 | );
6 |
7 | CREATE TABLE conference_phase (
8 | PRIMARY KEY (conference_phase)
9 | ) INHERITS( base.conference_phase );
10 |
11 | CREATE TABLE log.conference_phase (
12 | ) INHERITS( base.logging, base.conference_phase );
13 |
14 | CREATE INDEX log_conference_phase_conference_phase_idx ON log.conference_phase( conference_phase );
15 | CREATE INDEX log_conference_phase_log_transaction_id_idx ON log.conference_phase( log_transaction_id );
16 |
17 |
--------------------------------------------------------------------------------
/sql/tables/conference_team.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE base.conference_team (
3 | conference_id INTEGER NOT NULL,
4 | conference_team TEXT NOT NULL,
5 | rank INTEGER
6 | );
7 |
8 | CREATE TABLE conference_team (
9 | FOREIGN KEY (conference_id) REFERENCES conference(conference_id) ON UPDATE CASCADE ON DELETE CASCADE,
10 | PRIMARY KEY (conference_id,conference_team)
11 | ) INHERITS (base.conference_team);
12 |
13 | CREATE TABLE log.conference_team (
14 | ) INHERITS( base.logging, base.conference_team );
15 |
16 | CREATE INDEX log_conference_team_conference_team_idx ON log.conference_team( conference_team );
17 | CREATE INDEX log_conference_team_log_transaction_id_idx ON log.conference_team( log_transaction_id );
18 |
19 |
--------------------------------------------------------------------------------
/sql/tables/conflict/conflict.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE base.conflict (
3 | conflict TEXT NOT NULL,
4 | conflict_type TEXT NOT NULL,
5 | CHECK (conflict ~ '^[a-z_]+$')
6 | );
7 |
8 | CREATE TABLE conflict.conflict (
9 | FOREIGN KEY (conflict_type) REFERENCES conflict.conflict_type (conflict_type) ON UPDATE CASCADE ON DELETE RESTRICT,
10 | PRIMARY KEY (conflict)
11 | ) INHERITS( base.conflict );
12 |
13 | CREATE TABLE log.conflict (
14 | ) INHERITS( base.logging, base.conflict );
15 |
16 | CREATE INDEX log_conflict_conflict_idx ON log.conflict( conflict );
17 | CREATE INDEX log_conflict_log_transaction_id_idx ON log.conflict( log_transaction_id );
18 |
19 |
--------------------------------------------------------------------------------
/sql/tables/conflict/conflict_level.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE base.conflict_level (
3 | conflict_level TEXT NOT NULL,
4 | rank INTEGER
5 | );
6 |
7 | CREATE TABLE conflict.conflict_level (
8 | PRIMARY KEY (conflict_level)
9 | ) INHERITS( base.conflict_level );
10 |
11 | CREATE TABLE log.conflict_level (
12 | ) INHERITS( base.logging, base.conflict_level );
13 |
14 | CREATE INDEX log_conflict_level_conflict_level_idx ON log.conflict_level( conflict_level );
15 | CREATE INDEX log_conflict_level_log_transaction_id_idx ON log.conflict_level( log_transaction_id );
16 |
17 |
--------------------------------------------------------------------------------
/sql/tables/conflict/conflict_type.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE base.conflict_type (
3 | conflict_type TEXT
4 | );
5 |
6 | CREATE TABLE conflict.conflict_type (
7 | PRIMARY KEY (conflict_type)
8 | ) INHERITS( base.conflict_type );
9 |
10 | CREATE TABLE log.conflict_type (
11 | ) INHERITS( base.logging, base.conflict_type );
12 |
13 | CREATE INDEX log_conflict_type_conflict_type_idx ON log.conflict_type( conflict_type );
14 | CREATE INDEX log_conflict_type_log_transaction_id_idx ON log.conflict_type( log_transaction_id );
15 |
16 |
--------------------------------------------------------------------------------
/sql/tables/country.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE base.country (
3 | country TEXT NOT NULL
4 | );
5 |
6 | CREATE TABLE country (
7 | PRIMARY KEY( country )
8 | ) INHERITS( base.country );
9 |
10 | CREATE TABLE log.country (
11 | ) INHERITS( base.logging, base.country );
12 |
13 | CREATE INDEX log_country_country_idx ON log.country( country );
14 | CREATE INDEX log_country_log_transaction_id_idx ON log.country( log_transaction_id );
15 |
16 |
--------------------------------------------------------------------------------
/sql/tables/country_localized.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE base.country_localized (
3 | country TEXT NOT NULL,
4 | translated TEXT NOT NULL,
5 | name TEXT NOT NULL
6 | );
7 |
8 | CREATE TABLE country_localized (
9 | FOREIGN KEY( country ) REFERENCES country( country ) ON UPDATE CASCADE ON DELETE CASCADE,
10 | FOREIGN KEY( translated ) REFERENCES language( language ) ON UPDATE CASCADE ON DELETE CASCADE,
11 | PRIMARY KEY( country, translated )
12 | ) INHERITS( base.country_localized );
13 |
14 | CREATE TABLE log.country_localized (
15 | ) INHERITS( base.logging, base.country_localized );
16 |
17 | CREATE INDEX log_country_localized_country_idx ON log.country_localized( country );
18 | CREATE INDEX log_country_localized_log_transaction_id_idx ON log.country_localized( log_transaction_id );
19 |
20 |
--------------------------------------------------------------------------------
/sql/tables/currency.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE base.currency (
3 | currency TEXT NOT NULL,
4 | exchange_rate DECIMAL(15,5)
5 | );
6 |
7 | CREATE TABLE currency (
8 | PRIMARY KEY( currency )
9 | ) INHERITS( base.currency );
10 |
11 | CREATE TABLE log.currency (
12 | ) INHERITS( base.logging, base.currency );
13 |
14 | CREATE INDEX log_currency_currency_idx ON log.currency( currency );
15 | CREATE INDEX log_currency_log_transaction_id_idx ON log.currency( log_transaction_id );
16 |
17 |
--------------------------------------------------------------------------------
/sql/tables/custom/custom_conference.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE base.custom_conference (
3 | conference_id INTEGER NOT NULL
4 | );
5 |
6 | CREATE TABLE custom.custom_conference (
7 | PRIMARY KEY( conference_id ),
8 | FOREIGN KEY( conference_id) REFERENCES conference(conference_id) ON UPDATE CASCADE ON DELETE CASCADE
9 | ) INHERITS( base.custom_conference );
10 |
11 | CREATE TABLE log.custom_conference (
12 | ) INHERITS( base.logging, base.custom_conference );
13 |
14 | CREATE INDEX log_custom_conference_conference_id_idx ON log.custom_conference( conference_id );
15 | CREATE INDEX log_custom_conference_log_transaction_id_idx ON log.custom_conference( log_transaction_id );
16 |
17 |
--------------------------------------------------------------------------------
/sql/tables/custom/custom_event.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE base.custom_event (
3 | event_id INTEGER NOT NULL
4 | );
5 |
6 | CREATE TABLE custom.custom_event (
7 | PRIMARY KEY( event_id ),
8 | FOREIGN KEY( event_id) REFERENCES event(event_id) ON UPDATE CASCADE ON DELETE CASCADE
9 | ) INHERITS( base.custom_event );
10 |
11 | CREATE TABLE log.custom_event (
12 | ) INHERITS( base.logging, base.custom_event );
13 |
14 | CREATE INDEX log_custom_event_event_id_idx ON log.custom_event( event_id );
15 | CREATE INDEX log_custom_event_log_transaction_id_idx ON log.custom_event( log_transaction_id );
16 |
17 |
--------------------------------------------------------------------------------
/sql/tables/custom/custom_person.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE base.custom_person (
3 | person_id INTEGER NOT NULL
4 | );
5 |
6 | CREATE TABLE custom.custom_person (
7 | PRIMARY KEY( person_id ),
8 | FOREIGN KEY( person_id) REFERENCES person(person_id) ON UPDATE CASCADE ON DELETE CASCADE
9 | ) INHERITS( base.custom_person );
10 |
11 | CREATE TABLE log.custom_person (
12 | ) INHERITS( base.logging, base.custom_person );
13 |
14 | CREATE INDEX log_custom_person_person_id_idx ON log.custom_person( person_id );
15 | CREATE INDEX log_custom_person_log_transaction_id_idx ON log.custom_person( log_transaction_id );
16 |
17 |
--------------------------------------------------------------------------------
/sql/tables/dinner_menu.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE base.dinner_menu (
3 | dinner_menu_id SERIAL NOT NULL,
4 | conference_id INTEGER NOT NULL,
5 | title TEXT NOT NULL,
6 | description TEXT,
7 | vegetarian BOOL,
8 | rank INTEGER
9 | );
10 |
11 | CREATE TABLE dinner_menu (
12 | FOREIGN KEY (conference_id) REFERENCES conference (conference_id) ON UPDATE CASCADE ON DELETE RESTRICT,
13 | PRIMARY KEY (dinner_menu_id)
14 | ) INHERITS( base.dinner_menu );
15 |
16 | CREATE TABLE log.dinner_menu (
17 | ) INHERITS( base.logging, base.dinner_menu );
18 |
19 | CREATE INDEX log_dinner_menu_dinner_menu_id_idx ON log.dinner_menu( dinner_menu_id );
20 | CREATE INDEX log_dinner_menu_log_transaction_id_idx ON log.dinner_menu( log_transaction_id );
21 |
22 |
--------------------------------------------------------------------------------
/sql/tables/event_image.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE base.event_image (
3 | event_id INTEGER NOT NULL,
4 | mime_type TEXT NOT NULL,
5 | image BYTEA NOT NULL
6 | );
7 |
8 | CREATE TABLE event_image (
9 | FOREIGN KEY (event_id) REFERENCES event (event_id) ON UPDATE CASCADE ON DELETE CASCADE,
10 | FOREIGN KEY (mime_type) REFERENCES mime_type (mime_type) ON UPDATE CASCADE ON DELETE RESTRICT,
11 | PRIMARY KEY (event_id)
12 | ) INHERITS( base.event_image );
13 |
14 | CREATE TABLE log.event_image (
15 | ) INHERITS( base.logging, base.event_image );
16 |
17 | CREATE INDEX log_event_image_event_id_idx ON log.event_image( event_id );
18 | CREATE INDEX log_event_image_log_transaction_id_idx ON log.event_image( log_transaction_id );
19 |
20 |
--------------------------------------------------------------------------------
/sql/tables/event_link.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE base.event_link (
3 | event_link_id SERIAL NOT NULL,
4 | event_id INTEGER NOT NULL,
5 | url TEXT NOT NULL,
6 | title TEXT,
7 | rank INTEGER
8 | );
9 |
10 | CREATE TABLE event_link (
11 | FOREIGN KEY (event_id) REFERENCES event (event_id) ON UPDATE CASCADE ON DELETE CASCADE,
12 | PRIMARY KEY (event_link_id)
13 | ) INHERITS( base.event_link );
14 |
15 | CREATE TABLE log.event_link (
16 | ) INHERITS( base.logging, base.event_link );
17 |
18 | CREATE INDEX log_event_link_event_link_id_idx ON log.event_link( event_link_id );
19 | CREATE INDEX log_event_link_log_transaction_id_idx ON log.event_link( log_transaction_id );
20 |
21 |
--------------------------------------------------------------------------------
/sql/tables/event_origin.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE base.event_origin (
3 | event_origin TEXT NOT NULL,
4 | rank INTEGER
5 | );
6 |
7 | CREATE TABLE event_origin (
8 | PRIMARY KEY (event_origin)
9 | ) INHERITS( base.event_origin );
10 |
11 | CREATE TABLE log.event_origin (
12 | ) INHERITS( base.logging, base.event_origin );
13 |
14 | CREATE INDEX log_event_origin_event_origin_idx ON log.event_origin( event_origin );
15 | CREATE INDEX log_event_origin_log_transaction_id_idx ON log.event_origin( log_transaction_id );
16 |
17 |
--------------------------------------------------------------------------------
/sql/tables/event_role.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE base.event_role (
3 | event_role TEXT NOT NULL,
4 | participant BOOL NOT NULL DEFAULT FALSE,
5 | rank INTEGER,
6 | public BOOL NOT NULL DEFAULT FALSE
7 | );
8 |
9 | CREATE TABLE event_role (
10 | PRIMARY KEY (event_role)
11 | ) INHERITS( base.event_role );
12 |
13 | CREATE TABLE log.event_role (
14 | ) INHERITS( base.logging, base.event_role );
15 |
16 | CREATE INDEX log_event_role_event_role_idx ON log.event_role( event_role );
17 | CREATE INDEX log_event_role_log_transaction_id_idx ON log.event_role( log_transaction_id );
18 |
19 |
--------------------------------------------------------------------------------
/sql/tables/event_role_state.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE base.event_role_state (
3 | event_role_state TEXT NOT NULL,
4 | event_role TEXT NOT NULL,
5 | rank INTEGER
6 | );
7 |
8 | CREATE TABLE event_role_state (
9 | FOREIGN KEY (event_role) REFERENCES event_role (event_role) ON UPDATE CASCADE ON DELETE CASCADE,
10 | PRIMARY KEY (event_role,event_role_state)
11 | ) INHERITS( base.event_role_state );
12 |
13 | CREATE TABLE log.event_role_state (
14 | ) INHERITS( base.logging, base.event_role_state );
15 |
16 | CREATE INDEX log_event_role_state_event_role_event_role_state_idx ON log.event_role_state( event_role, event_role_state );
17 | CREATE INDEX log_event_role_state_log_transaction_id_idx ON log.event_role_state( log_transaction_id );
18 |
19 |
--------------------------------------------------------------------------------
/sql/tables/event_state.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE base.event_state (
3 | event_state TEXT,
4 | rank INTEGER
5 | );
6 |
7 | CREATE TABLE event_state (
8 | PRIMARY KEY (event_state)
9 | ) INHERITS( base.event_state );
10 |
11 | CREATE TABLE log.event_state (
12 | ) INHERITS( base.logging, base.event_state );
13 |
14 | CREATE INDEX log_event_state_event_state_idx ON log.event_state( event_state );
15 | CREATE INDEX log_event_state_log_transaction_id_idx ON log.event_state( log_transaction_id );
16 |
17 |
--------------------------------------------------------------------------------
/sql/tables/event_type.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE base.event_type (
3 | event_type TEXT,
4 | public_role_required BOOL NOT NULL DEFAULT false, -- this event type requires a public event_role for schedule inclusion
5 | rank INTEGER
6 | );
7 |
8 | CREATE TABLE event_type (
9 | PRIMARY KEY (event_type)
10 | ) INHERITS( base.event_type );
11 |
12 | CREATE TABLE log.event_type (
13 | ) INHERITS( base.logging, base.event_type );
14 |
15 | CREATE INDEX log_event_type_event_type_idx ON log.event_type( event_type );
16 | CREATE INDEX log_event_type_log_transaction_id_idx ON log.event_type( log_transaction_id );
17 |
18 |
--------------------------------------------------------------------------------
/sql/tables/im_type.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE base.im_type (
3 | im_type TEXT NOT NULL,
4 | scheme TEXT,
5 | rank INTEGER
6 | );
7 |
8 | CREATE TABLE im_type (
9 | PRIMARY KEY (im_type)
10 | ) INHERITS( base.im_type );
11 |
12 | CREATE TABLE log.im_type (
13 | ) INHERITS( base.logging, base.im_type );
14 |
15 | CREATE INDEX log_im_type_im_type_idx ON log.im_type( im_type );
16 | CREATE INDEX log_im_type_log_transaction_id_idx ON log.im_type( log_transaction_id );
17 |
18 |
--------------------------------------------------------------------------------
/sql/tables/im_type_localized.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE base.im_type_localized (
3 | im_type TEXT NOT NULL,
4 | translated TEXT NOT NULL,
5 | name TEXT NOT NULL
6 | );
7 |
8 | CREATE TABLE im_type_localized (
9 | FOREIGN KEY (im_type) REFERENCES im_type (im_type) ON UPDATE CASCADE ON DELETE CASCADE,
10 | FOREIGN KEY (translated) REFERENCES language (language) ON UPDATE CASCADE ON DELETE CASCADE,
11 | PRIMARY KEY (im_type, translated)
12 | ) INHERITS( base.im_type_localized );
13 |
14 | CREATE TABLE log.im_type_localized (
15 | ) INHERITS( base.logging, base.im_type_localized );
16 |
17 | CREATE INDEX log_im_type_localized_im_type_idx ON log.im_type_localized( im_type );
18 | CREATE INDEX log_im_type_localized_log_transaction_id_idx ON log.im_type_localized( log_transaction_id );
19 |
20 |
--------------------------------------------------------------------------------
/sql/tables/language.sql:
--------------------------------------------------------------------------------
1 |
2 | -- the language column is the iso 639-1 code of the language
3 | CREATE TABLE base.language (
4 | language TEXT NOT NULL,
5 | localized BOOL NOT NULL DEFAULT FALSE
6 | );
7 |
8 | CREATE TABLE language (
9 | PRIMARY KEY (language)
10 | ) INHERITS( base.language );
11 |
12 | CREATE TABLE log.language (
13 | ) INHERITS( base.logging, base.language );
14 |
15 | CREATE INDEX log_language_language_idx ON log.language( language );
16 | CREATE INDEX log_language_log_transaction_id_idx ON log.language( log_transaction_id );
17 |
18 |
--------------------------------------------------------------------------------
/sql/tables/link_type.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE base.link_type (
3 | link_type TEXT NOT NULL,
4 | template TEXT,
5 | rank INTEGER
6 | );
7 |
8 | CREATE TABLE link_type (
9 | PRIMARY KEY (link_type)
10 | ) INHERITS( base.link_type );
11 |
12 | CREATE TABLE log.link_type (
13 | ) INHERITS( base.logging, base.link_type );
14 |
15 | CREATE INDEX log_link_type_link_type_idx ON log.link_type( link_type );
16 | CREATE INDEX log_link_type_log_transaction_id_idx ON log.link_type( log_transaction_id );
17 |
18 |
--------------------------------------------------------------------------------
/sql/tables/log/log_transaction.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE base.log_transaction (
3 | log_transaction_id SERIAL,
4 | log_timestamp TIMESTAMP DEFAULT now(),
5 | person_id INTEGER
6 | );
7 |
8 | CREATE TABLE log.log_transaction (
9 | FOREIGN KEY (person_id) REFERENCES person(person_id) ON UPDATE CASCADE ON DELETE SET NULL,
10 | PRIMARY KEY( log_transaction_id )
11 | ) INHERITS( base.log_transaction );
12 |
13 | CREATE INDEX log_log_transaction_log_transaction_id_idx ON log.log_transaction( log_transaction_id );
14 |
15 |
--------------------------------------------------------------------------------
/sql/tables/mime_type.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE base.mime_type (
3 | mime_type TEXT NOT NULL,
4 | file_extension TEXT,
5 | image BOOL NOT NULL DEFAULT FALSE
6 | );
7 |
8 | CREATE TABLE mime_type (
9 | PRIMARY KEY (mime_type)
10 | ) INHERITS( base.mime_type );
11 |
12 | CREATE TABLE log.mime_type (
13 | ) INHERITS( base.logging, base.mime_type );
14 |
15 | CREATE INDEX log_mime_type_mime_type_idx ON log.mime_type( mime_type );
16 | CREATE INDEX log_mime_type_log_transaction_id_idx ON log.mime_type( log_transaction_id );
17 |
18 |
--------------------------------------------------------------------------------
/sql/tables/person_availability.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE base.person_availability (
3 | person_availability_id SERIAL,
4 | person_id INTEGER NOT NULL,
5 | conference_id INTEGER NOT NULL,
6 | start_date TIMESTAMP WITH TIME ZONE NOT NULL,
7 | duration INTERVAL NOT NULL
8 | );
9 |
10 | CREATE TABLE person_availability (
11 | FOREIGN KEY (person_id) REFERENCES person (person_id) ON UPDATE CASCADE ON DELETE CASCADE,
12 | FOREIGN KEY (conference_id) REFERENCES conference (conference_id) ON UPDATE CASCADE ON DELETE CASCADE,
13 | PRIMARY KEY (person_availability_id),
14 | UNIQUE (person_id, conference_id, start_date)
15 | ) INHERITS( base.person_availability );
16 |
17 |
--------------------------------------------------------------------------------
/sql/tables/person_im.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE base.person_im (
3 | person_im_id SERIAL NOT NULL,
4 | person_id INTEGER NOT NULL,
5 | im_type TEXT NOT NULL,
6 | im_address TEXT NOT NULL,
7 | rank INTEGER
8 | );
9 |
10 | CREATE TABLE person_im (
11 | FOREIGN KEY (person_id) REFERENCES person (person_id) ON UPDATE CASCADE ON DELETE CASCADE,
12 | FOREIGN KEY (im_type) REFERENCES im_type (im_type) ON UPDATE CASCADE ON DELETE RESTRICT,
13 | PRIMARY KEY (person_im_id)
14 | ) INHERITS( base.person_im );
15 |
16 | CREATE TABLE log.person_im (
17 | ) INHERITS( base.logging, base.person_im );
18 |
19 | CREATE INDEX log_person_im_person_im_id_idx ON log.person_im( person_im_id );
20 | CREATE INDEX log_person_im_log_transaction_id_idx ON log.person_im( log_transaction_id );
21 |
22 |
--------------------------------------------------------------------------------
/sql/tables/person_image.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE base.person_image (
3 | person_id INTEGER NOT NULL,
4 | mime_type TEXT NOT NULL,
5 | public BOOL NOT NULL DEFAULT FALSE,
6 | image BYTEA NOT NULL
7 | );
8 |
9 | CREATE TABLE person_image (
10 | FOREIGN KEY (person_id) REFERENCES person (person_id) ON UPDATE CASCADE ON DELETE CASCADE,
11 | FOREIGN KEY (mime_type) REFERENCES mime_type (mime_type) ON UPDATE CASCADE ON DELETE RESTRICT,
12 | PRIMARY KEY (person_id)
13 | ) INHERITS( base.person_image );
14 |
15 | CREATE TABLE log.person_image (
16 | ) INHERITS( base.logging, base.person_image );
17 |
18 | CREATE INDEX log_person_image_person_id_idx ON log.person_image( person_id );
19 | CREATE INDEX log_person_image_log_transaction_id_idx ON log.person_image( log_transaction_id );
20 |
21 |
--------------------------------------------------------------------------------
/sql/tables/person_language.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE base.person_language (
3 | person_id INTEGER NOT NULL,
4 | language TEXT NOT NULL,
5 | rank INTEGER
6 | );
7 |
8 | CREATE TABLE person_language (
9 | FOREIGN KEY (person_id) REFERENCES person (person_id) ON UPDATE CASCADE ON DELETE CASCADE,
10 | FOREIGN KEY (language) REFERENCES language (language) ON UPDATE CASCADE ON DELETE RESTRICT,
11 | PRIMARY KEY (person_id, language)
12 | ) INHERITS( base.person_language );
13 |
14 | CREATE TABLE log.person_language (
15 | ) INHERITS( base.logging, base.person_language );
16 |
17 | CREATE INDEX log_person_language_person_id_idx ON log.person_language( person_id );
18 | CREATE INDEX log_person_language_log_transaction_id_idx ON log.person_language( log_transaction_id );
19 |
20 |
--------------------------------------------------------------------------------
/sql/tables/person_rating.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE base.person_rating (
3 | person_id INTEGER NOT NULL,
4 | evaluator_id INTEGER NOT NULL,
5 | speaker_quality SMALLINT CHECK (speaker_quality > 0 AND speaker_quality < 6),
6 | competence SMALLINT CHECK (competence > 0 AND competence < 6),
7 | remark TEXT,
8 | eval_time TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now()
9 | );
10 |
11 | CREATE TABLE person_rating (
12 | FOREIGN KEY (person_id) REFERENCES person (person_id) ON UPDATE CASCADE ON DELETE CASCADE,
13 | FOREIGN KEY (evaluator_id) REFERENCES person (person_id) ON UPDATE CASCADE ON DELETE CASCADE,
14 | PRIMARY KEY (person_id, evaluator_id)
15 | ) INHERITS( base.person_rating );
16 |
17 |
--------------------------------------------------------------------------------
/sql/tables/phone_type.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE base.phone_type (
3 | phone_type TEXT NOT NULL,
4 | scheme TEXT,
5 | rank INTEGER
6 | );
7 |
8 | CREATE TABLE phone_type (
9 | PRIMARY KEY( phone_type )
10 | ) INHERITS( base.phone_type );
11 |
12 | CREATE TABLE log.phone_type (
13 | ) INHERITS( base.logging, base.phone_type );
14 |
15 | CREATE INDEX log_phone_type_phone_type_idx ON log.phone_type( phone_type );
16 | CREATE INDEX log_phone_type_log_transaction_id_idx ON log.phone_type( log_transaction_id );
17 |
18 |
--------------------------------------------------------------------------------
/sql/tables/release/conference.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE release.conference (
3 | FOREIGN KEY (conference_release_id) REFERENCES conference_release ON UPDATE CASCADE ON DELETE CASCADE,
4 | PRIMARY KEY (conference_release_id,conference_id)
5 | ) INHERITS( base.release, base.conference );
6 |
7 |
--------------------------------------------------------------------------------
/sql/tables/release/conference_day.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE release.conference_day (
3 | FOREIGN KEY (conference_release_id) REFERENCES conference_release ON UPDATE CASCADE ON DELETE CASCADE,
4 | PRIMARY KEY (conference_release_id,conference_day)
5 | ) INHERITS( base.release, base.conference_day );
6 |
7 |
--------------------------------------------------------------------------------
/sql/tables/release/conference_image.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE release.conference_image (
3 | FOREIGN KEY (conference_release_id) REFERENCES conference_release ON UPDATE CASCADE ON DELETE CASCADE,
4 | PRIMARY KEY (conference_release_id,conference_id)
5 | ) INHERITS( base.release, base.conference_image );
6 |
7 |
--------------------------------------------------------------------------------
/sql/tables/release/conference_link.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE release.conference_link (
3 | FOREIGN KEY (conference_release_id) REFERENCES conference_release ON UPDATE CASCADE ON DELETE CASCADE,
4 | PRIMARY KEY (conference_release_id,conference_link_id)
5 | ) INHERITS( base.release, base.conference_link );
6 |
7 |
--------------------------------------------------------------------------------
/sql/tables/release/conference_person.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE release.conference_person (
3 | FOREIGN KEY (conference_release_id) REFERENCES conference_release ON UPDATE CASCADE ON DELETE CASCADE,
4 | PRIMARY KEY (conference_release_id,conference_person_id)
5 | ) INHERITS( base.release, base.conference_person );
6 |
7 |
--------------------------------------------------------------------------------
/sql/tables/release/conference_person_link.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE release.conference_person_link (
3 | FOREIGN KEY (conference_release_id) REFERENCES conference_release ON UPDATE CASCADE ON DELETE CASCADE,
4 | PRIMARY KEY (conference_release_id,conference_person_link_id)
5 | ) INHERITS( base.release, base.conference_person_link );
6 |
7 |
--------------------------------------------------------------------------------
/sql/tables/release/conference_room.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE release.conference_room (
3 | FOREIGN KEY (conference_release_id) REFERENCES conference_release ON UPDATE CASCADE ON DELETE CASCADE,
4 | PRIMARY KEY (conference_release_id,conference_room_id)
5 | ) INHERITS( base.release, base.conference_room );
6 |
7 |
--------------------------------------------------------------------------------
/sql/tables/release/conference_track.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE release.conference_track (
3 | FOREIGN KEY (conference_release_id) REFERENCES conference_release ON UPDATE CASCADE ON DELETE CASCADE,
4 | PRIMARY KEY (conference_release_id,conference_track_id)
5 | ) INHERITS( base.release, base.conference_track );
6 |
7 |
--------------------------------------------------------------------------------
/sql/tables/release/event.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE release.event (
3 | FOREIGN KEY (conference_release_id) REFERENCES conference_release ON UPDATE CASCADE ON DELETE CASCADE,
4 | PRIMARY KEY (conference_release_id,event_id)
5 | ) INHERITS( base.release, base.event );
6 |
7 |
--------------------------------------------------------------------------------
/sql/tables/release/event_attachment.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE release.event_attachment (
3 | FOREIGN KEY (conference_release_id) REFERENCES conference_release ON UPDATE CASCADE ON DELETE CASCADE,
4 | PRIMARY KEY (conference_release_id,event_attachment_id)
5 | ) INHERITS( base.release, base.event_attachment );
6 |
7 |
--------------------------------------------------------------------------------
/sql/tables/release/event_image.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE release.event_image (
3 | FOREIGN KEY (conference_release_id) REFERENCES conference_release ON UPDATE CASCADE ON DELETE CASCADE,
4 | PRIMARY KEY (conference_release_id,event_id)
5 | ) INHERITS( base.release, base.event_image );
6 |
7 |
--------------------------------------------------------------------------------
/sql/tables/release/event_link.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE release.event_link (
3 | FOREIGN KEY (conference_release_id) REFERENCES conference_release ON UPDATE CASCADE ON DELETE CASCADE,
4 | PRIMARY KEY (conference_release_id,event_link_id)
5 | ) INHERITS( base.release, base.event_link );
6 |
7 |
--------------------------------------------------------------------------------
/sql/tables/release/event_person.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE release.event_person (
3 | FOREIGN KEY (conference_release_id) REFERENCES conference_release ON UPDATE CASCADE ON DELETE CASCADE,
4 | PRIMARY KEY (conference_release_id,event_person_id)
5 | ) INHERITS( base.release, base.event_person );
6 |
7 |
--------------------------------------------------------------------------------
/sql/tables/release/person.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE release.person (
3 | FOREIGN KEY (conference_release_id) REFERENCES conference_release ON UPDATE CASCADE ON DELETE CASCADE,
4 | PRIMARY KEY (conference_release_id,person_id)
5 | ) INHERITS( base.release, base.person );
6 |
7 |
--------------------------------------------------------------------------------
/sql/tables/release/person_image.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE release.person_image (
3 | FOREIGN KEY (conference_release_id) REFERENCES conference_release ON UPDATE CASCADE ON DELETE CASCADE,
4 | PRIMARY KEY (conference_release_id,person_id)
5 | ) INHERITS( base.release, base.person_image );
6 |
7 |
--------------------------------------------------------------------------------
/sql/tables/timezone.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE base.timezone (
3 | timezone TEXT NOT NULL,
4 | abbreviation TEXT NOT NULL,
5 | utc_offset INTERVAL NOT NULL
6 | );
7 |
8 | CREATE TABLE timezone (
9 | PRIMARY KEY( timezone )
10 | ) INHERITS( base.timezone );
11 |
12 | CREATE TABLE log.timezone (
13 | ) INHERITS( base.logging, base.timezone );
14 |
15 | CREATE INDEX log_timezone_timezone_idx ON log.timezone( timezone );
16 | CREATE INDEX log_timezone_log_transaction_id_idx ON log.timezone( log_transaction_id );
17 |
18 |
--------------------------------------------------------------------------------
/sql/tables/transport.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE base.transport (
3 | transport TEXT,
4 | rank INTEGER
5 | );
6 |
7 | CREATE TABLE transport (
8 | PRIMARY KEY (transport)
9 | ) INHERITS( base.transport );
10 |
11 | CREATE TABLE log.transport (
12 | ) INHERITS( base.logging, base.transport );
13 |
14 | CREATE INDEX log_transport_transport_idx ON log.transport( transport );
15 | CREATE INDEX log_transport_log_transaction_id_idx ON log.transport( log_transaction_id );
16 |
17 |
--------------------------------------------------------------------------------
/sql/tables/ui_message.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE TABLE base.ui_message (
3 | ui_message TEXT NOT NULL
4 | );
5 |
6 | CREATE TABLE ui_message (
7 | PRIMARY KEY (ui_message)
8 | ) INHERITS( base.ui_message );
9 |
10 |
--------------------------------------------------------------------------------
/sql/views/conference_image_modification.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE OR REPLACE VIEW view_conference_image_modification AS
3 | SELECT
4 | conference_image.conference_id,
5 | coalesce(log_timestamp,now()) AS last_modified
6 | FROM
7 | conference_image
8 | LEFT OUTER JOIN (
9 | SELECT
10 | conference_image.conference_id,
11 | log_timestamp
12 | FROM
13 | log.conference_image
14 | INNER JOIN log.log_transaction USING(log_transaction_id)
15 | ) AS log USING(conference_id)
16 | ;
17 |
--------------------------------------------------------------------------------
/sql/views/conference_person.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE OR REPLACE VIEW view_conference_person AS
3 | SELECT conference_person_id,
4 | person_id,
5 | conference_id,
6 | name,
7 | abstract,
8 | description,
9 | remark,
10 | conference_person.email
11 | FROM conference_person
12 | INNER JOIN view_person USING (person_id)
13 | ;
14 |
15 |
--------------------------------------------------------------------------------
/sql/views/conference_person_link_internal.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE OR REPLACE VIEW view_conference_person_link_internal AS
3 | SELECT conference_person_link_internal_id,
4 | conference_person_id,
5 | link_type,
6 | url,
7 | description,
8 | conference_person_link_internal.rank,
9 | translated,
10 | template,
11 | link_type_localized.name AS link_type_name
12 | FROM conference_person_link_internal
13 | INNER JOIN link_type USING (link_type)
14 | INNER JOIN link_type_localized USING (link_type);
15 |
16 |
--------------------------------------------------------------------------------
/sql/views/event_feedback.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE OR REPLACE VIEW view_event_feedback AS
3 | SELECT event_feedback.event_id,
4 | event.conference_id,
5 | event_feedback.participant_knowledge,
6 | event_feedback.topic_importance,
7 | event_feedback.content_quality,
8 | event_feedback.presentation_quality,
9 | event_feedback.audience_involvement,
10 | event_feedback.remark,
11 | event_feedback.eval_time
12 | FROM event_feedback
13 | INNER JOIN event USING (event_id)
14 | ;
15 |
16 |
--------------------------------------------------------------------------------
/sql/views/event_image_modification.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE OR REPLACE VIEW view_event_image_modification AS
3 | SELECT
4 | event_image.event_id,
5 | coalesce(log_timestamp,now()) AS last_modified
6 | FROM
7 | event_image
8 | LEFT OUTER JOIN (
9 | SELECT
10 | event_image.event_id,
11 | log_timestamp
12 | FROM
13 | log.event_image
14 | INNER JOIN log.log_transaction USING(log_transaction_id)
15 | ) AS log USING(event_id)
16 | ;
17 |
18 |
--------------------------------------------------------------------------------
/sql/views/event_link_internal.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE OR REPLACE VIEW view_event_link_internal AS
3 | SELECT event_link_internal_id,
4 | event_id,
5 | link_type,
6 | url,
7 | description,
8 | event_link_internal.rank,
9 | translated,
10 | template,
11 | link_type_localized.name AS link_type_name
12 | FROM event_link_internal
13 | INNER JOIN link_type USING (link_type)
14 | INNER JOIN link_type_localized USING (link_type);
15 |
16 |
--------------------------------------------------------------------------------
/sql/views/event_related.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE OR REPLACE VIEW view_event_related AS
3 | SELECT event_id1,
4 | event_id2 AS event_id,
5 | title,
6 | subtitle
7 | FROM event_related
8 | INNER JOIN event ON (event_related.event_id2 = event.event_id);
9 |
10 |
--------------------------------------------------------------------------------
/sql/views/find/find_conference.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE OR REPLACE VIEW view_find_conference AS
3 | SELECT conference.conference_id,
4 | conference.acronym,
5 | conference.title,
6 | conference.subtitle,
7 | conference_day.start_date,
8 | conference.venue,
9 | conference.city,
10 | conference_image.mime_type,
11 | mime_type.file_extension
12 | FROM conference
13 | LEFT OUTER JOIN ( SELECT conference_id, min(conference_day) AS start_date FROM conference_day GROUP BY conference_id ) AS conference_day USING (conference_id)
14 | LEFT OUTER JOIN conference_image USING (conference_id)
15 | LEFT OUTER JOIN mime_type USING (mime_type)
16 | ;
17 |
18 |
--------------------------------------------------------------------------------
/sql/views/find/view_find_account.sql:
--------------------------------------------------------------------------------
1 | CREATE OR REPLACE VIEW view_find_account AS
2 | SELECT
3 | account.account_id,
4 | account.login_name,
5 | account.email AS account_email,
6 | account.person_id,
7 | view_person.first_name,
8 | view_person.last_name,
9 | view_person.public_name,
10 | view_person.nickname,
11 | view_person.email AS person_email,
12 | view_person.name
13 | FROM
14 | auth.account
15 | LEFT OUTER JOIN view_person USING(person_id)
16 | ORDER BY login_name
17 | ;
18 |
--------------------------------------------------------------------------------
/sql/views/last_active.sql:
--------------------------------------------------------------------------------
1 |
2 | -- view for last active user
3 | CREATE OR REPLACE VIEW view_last_active AS
4 | SELECT account_id,
5 | person_id,
6 | login_name,
7 | name,
8 | last_login,
9 | date_trunc( 'second', now() - last_login) AS login_diff
10 | FROM auth.account
11 | INNER JOIN auth.account_settings USING(account_id)
12 | INNER JOIN view_person USING(person_id)
13 | WHERE last_login > now() + '-1 hour'::interval
14 | ORDER BY last_login DESC;
15 |
16 |
--------------------------------------------------------------------------------
/sql/views/mail/mail_all_reviewer.sql:
--------------------------------------------------------------------------------
1 |
2 | -- returns all reviewer
3 | CREATE OR REPLACE VIEW view_mail_all_reviewer AS
4 | SELECT DISTINCT ON ( view_person.person_id )
5 | view_person.person_id,
6 | view_person.name,
7 | view_person.email,
8 | view_person.spam
9 | FROM view_person
10 | INNER JOIN auth.account USING (person_id)
11 | INNER JOIN auth.account_role ON (
12 | account_role.account_id = account.account_id AND
13 | account_role.role = 'reviewer'
14 | )
15 | WHERE
16 | view_person.email IS NOT NULL
17 | ;
18 |
19 |
--------------------------------------------------------------------------------
/sql/views/mail/mail_all_speaker.sql:
--------------------------------------------------------------------------------
1 |
2 | -- returns all speakers of all conferences
3 | CREATE OR REPLACE VIEW view_mail_all_speaker AS
4 | SELECT DISTINCT ON ( person.person_id )
5 | person.person_id,
6 | view_person.name,
7 | view_person.email,
8 | view_person.spam
9 | FROM event_person
10 | INNER JOIN person ON (
11 | person.person_id = event_person.person_id AND
12 | person.email IS NOT NULL)
13 | INNER JOIN view_person ON (
14 | view_person.person_id = event_person.person_id )
15 | WHERE event_role IN ('speaker','moderator')
16 | ;
17 |
18 |
--------------------------------------------------------------------------------
/sql/views/person.sql:
--------------------------------------------------------------------------------
1 |
2 | -- view for persons with name
3 | CREATE OR REPLACE VIEW view_person AS
4 | SELECT person_id,
5 | coalesce(person.public_name, coalesce(person.first_name || ' ', '') || person.last_name, person.nickname) AS name,
6 | title,
7 | gender,
8 | first_name,
9 | last_name,
10 | public_name,
11 | nickname,
12 | address,
13 | street,
14 | street_postcode,
15 | po_box,
16 | po_box_postcode,
17 | city,
18 | country,
19 | email,
20 | spam,
21 | iban,
22 | bic,
23 | bank_name,
24 | account_owner
25 | FROM person;
26 |
27 |
--------------------------------------------------------------------------------
/sql/views/person_image_modification.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE OR REPLACE VIEW view_person_image_modification AS
3 | SELECT
4 | person_image.person_id,
5 | coalesce(log_timestamp,now()) AS last_modified
6 | FROM
7 | person_image
8 | LEFT OUTER JOIN (
9 | SELECT
10 | person_image.person_id,
11 | log_timestamp
12 | FROM
13 | log.person_image
14 | INNER JOIN log.log_transaction USING(log_transaction_id)
15 | ) AS log USING(person_id)
16 | ;
17 |
--------------------------------------------------------------------------------
/sql/views/person_rating.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE OR REPLACE VIEW view_person_rating AS
3 | SELECT
4 | person_rating.person_id,
5 | person_rating.evaluator_id,
6 | person_rating.speaker_quality,
7 | person_rating.competence,
8 | person_rating.remark,
9 | person_rating.eval_time,
10 | view_person.name
11 | FROM
12 | person_rating
13 | INNER JOIN view_person ON (person_rating.evaluator_id = view_person.person_id)
14 | WHERE
15 | person_rating.speaker_quality IS NOT NULL OR
16 | person_rating.competence IS NOT NULL OR
17 | person_rating.remark IS NOT NULL
18 | ORDER BY person_rating.eval_time DESC
19 | ;
20 |
21 |
--------------------------------------------------------------------------------
/sql/views/recent_changes.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE OR REPLACE VIEW view_recent_changes AS
3 | SELECT
4 | log_transaction_id,
5 | log_timestamp,
6 | person_id,
7 | name
8 | FROM log.log_transaction
9 | LEFT OUTER JOIN view_person USING(person_id)
10 | ORDER BY log_timestamp DESC
11 | ;
12 |
13 |
--------------------------------------------------------------------------------
/sql/views/release/view_person.sql:
--------------------------------------------------------------------------------
1 | -- view for persons with name
2 | CREATE OR REPLACE VIEW release.view_person AS
3 | SELECT
4 | person_id,
5 | conference_release_id,
6 | coalesce(person.public_name, coalesce(person.first_name || ' ', '') || person.last_name, person.nickname) AS name,
7 | title,
8 | gender,
9 | first_name,
10 | last_name,
11 | public_name,
12 | nickname,
13 | address,
14 | street,
15 | street_postcode,
16 | po_box,
17 | po_box_postcode,
18 | city,
19 | country,
20 | email,
21 | spam,
22 | iban,
23 | bic,
24 | bank_name,
25 | account_owner
26 | FROM
27 | release.person
28 | ;
29 |
30 |
--------------------------------------------------------------------------------
/sql/views/release/view_schedule_day.sql:
--------------------------------------------------------------------------------
1 | CREATE OR REPLACE VIEW release.view_schedule_day AS
2 | SELECT
3 | conference_release_id,
4 | conference_id,
5 | conference_day_id,
6 | conference_day,
7 | name
8 | FROM
9 | release.conference_day
10 | WHERE
11 | conference_day.public = TRUE
12 | ORDER BY conference_day.conference_day
13 | ;
14 |
15 |
--------------------------------------------------------------------------------
/sql/views/release/view_schedule_event_attachment.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE OR REPLACE VIEW release.view_schedule_event_attachment AS
3 | SELECT
4 | conference_release_id,
5 | event_attachment_id,
6 | event_id,
7 | attachment_type,
8 | attachment_type_localized.name AS attachment_type_name,
9 | mime_type,
10 | mime_type_localized.name AS mime_type_name,
11 | filename,
12 | title,
13 | pages,
14 | public,
15 | octet_length( data ) AS filesize,
16 | attachment_type_localized.translated
17 | FROM
18 | release.event_attachment
19 | INNER JOIN attachment_type_localized USING (attachment_type)
20 | INNER JOIN mime_type_localized USING (mime_type, translated)
21 | WHERE
22 | event_attachment.public = TRUE
23 | ORDER BY title,filename
24 | ;
25 |
26 |
--------------------------------------------------------------------------------
/sql/views/release/view_schedule_room.sql:
--------------------------------------------------------------------------------
1 | CREATE OR REPLACE VIEW release.view_schedule_room AS
2 | SELECT
3 | conference_release_id,
4 | conference_id,
5 | conference_room_id,
6 | conference_room,
7 | public,
8 | size,
9 | remark,
10 | rank
11 | FROM
12 | release.conference_room
13 | WHERE
14 | conference_room.public = TRUE
15 | ORDER BY rank, conference_room
16 | ;
17 |
18 |
--------------------------------------------------------------------------------
/sql/views/release/view_schedule_track.sql:
--------------------------------------------------------------------------------
1 | CREATE OR REPLACE VIEW release.view_schedule_track AS
2 | SELECT
3 | conference_release_id,
4 | conference_id,
5 | conference_track_id,
6 | conference_track,
7 | rank
8 | FROM
9 | release.conference_track
10 | WHERE
11 | EXISTS (
12 | SELECT 1
13 | FROM
14 | release.view_schedule_event
15 | WHERE
16 | view_schedule_event.conference_release_id = conference_track.conference_release_id AND
17 | view_schedule_event.conference_track_id = conference_track.conference_track_id
18 | )
19 | ORDER BY rank, conference_track
20 | ;
21 |
22 |
--------------------------------------------------------------------------------
/sql/views/report/report_events.sql:
--------------------------------------------------------------------------------
1 | CREATE OR REPLACE VIEW view_report_events AS
2 | SELECT
3 | event.conference_id,
4 | event.event_id,
5 | event.title,
6 | event.subtitle,
7 | array_to_string( ARRAY(
8 | SELECT view_person.name || '(' || event_person.event_role || ')'
9 | FROM event_person
10 | INNER JOIN view_person USING (person_id)
11 | WHERE event_person.event_id=event.event_id
12 | ), ', ' ) AS persons,
13 | event.resources,
14 | CASE event.slides WHEN TRUE THEN 'yes' WHEN FALSE THEN 'no' ELSE 'unknown' END AS slides
15 |
16 | FROM event;
17 |
18 |
--------------------------------------------------------------------------------
/sql/views/report/report_schedule_coordinator.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE OR REPLACE VIEW view_report_schedule_coordinator AS
3 | SELECT count(person_id) AS count,
4 | person_id,
5 | conference_id,
6 | name
7 | FROM event_person
8 | INNER JOIN event ON (
9 | event.event_id = event_person.event_id AND
10 | event.event_state = 'accepted' )
11 | INNER JOIN view_person USING (person_id)
12 | WHERE event_person.event_role = 'coordinator'
13 | GROUP BY person_id, name, conference_id
14 | ORDER BY count(person_id) DESC
15 | ;
16 |
17 |
--------------------------------------------------------------------------------
/sql/views/report/report_schedule_gender.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE OR REPLACE VIEW view_report_schedule_gender AS
3 | SELECT DISTINCT ON (person_id, conference_id)
4 | person_id,
5 | conference_id,
6 | gender
7 | FROM event_person
8 | INNER JOIN person USING (person_id)
9 | INNER JOIN event USING (event_id)
10 | WHERE event.event_state = 'accepted' AND
11 | event_person.event_role IN ('speaker','moderator') AND
12 | event_person.event_role_state = 'confirmed'
13 | ;
14 |
15 |
--------------------------------------------------------------------------------
/sql/views/schedule/view_schedule_day.sql:
--------------------------------------------------------------------------------
1 | CREATE OR REPLACE VIEW view_schedule_day AS
2 | SELECT
3 | conference_id,
4 | conference_day_id,
5 | conference_day,
6 | name
7 | FROM
8 | conference_day
9 | WHERE
10 | conference_day.public = TRUE
11 | ORDER BY conference_day.conference_day
12 | ;
13 |
14 |
--------------------------------------------------------------------------------
/sql/views/schedule/view_schedule_event_attachment.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE OR REPLACE VIEW view_schedule_event_attachment AS
3 | SELECT
4 | event_attachment_id,
5 | event_id,
6 | attachment_type,
7 | attachment_type_localized.name AS attachment_type_name,
8 | mime_type,
9 | mime_type_localized.name AS mime_type_name,
10 | filename,
11 | title,
12 | pages,
13 | public,
14 | octet_length( data ) AS filesize,
15 | attachment_type_localized.translated
16 | FROM
17 | event_attachment
18 | INNER JOIN attachment_type_localized USING (attachment_type)
19 | INNER JOIN mime_type_localized USING (mime_type, translated)
20 | WHERE
21 | event_attachment.public = TRUE
22 | ORDER BY title,filename
23 | ;
24 |
25 |
--------------------------------------------------------------------------------
/sql/views/schedule/view_schedule_room.sql:
--------------------------------------------------------------------------------
1 | CREATE OR REPLACE VIEW view_schedule_room AS
2 | SELECT
3 | conference_id,
4 | conference_room_id,
5 | conference_room,
6 | public,
7 | size,
8 | remark,
9 | rank
10 | FROM
11 | conference_room
12 | WHERE
13 | conference_room.public = TRUE
14 | ORDER BY rank, conference_room
15 | ;
16 |
17 |
--------------------------------------------------------------------------------
/sql/views/schedule/view_schedule_track.sql:
--------------------------------------------------------------------------------
1 | CREATE OR REPLACE VIEW view_schedule_track AS
2 | SELECT
3 | conference_id,
4 | conference_track_id,
5 | conference_track,
6 | rank
7 | FROM
8 | conference_track
9 | WHERE
10 | EXISTS( SELECT 1 FROM view_schedule_event WHERE view_schedule_event.conference_track_id = conference_track.conference_track_id )
11 | ORDER BY rank, conference_track
12 | ;
13 |
14 |
--------------------------------------------------------------------------------
/sql/views/view_conference_language.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE OR REPLACE VIEW view_conference_language AS
3 | SELECT
4 | conference_language.language,
5 | conference_language.conference_id,
6 | language_localized.translated,
7 | language_localized.name
8 | FROM
9 | conference_language
10 | INNER JOIN language_localized USING (language)
11 | ;
12 |
13 |
--------------------------------------------------------------------------------
/sql/views/view_event_category_rating.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE OR REPLACE VIEW view_event_category_rating AS
3 | SELECT
4 | event_rating.event_id,
5 | event_rating.person_id,
6 | view_person.name,
7 | event_rating_category.event_rating_category_id,
8 | event_rating_category.event_rating_category,
9 | event_rating.rating,
10 | event_rating.eval_time
11 | FROM
12 | event_rating
13 | INNER JOIN event_rating_category USING (event_rating_category_id)
14 | INNER JOIN view_person USING (person_id)
15 | ORDER BY event_rating_category.rank, event_rating_category.event_rating_category
16 | ;
17 |
18 |
--------------------------------------------------------------------------------
/sql/views/view_event_duration.sql:
--------------------------------------------------------------------------------
1 | CREATE OR REPLACE VIEW view_event_duration AS
2 | SELECT DISTINCT duration FROM event ORDER BY duration;
3 |
4 |
--------------------------------------------------------------------------------
/sql/views/view_event_state_progress_statistic.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE OR REPLACE VIEW view_event_state_progress_statistic AS
3 | SELECT
4 | conference_id,
5 | event_state,
6 | event_state_progress,
7 | count(event_state_progress) AS count,
8 | sum(duration) AS duration
9 | FROM
10 | event_state_progress
11 | INNER JOIN event USING( event_state, event_state_progress )
12 | GROUP BY
13 | conference_id,
14 | event_state,
15 | event_state_progress,
16 | event_state_progress.rank
17 | ORDER BY event_state_progress.rank;
18 |
19 |
--------------------------------------------------------------------------------
/sql/views/view_event_state_statistic.sql:
--------------------------------------------------------------------------------
1 |
2 | CREATE OR REPLACE VIEW view_event_state_statistic AS
3 | SELECT
4 | conference_id,
5 | event_state,
6 | count(event_state) AS count,
7 | sum(duration) AS duration
8 | FROM
9 | event_state
10 | INNER JOIN event USING( event_state )
11 | GROUP BY
12 | conference_id,
13 | event_state,
14 | event_state.rank
15 | ORDER BY event_state.rank;
16 |
17 |
--------------------------------------------------------------------------------