mirror of
https://github.com/openSUSE/osem.git
synced 2026-08-13 19:54:02 +00:00
Drop Organization Feature
This commit is contained in:
parent
dc1a6a4363
commit
275be8c80a
28 changed files with 22 additions and 402 deletions
|
|
@ -21,8 +21,7 @@ module Admin
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
unless (current_user.has_cached_role? :organizer, :any) || (current_user.has_cached_role? :cfp, :any) ||
|
unless (current_user.has_cached_role? :organizer, :any) || (current_user.has_cached_role? :cfp, :any) ||
|
||||||
(current_user.has_cached_role? :info_desk, :any) || (current_user.has_cached_role? :organization_admin, :any) ||
|
(current_user.has_cached_role? :info_desk, :any) || (current_user.has_cached_role? :volunteers_coordinator, :any) ||
|
||||||
(current_user.has_cached_role? :volunteers_coordinator, :any) ||
|
|
||||||
(current_user.has_cached_role? :track_organizer, :any) || current_user.is_admin
|
(current_user.has_cached_role? :track_organizer, :any) || current_user.is_admin
|
||||||
raise CanCan::AccessDenied.new('You are not authorized to access this page.')
|
raise CanCan::AccessDenied.new('You are not authorized to access this page.')
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -180,7 +180,7 @@ module Admin
|
||||||
:use_vpositions, :use_vdays, :vdays_attributes,
|
:use_vpositions, :use_vdays, :vdays_attributes,
|
||||||
:vpositions_attributes, :use_volunteers, :color,
|
:vpositions_attributes, :use_volunteers, :color,
|
||||||
:sponsorship_levels_attributes, :sponsors_attributes,
|
:sponsorship_levels_attributes, :sponsors_attributes,
|
||||||
:registration_limit, :organization_id, :ticket_layout,
|
:registration_limit, :ticket_layout,
|
||||||
:booth_limit)
|
:booth_limit)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -1,98 +0,0 @@
|
||||||
# frozen_string_literal: true
|
|
||||||
|
|
||||||
module Admin
|
|
||||||
class OrganizationsController < Admin::BaseController
|
|
||||||
load_and_authorize_resource :organization
|
|
||||||
before_action :verify_user, only: [:assign_org_admins, :unassign_org_admins]
|
|
||||||
|
|
||||||
def index
|
|
||||||
@organizations = Organization.all
|
|
||||||
end
|
|
||||||
|
|
||||||
def create
|
|
||||||
@organization = Organization.new(organization_params)
|
|
||||||
if @organization.save
|
|
||||||
redirect_to admin_organizations_path,
|
|
||||||
notice: 'Organization successfully created'
|
|
||||||
else
|
|
||||||
redirect_to new_admin_organization_path,
|
|
||||||
error: @organization.errors.full_messages.join(', ')
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def new
|
|
||||||
@organization = Organization.new
|
|
||||||
end
|
|
||||||
|
|
||||||
def edit; end
|
|
||||||
|
|
||||||
def update
|
|
||||||
if @organization.update(organization_params)
|
|
||||||
redirect_to admin_organizations_path,
|
|
||||||
notice: 'Organization successfully updated'
|
|
||||||
else
|
|
||||||
redirect_to edit_admin_organization_path(@organization),
|
|
||||||
error: @organization.errors.full_messages.join(', ')
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def destroy
|
|
||||||
if @organization.destroy
|
|
||||||
redirect_to admin_organizations_path,
|
|
||||||
notice: 'Organization successfully destroyed'
|
|
||||||
else
|
|
||||||
redirect_to admin_organizations_path,
|
|
||||||
error: 'Organization cannot be destroyed'
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def assign_org_admins
|
|
||||||
if @user.has_cached_role? 'organization_admin', @organization
|
|
||||||
flash[:error] = "User #{@user.email} already has the role organization admin"
|
|
||||||
elsif @user.add_role 'organization_admin', @organization
|
|
||||||
flash[:notice] = "Successfully added role organization admin to user #{@user.email}"
|
|
||||||
else
|
|
||||||
flash[:error] = "Coud not add role organization admin to #{@user.email}"
|
|
||||||
end
|
|
||||||
|
|
||||||
redirect_to admins_admin_organization_path(@organization)
|
|
||||||
end
|
|
||||||
|
|
||||||
def unassign_org_admins
|
|
||||||
if @user.remove_role 'organization_admin', @organization
|
|
||||||
flash[:notice] = "Successfully removed role organization admin from user #{@user.email}"
|
|
||||||
else
|
|
||||||
flash[:error] = "Could not remove role organization admin from user #{@user.email}"
|
|
||||||
end
|
|
||||||
|
|
||||||
redirect_to admins_admin_organization_path(@organization)
|
|
||||||
end
|
|
||||||
|
|
||||||
def admins
|
|
||||||
@role = @organization.roles.first
|
|
||||||
@users = @role.users
|
|
||||||
render 'show_org_admins'
|
|
||||||
end
|
|
||||||
|
|
||||||
private
|
|
||||||
|
|
||||||
def user_params
|
|
||||||
params.require(:user).permit(:email)
|
|
||||||
end
|
|
||||||
|
|
||||||
def verify_user
|
|
||||||
@user = User.find_by(email: user_params[:email])
|
|
||||||
unless @user
|
|
||||||
redirect_to admins_admin_organization_path(@organization),
|
|
||||||
error: 'Could not find user. Please provide a valid email!'
|
|
||||||
return
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def organization_params
|
|
||||||
params.require(:organization).permit(
|
|
||||||
:name, :description, :picture, :code_of_conduct
|
|
||||||
)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
@ -8,9 +8,6 @@ module Admin
|
||||||
def index
|
def index
|
||||||
@conferences_with_role = current_user.is_admin? ? Conference.pluck(:short_title) : Conference.with_role([:organizer, :cfp, :info_desk], current_user).pluck(:short_title)
|
@conferences_with_role = current_user.is_admin? ? Conference.pluck(:short_title) : Conference.with_role([:organizer, :cfp, :info_desk], current_user).pluck(:short_title)
|
||||||
|
|
||||||
if current_user.has_cached_role? :organization_admin, :any
|
|
||||||
@conferences_with_role = Organization.with_role('organization_admin', current_user).map { |org| org.conferences.pluck :short_title }.flatten
|
|
||||||
end
|
|
||||||
@conferences_with_role.uniq!
|
@conferences_with_role.uniq!
|
||||||
|
|
||||||
return if @conference.blank?
|
return if @conference.blank?
|
||||||
|
|
|
||||||
|
|
@ -1,21 +0,0 @@
|
||||||
# frozen_string_literal: true
|
|
||||||
|
|
||||||
class OrganizationsController < ApplicationController
|
|
||||||
load_and_authorize_resource :organization
|
|
||||||
|
|
||||||
def index
|
|
||||||
@organizations = Organization.all
|
|
||||||
end
|
|
||||||
|
|
||||||
def code_of_conduct
|
|
||||||
@title = "#{@organization.name}: Code of Conduct"
|
|
||||||
@content = @organization.code_of_conduct
|
|
||||||
render 'document'
|
|
||||||
end
|
|
||||||
|
|
||||||
def conferences
|
|
||||||
@current = @organization.conferences.upcoming.reorder(start_date: :asc)
|
|
||||||
@antiquated = @organization.conferences.past
|
|
||||||
render '/conferences/index'
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
@ -140,7 +140,7 @@ module ApplicationHelper
|
||||||
|
|
||||||
def nav_root_link_for(conference)
|
def nav_root_link_for(conference)
|
||||||
link_text = (
|
link_text = (
|
||||||
conference.try(:organization).try(:name) || ENV.fetch('OSEM_NAME', 'OSEM')
|
ENV.fetch('OSEM_NAME', 'OSEM')
|
||||||
)
|
)
|
||||||
link_to(
|
link_to(
|
||||||
link_text,
|
link_text,
|
||||||
|
|
|
||||||
|
|
@ -8,15 +8,6 @@ module VersionsHelper
|
||||||
version.item && conference ? link_to(link_text, link_url) : "#{link_text} with ID #{version.item_id}"
|
version.item && conference ? link_to(link_text, link_url) : "#{link_text} with ID #{version.item_id}"
|
||||||
end
|
end
|
||||||
|
|
||||||
def link_to_organization(organization_id)
|
|
||||||
return 'deleted organization' unless organization_id
|
|
||||||
|
|
||||||
org = Organization.find_by(id: organization_id)
|
|
||||||
return current_or_last_object_state('Organization', organization_id).try(:name) unless org
|
|
||||||
|
|
||||||
org.name.to_s
|
|
||||||
end
|
|
||||||
|
|
||||||
def link_to_conference(conference_id)
|
def link_to_conference(conference_id)
|
||||||
return 'deleted conference' if conference_id.nil?
|
return 'deleted conference' if conference_id.nil?
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,9 +12,6 @@ class Conference < ApplicationRecord
|
||||||
scope :upcoming, (-> { where('end_date >= ?', Date.current) })
|
scope :upcoming, (-> { where('end_date >= ?', Date.current) })
|
||||||
scope :past, (-> { where('end_date < ?', Date.current) })
|
scope :past, (-> { where('end_date < ?', Date.current) })
|
||||||
|
|
||||||
belongs_to :organization
|
|
||||||
delegate :code_of_conduct, to: :organization
|
|
||||||
|
|
||||||
has_paper_trail ignore: %i(updated_at guid revision events_per_week), meta: { conference_id: :id }
|
has_paper_trail ignore: %i(updated_at guid revision events_per_week), meta: { conference_id: :id }
|
||||||
|
|
||||||
has_and_belongs_to_many :questions
|
has_and_belongs_to_many :questions
|
||||||
|
|
@ -83,7 +80,6 @@ class Conference < ApplicationRecord
|
||||||
:start_hour,
|
:start_hour,
|
||||||
:end_hour,
|
:end_hour,
|
||||||
:ticket_layout,
|
:ticket_layout,
|
||||||
:organization,
|
|
||||||
:timezone, presence: true
|
:timezone, presence: true
|
||||||
|
|
||||||
validates :short_title, uniqueness: true
|
validates :short_title, uniqueness: true
|
||||||
|
|
@ -579,11 +575,11 @@ class Conference < ApplicationRecord
|
||||||
# * +ActiveRecord+
|
# * +ActiveRecord+
|
||||||
def self.get_active_conferences_for_dashboard
|
def self.get_active_conferences_for_dashboard
|
||||||
result = Conference.where('start_date > ?', Time.now)
|
result = Conference.where('start_date > ?', Time.now)
|
||||||
.select('id, short_title, color, start_date, organization_id')
|
.select('id, short_title, color, start_date')
|
||||||
|
|
||||||
if result.empty?
|
if result.empty?
|
||||||
result = Conference
|
result = Conference
|
||||||
.select('id, short_title, color, start_date, organization_id').limit(2)
|
.select('id, short_title, color, start_date').limit(2)
|
||||||
.order(start_date: :desc)
|
.order(start_date: :desc)
|
||||||
end
|
end
|
||||||
result
|
result
|
||||||
|
|
@ -595,7 +591,7 @@ class Conference < ApplicationRecord
|
||||||
# ====Returns
|
# ====Returns
|
||||||
# * +ActiveRecord+
|
# * +ActiveRecord+
|
||||||
def self.get_conferences_without_active_for_dashboard(active_conferences)
|
def self.get_conferences_without_active_for_dashboard(active_conferences)
|
||||||
result = Conference.select('id, short_title, color, start_date, organization_id').order(start_date: :desc)
|
result = Conference.select('id, short_title, color, start_date').order(start_date: :desc)
|
||||||
result - active_conferences
|
result - active_conferences
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,25 +0,0 @@
|
||||||
# frozen_string_literal: true
|
|
||||||
|
|
||||||
class Organization < ApplicationRecord
|
|
||||||
resourcify :roles, dependent: :delete_all
|
|
||||||
|
|
||||||
has_paper_trail
|
|
||||||
|
|
||||||
has_many :conferences, dependent: :destroy
|
|
||||||
|
|
||||||
after_create :create_roles
|
|
||||||
|
|
||||||
validates :name,
|
|
||||||
uniqueness: {
|
|
||||||
case_sensitive: false
|
|
||||||
},
|
|
||||||
presence: true
|
|
||||||
|
|
||||||
mount_uploader :picture, PictureUploader, mount_on: :picture
|
|
||||||
|
|
||||||
private
|
|
||||||
|
|
||||||
def create_roles
|
|
||||||
roles.where(name: 'organization_admin').first_or_create(description: 'For the administrators of an organization and its conferences')
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
@ -67,7 +67,6 @@ class TicketPdf < Prawn::Document
|
||||||
|
|
||||||
move_down 70
|
move_down 70
|
||||||
draw_text @conference.title.to_s, at: [@mid_horizontal + 30, cursor - 30], size: 12
|
draw_text @conference.title.to_s, at: [@mid_horizontal + 30, cursor - 30], size: 12
|
||||||
draw_text @conference.organization.name.to_s, at: [@mid_horizontal + 30, cursor - 50], size: 12
|
|
||||||
if @conference.venue
|
if @conference.venue
|
||||||
draw_text @conference.venue_name, at: [@mid_horizontal + 30, cursor - 70]
|
draw_text @conference.venue_name, at: [@mid_horizontal + 30, cursor - 70]
|
||||||
draw_text @conference.venue_street, at: [@mid_horizontal + 30, cursor - 90]
|
draw_text @conference.venue_street, at: [@mid_horizontal + 30, cursor - 90]
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,6 @@
|
||||||
%h4
|
%h4
|
||||||
Basic Information
|
Basic Information
|
||||||
%hr
|
%hr
|
||||||
- if f.object.new_record?
|
|
||||||
.form-group
|
|
||||||
= f.label :organization, "Organization"
|
|
||||||
= f.select :organization_id, Organization.accessible_by(current_ability, :update).pluck(:name, :id)
|
|
||||||
.form-group
|
.form-group
|
||||||
= f.label :title, "Title"
|
= f.label :title, "Title"
|
||||||
%abbr{title: 'This field is required'} *
|
%abbr{title: 'This field is required'} *
|
||||||
|
|
|
||||||
|
|
@ -1,22 +0,0 @@
|
||||||
= form_for(@organization, url: (@organization.new_record? ? admin_organizations_path : admin_organization_path(@organization))) do |f|
|
|
||||||
.form-group
|
|
||||||
= f.label :name, "Name"
|
|
||||||
%abbr{title: 'This field is required'} *
|
|
||||||
= f.text_field :name, required: true, class: 'form-control', placeholder: 'Name'
|
|
||||||
.form-group
|
|
||||||
= f.text_area :description, rows: 10, data: { provide: 'markdown' }, class: 'form-control', placeholder: 'Decribe about your organization...'
|
|
||||||
%span.help-block
|
|
||||||
= markdown_hint
|
|
||||||
.form-group
|
|
||||||
= f.text_area :code_of_conduct, rows: 10, data: { provide: 'markdown' }, class: 'form-control', placeholder: 'Rules governing behavior and dispute resolution...'
|
|
||||||
%span.help-block
|
|
||||||
= markdown_hint
|
|
||||||
.form-group
|
|
||||||
= image_tag f.object.picture.thumb.url if f.object.picture?
|
|
||||||
= f.file_field :picture
|
|
||||||
%p.text-right
|
|
||||||
%button{type: 'submit', class: 'btn btn-success'}
|
|
||||||
- if @organization.new_record?
|
|
||||||
Create Organization
|
|
||||||
- else
|
|
||||||
Update Organization
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
||||||
.page-header
|
|
||||||
%h3 Users (#{users.length})
|
|
||||||
- if users.present?
|
|
||||||
%table.datatable#users
|
|
||||||
%thead
|
|
||||||
%tr
|
|
||||||
%th Name
|
|
||||||
%th Email
|
|
||||||
- if ( can? :unassign_org_admins, organization )
|
|
||||||
%th
|
|
||||||
Actions
|
|
||||||
%tbody
|
|
||||||
- users.each do |user|
|
|
||||||
%tr
|
|
||||||
%td= user.name
|
|
||||||
%td= user.email
|
|
||||||
- if ( can? :unassign_org_admins, organization )
|
|
||||||
%td
|
|
||||||
= link_to 'Remove from organization admin',
|
|
||||||
unassign_org_admins_admin_organization_path(organization.id,
|
|
||||||
role.name,
|
|
||||||
user: {email: user.email}),
|
|
||||||
method: :delete,
|
|
||||||
class: 'btn btn-danger'
|
|
||||||
- else
|
|
||||||
%h5 No users found!
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
.row
|
|
||||||
.col-md-12
|
|
||||||
.page-header
|
|
||||||
%h1
|
|
||||||
Edit Organization
|
|
||||||
= @organization.name
|
|
||||||
.row
|
|
||||||
.col-md-8
|
|
||||||
= render partial: 'form'
|
|
||||||
|
|
@ -1,40 +0,0 @@
|
||||||
.row
|
|
||||||
.col-md-12
|
|
||||||
.page-header
|
|
||||||
%h1 Organizations
|
|
||||||
- if can? :manage, :all
|
|
||||||
.btn-group.pull-right
|
|
||||||
= link_to 'Create Organization', new_admin_organization_path, class: 'btn btn-success pull-right'
|
|
||||||
%p.text-muted
|
|
||||||
Manage organizations in OSEM
|
|
||||||
.row
|
|
||||||
.col-md-12
|
|
||||||
%table.datatable
|
|
||||||
%thead
|
|
||||||
%tr
|
|
||||||
%th Name
|
|
||||||
%th Upcoming Conferences
|
|
||||||
%th Past Conferences
|
|
||||||
%th Code of Conduct?
|
|
||||||
%th Actions
|
|
||||||
%tbody
|
|
||||||
- @organizations.each do |organization|
|
|
||||||
%tr{ id: "organization-#{organization.id}" }
|
|
||||||
%td
|
|
||||||
= organization.name
|
|
||||||
%td
|
|
||||||
= organization.conferences.upcoming.count
|
|
||||||
%td
|
|
||||||
= organization.conferences.past.count
|
|
||||||
%td.text-center
|
|
||||||
- unless organization.code_of_conduct.blank?
|
|
||||||
= icon 'fa-solid', 'check', title: 'yes'
|
|
||||||
%td
|
|
||||||
.btn-group
|
|
||||||
= link_to 'Admins', admins_admin_organization_path(organization),
|
|
||||||
method: :get, class: 'btn btn-success'
|
|
||||||
= link_to 'Edit', edit_admin_organization_path(organization),
|
|
||||||
method: :get, class: 'btn btn-primary'
|
|
||||||
= link_to 'Delete', admin_organization_path(organization),
|
|
||||||
method: :delete, class: 'btn btn-danger', data: { confirm: "Warning: This will delete #{organization.name} and all its data which includes data for all conferences within #{organization.name}. Do you really want to continue?" }
|
|
||||||
= link_to 'Add Conference', new_admin_conference_path, method: :get, class: 'btn btn-info'
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
.row
|
|
||||||
.col-md-12
|
|
||||||
.page-header
|
|
||||||
%h1
|
|
||||||
Create Organization
|
|
||||||
.row
|
|
||||||
.col-md-8
|
|
||||||
= render partial: 'form'
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
.row
|
|
||||||
.col-md-12
|
|
||||||
.page-header
|
|
||||||
%h2
|
|
||||||
Organization admins for #{@organization.name}
|
|
||||||
.text-muted
|
|
||||||
= @role.description
|
|
||||||
|
|
||||||
.row.col-md-3
|
|
||||||
- if ( can? :assign_org_admins, @organization )
|
|
||||||
= form_for :user, url: assign_org_admins_admin_organization_path(@organization, @role.name), method: :post do |f|
|
|
||||||
.form-group
|
|
||||||
= f.label :email, 'Add user by email: '
|
|
||||||
= f.text_field :email, placeholder: "User's email", class: 'form-control', required: true
|
|
||||||
= f.submit 'Add', id: 'user-add', class: 'btn btn-primary'
|
|
||||||
|
|
||||||
.row
|
|
||||||
.col-md-12
|
|
||||||
= render partial: 'users_with_org_admin_role',
|
|
||||||
locals: { users: @users, organization: @organization, role: @role }
|
|
||||||
|
|
@ -7,26 +7,13 @@
|
||||||
end
|
end
|
||||||
|
|
||||||
- case version.item_type
|
- case version.item_type
|
||||||
- when 'Organization'
|
|
||||||
organization
|
|
||||||
= link_to_organization(version.item_id)
|
|
||||||
|
|
||||||
- when 'UsersRole'
|
- when 'UsersRole'
|
||||||
- role = current_or_last_object_state('Role', object.role_id)
|
- role = current_or_last_object_state('Role', object.role_id)
|
||||||
- role_name = role.try(:name) || PaperTrail::Version.where(item_type: 'Role', item_id: object.role_id).last.changeset[:name].second
|
- role_name = role.try(:name) || PaperTrail::Version.where(item_type: 'Role', item_id: object.role_id).last.changeset[:name].second
|
||||||
role
|
role
|
||||||
- if role_name == 'organization_admin'
|
- conference = Conference.find_by(id: version.conference_id)
|
||||||
- if Organization.find_by(id: version.conference_id)
|
- conference_short_title = conference.try(:short_title) || current_or_last_object_state('Conference', version.conference_id).try(:short_title) || ' '
|
||||||
-# organization_admin belongs to organization and not conferences
|
= link_if_alive version, role.try(:name), admin_conference_role_path(conference_short_title,role.try(:name) || ' '), conference
|
||||||
- organization = Organization.find_by(id: version.conference_id)
|
|
||||||
= link_if_alive version, role_name,
|
|
||||||
admins_admin_organization_path(organization), organization
|
|
||||||
- else
|
|
||||||
(Deleted Organization)
|
|
||||||
- else
|
|
||||||
- conference = Conference.find_by(id: version.conference_id)
|
|
||||||
- conference_short_title = conference.try(:short_title) || current_or_last_object_state('Conference', version.conference_id).try(:short_title) || ' '
|
|
||||||
= link_if_alive version, role.try(:name), admin_conference_role_path(conference_short_title,role.try(:name) || ' '), conference
|
|
||||||
|
|
||||||
= version.event == 'create' ? 'to' : 'from'
|
= version.event == 'create' ? 'to' : 'from'
|
||||||
user
|
user
|
||||||
|
|
@ -133,19 +120,10 @@
|
||||||
- when 'Role'
|
- when 'Role'
|
||||||
role
|
role
|
||||||
- role_name = object.try(:name) || PaperTrail::Version.where(item_type: 'Role', item_id: version.item_id).last.changeset[:name].second
|
- role_name = object.try(:name) || PaperTrail::Version.where(item_type: 'Role', item_id: version.item_id).last.changeset[:name].second
|
||||||
- if role_name == 'organization_admin'
|
- conference = Conference.find_by(id: version.conference_id)
|
||||||
- if Organization.find_by(id: version.conference_id)
|
- conference_short_title = conference.try(:short_title) || current_or_last_object_state('Conference', version.conference_id).try(:short_title) || ' '
|
||||||
-# organization_admin belongs to organization and not conferences
|
= link_if_alive version, role_name,
|
||||||
- organization = Organization.find_by(id: version.conference_id)
|
admin_conference_role_path(conference_short_title, role_name), conference
|
||||||
= link_if_alive version, role_name,
|
|
||||||
admins_admin_organization_path(organization), organization
|
|
||||||
- else
|
|
||||||
(Role Deleted)
|
|
||||||
- else
|
|
||||||
- conference = Conference.find_by(id: version.conference_id)
|
|
||||||
- conference_short_title = conference.try(:short_title) || current_or_last_object_state('Conference', version.conference_id).try(:short_title) || ' '
|
|
||||||
= link_if_alive version, role_name,
|
|
||||||
admin_conference_role_path(conference_short_title, role_name), conference
|
|
||||||
|
|
||||||
- when 'Venue'
|
- when 'Venue'
|
||||||
venue
|
venue
|
||||||
|
|
@ -202,16 +180,8 @@
|
||||||
user
|
user
|
||||||
= link_to_user(version.item_id)
|
= link_to_user(version.item_id)
|
||||||
|
|
||||||
- unless %w(Conference Subscription Registration User Organization).include?(version.item_type)
|
- unless %w(Conference Subscription Registration User).include?(version.item_type)
|
||||||
- if (version.item_type == 'Role' && role_name == 'organization_admin') || (version.item_type == 'UsersRole' && role_name == 'organization_admin')
|
- if version.item_type == 'Commercial'
|
||||||
in organization
|
|
||||||
- if Organization.find_by(id: version.conference_id)
|
|
||||||
-# organization_admin belongs to organization and not conferences
|
|
||||||
- organization = Organization.find_by(id: version.conference_id)
|
|
||||||
= link_to_organization(version.conference_id)
|
|
||||||
- else
|
|
||||||
(Organization Deleted)
|
|
||||||
- elsif version.item_type == 'Commercial'
|
|
||||||
- commercial = current_or_last_object_state(version.item_type, version.item_id)
|
- commercial = current_or_last_object_state(version.item_type, version.item_id)
|
||||||
- commercialable = current_or_last_object_state(commercial.commercialable_type, commercial.commercialable_id)
|
- commercialable = current_or_last_object_state(commercial.commercialable_type, commercial.commercialable_id)
|
||||||
- unless commercial.commercialable_type == 'Conference'
|
- unless commercial.commercialable_type == 'Conference'
|
||||||
|
|
|
||||||
|
|
@ -27,4 +27,4 @@
|
||||||
(Scheduled on: #{event.time.to_date})
|
(Scheduled on: #{event.time.to_date})
|
||||||
%br
|
%br
|
||||||
|
|
||||||
= render 'conferences/code_of_conduct', organization: @conference.organization
|
= render 'conferences/code_of_conduct'
|
||||||
|
|
|
||||||
|
|
@ -37,8 +37,7 @@
|
||||||
You need to accept the
|
You need to accept the
|
||||||
= link_to 'Code of Conduct', '#',
|
= link_to 'Code of Conduct', '#',
|
||||||
data: { toggle: 'modal', target: '#modal-code-of-conduct'}
|
data: { toggle: 'modal', target: '#modal-code-of-conduct'}
|
||||||
= render 'conferences/code_of_conduct',
|
= render 'conferences/code_of_conduct'
|
||||||
organization: @conference.organization
|
|
||||||
- if @conference.surveys.for_registration.any?
|
- if @conference.surveys.for_registration.any?
|
||||||
.row
|
.row
|
||||||
.col-md-12
|
.col-md-12
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
data: { toggle: 'modal', target: '#modal-code-of-conduct'}
|
data: { toggle: 'modal', target: '#modal-code-of-conduct'}
|
||||||
|
|
||||||
- content_for :modals do
|
- content_for :modals do
|
||||||
- cache [organization, '#CoC-modal'] do
|
- cache '#CoC-modal' do
|
||||||
.modal.fade{ id: "modal-code-of-conduct" }
|
.modal.fade{ id: "modal-code-of-conduct" }
|
||||||
.modal-dialog
|
.modal-dialog
|
||||||
.modal-content
|
.modal-content
|
||||||
|
|
@ -13,8 +13,6 @@
|
||||||
%i.fa-solid.fa-xmark
|
%i.fa-solid.fa-xmark
|
||||||
%h3.modal-title Code of Conduct
|
%h3.modal-title Code of Conduct
|
||||||
.modal-body
|
.modal-body
|
||||||
= markdown organization.code_of_conduct
|
= markdown conference.code_of_conduct
|
||||||
.modal-footer
|
.modal-footer
|
||||||
= link_to 'permalink',
|
= link_to 'permalink', :code_of_conduct
|
||||||
[:code_of_conduct, organization],
|
|
||||||
target: '_blank'
|
|
||||||
|
|
|
||||||
|
|
@ -27,9 +27,7 @@
|
||||||
- if conference.program and conference.program.schedule_public
|
- if conference.program and conference.program.schedule_public
|
||||||
= link_to "Schedule", conference_schedule_path(conference.short_title), class: 'btn btn-default'
|
= link_to "Schedule", conference_schedule_path(conference.short_title), class: 'btn btn-default'
|
||||||
- unless conference.code_of_conduct.blank?
|
- unless conference.code_of_conduct.blank?
|
||||||
= link_to "Code of Conduct",
|
= link_to "Code of Conduct", :code_of_conduct, class: 'btn btn-default'
|
||||||
[:code_of_conduct, conference.organization],
|
|
||||||
class: 'btn btn-default'
|
|
||||||
- if conference.registration_open?
|
- if conference.registration_open?
|
||||||
- if conference.user_registered?(current_user)
|
- if conference.user_registered?(current_user)
|
||||||
= link_to "My Registration", conference_conference_registration_path(conference.short_title), class: 'btn btn-default'
|
= link_to "My Registration", conference_conference_registration_path(conference.short_title), class: 'btn btn-default'
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@
|
||||||
|
|
||||||
#splash
|
#splash
|
||||||
- if @conference.code_of_conduct.present?
|
- if @conference.code_of_conduct.present?
|
||||||
= render 'code_of_conduct', organization: @conference.organization
|
= render 'code_of_conduct'
|
||||||
|
|
||||||
-# header/description
|
-# header/description
|
||||||
= render 'header', conference: @conference, venue: @conference.venue
|
= render 'header', conference: @conference, venue: @conference.venue
|
||||||
|
|
|
||||||
|
|
@ -27,18 +27,8 @@
|
||||||
= link_to(admin_users_path) do
|
= link_to(admin_users_path) do
|
||||||
%span.fa-solid.fa-user
|
%span.fa-solid.fa-user
|
||||||
Users
|
Users
|
||||||
- if can? :index, Organization
|
|
||||||
%li
|
|
||||||
= link_to(admin_organizations_path) do
|
|
||||||
%span.fa-solid.fa-users
|
|
||||||
Organizations
|
|
||||||
- if can? :index, PaperTrail::Version
|
- if can? :index, PaperTrail::Version
|
||||||
%li
|
%li
|
||||||
= link_to(admin_revision_history_path) do
|
= link_to(admin_revision_history_path) do
|
||||||
%span.fa-solid.fa-clock-rotate-left
|
%span.fa-solid.fa-clock-rotate-left
|
||||||
Revision History
|
Revision History
|
||||||
- if ENV.fetch('ORGANIZATIONS_ENABLED', nil) == 'true'
|
|
||||||
%li
|
|
||||||
= link_to(admin_organizations_path) do
|
|
||||||
%span.fa-solid.fa-user-group
|
|
||||||
Organizations
|
|
||||||
|
|
|
||||||
|
|
@ -76,8 +76,3 @@
|
||||||
= link_to(admin_revision_history_path) do
|
= link_to(admin_revision_history_path) do
|
||||||
%span.fa-solid.fa-clock-rotate-left
|
%span.fa-solid.fa-clock-rotate-left
|
||||||
Revision History
|
Revision History
|
||||||
- if ENV.fetch('OSEM_ICHAIN_ENABLED', nil) == 'true'
|
|
||||||
%li
|
|
||||||
= link_to(admin_organizations_path) do
|
|
||||||
%span.fa-solid.fa-user-group
|
|
||||||
Organizations
|
|
||||||
|
|
|
||||||
|
|
@ -1,21 +0,0 @@
|
||||||
.container
|
|
||||||
.row
|
|
||||||
.col-md-12.page-header
|
|
||||||
%h1
|
|
||||||
Organizations
|
|
||||||
.btn-group.pull-right
|
|
||||||
/ = link_to 'Add new', new_organization_path, class: 'btn btn-mini btn-success'
|
|
||||||
- @organizations.each do |organization|
|
|
||||||
.col-md-4{ id: "organization-#{organization.id}" }
|
|
||||||
.thumbnail
|
|
||||||
= image_tag(organization.picture.thumb.url, width: '20%') if organization.picture?
|
|
||||||
.caption
|
|
||||||
%h4
|
|
||||||
= organization.name
|
|
||||||
.btn-group
|
|
||||||
= link_to 'Conferences',
|
|
||||||
conferences_organization_path(organization),
|
|
||||||
class: 'btn btn-success'
|
|
||||||
- unless organization.code_of_conduct.blank?
|
|
||||||
= link_to 'Code of Conduct', [:code_of_conduct, organization], class: 'btn btn-info'
|
|
||||||
/ = link_to 'Edit', edit_organization_path(organization), class: 'btn btn-mini btn-default'
|
|
||||||
|
|
@ -34,12 +34,6 @@
|
||||||
= image_tag(@conference.picture.ticket.url, class: 'img-responsive')
|
= image_tag(@conference.picture.ticket.url, class: 'img-responsive')
|
||||||
- else
|
- else
|
||||||
= image_tag('/img/osem-logo.png', class: 'img-responsive')
|
= image_tag('/img/osem-logo.png', class: 'img-responsive')
|
||||||
%p.text-left
|
|
||||||
%br
|
|
||||||
%strong
|
|
||||||
Organization
|
|
||||||
%br
|
|
||||||
= @conference.organization.name
|
|
||||||
.col-md-5.box.well
|
.col-md-5.box.well
|
||||||
%p.text-left
|
%p.text-left
|
||||||
%strong
|
%strong
|
||||||
|
|
|
||||||
|
|
@ -23,13 +23,6 @@ Osem::Application.routes.draw do
|
||||||
end
|
end
|
||||||
|
|
||||||
namespace :admin do
|
namespace :admin do
|
||||||
resources :organizations do
|
|
||||||
member do
|
|
||||||
get :admins
|
|
||||||
post :assign_org_admins
|
|
||||||
delete :unassign_org_admins
|
|
||||||
end
|
|
||||||
end
|
|
||||||
resources :users do
|
resources :users do
|
||||||
member do
|
member do
|
||||||
patch :toggle_confirmation
|
patch :toggle_confirmation
|
||||||
|
|
@ -150,11 +143,6 @@ Osem::Application.routes.draw do
|
||||||
get '/revision_history/:id/revert_object' => 'versions#revert_object', as: 'revision_history_revert_object'
|
get '/revision_history/:id/revert_object' => 'versions#revert_object', as: 'revision_history_revert_object'
|
||||||
get '/revision_history/:id/revert_attribute' => 'versions#revert_attribute', as: 'revision_history_revert_attribute'
|
get '/revision_history/:id/revert_attribute' => 'versions#revert_attribute', as: 'revision_history_revert_attribute'
|
||||||
end
|
end
|
||||||
resources :organizations, only: [:index] do
|
|
||||||
member do
|
|
||||||
get :conferences, 'code-of-conduct'
|
|
||||||
end
|
|
||||||
end
|
|
||||||
resources :conferences, only: [:index, :show] do
|
resources :conferences, only: [:index, :show] do
|
||||||
resources :booths do
|
resources :booths do
|
||||||
member do
|
member do
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue