CourseScreen::CourseScreen(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::CourseScreen)
{
    ui->setupUi(this);
    QFont f( "Arial", 10, QFont::Bold);

    ui->courseName->setText(getCourseName());
    ui->courseName->setAlignment(Qt::AlignCenter);
    ui->courseName->setFont(f);


    ui->myName->setText(getName());


    QSqlQueryModel *modal1 = new QSqlQueryModel();
    QSqlQuery qry1;
    qry1.prepare("Select studentID, studentName from CoursesToStudent where courseID = '"+courseid+"' ");
    qry1.exec();
    modal1->setQuery(qry1);
    ui->listofStudent_table->setModel(modal1);



}
activityhome::activityhome(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::activityhome)
{
    ui->setupUi(this);

    ui->myName->setText(getName());
    ui->courseName->setText(getCourseName());
    ui->activityName->setText(getActivityName());

    QSqlQueryModel *model = new QSqlQueryModel();

    QSqlQuery qry;
    QSqlQuery cts;

    cts.prepare("select studentID from CoursesToStudent where courseID = ?");
    cts.addBindValue(courseid);
    cts.exec();

    qry.prepare("select studentName from Students where studentID = ?");

    qry.exec();
    model->setQuery(qry);
    ui->studentList->setModel(model);
}
activityinitial::activityinitial(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::activityinitial)
{
    ui->setupUi(this);

    ui->myName->setText(getName());
    ui->courseName->setText(getCourseName());
    ui->activityName->setText(getActivityName());

    QSqlQueryModel *model = new QSqlQueryModel();

    QSqlQuery cts;

    qDebug() << actid;
    cts.prepare("select CoursesToStudent.studentName, ModifiedBy.userType "
                "from CoursesToStudent "
                "left join ModifiedBy "
                "on CoursesToStudent.studentID = ModifiedBy.studentID "
                "where ModifiedBy.activityID = ?");
    cts.addBindValue(actid);
    cts.exec();

    model->setQuery(cts);
    model->setHeaderData(0, Qt::Horizontal, tr("Student Name"));
    model->setHeaderData(1, Qt::Horizontal, tr("Modified By"));

    ui->studentList->setModel(model);
}
StudentWin::StudentWin(Account*account, QWidget *parent) :
    QWidget(parent),
    Account(*account),
    ui(new Ui::StudentWin)
{
    ui->setupUi(this);

    QDesktopWidget* desktop = QApplication::desktop();
    move((desktop->width() - this->width())/2, (desktop->height() - this->height())/2);

    id = account->getId();

    QSqlQuery query;

    // set info
    if(!query.exec("select id, name, sex, age, grade, major, class from student where id='" + id + "'")
            || !query.next()){
        qDebug()<<"query from database error"<<endl;
        return;
    }
    ui->label_id->setText(query.value(0).toString());
    ui->label_name->setText(query.value(1).toString());
    ui->label_sex->setText(query.value(2).toString());
    ui->label_age->setText(query.value(3).toString());
    ui->label_grade->setText(query.value(4).toString());
    ui->label_major->setText(query.value(5).toString());
    ui->label_class->setText(query.value(6).toString());

    // set score
    QStandardItemModel *model = new QStandardItemModel();
    model->setColumnCount(3);
    model->setHeaderData(0,Qt::Horizontal,QString::fromLocal8Bit("课程名"));
    model->setHeaderData(1,Qt::Horizontal,QString::fromLocal8Bit("任课教师"));
    model->setHeaderData(2,Qt::Horizontal,QString::fromLocal8Bit("成绩"));
    ui->tableView->setModel(model);
    ui->tableView->horizontalHeader()->setDefaultAlignment(Qt::AlignLeft);

    query.exec("select * from score where student_id='" + id + "'");
    int rowCnt = 0;
    while(query.next()){
        //get a score item
        QString courseId = query.value(2).toString();
        QString score = query.value(3).toString();
        QString teacherId = query.value(1).toString();
        model->setItem(rowCnt, 0, new QStandardItem(getCourseName(courseId)));
        model->setItem(rowCnt, 1, new QStandardItem(getTeacherName(teacherId)));
        model->setItem(rowCnt, 2, new QStandardItem(score));
        ++rowCnt;
    }

}
viewactivity::viewactivity(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::viewactivity)
{
    ui->setupUi(this);

    QFont f("Calibri", 12, QFont::Bold);
    ui->courseName->setText(getCourseName());
    ui->courseName->setFont(f);

    QSqlQueryModel *modal1 = new QSqlQueryModel();

    QSqlQuery qry1;// = new QSqlQuery(conn1.mydb);

    qry1.prepare("select activityName from Activity where courseID = ?");
    qry1.addBindValue(courseid);
    qry1.exec();
    modal1->setQuery(qry1);
    ui->activityList->setModel(modal1);

}
// display a welcome message to the GradeBook user
void GradeBook::displayMessage() {
    std::cout << "Welcome to the grade book for: " << getCourseName() << "!\n"
              << "This course is presented by: " << getInstructorName()
              << std::endl;
}