Added teacher column to substitutions

This commit is contained in:
Deniz Duezgoeren
2019-08-23 14:38:50 +02:00
parent c92d47f224
commit 98684f5d79
4 changed files with 36 additions and 20 deletions
+16 -12
View File
@@ -30,6 +30,7 @@ class DataFetcher {
let date = Expression<String>("date") let date = Expression<String>("date")
let time = Expression<String>("time") let time = Expression<String>("time")
let room = Expression<String>("room") let room = Expression<String>("room")
let teacher = Expression<String>("teacher")
let text = Expression<String>("text") let text = Expression<String>("text")
func doAsync(do task: String, completionHandler: @escaping (_ substitutions: [Any]) -> ()) { func doAsync(do task: String, completionHandler: @escaping (_ substitutions: [Any]) -> ()) {
@@ -74,6 +75,7 @@ class DataFetcher {
t.column(date) t.column(date)
t.column(time) t.column(time)
t.column(room) t.column(room)
t.column(teacher)
}) })
try db.run(personal.create(ifNotExists: true) { t in try db.run(personal.create(ifNotExists: true) { t in
@@ -84,6 +86,7 @@ class DataFetcher {
t.column(date) t.column(date)
t.column(time) t.column(time)
t.column(room) t.column(room)
t.column(teacher)
}) })
try db.run(substitutions.delete()) try db.run(substitutions.delete())
@@ -99,25 +102,26 @@ class DataFetcher {
let mDate = try cols.get(1).text() let mDate = try cols.get(1).text()
let mTime = try cols.get(2).text() let mTime = try cols.get(2).text()
let mRoom = try cols.get(4).text() let mRoom = try cols.get(4).text()
let mTeacher = try cols.get(6).text()
subst.append(SubstModel(group: mGroup, course: mCourse, additional: mAdditional, subst.append(SubstModel(group: mGroup, course: mCourse, additional: mAdditional,
date: mDate, time: mTime, room: mRoom)) date: mDate, time: mTime, room: mRoom, teacher: mTeacher))
let insert = substitutions.insert(group <- mGroup, course <- mCourse, additional <- mAdditional, let insert = substitutions.insert(group <- mGroup, course <- mCourse, additional <- mAdditional,
date <- mDate, time <- mTime, room <- mRoom) date <- mDate, time <- mTime, room <- mRoom, teacher <- mTeacher)
_ = try db.run(insert) _ = try db.run(insert)
if mDate.count > 2 && mDate[...mDate.index(mDate.startIndex, offsetBy: 2)] == "psa" { if mDate.count > 2 && mDate[...mDate.index(mDate.startIndex, offsetBy: 2)] == "psa" {
personalSubst.append(SubstModel(group: mGroup, course: mCourse, additional: mAdditional, personalSubst.append(SubstModel(group: mGroup, course: mCourse, additional: mAdditional,
date: mDate, time: mTime, room: mRoom)) date: mDate, time: mTime, room: mRoom, teacher: mTeacher))
let insertPersonal = personal.insert(group <- mGroup, course <- mCourse, additional <- mAdditional, let insertPersonal = personal.insert(group <- mGroup, course <- mCourse, additional <- mAdditional,
date <- mDate, time <- mTime, room <- mRoom) date <- mDate, time <- mTime, room <- mRoom, teacher <- mTeacher)
_ = try db.run(insertPersonal) _ = try db.run(insertPersonal)
} else if courses == nil || courses == "", classes != nil && classes != "" { } else if courses == nil || courses == "", classes != nil && classes != "" {
if !mGroup.isEmpty && mGroup != "" { if !mGroup.isEmpty && mGroup != "" {
if classes!.contains(mGroup) || mGroup.contains(classes!) { if classes!.contains(mGroup) || mGroup.contains(classes!) {
personalSubst.append(SubstModel(group: mGroup, course: mCourse, additional: mAdditional, personalSubst.append(SubstModel(group: mGroup, course: mCourse, additional: mAdditional,
date: mDate, time: mTime, room: mRoom)) date: mDate, time: mTime, room: mRoom, teacher: mTeacher))
let insertPersonal = personal.insert(group <- mGroup, course <- mCourse, additional <- mAdditional, let insertPersonal = personal.insert(group <- mGroup, course <- mCourse, additional <- mAdditional,
date <- mDate, time <- mTime, room <- mRoom) date <- mDate, time <- mTime, room <- mRoom, teacher <- mTeacher)
_ = try db.run(insertPersonal) _ = try db.run(insertPersonal)
isPersonalEmpty = false isPersonalEmpty = false
personalPlanCount += 1 personalPlanCount += 1
@@ -128,9 +132,9 @@ class DataFetcher {
if courses!.contains(mCourse) { if courses!.contains(mCourse) {
if classes!.contains(mGroup) || mGroup.contains(classes!) { if classes!.contains(mGroup) || mGroup.contains(classes!) {
personalSubst.append(SubstModel(group: mGroup, course: mCourse, additional: mAdditional, personalSubst.append(SubstModel(group: mGroup, course: mCourse, additional: mAdditional,
date: mDate, time: mTime, room: mRoom)) date: mDate, time: mTime, room: mRoom, teacher: mTeacher))
let insertPersonal = personal.insert(group <- mGroup, course <- mCourse, additional <- mAdditional, let insertPersonal = personal.insert(group <- mGroup, course <- mCourse, additional <- mAdditional,
date <- mDate, time <- mTime, room <- mRoom) date <- mDate, time <- mTime, room <- mRoom, teacher <- mTeacher)
_ = try db.run(insertPersonal) _ = try db.run(insertPersonal)
isPersonalEmpty = false isPersonalEmpty = false
personalPlanCount += 1 personalPlanCount += 1
@@ -143,8 +147,8 @@ class DataFetcher {
prefs.set(personalPlanCount, forKey: "personalPlanCount") prefs.set(personalPlanCount, forKey: "personalPlanCount")
if isPersonalEmpty { if isPersonalEmpty {
personalSubst.append(SubstModel(group: NSLocalizedString("personal_plan_empty", comment: ""), course: "", additional: "", date: "", time: "", room: "")) personalSubst.append(SubstModel(group: NSLocalizedString("personal_plan_empty", comment: ""), course: "", additional: "", date: "", time: "", room: "", teacher: ""))
let insertPersonal = personal.insert(group <- NSLocalizedString("personal_plan_empty", comment: ""), course <- "", additional <- "", date <- "", time <- "", room <- "") let insertPersonal = personal.insert(group <- NSLocalizedString("personal_plan_empty", comment: ""), course <- "", additional <- "", date <- "", time <- "", room <- "", teacher <- "")
_ = try db.run(insertPersonal) _ = try db.run(insertPersonal)
} }
@@ -225,7 +229,7 @@ class DataFetcher {
do { do {
let db = try Connection("\(path)/db.sqlite3") let db = try Connection("\(path)/db.sqlite3")
for subst in try db.prepare(substitutions) { for subst in try db.prepare(substitutions) {
substs.append(SubstModel(group: subst[group], course: subst[course], additional: subst[additional], date: subst[date], time: subst[time], room: subst[room])) substs.append(SubstModel(group: subst[group], course: subst[course], additional: subst[additional], date: subst[date], time: subst[time], room: subst[room], teacher: subst[teacher]))
} }
} catch {} } catch {}
return substs return substs
@@ -236,7 +240,7 @@ class DataFetcher {
do { do {
let db = try Connection("\(path)/db.sqlite3") let db = try Connection("\(path)/db.sqlite3")
for subst in try db.prepare(personal) { for subst in try db.prepare(personal) {
substs.append(SubstModel(group: subst[group], course: subst[course], additional: subst[additional], date: subst[date], time: subst[time], room: subst[room])) substs.append(SubstModel(group: subst[group], course: subst[course], additional: subst[additional], date: subst[date], time: subst[time], room: subst[room], teacher: subst[teacher]))
} }
} catch {} } catch {}
return substs return substs
+1
View File
@@ -17,4 +17,5 @@ class PlanViewCell: GenericViewCell {
@IBOutlet weak var additional: UILabel! @IBOutlet weak var additional: UILabel!
@IBOutlet weak var room: UILabel! @IBOutlet weak var room: UILabel!
@IBOutlet weak var tintView: UIView! @IBOutlet weak var tintView: UIView!
@IBOutlet weak var teacher: UILabel!
} }
+16 -7
View File
@@ -133,10 +133,10 @@ class PlanViewController : UIViewController, UICollectionViewDataSource, UIColle
cell.additional.textColor = #colorLiteral(red: 0, green: 0, blue: 0, alpha: 1) cell.additional.textColor = #colorLiteral(red: 0, green: 0, blue: 0, alpha: 1)
} }
let mutableStrings = [NSMutableAttributedString(string: self.substs[indexPath.item].group), NSMutableAttributedString(string: self.substs[indexPath.item].time), NSMutableAttributedString(string: self.substs[indexPath.item].course), NSMutableAttributedString(string: self.substs[indexPath.item].room)] let mutableStrings = [NSMutableAttributedString(string: self.substs[indexPath.item].group), NSMutableAttributedString(string: self.substs[indexPath.item].time), NSMutableAttributedString(string: self.substs[indexPath.item].course), NSMutableAttributedString(string: self.substs[indexPath.item].room), NSMutableAttributedString(string: self.substs[indexPath.item].teacher)]
let strings = [self.substs[indexPath.item].group, self.substs[indexPath.item].time, self.substs[indexPath.item].course, self.substs[indexPath.item].room] let strings = [self.substs[indexPath.item].group, self.substs[indexPath.item].time, self.substs[indexPath.item].course, self.substs[indexPath.item].room, self.substs[indexPath.item].teacher]
for i in 0..<4 { for i in 0...4 {
if let qmark = strings[i].firstIndex(of: "?") { if let qmark = strings[i].firstIndex(of: "?") {
let distance = strings[i].distance(from: strings[i].startIndex, to: qmark) let distance = strings[i].distance(from: strings[i].startIndex, to: qmark)
mutableStrings[i].addAttribute(NSAttributedString.Key.strikethroughStyle, value: 2, range: NSMakeRange(0, distance)) mutableStrings[i].addAttribute(NSAttributedString.Key.strikethroughStyle, value: 2, range: NSMakeRange(0, distance))
@@ -145,8 +145,9 @@ class PlanViewController : UIViewController, UICollectionViewDataSource, UIColle
let add = self.substs[indexPath.item].additional.lowercased() let add = self.substs[indexPath.item].additional.lowercased()
if add.contains("eigenverantwortliches arbeiten") || add.contains("entfall") || add.contains("fällt aus"){ if add.contains("eigenverantwortliches arbeiten") || add.contains("entfall") || add.contains("fällt aus"){
mutableStrings[2].addAttribute(NSAttributedString.Key.strikethroughStyle, value: 2, range: NSMakeRange(0, mutableStrings[2].length)) for i in 2...4 {
mutableStrings[3].addAttribute(NSAttributedString.Key.strikethroughStyle, value: 2, range: NSMakeRange(0, mutableStrings[3].length)) mutableStrings[i].addAttribute(NSAttributedString.Key.strikethroughStyle, value: 2, range: NSMakeRange(0, mutableStrings[i].length))
}
} }
cell.group.attributedText = mutableStrings[0] cell.group.attributedText = mutableStrings[0]
@@ -154,6 +155,7 @@ class PlanViewController : UIViewController, UICollectionViewDataSource, UIColle
cell.time.attributedText = mutableStrings[1] cell.time.attributedText = mutableStrings[1]
cell.room.attributedText = mutableStrings[3] cell.room.attributedText = mutableStrings[3]
var courseText = NSMutableAttributedString(string: "")
if image != nil { if image != nil {
let attachment: NSTextAttachment = NSTextAttachment() let attachment: NSTextAttachment = NSTextAttachment()
if indexOfPSA == indexPath.item { if indexOfPSA == indexPath.item {
@@ -172,10 +174,17 @@ class PlanViewController : UIViewController, UICollectionViewDataSource, UIColle
courseImage.addAttribute(NSAttributedString.Key.foregroundColor, value: #colorLiteral(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0), range: NSMakeRange(0, 3)) courseImage.addAttribute(NSAttributedString.Key.foregroundColor, value: #colorLiteral(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0), range: NSMakeRange(0, 3))
} }
cell.course.attributedText = courseImage courseText = courseImage
} else { } else {
cell.course.attributedText = mutableStrings[2] courseText = mutableStrings[2]
} }
if !courseText.isEqual(to: NSAttributedString(string: "")) && !substs[indexPath.item].teacher.isEmpty {
courseText.append(NSAttributedString(string: ""))
courseText.append(mutableStrings[4])
} else if courseText.isEqual(to: NSAttributedString(string: "")) && !substs[indexPath.item].teacher.isEmpty {
courseText.append(mutableStrings[4])
}
cell.course.attributedText = courseText
return cell return cell
} }
+3 -1
View File
@@ -15,13 +15,15 @@ class SubstModel {
var date: String var date: String
var time: String var time: String
var room: String var room: String
var teacher: String
init(group: String, course: String, additional: String, date: String, time: String, room: String) { init(group: String, course: String, additional: String, date: String, time: String, room: String, teacher: String) {
self.group = group self.group = group
self.course = course self.course = course
self.additional = additional self.additional = additional
self.date = date self.date = date
self.time = time self.time = time
self.room = room self.room = room
self.teacher = teacher
} }
} }