Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
ea5cee1
Bump nokogiri from 1.10.5 to 1.10.8
dependabot[bot] Feb 27, 2020
19ead50
Bump websocket-extensions from 0.1.4 to 0.1.5
dependabot[bot] Jun 6, 2020
cd08b95
Bump rack from 2.0.7 to 2.2.3
dependabot[bot] Jun 25, 2020
ed584a3
Merge pull request #73 from EngSwCIC/dependabot/bundler/rack-2.2.3
icaronr Sep 24, 2020
8d75616
Bump puma from 3.12.1 to 3.12.6
dependabot[bot] Sep 24, 2020
40a5769
Merge pull request #72 from EngSwCIC/dependabot/bundler/websocket-ext…
icaronr Sep 24, 2020
038a318
Merge pull request #74 from EngSwCIC/dependabot/bundler/puma-3.12.6
icaronr Sep 24, 2020
37d96d1
Merge pull request #69 from EngSwCIC/dependabot/bundler/nokogiri-1.10.8
icaronr Sep 24, 2020
14bfca1
Create sprint_1-Grupo_1.md
kdusousa Oct 28, 2020
395e30c
Adicionados primeiros testes com cucumber de capybara
yellak Oct 28, 2020
355a0fa
Adicionado primeiros testes da issue #37
MrJamesX37 Oct 28, 2020
0886ecf
Update nos testes
MrJamesX37 Oct 28, 2020
9a1e9cf
Delete add_person_on_activite_steps.rb
MrJamesX37 Oct 28, 2020
edce627
Delete add_person_on_a_activite.feature
MrJamesX37 Oct 28, 2020
be323ed
Update nos testes da issue #37
MrJamesX37 Oct 28, 2020
bf5f0bc
Criado cenário feliz e triste
MrJamesX37 Oct 29, 2020
8845839
Adicionado testes unitários da issue #37
MrJamesX37 Oct 29, 2020
68db750
Adicionados alguns testes e especificações de testes simples
yellak Oct 30, 2020
9a02ed7
Merge pull request #1 from kdusousa/36-testes-atividade
kdusousa Oct 30, 2020
957daa9
Create showInterestActivity
kdusousa Oct 30, 2020
b05191e
Rename showInterestActivity to showInterestActivity.feature
kdusousa Oct 30, 2020
b855574
Create showInterestActivity_steps.rb
kdusousa Oct 30, 2020
2236e52
Update showInterestActivity.feature
kdusousa Oct 30, 2020
189a173
Merge pull request #2 from kdusousa/37-teste-cadastro-em-atividade-in…
kdusousa Oct 30, 2020
3c9e22e
Create showInterestActivities_spec.rb
kdusousa Oct 30, 2020
a7a6421
Update sprint_1-Grupo_1.md
kdusousa Oct 30, 2020
4bc4927
features and step_definitions issue 38
estevamgalvao Oct 31, 2020
27f6ec5
Merge pull request #3 from kdusousa/38-notificacao
kdusousa Nov 1, 2020
7ee14fd
adjustments and rspec file
estevamgalvao Nov 1, 2020
5437c46
Merge pull request #4 from kdusousa/38-notificacao-rspec
estevamgalvao Nov 1, 2020
1fa1d66
Concertando erros que estavam dando no Cucumber
yellak Nov 10, 2020
36c705e
Merge pull request #6 from kdusousa/fix-erro-cucumber-button-box
kdusousa Nov 10, 2020
f0a25ea
Adicionar nova atividade - passando nos primeiros testes
yellak Nov 10, 2020
c8d3263
Fazendo todos os testes passar
yellak Nov 11, 2020
1116ba6
Merge pull request #8 from kdusousa/feature/adicionar-nova-atividade
MrJamesX37 Nov 11, 2020
53e4d61
Update showInterestActivity.feature
kdusousa Nov 13, 2020
ed35503
Update showInterestActivity_steps.rb
kdusousa Nov 13, 2020
6f43467
Fazendo os testes no rspec passarem
yellak Nov 13, 2020
9f37e36
Merge pull request #9 from kdusousa/feature/adicionar-nova-atividade
kdusousa Nov 13, 2020
7f03f53
Implementação feita
MrJamesX37 Nov 14, 2020
bca9bd0
Merge branch 'grupo1-sprint2-calendario-atividades' into feature/cada…
MrJamesX37 Nov 14, 2020
4e8c68f
Alguns ajustes feitos
MrJamesX37 Nov 14, 2020
042dc4c
Mais um detalhe ajustado
MrJamesX37 Nov 14, 2020
3995e90
Correções para os testes
yellak Nov 14, 2020
c6ef15a
Merge pull request #10 from kdusousa/feature/cadastro-em-atividade-in…
yellak Nov 14, 2020
1c4f898
Atualização do README
yellak Nov 14, 2020
38ac12f
Pequeno erro na UserActivity corrigido
MrJamesX37 Nov 14, 2020
bdfa207
Colocando edit.html.erb no diretório correto
MrJamesX37 Nov 14, 2020
307e75a
Delete edit.html.erb
MrJamesX37 Nov 14, 2020
50aaa8e
Colocando edit.html.erb no diretório certo
MrJamesX37 Nov 14, 2020
1adc947
Delete index.html.erb
MrJamesX37 Nov 14, 2020
38c5ad3
Atualizando index.html.erb
MrJamesX37 Nov 14, 2020
038f432
Delete user_activities_controller.rb
MrJamesX37 Nov 14, 2020
7278d37
Atualizando user_activities_controller.rb
MrJamesX37 Nov 14, 2020
6e45ae3
Update user_activities_controller.rb
MrJamesX37 Nov 14, 2020
b5595e0
Arrumando erros
MrJamesX37 Nov 14, 2020
65a035c
Arrumando erros
MrJamesX37 Nov 14, 2020
f18a598
Arrumando erros
MrJamesX37 Nov 14, 2020
351fd28
Arrumando erros
MrJamesX37 Nov 14, 2020
5890ced
Arrumando erros
MrJamesX37 Nov 14, 2020
b3330a5
Arrumando erros
MrJamesX37 Nov 14, 2020
f5a5aff
Arrumando erros
MrJamesX37 Nov 14, 2020
d499a2f
Arrumando erros
MrJamesX37 Nov 14, 2020
3eb4ddf
Merge pull request #11 from kdusousa/feature/cadastro-em-atividade-in…
yellak Nov 14, 2020
99c488b
all cucumber tests passed
estevamgalvao Nov 14, 2020
5d43d29
Merge branch 'grupo1-sprint2-calendario-atividades' into fearture/not…
estevamgalvao Nov 14, 2020
4f5abf8
Merge pull request #12 from kdusousa/fearture/notifyInterestedPeople
estevamgalvao Nov 14, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ gem 'rails', '~> 5.2.3'
# Use postgresql as the database for Active Record
gem 'pg', '>= 0.18', '< 2.0'
# Use Puma as the app server
gem 'puma', '~> 3.11'
gem 'puma', '~> 3.12'
# Use SCSS for stylesheets
gem 'sass-rails', '~> 5.0'
# Use Uglifier as compressor for JavaScript assets
Expand Down Expand Up @@ -52,6 +52,7 @@ group :development do
# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
gem 'spring'
gem 'spring-watcher-listen', '~> 2.0.0'
gem 'factory_bot_rails'
end

