Show Active Command. is_active Method for Taks

This commit is contained in:
jbrass 2025-02-10 14:41:13 +01:00
parent ca9bd3d2e9
commit ca572b6fb5
4 changed files with 32 additions and 6 deletions

View file

@ -22,7 +22,11 @@ namespace commands
const User* u = mgr->get_user(user_id);
if (!u)
throw Error(401, "Eine solche BenutzerIn existiert nicht.");
for (const Assignment* a : mgr->get_assignments_for_user(user_id))
cout << a->get_task_id() << "\n";
for (const Assignment* a : mgr->get_assignments_for_user(user_id)) {
//Ist der Related Task ein Aktiver Task?
if (mgr->get_task(a->get_task_id())->is_active()) {
cout << a->get_task_id() << "\n";
}
}
}
} // commands

View file

@ -250,12 +250,16 @@ namespace util
throw Error(202, "Aufgabe kann nicht gelöscht werden.");
}
//TODO: Zudem kann eine Aufgabe nur gelöscht werden, wenn Sie nicht Nachfolgerin einer anderen Aufgabe ist -> Ensure its no Child
for (Task* task : this->get_tasks()) {
/*for (Task* task : this->get_tasks()) {
for (int child_id : task->get_children()) {
if (id == child_id) {
throw Error(202, "Aufgabe kann nicht gelöscht werden.");
}
}
}*/
if (! this->get_task(id)->is_active()) {
throw Error(202, "Aufgabe kann nicht gelöscht werden.");
}
this->tasks.erase(id);
}

View file

@ -31,9 +31,26 @@ namespace models
return stream;
}
int Task::get_id() const
{
return this->id;
int Task::get_id() const { return this->id; }
/**
* Diese Methode überprüft ob der Task Aktiv ist ( Nicht Nachfolger einer anderen Klass ist)
* @return bool
*/
bool Task::is_active() const {
Manager* mgr = Manager::get_instance();
for (Task* task : mgr->get_tasks()) {
for (int child_id : task->get_children()) {
// Aktiver Task ist Child von Einem andern Task -> Nicht aktiv
if (this->id == child_id) {
// cout << this->id << " = " << child_id << endl;
return false;
}
}
}
//Kein Child-> Aktiv
return true;
}
string Task::get_name() const

1
Task.h
View file

@ -28,6 +28,7 @@ namespace models
istream& read(istream&);
int get_id() const;
bool is_active() const;
string get_name() const;
string get_description() const;
vector<int> get_children() const;