Skip to content

Commit

Permalink
Upgrade to decidim 0.15.1 (#12)
Browse files Browse the repository at this point in the history
* Upgrade to decidim 0.14.3

* Upgrade decidim to 0.15.1

* Fix seeds

* Refactor user group form

* Modify seeds

* Clean seeds file

* Refactor thanks to review

* Change version
  • Loading branch information
Aitor Lopez Beltran authored and tramuntanal committed Jan 7, 2019
1 parent 2eb1f7b commit 1c1b70d
Show file tree
Hide file tree
Showing 14 changed files with 497 additions and 78 deletions.
88 changes: 47 additions & 41 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,18 @@ PATH
specs:
decidim-sabarca (0.9.0)
acts_as_list (= 0.9.9)
decidim-accountability (= 0.14.3)
decidim-admin (= 0.14.3)
decidim-api (= 0.14.3)
decidim-budgets (= 0.14.3)
decidim-comments (= 0.14.3)
decidim-core (= 0.14.3)
decidim-meetings (= 0.14.3)
decidim-pages (= 0.14.3)
decidim-participatory_processes (= 0.14.3)
decidim-proposals (= 0.14.3)
decidim-system (= 0.14.3)
decidim-verifications (= 0.14.3)
decidim-accountability (= 0.15.1)
decidim-admin (= 0.15.1)
decidim-api (= 0.15.1)
decidim-budgets (= 0.15.1)
decidim-comments (= 0.15.1)
decidim-core (= 0.15.1)
decidim-meetings (= 0.15.1)
decidim-pages (= 0.15.1)
decidim-participatory_processes (= 0.15.1)
decidim-proposals (= 0.15.1)
decidim-system (= 0.15.1)
decidim-verifications (= 0.15.1)

GEM
remote: https://rubygems.org/
Expand Down Expand Up @@ -78,6 +78,7 @@ GEM
babel-transpiler (0.7.0)
babel-source (>= 4.0, < 6)
execjs (~> 2.0)
batch-loader (1.2.2)
bcrypt (3.1.12)
bindex (0.5.0)
builder (3.2.3)
Expand Down Expand Up @@ -113,41 +114,42 @@ GEM
date_validator (0.9.0)
activemodel
activesupport
decidim-accountability (0.14.3)
decidim-comments (= 0.14.3)
decidim-core (= 0.14.3)
decidim-accountability (0.15.1)
decidim-comments (= 0.15.1)
decidim-core (= 0.15.1)
kaminari (~> 1.0)
searchlight (~> 4.1)
decidim-admin (0.14.3)
decidim-admin (0.15.1)
active_link_to (~> 1.0)
decidim-core (= 0.14.3)
decidim-core (= 0.15.1)
devise (~> 4.2)
devise-i18n (~> 1.2)
devise_invitable (~> 1.7)
jquery-rails (~> 4.3)
sassc (~> 1.12, >= 1.12.1)
sassc-rails (~> 1.3)
decidim-api (0.14.3)
decidim-api (0.15.1)
graphiql-rails (~> 1.4)
graphql (~> 1.6)
rack-cors (~> 1.0)
sprockets-es6 (~> 0.9.2)
decidim-budgets (0.14.3)
decidim-comments (= 0.14.3)
decidim-core (= 0.14.3)
decidim-budgets (0.15.1)
decidim-comments (= 0.15.1)
decidim-core (= 0.15.1)
kaminari (~> 1.0)
searchlight (~> 4.1)
decidim-comments (0.14.3)
decidim-core (= 0.14.3)
decidim-comments (0.15.1)
decidim-core (= 0.15.1)
jquery-rails (~> 4.0)
decidim-core (0.14.3)
decidim-core (0.15.1)
active_link_to (~> 1.0)
autoprefixer-rails (~> 8.0)
batch-loader (~> 1.2)
carrierwave (~> 1.1)
cells-erb (~> 0.1.0)
cells-rails (~> 0.0.9)
date_validator (~> 0.9.0)
decidim-api (= 0.14.3)
decidim-api (= 0.15.1)
devise (~> 4.3)
devise-i18n (~> 1.2)
doorkeeper (~> 4.4)
Expand All @@ -171,12 +173,13 @@ GEM
pg (>= 0.18, < 2)
pg_search (~> 2.1, >= 2.1.0)
premailer-rails (~> 1.9)
rack (>= 2.0.6)
rack-attack (~> 5.2)
rails (>= 5.2, < 6.0.x)
rails-i18n (~> 5.0)
rectify (~> 0.11.0)
rectify (~> 0.13.0)
redis (~> 4.0)
rubyzip (~> 1.2)
rubyzip (~> 1.2, >= 1.2.2)
sassc (~> 1.12, >= 1.12.1)
sassc-rails (~> 1.3)
spreadsheet (~> 1.1)
Expand All @@ -185,38 +188,40 @@ GEM
uglifier (~> 4.0)
valid_email2 (~> 2.1)
wisper (~> 2.0)
decidim-meetings (0.14.3)
decidim-meetings (0.15.1)
cells-erb (~> 0.1.0)
cells-rails (~> 0.0.9)
decidim-core (= 0.14.3)
decidim-core (= 0.15.1)
httparty (~> 0.16.0)
icalendar (~> 2.4)
jquery-tmpl-rails (~> 1.1)
kaminari (~> 1.0)
searchlight (~> 4.1)
decidim-pages (0.14.3)
decidim-core (= 0.14.3)
decidim-participatory_processes (0.14.3)
decidim-core (= 0.14.3)
decidim-proposals (0.14.3)
decidim-pages (0.15.1)
decidim-core (= 0.15.1)
decidim-participatory_processes (0.15.1)
decidim-core (= 0.15.1)
decidim-proposals (0.15.1)
acts_as_list (>= 0.9)
cells-erb (~> 0.1.0)
cells-rails (~> 0.0.9)
decidim-comments (= 0.14.3)
decidim-core (= 0.14.3)
decidim-comments (= 0.15.1)
decidim-core (= 0.15.1)
kaminari (~> 1.0)
ransack (~> 2.0)
redcarpet (>= 3.4)
social-share-button (~> 1.0)
decidim-system (0.14.3)
decidim-system (0.15.1)
active_link_to (~> 1.0)
decidim-core (= 0.14.3)
decidim-core (= 0.15.1)
devise (~> 4.2)
devise-i18n (~> 1.2)
devise_invitable (~> 1.7)
jquery-rails (~> 4.3)
sassc (~> 1.12, >= 1.12.1)
sassc-rails (~> 1.3)
decidim-verifications (0.14.3)
decidim-core (= 0.14.3)
decidim-verifications (0.15.1)
decidim-core (= 0.15.1)
declarative-builder (0.1.0)
declarative-option (< 0.2.0)
declarative-option (0.1.0)
Expand Down Expand Up @@ -421,12 +426,13 @@ GEM
rb-fsevent (0.10.3)
rb-inotify (0.9.10)
ffi (>= 0.5.0, < 2)
rectify (0.11.0)
rectify (0.13.0)
activemodel (>= 4.1.0)
activerecord (>= 4.1.0)
activesupport (>= 4.1.0)
virtus (~> 1.0.5)
wisper (>= 1.6.1)
redcarpet (3.4.0)
redis (4.1.0)
request_store (1.4.1)
rack (>= 1.4)
Expand Down
60 changes: 60 additions & 0 deletions app/commands/decidim/create_user_group.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# frozen_string_literal: true

module Decidim
# A command with all the business logic to create a user group.
class CreateUserGroup < Rectify::Command
# Public: Initializes the command.
#
# form - A form object with the params.
def initialize(form)
@form = form
end

# Executes the command. Broadcasts these events:
#
# - :ok when everything is valid.
# - :invalid if the form wasn't valid and we couldn't proceed.
#
# Returns nothing.
def call
return broadcast(:invalid) if form.invalid?

transaction do
create_user_group
create_membership
end

broadcast(:ok, @user_group)
end

private

attr_reader :form

def create_user_group
@user_group = UserGroup.create!(
email: form.email,
name: form.name,
nickname: form.nickname,
organization: form.current_organization,
about: form.about,
avatar: form.avatar,
extended_data: {
phone: form.phone,
document_number: form.document_number,
scope_id: form.scope_id,
address: form.address,
url: form.url
}
)
end

def create_membership
UserGroupMembership.create!(
user: form.current_user,
role: "creator",
user_group: @user_group
)
end
end
end
56 changes: 56 additions & 0 deletions app/commands/decidim/update_user_group.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# frozen_string_literal: true

module Decidim
# A command with all the business logic to update a user group profile.
class UpdateUserGroup < Rectify::Command
# Public: Initializes the command.
#
# form - A form object with the params.
# user_group - The user group to update
def initialize(form, user_group)
@form = form
@user_group = user_group
end

# Executes the command. Broadcasts these events:
#
# - :ok when everything is valid.
# - :invalid if the form wasn't valid and we couldn't proceed.
#
# Returns nothing.
def call
return broadcast(:invalid) if form.invalid?

update_user_group

broadcast(:ok, @user_group)
end

private

attr_reader :form, :user_group

def update_user_group
user_group_attributes = attributes
user_group_attributes[:avatar] = form.avatar if form.avatar.present?
user_group.update(user_group_attributes)
end

def attributes
{
email: form.email,
name: form.name,
nickname: form.nickname,
about: form.about,
avatar: form.avatar,
extended_data: {
phone: form.phone,
document_number: form.document_number,
scope_id: form.scope_id,
address: form.address,
url: form.url
}
}
end
end
end
85 changes: 85 additions & 0 deletions app/controllers/decidim/admin/users_controller.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
# frozen_string_literal: true

module Decidim
module Admin
# Controller that allows managing all admins at the admin panel.
#
class UsersController < Decidim::Admin::ApplicationController
def index
enforce_permission_to :read, :admin_user
@users = collection.page(params[:page]).per(15)
end

def new
enforce_permission_to :create, :admin_user
@form = form(InviteUserForm).instance
end

def create
enforce_permission_to :create, :admin_user

default_params = {
organization: current_organization,
invitation_instructions: "invite_admin",
invited_by: current_user
}

@form = form(InviteUserForm).from_params(params.merge(default_params))

InviteAdmin.call(@form) do
on(:ok) do
flash[:notice] = I18n.t("users.create.success", scope: "decidim.admin")
redirect_to users_path
end

on(:invalid) do
flash.now[:alert] = I18n.t("users.create.error", scope: "decidim.admin")
render :new
end
end
end

def resend_invitation
enforce_permission_to :invite, :admin_user, user: user

InviteUserAgain.call(user, "invite_admin") do
on(:ok) do
flash[:notice] = I18n.t("users.resend_invitation.success", scope: "decidim.admin")
end

on(:invalid) do
flash[:alert] = I18n.t("users.resend_invitation.error", scope: "decidim.admin")
end
end

redirect_to users_path
end

def destroy
enforce_permission_to :destroy, :admin_user, user: user

RemoveAdmin.call(user, current_user) do
on(:ok) do
flash[:notice] = I18n.t("users.destroy.success", scope: "decidim.admin")
end

on(:invalid) do
flash[:alert] = I18n.t("users.destroy.error", scope: "decidim.admin")
end
end

redirect_to users_path
end

private

def user
@user ||= collection.find(params[:id])
end

def collection
@collection ||= current_organization.admins.distinct.or(current_organization.users_with_any_role.distinct)
end
end
end
end

0 comments on commit 1c1b70d

Please sign in to comment.