group :test do
Expand All @@ -64,6 +65,9 @@ group :test do
# database_cleaner is not required, but highly recommended
gem 'database_cleaner'
gem 'shoulda-matchers'
# Factory
gem 'factory_bot_rails'
gem 'rails-controller-testing'
end

# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
Expand Down
10 changes: 5 additions & 5 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -133,13 +133,13 @@ GEM
multi_json (1.14.1)
multi_test (0.1.2)
nio4r (2.5.2)
nokogiri (1.10.5)
nokogiri (1.10.8)
mini_portile2 (~> 2.4.0)
orm_adapter (0.5.0)
pg (1.1.4)
public_suffix (4.0.1)
puma (3.12.1)
rack (2.0.7)
puma (3.12.6)
rack (2.2.3)
rack-test (1.1.0)
rack (>= 1.0, < 3)
rails (5.2.3)
Expand Down Expand Up @@ -243,7 +243,7 @@ GEM
selenium-webdriver (>= 3.0, < 4.0)
websocket-driver (0.7.1)
websocket-extensions (>= 0.1.0)
websocket-extensions (0.1.4)
websocket-extensions (0.1.5)
xpath (3.2.0)
nokogiri (~> 1.8)

Expand All @@ -261,7 +261,7 @@ DEPENDENCIES
jbuilder (~> 2.5)
listen (>= 3.0.5, < 3.2)
pg (>= 0.18, < 2.0)
puma (~> 3.11)
puma (~> 3.12)
rails (~> 5.2.3)
rspec-rails
sass-rails (~> 5.0)
Expand Down
36 changes: 21 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,24 +1,30 @@
# README
# GRUPO 1 - Sprint 2

This README would normally document whatever steps are necessary to get the
application up and running.
* Carlos Eduardo de Sousa - 160057701
* Edilton Costa Alves - 170002365
* Eduardo Vaz Fagundes Rech - 180075161
* Estevam Galvão Albuquerque - 160005663
* Kalley Wilkerson Rodrigues Alexandre - 170038050

