Skip to content

Commit

Permalink
Merge branch 'main' into media-library
Browse files Browse the repository at this point in the history
  • Loading branch information
SebouChu authored Jan 27, 2025
2 parents a4942e4 + f2a9aa3 commit c55d13a
Show file tree
Hide file tree
Showing 11 changed files with 362 additions and 310 deletions.
1 change: 1 addition & 0 deletions app/models/ability/admin.rb
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ def admin_communication
can :manage, Communication::Website::Menu, university_id: @user.university_id
can :manage, Communication::Website::Menu::Item, university_id: @user.university_id
can :manage, Communication::Website::Page, university_id: @user.university_id
can :manage, Communication::Website::Page::Category, university_id: @user.university_id
can :manage, Communication::Website::Post, university_id: @user.university_id
end

Expand Down
31 changes: 31 additions & 0 deletions app/models/ability/program_manager.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,18 @@ class Ability::ProgramManager < Ability
def initialize(user)
super
can :manage, Communication::Block, university_id: @user.university_id, about_type: 'Communication::Website::Agenda::Event::Localization', about_id: managed_event_localization_ids
can :manage, Communication::Block, university_id: @user.university_id, about_type: 'Communication::Website::Agenda::Category::Localization', about_id: managed_agenda_category_localization_ids
can :manage, Communication::Block, university_id: @user.university_id, about_type: 'Communication::Website::Post::Localization', about_id: managed_post_localization_ids
can :manage, Communication::Block, university_id: @user.university_id, about_type: 'Communication::Website::Post::Category::Localization', about_id: managed_post_category_localization_ids
can :manage, Communication::Block, university_id: @user.university_id, about_type: 'Education::Program::Localization', about_id: managed_program_localization_ids
can :manage, Communication::Block, university_id: @user.university_id, about_type: 'Education::Program::Category::Localization', about_id: managed_program_category_localization_ids
can :manage, Communication::Block, university_id: @user.university_id, about_type: 'University::Person::Localization', about_id: managed_person_localization_ids
can :create, Communication::Block
can :read, Communication::Website, university_id: @user.university_id
can :manage, Communication::Website::Agenda::Event, university_id: @user.university_id
can :manage, Communication::Website::Agenda::Category, id: managed_agenda_category_ids
can :manage, Communication::Website::Post, university_id: @user.university_id
can :manage, Communication::Website::Post::Category, id: managed_post_category_ids
can :manage, Education::Program, id: managed_programs_ids
can [:read, :children], Education::Program, university_id: @user.university_id
cannot :create, Education::Program
Expand Down Expand Up @@ -37,6 +42,22 @@ def managed_post_localization_ids
end
end

def managed_agenda_category_ids
@managed_agenda_category_ids ||= Communication::Website::Agenda::Category.where(university_id: @user.university_id, program_id: managed_programs_ids).pluck(:id)
end

def managed_agenda_category_localization_ids
@managed_agenda_category_localization_ids ||= Communication::Website::Agenda::Category::Localization.where(about_id: managed_agenda_category_ids).pluck(:id)
end

def managed_post_category_ids
@managed_post_category_ids ||= Communication::Website::Post::Category.where(university_id: @user.university_id, program_id: managed_programs_ids).pluck(:id)
end

def managed_post_category_localization_ids
@managed_post_category_localization_ids ||= Communication::Website::Post::Category::Localization.where(about_id: managed_post_category_ids).pluck(:id)
end

def managed_programs_ids
@managed_programs_ids ||= @user.programs_to_manage.pluck(:id)
end
Expand All @@ -45,6 +66,16 @@ def managed_program_localization_ids
@managed_program_localization_ids ||= Education::Program::Localization.where(about_id: managed_program_ids).pluck(:id)
end

def managed_program_category_ids
@managed_program_category_ids ||= Education::Program::Category.where(university_id: @user.university_id).pluck(:id)
end

def managed_program_category_localization_ids
@managed_program_category_localization_ids ||= Education::Program::Category::Localization.where(about_id: managed_program_category_ids).pluck(:id)
end



def managed_person_localization_ids
@managed_person_localization_ids ||= begin
University::Person::Localization
Expand Down
23 changes: 18 additions & 5 deletions app/models/ability/website_manager.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,17 @@ def initialize(user)
can :manage, Communication::Website::Localization, university_id: @user.university_id, communication_website_id: managed_websites_ids
can :manage, Communication::Website::Agenda::Event, university_id: @user.university_id, communication_website_id: managed_websites_ids
can :manage, Communication::Website::Agenda::Category, university_id: @user.university_id, communication_website_id: managed_websites_ids
can :manage, Communication::Website::Post::Category, university_id: @user.university_id, communication_website_id: managed_websites_ids
can [:read, :update, :reorder], Communication::Website::Menu, university_id: @user.university_id, communication_website_id: managed_websites_ids
can :manage, Communication::Website::Menu::Item, university_id: @user.university_id, website_id: managed_websites_ids
can :create, Communication::Website::Menu::Item, university_id: @user.university_id
can :manage, Communication::Website::Page, university_id: @user.university_id, communication_website_id: managed_websites_ids
can :manage, Communication::Website::Portfolio::Category, university_id: @user.university_id, communication_website_id: managed_websites_ids
can :manage, Communication::Website::Page::Category, university_id: @user.university_id, communication_website_id: managed_websites_ids
can :manage, Communication::Website::Portfolio::Project, university_id: @user.university_id, communication_website_id: managed_websites_ids
can :manage, Communication::Website::Portfolio::Category, university_id: @user.university_id, communication_website_id: managed_websites_ids
can :manage, Communication::Website::Post, university_id: @user.university_id, communication_website_id: managed_websites_ids
can :manage, Communication::Website::Post::Category, university_id: @user.university_id, communication_website_id: managed_websites_ids
can :manage, University::Organization, university_id: @user.university_id
can :manage, University::Organization::Category, university_id: @user.university_id
can :manage, University::Person, university_id: @user.university_id
can :manage, University::Person::Category, university_id: @user.university_id
can :manage, University::Person::Experience, university_id: @user.university_id
Expand Down Expand Up @@ -49,6 +51,14 @@ def managed_page_localization_ids
end
end

def managed_page_category_localization_ids
@managed_page_category_localization_ids ||= begin
Communication::Website::Page::Category::Localization
.where(communication_website_id: managed_websites_ids)
.pluck(:id)
end
end

def managed_portfolio_category_localization_ids
@managed_portfolio_category_localization_ids ||= begin
Communication::Website::Portfolio::Category::Localization
Expand Down Expand Up @@ -82,15 +92,18 @@ def managed_post_localization_ids
end

def manage_blocks
can :manage, Communication::Block, university_id: @user.university_id, about_type: 'Communication::Website::Agenda::Category::Localization', about_id: managed_agenda_category_localization_ids
can :manage, Communication::Block, university_id: @user.university_id, about_type: 'Communication::Website::Agenda::Event::Localization', about_id: managed_agenda_event_localization_ids
can :manage, Communication::Block, university_id: @user.university_id, about_type: 'Communication::Website::Agenda::Category::Localization', about_id: managed_agenda_category_localization_ids
can :manage, Communication::Block, university_id: @user.university_id, about_type: 'Communication::Website::Page::Localization', about_id: managed_page_localization_ids
can :manage, Communication::Block, university_id: @user.university_id, about_type: 'Communication::Website::Portfolio::Category::Localization', about_id: managed_portfolio_category_localization_ids
can :manage, Communication::Block, university_id: @user.university_id, about_type: 'Communication::Website::Page::Category::Localization', about_id: managed_page_category_localization_ids
can :manage, Communication::Block, university_id: @user.university_id, about_type: 'Communication::Website::Portfolio::Project::Localization', about_id: managed_portfolio_project_localizations_ids
can :manage, Communication::Block, university_id: @user.university_id, about_type: 'Communication::Website::Post::Category::Localization', about_id: managed_post_category_localization_ids
can :manage, Communication::Block, university_id: @user.university_id, about_type: 'Communication::Website::Portfolio::Category::Localization', about_id: managed_portfolio_category_localization_ids
can :manage, Communication::Block, university_id: @user.university_id, about_type: 'Communication::Website::Post::Localization', about_id: managed_post_localization_ids
can :manage, Communication::Block, university_id: @user.university_id, about_type: 'Communication::Website::Post::Category::Localization', about_id: managed_post_category_localization_ids
can :manage, Communication::Block, university_id: @user.university_id, about_type: 'University::Organization::Localization', about_id: University::Organization::Localization.where(university_id: @user.university_id).pluck(:id)
can :manage, Communication::Block, university_id: @user.university_id, about_type: 'University::Organization::Category::Localization', about_id: University::Organization::Category::Localization.where(university_id: @user.university_id).pluck(:id)
can :manage, Communication::Block, university_id: @user.university_id, about_type: 'University::Person::Localization', about_id: University::Person::Localization.where(university_id: @user.university_id).pluck(:id)
can :manage, Communication::Block, university_id: @user.university_id, about_type: 'University::Person::Category::Localization', about_id: University::Person::Category::Localization.where(university_id: @user.university_id).pluck(:id)
can :create, Communication::Block
end

