Skip to content

Commit d5aba16

Browse files
Criar, Ver, Atualizar, Excluir, Concluir, e Reabrir Tarefas dos Times pelo Criado do Time
1 parent 86ab77d commit d5aba16

File tree

12 files changed

+465
-4
lines changed

12 files changed

+465
-4
lines changed

application/config/routes.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,14 @@
7575
$route['time/etiqueta/atualizar/(:num)/(:num)'] = 'teamTag/update/$1/$2';
7676
$route['time/etiqueta/excluir/(:num)/(:num)'] = 'teamTag/delete/$1/$2';
7777

78+
$route['time/tarefa/inserir/(:num)'] = 'teamTask/insert/$1';
79+
$route['time/tarefa/excluir/(:num)/(:num)'] = 'teamTask/delete/$1/$2';
80+
$route['time/tarefa/editar/(:num)/(:num)'] = 'teamTask/edit/$1/$2';
81+
$route['time/tarefa/atualizar/(:num)/(:num)'] = 'teamTask/update/$1/$2';
82+
$route['time/tarefa/concluir/(:num)/(:num)'] = 'teamTask/complete/$1/$2';
83+
$route['time/tarefa/reabrir/(:num)/(:num)'] = 'teamTask/reopen/$1/$2';
84+
85+
7886
$route['etiqueta/inserir'] = 'tag/insert';
7987
$route['etiqueta/editar/(:num)'] = 'tag/edit/$1';
8088
$route['etiqueta/excluir/(:num)'] = 'tag/delete/$1';

application/controllers/Task.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?php
2-
defined('BASEPATH') or die('Sem Permissão');
2+
defined('BASEPATH') or exit('Sem Permissão');
33

