bool ScheduleModel::setData(const QModelIndex &index, const QVariant &value, int role)
{
    if (index.isValid() && role == Qt::EditRole) {
        if (index.column() == DowColumn)
            m_objects.at(index.row())->dow = value.toString();
        if (index.column() == TimeColumn) {
            QString tmp = value.toString();
            tmp.remove(':');
            m_objects.at(index.row())->start_time = tmp.left(tmp.indexOf("-")).toInt();
            m_objects.at(index.row())->end_time = tmp.right(tmp.length() - tmp.indexOf("-")-1).toInt();
        }
        if (index.column() == PlaceColumn) {
            Domain::Place p = Yb::query<Domain::Place>(*m_session)
                        .filter_by(Domain::Place::c.name == value.toString())
                        .one();
            Domain::PlaceHolder place(*m_session, p.id);
            m_objects.at(index.row())->place = place;
        }
        if (index.column() == TeacherColumn) {
            Domain::User usr = Yb::query<Domain::User>(*m_session)
                        .filter_by(Domain::User::c.name == value.toString())
                        .one();
            Domain::UserHolder teacher(*m_session, usr.id);
            m_objects.at(index.row())->teacher = teacher;
            m_objects.at(index.row())->receiver = teacher;
        }
        // For other columns this method will call only for emit signal dataChanged()
        emit dataChanged(index, index);
        return true;
    }
    return false;
}
Example #2
0
bool TeacherForm::updateRecord(int, const QSqlRecord &record,
                               QSqlError &error) {
    auto map = DBManager::recordToVariantMap(record);
    Teacher teacher(map);
    auto success = manager().saveTeacher(teacher, error);
    if (success) {
        refreshModel();
    }
    return success;
}
Example #3
0
bool TeacherForm::insertRecord(QSqlRecord &record, QSqlError &error) {
    auto map = DBManager::recordToVariantMap(record);
    map.remove("id");
    Teacher teacher(map);
    auto success = manager().saveTeacher(teacher, error);
    if (success) {
        refreshModel();
        record.setValue("id", teacher.id());
    }
    return success;
}
Example #4
0
void RequestHandler::respond(QTcpSocket* client,DatabaseController &db){
    string method = Message<string,int>::getMethod(msg);

    if(method.compare(Message<string,int>::saveTask) == 0 ){
        Message<TA,Task> m(msg);
        TA t(m.returnA());
        Task tas(m.returnB());
        db.saveTask(t, tas);
        client->write("true",1000);
        return;
    }else if(method.compare(Message<string,int>::deleteTask) == 0 ){
         Message<Task,string> m(msg);
         Task t(m.returnA());
         db.deleteTask(t);
         client->write("true",1000);
         return;
    }else if(method.compare(Message<string,int>::saveEval)== 0){
         Message<TA,Evaluation> m(msg);
         TA t(m.returnA());
         Evaluation e(m.returnB());
         db.saveEvaluation(e);
         client->write("true",1000);
         return;

    }else if(method.compare(Message<string,int>::deleteEval) == 0){
         Message<Evaluation,string> m(msg);
         Evaluation e(m.returnA());
         db.deleteEvaluation(e);
         client->write("true",1000);
         return;


    }else if(method.compare(Message<string,int>::getEval)==0){
         Message<Task,string> m(msg);
         Task t(m.returnA());
         Evaluation e = db.getEvaluation(t);
         Message<Evaluation,string> f(Message<string,int>::reTurn,e);
         string s = f.toString();
         cout<<"sending back message: "<<s<<endl;
         client->write(s.c_str(),1000);
         return;

    }else if(method.compare(Message<string,int>::viewTaskListForCourse)==0){
         Message<TA,Course> m(msg);
         Course c(m.returnB());
         TA t(m.returnA());
         vector<Task> mytasks = db.getTaskListForTACourse(t,c);
         Message<Task,string> f(mytasks);
         string s = f.toString();
         cout<<"sending back message: "<<s<<endl;
         client->write(s.c_str(),1000);
         return;


    }else if(method.compare(Message<string,int>::viewTaList)==0){
        Message<Course,string> m(msg);
        Course c(m.returnA());
        vector<TA> myTas = db.getTAList(c);
        Message<TA,string> f(myTas);
        string s = f.toString();
        cout<<"sending back message: "<<s<<endl;
        client->write(s.c_str(),1000);
        return;


    }else if(method.compare(Message<string,int>::viewCourseList)==0){
         Message<Instructor,string> m(msg);
         Instructor teacher(m.returnA());
         vector<Course> mycourses = db.getCourseList(teacher);
         Message<Course,string> f(mycourses);
         string s = f.toString();
         cout<<"sending back message: "<<s<<endl;
         client->write(s.c_str(),1000);
         return;
    }else if (method.compare(Message<string,int>::getTa)==0){
         Message<TA,string> m(msg);
         TA myTa(m.returnA());
         TA newT = db.loginTA(myTa.getEmail());
         Message<TA,string> f(newT.toString());
         string s = f.toString();
         cout<<"sending back message: "<<s<<endl;
         client->write(s.c_str(),1000);

    }else if (method.compare(Message<string,int>::getInstructor)==0){
        Message<Instructor,string> m(msg);
        Instructor myInstruct(m.returnA());
        Instructor newT = db.loginInstructor(myInstruct.getEmail());
        Message<Instructor,string> f(newT.toString());
        string s = f.toString();
        cout<<"sending back message: "<<s<<endl;
        client->write(s.c_str(),1000);

   }else if (method.compare(Message<string,int>::getCurrentCourse)==0){
        Message<TA,string> m(msg);
        TA t(m.returnA());
        Course c = db.getCurrentCourse(t);
        Message<TA,string> f(c.toString());
        string s = f.toString();
        cout<<"sending back message: "<<s<<endl;
        client->write(s.c_str(),1000);

   }

}
Example #5
0
int main()
{
    leader teacher;
    teacher('w', 32, 'a', 'b', 'c');
    teacher.print();
}