Expand Down
2 changes: 1 addition & 1 deletion app/models/communication/block/template/page.rb
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ def top_title
end

def top_description
page_l10n.try(:summary)
page_l10n.try(:summary) if option_main_summary
end

def top_link
Expand Down
2 changes: 1 addition & 1 deletion app/models/education/diploma.rb
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ class Education::Diploma < ApplicationRecord
fourth_year: 400,
master: 500,
doctor: 800
}
}, prefix: :level

has_many :programs, dependent: :nullify

Expand Down
13 changes: 9 additions & 4 deletions app/services/importers/curator.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ def initialize(website, user, language, url)
@url = url
unless slug_already_exists?
create_post!
set_post_author!
create_localization!
create_chapter!
attach_image!
Expand All @@ -21,18 +22,22 @@ def already_imported?
end

def valid?
@post&.valid? && @l10n&.valid? && @chapter&.valid?
# if nothing exists valid? is "nil" and not "false"
(@post&.valid? && @l10n&.valid? && @chapter&.valid?) == true
end

protected

def create_post!
@post = website.posts.create(
university: website.university,
author: @user.person
university: website.university
)
end

def set_post_author!
@post.authors << @user.person if @user.person.present?
end

def create_localization!
@l10n = @post.localizations.create(
language_id: @language.id,
Expand Down Expand Up @@ -72,7 +77,7 @@ def slug_already_exists?
website: website,
language: language,
slug: slug
)
).any?
end

def page
Expand Down
2 changes: 2 additions & 0 deletions app/views/admin/education/diplomas/static.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,10 @@ programs:
short_name: >-
<%= prepare_text_for_static @l10n.short_name %>
<%= render 'admin/application/summary/static', about: @l10n %>
<% unless diploma.level_not_applicable? %>
level: >-
<%= diploma.level_i18n %>
<% end %>
ects: <%= diploma.ects %>
certification: <%= diploma.certification %>
duration: >-
Expand Down
10 changes: 5 additions & 5 deletions app/views/extranet/organizations/_form.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,9 @@
<%= lf.input :url %>
<%= f.input :phone %>
<%= f.input :email %>
<%= f.input :linkedin %>
<%= f.input :twitter %>
<%= f.input :mastodon %>
<%= lf.input :linkedin %>
<%= lf.input :twitter %>
<%= lf.input :mastodon %>

<h2 class="h5 mt-5 mb-4"><%= University::Organization.human_attribute_name('legal') %></h2>
<%= lf.input :long_name %>
Expand All @@ -45,12 +45,12 @@
<div class="offset-lg-1 col-lg-3">

<h2 class="h5 mt-5 mb-4"><%= University::Organization.human_attribute_name('logos') %></h2>
<%= f.input :logo,
<%= lf.input :logo,
as: :single_deletable_file,
input_html: { accept: default_images_formats_accepted },
preview: 200,
resize: false %>
<%= f.input :logo_on_dark_background,
<%= lf.input :logo_on_dark_background,
as: :single_deletable_file,
input_html: { accept: default_images_formats_accepted },
preview: 200,
Expand Down
Loading

0 comments on commit c55d13a

Please sign in to comment.