override def addFilterTerms()

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
  }