in app/models/ProjectEntryFilterTerms.scala [27:46]
override def addFilterTerms(f: =>Query[ProjectEntryRow, ProjectEntry, Seq]):Query[ProjectEntryRow, ProjectEntry, Seq] = {
import EntryStatusMapper._
var action = f
if(filename.isDefined){
/* see http://slick.lightbend.com/doc/3.0.0/queries.html#joining-and-zipping */
action = for {
(assoc, matchingFiles) <- TableQuery[FileAssociationRow] join TableQuery[FileEntryRow] on (_.fileEntry===_.id) if matchingFiles.filepath like makeWildcard(filename.get)
projectEntryRow <- action.filter(_.id===assoc.projectEntry)
} yield projectEntryRow
}
if(title.isDefined) action = action.filter(_.projectTitle.toLowerCase like makeWildcard(title.get).toLowerCase)
if(vidispineProjectId.isDefined) action = action.filter(_.vidispineProjectId like makeWildcard(vidispineProjectId.get))
if(user.isDefined && user.get!="Everyone") action = action.filter(_.user like makeWildcard(user.get))
if(group.isDefined && group.get!="All") action = action.filter(_.workingGroup===group.get.toInt)
if(showKilled.contains(false)) action = action.filter(_.status=!=EntryStatus.Killed)
if(commissionId.isDefined ) action = action.filter(_.commission===commissionId.get)
if(status.isDefined) action = action.filter(_.status===EntryStatus.withName(status.get))
if(sensitive.isDefined) action = action.filter(_.sensitive === sensitive.get)
action
}