コード例 #1
0
/**
 * Method: GenerateGradeFile(QString _activityID)
 *
 * Description:
 *      Obtains the grades for all students in a course that is tied to the _activityID, obtains the grades for those
 *      students for that activity, and then stores each student grade file line in the returned QList<QString>
 *      (formatted for writing to a file using the CSVProcessor).
 *
 * Attributes:
 *      QString _activityID - the id of the activity to get grades for
 *
 * Author: Joshua Campbell
 *
 * Version: 1
 */
QList<QString> RubricItemGrade::GenerateGradeFile(QString _activityID) {
    Activity activityModel;
    QMap<QString, QString> activityMap = activityModel.GetActivityByID(_activityID);
    activityModel.SetParameters(activityMap);
    QList<QMap<QString, QString> > rubricMapList = activityModel.getRubric();
    QListIterator<QMap<QString, QString> > rubricMapListIterator(rubricMapList);
    Student s;
    QList<QString> studentList = s.getEnrolledStudentIDs(activityMap["courseID"]);
    QList<QString> gradeOutput;
    for (size_t i = 0; i < studentList.count(); i++) {
        std::ostringstream oss;
        oss << studentList[i].toStdString();
        while(rubricMapListIterator.hasNext()) {
            QMap<QString, QString> tempMap = rubricMapListIterator.next();
            QList<QMap<QString, QString> > itemGrades = GetGradesByItemID(tempMap["rubricItemID"]);
            QListIterator<QMap<QString, QString> > itemGradesIterator(itemGrades);
            while (itemGradesIterator.hasNext()) {
                QMap<QString, QString> tempItemGrade = itemGradesIterator.next();
                if (tempItemGrade["studentID"] == studentList[i]) {
                    oss << "," << tempItemGrade["mark"].toStdString();
                }
            }
        }
        oss << "\n";
        gradeOutput.push_back(oss.str().c_str());
    }
    return gradeOutput;
}
コード例 #2
0
/**
 * Method: GetActivityGradesByStudentID(QString _activityID, QString _studentID)
 *
 * Description:
 *      Returns a list of RubricItemGrades in the form of a map (table columns and values) for a particular activity and
 *      a particular student.
 *
 * Attributes:
 *      QString _activityID - the activity the grades belong to
 *      QString _studentID - the student the grades belong to
 *
 * Author: Joshua Campbell
 *
 * Version: 1
 */
QList<QMap<QString, QString> > RubricItemGrade::GetActivityGradesByStudentID(QString _activityID, QString _studentID) {
    QList<QMap<QString, QString> > gradeItems;
    Activity activityModel;
    QMap<QString, QString> activityMap = activityModel.GetActivityByID(_activityID);
    activityModel.SetParameters(activityMap);
    QList<QMap<QString, QString> > rubricMapList = activityModel.getRubric();
    QListIterator<QMap<QString, QString> > rubricMapListIterator(rubricMapList);
    if (rubricMapListIterator.hasNext()) {
        QMap<QString, QString> rubric = rubricMapListIterator.next();
        std::ostringstream oss;
        oss << "SELECT RubricItemGrade.gradeID, RubricItemGrade.mark, RubricItemGrade.groupID, RubricItemGrade.studentID, ";
        oss << "RubricItemGrade.markerPrivilege, RubricItemGrade.markerID, RubricItemGrade.rubricItemID ";
        oss << "FROM RubricItemGrade JOIN RubricItem ON RubricItemGrade.rubricItemID = RubricItem.rubricItemID ";
        oss << "WHERE RubricItem.rubricID='" << rubric["rubricID"].toStdString().c_str() << "' AND ";
        oss << "RubricItemGrade.studentID='" << _studentID.toStdString().c_str() << "';";
        QSqlQuery * query = DBA.__query(oss.str().c_str());
        gradeItems = parseResult(query);
        if (gradeItems.size() > 0) {
            DEBUG(DEBUG_ALRM, gradeItems[0]["markerPrivilege"]);
        }
    }
    return gradeItems;
}