44
class Task extends CI_Controller{
55
public function index(){

application/controllers/TeamMember.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ class TeamMember extends Team{
77
public function view($team_id){
88
$user = authorize(1);
99

10-
$this->load->model(array('TeamMemberModel', 'TeamTagModel'));
10+
$this->load->model(array('TeamMemberModel', 'TeamTagModel', 'TeamTaskModel'));
1111
$team = parent::iManageThisTeam($team_id, $user->id_user);
1212

1313
$availableMembers = $this->TeamMemberModel->searchAvailableMembersForThisTeam($team_id, $user->id_user);
@@ -16,12 +16,17 @@ public function view($team_id){
1616

1717
$tags = $this->TeamTagModel->searchAllByTeam($team_id);
1818

19+
$tasksToDo = $this->TeamTaskModel->searchAllByTeamAndStatus($team_id, 0);
20+
$tasksDone = $this->TeamTaskModel->searchAllByTeamAndStatus($team_id, 1);
21+
1922
$page = [
2023
'page_title' => 'Gerenciar Time',
2124
'page_content' => 'team/view',
2225
'user' => $user,
2326
'team' => $team,
2427
'tags' => $tags,
28+
'tasksToDo' => $tasksToDo,
29+
'tasksDone' => $tasksDone,
2530
'availableMembers' => $availableMembers,
2631
'members' => $members,
2732
];
Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
<?php
2+
defined('BASEPATH') or exit('Sem Permissão');
3+
4+
require_once(APPPATH.'controllers/Team.php');
5+
6+
class TeamTask extends CI_Controller{
7+
public function insert($team_id){
8+
$user = authorize(1);
9+
10+
$team = Team::iManageThisTeam($team_id, $user->id_user);
11+
12+
$this->load->model('TeamTaskModel');
13+
14+
$newTask = new stdClass();
15+
$newTask->team_id = $team_id;
16+
$newTask->teamtask_id = $this->input->post('tag', true);
17+
$newTask->created_by = $user->id_user;
18+
$newTask->title = $this->input->post('title', true);
19+
$newTask->priority = $this->input->post('priority', true);
20+
$newTask->description = $this->input->post('description', true);
21+
$newTask->created_in = datetime_current();
22+
23+
$this->TeamTaskModel->insert($newTask);
24+
25+
$this->session->set_flashdata('success', 'Nova Tarefa Criada');
26+
redirect('time/'.$team_id);
27+
}
28+
29+
public function delete($team_id, $task_id){
30+
$user = authorize(1);
31+
32+
$team = Team::iManageThisTeam($team_id, $user->id_user);
33+
34+
$teamTask = $this->thisTaskBelongsToTheTeam($task_id, $team_id);
35+
36+
$this->TeamTaskModel->deleteById($task_id);
37+
38+
$this->session->set_flashdata('success', 'Tarefa Excluída');
39+
40+
redirect('time/'.$team_id);
41+
}
42+
43+
public function edit($team_id, $task_id){
44+
$user = authorize(1);
45+
46+
$team = Team::iManageThisTeam($team_id, $user->id_user);
47+
48+
$teamTask = $this->thisTaskBelongsToTheTeam($task_id, $team_id);
49+
50+
$page = [
51+
'page_title' => 'Editar Etiqueta',
52+
'page_content' => 'teamtask/edit',
53+
'user' => $user,
54+
'task' => $teamTask,
55+
'team_id' => $team_id,
56+
];
57+
58+
$this->load->view('public/base', $page);
59+
}
60+
61+
public function update($team_id, $task_id){
62+
$user = authorize(1);
63+
64+
$team = Team::iManageThisTeam($team_id, $user->id_user);
65+
66+
$teamTask = $this->thisTaskBelongsToTheTeam($task_id, $team_id);
67+
68+
$newTeamTask = new stdClass();
69+
$newTeamTask->title = $this->input->post('title', true);
70+
$newTeamTask->description = $this->input->post('description', true);
71+
$newTeamTask->priority = $this->input->post('priority', true);
72+
$newTeamTask->teamtag_id = $this->input->post('tag', true);
73+
$newTeamTask->created_by = $user->id_user;
74+
75+
$this->TeamTaskModel->updateById($newTeamTask, $task_id);
76+
77+
$this->session->set_flashdata('success', 'Tarefa Atualizada');
78+
redirect('time/'.$team_id);
79+
}
80+
81+
public function complete($team_id, $task_id){
82+
$user = authorize(1);
83+
84+
$teamTask = $this->thisTaskBelongsToTheTeam($task_id, $team_id);
85+
86+
$newTask = new stdClass();
87+
$newTask->status = 1;
88+
$newTask->completed_in = datetime_current();
89+
90+
$this->TeamTaskModel->updateById($newTask, $task_id);
91+
92+
$this->session->set_flashdata('success', 'Tarefa Concluída');
93+
94+
redirect('time/'.$team_id);
95+
}
96+
97+
public function reopen($team_id, $task_id){
98+
$user = authorize(1);
99+
100+
$teamTask = $this->thisTaskBelongsToTheTeam($task_id, $team_id);
101+
102+
$newTask = new stdClass();
103+
$newTask->status = 0;
104+
$newTask->completed_in = '';
105+
106+
$this->TeamTaskModel->updateById($newTask, $task_id);
107+
108+
$this->session->set_flashdata('success', 'Tarefa Reaberta');
109+
110+
redirect('time/'.$team_id);
111+
}
112+
113+
public function thisTaskBelongsToTheTeam($id_task, $team_id){
114+
$this->load->model('TeamTaskModel');
115+
116+
$task = $this->TeamTaskModel->searchByIdAndTeam($id_task, $team_id);
117+
118+
if(!$task){
119+
$this->session->set_flashdata('error', 'Essa tarefa não pertence ao time');
120+
redirect('time/'.$team_id);
121+
}
122+
123+
return $task;
124+
}
125+
}

application/models/TaskModel.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ class TaskModel extends CI_Model{
77
public function insert(stdClass $newTask){
88
$this->db->insert($this->table, $newTask);
99

10-
return true;
10+
return $this->db->insert_id();
1111
}
1212

1313
public function searchAllByUserAndStatus($user_id, $status){
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
<?php
2+
defined('BASEPATH') or exit('Sem Permissão');
3+
4+
class TeamTaskModel extends CI_Model{
5+
protected $table = 'tb_teamtask';
6+
7+
public function insert(stdClass $task){
8+
$this->db->insert($this->table, $task);
9+
10+
return $this->db->insert_id();
11+
}
12+
13+
public function updateById(stdClass $task, $id){
14+
$this->db->where('id_teamtask', $id);
15+
$this->db->limit(1);
16+
$this->db->update($this->table, $task);
17+
18+
return true;
19+
}
20+
21+
public function deleteById($id){
22+
$this->db->where('id_teamtask', $id);
23+
$this->db->delete($this->table);
24+
25+
return true;
26+
}
27+
28+
public function deleteByTeam($team_id){
29+
$this->db->where('team_id', $team_id);
30+
$this->db->delete($this->table);
31+
32+
return true;
33+
}
34+
35+
public function searchByIdAndTeam($id, $team_id){
36+
$this->db->select('id_teamtask, teamtag_id, color, name, tb_teamtask.description, tb_teamtask.created_in, priority, title, completed_in');
37+
$this->db->where('id_teamtask', $id);
38+
$this->db->where('tb_teamtask.team_id', $team_id);
39+
$this->db->join('tb_teamtag', 'teamtag_id = id_teamtag');
40+
$this->db->limit(1);
41+
$this->db->from($this->table);
42+
43+
return $this->db->get()->row();
44+
}
45+
46+
public function searchAllByTeamAndStatus($team_id, $status){
47+
$this->db->select('tb_user.name AS user_name, id_teamtask, color, tb_teamtag.name, tb_teamtask.description, tb_teamtask.created_in, priority, title, completed_in');
48+
$this->db->where('tb_teamtask.team_id', $team_id);
49+
$this->db->where('status', $status);
50+
$this->db->join('tb_teamtag', 'teamtag_id = id_teamtag');
51+
$this->db->join('tb_user', 'tb_teamtask.created_by = id_user');
52+
$this->db->from($this->table);
53+
54+
return $this->db->get()->result();
55+
}
56+
57+
58+
}

application/views/task/list.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@
113113
<?php
114114
if(!$tasksDone):
115115
echo '<div class="alert alert-info">';
116-
echo '<strong>Parabéns! Você concluiu todas as suas tarefas</strong>';
116+
echo '<strong>Você ainda não concluiu suas tarefas</strong>';
117117
echo '</div>';
118118
else:
119119
echo '<table class="table table-hover table-striped " id="table_tasks">';

0 commit comments

Comments
 (0)