Things you may want to cover:

* Ruby version
## NOME DO PROJETO
#### Calendário de atividades - secretaria-ppgi

* System dependencies
## ESCOPO DO PROJETO
* Teste para cadastro de atividade e seu prazo de execução;
* Teste para inclusão de pessoas interessadas em cada atividade;
* Teste para notificação de pessoas interessadas;
* Teste para visualização de atividades cadastradas;
* Teste para visualização de atividades de interesse.

* Configuration

* Database creation
## ATRIBUIÇÕES

* Database initialization
### Scrum Master
#### Carlos Eduardo de Sousa - 160057701

* How to run the test suite
### Product Owner
#### Kalley Wilkerson Rodrigues Alexandre - 170038050

* Services (job queues, cache servers, search engines, etc.)

* Deployment instructions

* ...
## Problemas
Não foi possível fazer uma boa verificação se o usuário logado é administrador ou não à tempo, a execução do cucumber não permite o acesso a dados da sessão. Portanto, o método que a gente criou que fazia essa verificação, por mais que funcionasse como esperado na execução normal da aplicação, não funcionava nos testes.
3 changes: 3 additions & 0 deletions app/assets/javascripts/user_activities.coffee
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Place all the behaviors and hooks related to the matching controller here.
# All this logic will automatically be available in application.js.
# You can use CoffeeScript in this file: http://coffeescript.org/
3 changes: 3 additions & 0 deletions app/assets/stylesheets/user_activities.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
// Place all the styles related to the UserActivities controller here.
// They will automatically be included in application.css.
// You can use Sass (SCSS) here: http://sass-lang.com/
41 changes: 41 additions & 0 deletions app/controllers/activities_controller.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
class ActivitiesController < ApplicationController
def index
@activities = Activity.all
end

def new
end

def create
@activity = Activity.new(activity_params)
if @activity.save
flash[:notice] = "Atividade cadastrada com sucesso."
redirect_to activities_path
elsif @activity.errors.any?
flash[:notice] = ["Atividade não cadastrada."]
@activity.errors.each do |attribute, message|
flash[:notice] << message
end
redirect_back(fallback_location: new_activity_path)
end
end

def destroy
@activity = Activity.find(params[:id])
if @activity.destroy
flash[:notice] = "Atividade deleteda com sucesso."
redirect_to activities_path
elsif @activity.errors.any?
flash[:notice] = ["Não foi possível deletar a Atividade."]
@activity.errors.each do |attribute, message|
flash[:notice] << message
end
redirect_back(fallback_location: root_path)
end
end

private
def activity_params
params.fetch(:activity, {}).permit(:title, :due_date)
end
end
6 changes: 6 additions & 0 deletions app/controllers/notifications_controller.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
class NotificationsController < ApplicationController
def create
flash[:notice] = "Notificação enviada aos interessados com sucesso."
redirect_to activities_path
end
end
78 changes: 78 additions & 0 deletions app/controllers/user_activities_controller.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
class UserActivitiesController < ApplicationController
def index
@user_activities = UserActivity.all
end

def new
end

def create
@user_activity = UserActivity.new(user_activity_params)
if @user_activity.save
notify(@user_activity.user_id, @user_activity.activity_id, "cadastrado")
redirect_to user_activities_path
elsif @user_activity.errors.any?
error(@user_activity.user_id, @user_activity.activity_id, "cadastrar")
end
end

def self.create(user_id, activity_id)
if UserActivity.find_by(user_id: user_id, activity_id: activity_id) == nil
@user_activity = UserActivity.new
@user_activity.user_id = user_id
@user_activity.activity_id = activity_id
@user_activity.interested = true
@user_activity.active = false
@user_activity.save!
end
end

def show
@user_activity = find
end

def edit
@user_activity = find
end

def update
@user_activity = find
if @user_activity.update(update_user_activity_params)
notify(UserActivity.getUser(@user_activity.user_id), UserActivity.getActivity(@user_activity.activity_id), "atualizado")
redirect_to user_activities_path
elsif @user_activity.errors.any?
error(UserActivity.getUser(@user_activity.user_id), UserActivity.getActivity(@user_activity.activity_id), "atualizar")
end
end

def destroy
@user_activity = find
if @user_activity.destroy
notify(UserActivity.getUser(@user_activity.user_id), UserActivity.getActivity(@user_activity.activity_id), "deletado")
redirect_to user_activities_path
elsif @user_activity.errors.any?
error(UserActivity.getUser(@user_activity.user_id), UserActivity.getActivity(@user_activity.activity_id), "deletar")
end
end

