namespace obb::mycityhall {
namespace {
std::vector s_dossiers;
Step next_step(Step s) {
switch (s) {
case Step::kDraft: return Step::kDeliberation;
case Step::kDeliberation: return Step::kVote;
case Step::kVote: return Step::kPublication;
case Step::kPublication: return Step::kArchived;
case Step::kArchived: return Step::kArchived;
}
return Step::kArchived;
}
}
void workflow_init() {
s_dossiers.clear();
}
void push_dossier(const Dossier &dossier) {
auto it = std::find_if(s_dossiers.begin(), s_dossiers.end(), [&](const Dossier &d) {
return d.id == dossier.id;
});
if (it == s_dossiers.end()) {
s_dossiers.push_back(dossier);
} else {
*it = dossier;
}
}
void advance_step(const std::string &id) {
auto it = std::find_if(s_dossiers.begin(), s_dossiers.end(), [&](const Dossier &d) {
return d.id == id;
});
if (it == s_dossiers.end()) {
return;
}
">
namespace obb::mycityhall {
namespace {
std::vector s_dossiers;
Step next_step(Step s) {
switch (s) {
case Step::kDraft: return Step::kDeliberation;
case Step::kDeliberation: return Step::kVote;
case Step::kVote: return Step::kPublication;
case Step::kPublication: return Step::kArchived;
case Step::kArchived: return Step::kArchived;
}
return Step::kArchived;
}
}
void workflow_init() {
s_dossiers.clear();
}
void push_dossier(const Dossier &dossier) {
auto it = std::find_if(s_dossiers.begin(), s_dossiers.end(), [&](const Dossier &d) {
return d.id == dossier.id;
});
if (it == s_dossiers.end()) {
s_dossiers.push_back(dossier);
} else {
*it = dossier;
}
}
void advance_step(const std::string &id) {
auto it = std::find_if(s_dossiers.begin(), s_dossiers.end(), [&](const Dossier &d) {
return d.id == id;
});
if (it == s_dossiers.end()) {
return;
}
">
namespace obb::mycityhall {
namespace {
std::vector s_dossiers;
Step next_step(Step s) {
switch (s) {
case Step::kDraft: return Step::kDeliberation;
case Step::kDeliberation: return Step::kVote;
case Step::kVote: return Step::kPublication;
case Step::kPublication: return Step::kArchived;
case Step::kArchived: return Step::kArchived;
}
return Step::kArchived;
}
}
void workflow_init() {
s_dossiers.clear();
}
void push_dossier(const Dossier &dossier) {
auto it = std::find_if(s_dossiers.begin(), s_dossiers.end(), [&](const Dossier &d) {
return d.id == dossier.id;
});
if (it == s_dossiers.end()) {
s_dossiers.push_back(dossier);
} else {
*it = dossier;
}
}
void advance_step(const std::string &id) {
auto it = std::find_if(s_dossiers.begin(), s_dossiers.end(), [&](const Dossier &d) {
return d.id == id;
});
if (it == s_dossiers.end()) {
return;
}
">
#include "app/ui/mycityhall/obb_mch_workflow.h"
#include <algorithm>
namespace obb::mycityhall {
namespace {
std::vector<Dossier> s_dossiers;
Step next_step(Step s) {
switch (s) {
case Step::kDraft: return Step::kDeliberation;
case Step::kDeliberation: return Step::kVote;
case Step::kVote: return Step::kPublication;
case Step::kPublication: return Step::kArchived;
case Step::kArchived: return Step::kArchived;
}
return Step::kArchived;
}
}
void workflow_init() {
s_dossiers.clear();
}
void push_dossier(const Dossier &dossier) {
auto it = std::find_if(s_dossiers.begin(), s_dossiers.end(), [&](const Dossier &d) {
return [d.id](<http://d.id>) == [dossier.id](<http://dossier.id>);
});
if (it == s_dossiers.end()) {
s_dossiers.push_back(dossier);
} else {
*it = dossier;
}
}
void advance_step(const std::string &id) {
auto it = std::find_if(s_dossiers.begin(), s_dossiers.end(), [&](const Dossier &d) {
return [d.id](<http://d.id>) == id;
});
if (it == s_dossiers.end()) {
return;
}
it->step = next_step(it->step);
}
std::vector<Dossier> list_active() {
std::vector<Dossier> out;
for (const auto &d : s_dossiers) {
if (d.step == Step::kArchived) continue;
out.push_back(d);
}
return out;
}
} // namespace obb::mycityhall