\n";
+ ostr << "\n";
+ ostr << "";
+ ostr << "";
+ ostr << " | ";
+ ostr << "";
+ ostr << " Border-Outline is ranked from top to bottom ";
+ ostr << "Higher ranked outline will over-write ";
+ ostr << " | ";
+ ostr << "
\n";
if (for_instructor || (s != NULL && s->get_event_academic_integrity()))
{
ostr << "\n";
@@ -1246,6 +1255,29 @@ void end_table(std::ofstream &ostr, bool for_instructor, Student *s) {
ostr << "";
ostr << "
\n";
}
+ if (for_instructor || (s != NULL && s->get_event_cancelled()))
+ {
+ ostr << "\n";
+ ostr << "";
+ ostr << "";
+ ostr << " | ";
+ ostr << "";
+ ostr << " Cancelled submission ";
+ ostr << " | ";
+ ostr << "
\n";
+ }
+ if (for_instructor || (s != NULL && s->get_event_version_conflict()))
+ {
+ ostr << "\n";
+ ostr << "";
+ ostr << "";
+ ostr << " | ";
+ ostr << "";
+ ostr << " Version conflict = version conflict between ";
+ ostr << " TA graded version and Active version ";
+ ostr << " | ";
+ ostr << "
\n";
+ }
if (for_instructor || (s != NULL && s->get_event_bad_status()))
{
ostr << "\n";
diff --git a/student.h b/student.h
index e34f42e..21e322f 100644
--- a/student.h
+++ b/student.h
@@ -186,16 +186,23 @@ class Student {
void academic_sanction(const std::string &gradeable, float penalty);
+ //set in order of priority - top to bottom
void set_event_academic_integrity(bool value) {academic_integrity = value;}
- void set_event_grade_inquiry(bool value) {grade_inquiry = value;}
void set_event_overridden(bool value) {overridden = value;}
- void set_event_bad_status(bool value) {bad_status = value;}
void set_event_extension(bool value) {extension = value;}
+ void set_event_grade_inquiry(bool value) {grade_inquiry = value;}
+ void set_event_cancelled(bool value) {cancelled = value;}
+ void set_event_version_conflict(bool value) {version_conflict = value;}
+ void set_event_bad_status(bool value) {bad_status = value;}
+
+ //bool in order of priority - top to bottom
bool get_event_academic_integrity() {return academic_integrity;}
- bool get_event_grade_inquiry() {return grade_inquiry;}
bool get_event_overridden() {return overridden;}
- bool get_event_bad_status() {return bad_status;}
bool get_event_extension() {return extension;}
+ bool get_event_grade_inquiry() {return grade_inquiry;}
+ bool get_event_cancelled() {return cancelled;}
+ bool get_event_version_conflict() {return version_conflict;}
+ bool get_event_bad_status() {return bad_status;}
// other grade-like data
void setNumericID(const std::string& r_id) { numeric_id = r_id; }
@@ -254,10 +261,12 @@ class Student {
int current_allowed_late_days;
int default_allowed_late_days;
bool academic_integrity = false;
- bool grade_inquiry = false;
bool overridden = false;
- bool bad_status = false;
bool extension = false;
+ bool grade_inquiry = false;
+ bool version_conflict = false;
+ bool cancelled = false;
+ bool bad_status = false;
// registration status
std::string section;
diff --git a/table.cpp b/table.cpp
index 23926f4..e0e2d03 100644
--- a/table.cpp
+++ b/table.cpp
@@ -94,24 +94,35 @@ TableCell::TableCell(float d, const std::string& c, int precision, const std::st
rotate = 0;
academic_integrity = ai;
event = e;
+
if (reason != "") {
hoverText = "class=\"hoverable-cell\" data-hover-text=\""+userName+" received a "+std::to_string(daysExtended)+" day extension due to "+reason+" on "+gID+"\" ";
+ } else {
+ hoverText = "class=\"hoverable-cell\" data-hover-text=\""+userName+" received a "+std::to_string(daysExtended)+" day extension without specified reason on "+gID+"\" ";
}
- else hoverText = "";
- if (event == "Bad"){
- bad_status = true;
- override = inquiry = extension = false;
- } else if ( event == "Overridden"){
+
+// Bool in order of priority - top to bottom
+// Don't think we need this logic, but leaving it as sort of assert
+ if (event == "Overridden"){
override = true;
- bad_status = inquiry = extension = false;
- } else if (event == "Open"){
- inquiry = true;
- bad_status = override = extension = false;
+ bad_status = inquiry = extension = version_conflict = cancelled = false;
} else if (event == "Extension"){
extension = true;
- inquiry = bad_status = override = false;
+ inquiry = bad_status = override = version_conflict = cancelled = false;
+ } else if (event == "Open"){
+ inquiry = true;
+ bad_status = override = extension = version_conflict = cancelled = false;
+ } else if (event == "Cancelled"){
+ cancelled = true;
+ inquiry = bad_status = override = extension = version_conflict = false;
+ } else if (event == "Version_conflict"){
+ version_conflict = true;
+ inquiry = bad_status = override = extension = cancelled = false;
+ } else if (event == "Bad"){
+ bad_status = true;
+ override = inquiry = extension = version_conflict = cancelled = false;
} else {
- inquiry = bad_status = override = extension = false;
+ inquiry = bad_status = override = extension = version_conflict = cancelled = false;
}
}
@@ -132,11 +143,21 @@ std::ostream& operator<<(std::ostream &ostr, const TableCell &c) {
outline = "outline:4px solid #0066e0; outline-offset: -4px;";
} else if (c.inquiry){
outline = "outline:4px dashed #1cfc03; outline-offset: -4px;";
+ } else if (c.cancelled){
+ outline = "outline:4px dashed #0a0a0a; outline-offset: -4px;";
+ } else if (c.version_conflict){
+ outline = "outline:4px dashed #fc0303; outline-offset: -4px;";
} else if (c.bad_status){
outline = "outline:4px solid #fc0303; outline-offset: -4px;";
}
-
- ostr << "";
+
+ if (c.extension){
+ ostr << " | ";
+ } else {
+ ostr << " | ";
+
+ }
+
if (0) { //rotate == 90) {
ostr << "";
}
diff --git a/table.h b/table.h
index ad07ac4..8159cd2 100644
--- a/table.h
+++ b/table.h
@@ -32,11 +32,14 @@ class TableCell {
std::string data;
std::string event;
int late_days_used;
+ // Bool in order of priority - top to bottom
bool academic_integrity = false;
- bool inquiry = false;
- bool bad_status = false;
bool override = false;
bool extension = false;
+ bool inquiry = false;
+ bool cancelled = false;
+ bool version_conflict = false;
+ bool bad_status = false;
std::string hoverText = "";
std::string align;
enum CELL_CONTENTS_STATUS visible;
|