private
def user_activity_params
params.require(:user_activity).permit(:user_id, :activity_id)
end

def update_user_activity_params
params.require(:user_activity).permit(:user_id, :activity_id, :interested, :active)
end

def find
UserActivity.find(params[:id])
end

def notify(name, title, msg)
flash[:notice] = "#{title} #{msg} de #{name} com sucesso"
end

def error(name, title, msg)
flash[:notice] = "Não foi possível #{msg} #{name} de #{title}"
end
end
2 changes: 2 additions & 0 deletions app/helpers/user_activities_helper.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
module UserActivitiesHelper
end
4 changes: 4 additions & 0 deletions app/models/activity.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
class Activity < ApplicationRecord
validates :title, presence: { message: "O Nome da atividade deve ser informado." }
validates :due_date, presence: { message: "O Prazo de execução da atividade deve ser informado." }
end
12 changes: 12 additions & 0 deletions app/models/user_activity.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
class UserActivity < ApplicationRecord
validates :user_id, presence: { message: "Usuário deve ser informado." }
validates :activity_id, presence: { message: "Atividade deve ser informada." }

def self.getUser(user_id)
User.find_by(id: user_id).full_name
end

def self.getActivity(activity_id)
Activity.find_by(id: activity_id).title
end
end
27 changes: 27 additions & 0 deletions app/views/activities/index.html.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<h1>Atividades</h1>

<%= link_to 'Adicionar atividade', new_activity_path %>
<br>
<%= link_to 'Notificar integrantes', new_notification_path %>

<table>
<tr>
<th>Título</th>
<th>Prazo de execução</th>
<th>Descrição</th>
<th></th>
</tr>

<% @activities.each do |activity| %>
<tr>
<td><%= activity.title %></td>
<td><%= activity.due_date.to_formatted_s(:rfc822) %></td>
<td><%= activity.description %></td>
<td><%= check_box_tag(:interest, false, false, :onclick => "UserActivitiesController.create(current_user.id, activity.id);") %></td>
<td>Demonstrar Interesse</td>
<td><%= link_to 'Remover Atividade', activity_path(activity), :method => :delete, :confirm => 'Tem certeza ?' %></td>
</tr>
<% end %>
</table>
<br>
<%= link_to 'Minhas Atividades de interesse', user_activities_path %>
17 changes: 17 additions & 0 deletions app/views/activities/new.html.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<h1>Cadastrar nova atividade</h1>

<%= form_with scope: :activity, url: activities_path,local: true do |form| %>
<p>
<%= form.label :title, "Nome da atividade" %><br>
<%= form.text_field :title %>
</p>

<p>
<%= form.label :due_date, "Prazo de execução" %><br>
<%= form.date_field :due_date %>
</p>

<p>
<%= form.submit "Salvar" %>
</p>
<% end %>
1 change: 1 addition & 0 deletions app/views/notifications/index.html.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<h1>Notifications</h1>
22 changes: 22 additions & 0 deletions app/views/notifications/new.html.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<h1>Criar nova notificação</h1>

<%= form_with scope: :notification, url: notifications_path,local: true do |form| %>

<p>
<%= form.label :title, "Nome da notificação" %><br>
<%= form.text_field :title %>
</p>

<p>
<%= form.label :content, "Conteúdo da notificação" %><br>
<%= form.text_area :content %>
</p>

<p>
<%= form.label :interested, "Integrantes interessados" %><br>
<%= form.collection_select(:interested, User.roles, :second, :first) %>
</p>
<p>
<%= form.submit "Enviar notificação" %>
</p>
<% end %>
35 changes: 35 additions & 0 deletions app/views/user_activities/edit.html.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
<h1> Cadastrar Usúario na Atividade </h1>

<%= form_with(model: @user_activity, local: true) do |form| %>
<p>
<%= form.label :user_id, "Id do usupario" %><br>
<%= form.text_field :user_id, value: @user_activity.user_id %>
</p>

<p>
<%= form.label :activity_id, " Id da Atividade" %><br>
<%= form.text_field :activity_id, value: @user_activity.activity_id %>
</p>

<p>
<%= form.label :interested, "Interessado" %><br>
<%= form.radio_button :interested, "True", :checked => true %>
<%= form.label :active, "True" %>
<%= form.radio_button :interested, "False" %>
<%= form.label :active, "False" %>
</p>

<p>
<%= form.label :active, "Cadastrado" %><br>
<%= form.radio_button :active, "True" %>
<%= form.label :active, "True" %>
<%= form.radio_button :active, "False" %>
<%= form.label :active, value: "False" %>
</p>

<p>
<%= form.submit "Salvar" %>
</p>
<% end %>

<%= link_to 'Back', user_activities_path %>
Loading