scala/lift/model.scala
author Tomas Zeman <tzeman@volny.cz>
Wed, 23 May 2018 20:33:08 +0200
changeset 54 21fabe8ab141
parent 3 d45ef9f0c1ae
permissions -rw-r--r--
Imported vim-ledger https://github.com/ledger/vim-ledger @ 6eb3bb2

/*
 * Copyright ...
 */
package example

import net.liftweb.common._
import net.liftweb.mapper._

/**
 * Mixin into mapper
 */
trait Named { self: BaseMapper =>
  object name extends MappedPoliteString[MapperType](
    this.asInstanceOf[MapperType], 40) {

    override def displayName = "Name"

    import net.liftweb.util.Helpers._
    override def toForm = super.toForm map { _ % ("class" -> "text") }
  }
}

object Example extends Example with LongKeyedMetaMapper[Example]
  with LongCRUDify[Example] {

  override def dbTableName = "..."

  override def validation = validateSomething _ :: super.validation

  def validateSomething(v: Example): List[FieldError] = ...

  override def afterSave = ...

  override def fieldOrder = List(...)
  override def fieldsForList = List(...)
}

class Example extends LongKeyedMapper[Example] with IdPK
  with CreatedUpdated with Named with OneToMany[Long, Example] {

  def getSingleton = Example

  object children extends MappedOneToMany[Child](Child, Child.parent)
    with Cascade[Child]

  object stringField extends MappedString(this, 40)

  object longField extends MappedLong(this)

  object textField extends MappedTextarea(this, 4096) {
    override def defaultValue = ""
    override def setFilter = crop _ :: super.setFilter
  }

  override def formFields = List(..)
}

// vim: set ts=2 sw=2 et: