Johdanto
Text-kenttä on yksi Odoon arjen työkaluista: aina kun kirjoitetaan muistiinpanoja, tuotteen kuvausta tai sisäistä kommenttia tilaukseen, suuri osa käytöstä tapahtuu juuri tässä kenttätyypissä.
Vaikka käyttöliittymässä se näyttää yksinkertaiselta tekstialueelta, kentän tietomalli, ominaisuudet ja miten se linkittyy Odoon ORM:ään vaikuttavat merkittävästi lomakkeiden suunnitteluun, moduulikehitykseen ja Studio-kenttien määrittelyyn.
Tämä opas käy läpi, mitä Text-kenttä tallentaa ja miten se käyttäytyy, esittelee käytännön esimerkkejä liiketoiminnan prosesseista, näyttää teknisiä vaihtoehtoja ja tarjoaa vinkkejä hyviin käytäntöihin sekä varoittaa yleisimmistä virheistä.
Mikä on Text-kenttä Odoossa
Odoon ORM:ssä fields.Text on monirivisen plain-textin tallennustyyppi. Se kartoittuu PostgreSQL:n TEXT-sarakkeeksi ilman ennalta asetettua pituusrajaa — kenttään voi tallentaa yhden lauseen tai useamman kappaleen.
Lomakkeissa se esitetään skaalautuvana textarea-elementtinä, listanäkymissä arvo näkyy lyhennettynä ja hakunäkymissä Text-kenttä tukee tavallisia tekstisuodatuksia samalla tavalla kuin Char-kenttä.
Perusmäärittely Text-kentälle moduulissa on hyvin yksinkertainen ja koostuu kentän nimestä sekä ominaisuuksista, joita määritellään Python-luokassa.
Esimerkiksi mallissa voi olla oma internal_notes-kenttä, joka määritellään fields.Text-tyyppisenä ja jolle asetetaan näytön nimi, käännösasetukset ja kopiointikäyttäytyminen moduulin malliluokassa.
Odoo Studiossa vastaava kenttä kulkee nimellä Multi-Line Text ja Studio luo sille automaattisesti x_studio_-etuliitteen. Koodilla tai API:lla luodessa tekninen nimi määritellään itse.
Ero Char- ja Html-kenttiin
Odoossa on kolme yleistä tekstikenttää, ja oikea valinta riippuu siitä, tarvitsetko yksirivistä tietoa, monirivistä raakatekstiä vai muotoiltua sisältöä.
- Char-kenttä sopii yhden rivin arvoihin kuten nimiin, koodeihin ja tunnisteisiin — siinä voi myös määrittää maksimimerkkimäärän.
- Text-kenttä tarjoaa monirivisen tekstialueen vapaamuotoisille muistiinpanoille ja kuvauksille; se tallentaa raakatekstiä ilman HTML-muotoilua.
- Html-kenttä sisältää WYSIWYG-editorin ja sopii tilanteisiin, joissa tarvitaan lihavointeja, listoja, linkkejä tai muuta muotoilua — se tallentaa HTML-merkintää.
Text-kenttä on näiden väliin jäävä ratkaisu: se antaa enemmän tilaa kuin Char mutta ei tuo mukaan HTML:n monimutkaisuutta, joten useimpiin sisäisiin muistiinpanoihin ja yksinkertaisiin kuvauksiin se on usein paras valinta.
Miten kenttä toimii
Kun lisäät Text-kentän malliin, Odoo huolehtii siitä, että PostgreSQL:ään luodaan vastaava TEXT-sarake moduulin asennuksen tai päivityksen yhteydessä — erillisiä SQL-migraatioita ei yleensä tarvita.
Toisin kuin Char-kentällä, Text-kentällä ei ole size-parametria; sarakkeen ei oleteta rajoittavan merkkimäärää, sillä kenttä on tarkoitettu avoimelle ja mahdollisesti pitkälle sisällölle.
Keskeiset kenttäattribuutit
Tässä ovat Text-kentän tärkeimmät ominaisuudet, joita käytännössä muotoillaan mallissa ja näkymissä.
- translate: Asetuksella translate=True kentän arvo voidaan kääntää kielikohtaisesti — hyödyllinen, kun kentät näkyvät asiakkaalle tai verkkosivuilla usealla kielellä.
- required: Määrittää kentän pakolliseksi sekä käyttöliittymässä että ORM-tasolla — tietuetta ei voi tallentaa ilman arvoa.
- default: Asettaa kentälle oletusarvon uusille tietueille; voi olla staattinen merkkijono tai kutsuttava funktio.
- compute: Mahdollistaa kentän arvon laskemisen Python-metodilla, hyödyllinen automaattisesti luotaville yhteenvedoille tai johtopäätöksille.
- store: Kun compute on käytössä, store=True määrää, tallennetaanko laskettu arvo tietokantaan — tallennettu arvo on haettavissa ja raportoitavissa.
- copy: Ohjaa, kopioidaanko kentän arvo tietueen duplikoimisen yhteydessä; oletuksena True, mutta usein muistiinpanoille kannattaa asettaa copy=False.
- index: Harvemmin käytetty Text-kentille, sillä tavalliselle B-tree-indeksille ei kannata luottaa; hakutarkkuuteen kannattaakin hyödyntää PostgreSQL:n täysitekstihakua tai Odoon valmiita suodattimia.
Miten kenttä näkyy näkymissä
Lomakkeenäkymässä Text näkyy venytettävänä textarea-kenttänä, listassa se katkaistaan sopivaksi sarakkeen leveyteen, ja hakunäkymissä kenttä toimii tekstihakuja tukevana kenttänä kun se on lisätty hakunäkymään.
Toisin kuin Html-kenttä, Text ei lataa WYSIWYG-editoria — käyttäjä kirjoittaa raakatekstiä ja rivinvaihdot tallentuvat sellaisenaan tietokantaan ilman muotoilutyökaluja.
Vuorovaikutus Odoo-ORM:n kanssa
Kehittäjän näkökulmasta Text-kenttien lukeminen ja kirjoittaminen on suoraviivaista: arvo käsitellään suoraan record-objektissa ja ORM hoitaa pysyvyyden. Text-kenttiin ei tehdä automaattista HTML-puhdistusta, joten ne eivät tarjoa samaa XSS-suojaa kuin Html-kentät — tämä ero on hyvä pitää mielessä.
Liiketoiminnan käyttötapaukset
Käyttökohteita eri toimialoilta
Myynti: sisäiset tilausmuistiinpanot
Myyntitilauksilla käytettävät note- tai internal_note-kentät ovat usein Text-tyyppiä. Myyntihenkilöt tallentavat niihin toimitusohjeita, pakkausvaatimuksia tai asiakaskohtaisia toiveita, jotka halutaan näkyviin sisäisesti mutta joita ei tulosteta asiakkaan dokumenteille.
Varasto: tuotteen sisäiset huomautukset
Tuotteen lomakkeella oleva Notes-välilehti sisältää usein Text-kentän, johon varastotiimit kirjaavat käsittelyohjeita, haurauttavaroituksia tai toimittajakohtaisia huomioita — nämä pysyvät piilossa ulkoisilta asiakkailta.
Osto: toimittajan ehdot ja toimitusohjeet
Ostotilauksissa oleva teksti antaa ostoprosessille tarkan muistion sovituista ehdoista tai toimitusrajoituksista, jolloin vastaanottava tiimi näkee sovitut seikat suoraan tilaustietueesta eikä vanhoja sähköposteja tarvitse kaivaa esiin.
CRM: tilaisuuksien ja tapaamisten muistiinpanot
Myyntiputken mahdollisuuksiin liitetty Text-kenttä toimii vapaamuotoisena muistiinpanopaikkana tapaamisista, asiakkaan vastaväitteistä tai muista keskustelun yksityiskohdista — näitä tietoja on helppo skannata nopeasti ilman chatterin sopimattomuutta.
HR: työntekijän ja hakijan kommentit
HR-tiimit käyttävät Text-kenttiä haastattelu- ja perehdytysmuistiinpanoihin sekä suoritusarvioihin, sillä ne säilyvät suoraan henkilötietueessa, ovat haettavia ja helposti tulostettavissa osaksi raportteja ilman erillisiä malleja.
Text-kentän luominen ja muokkaaminen
Text-kentän lisäämiseen on kolme yleistä reittiä riippuen siitä, halutaanko tehdä no-code-muutoksia, versionhallittua kehitystä vai skriptattua konfiguraatiota.
Odoo Studio (ei koodia)
Studio on nopea ja turvallinen tapa liiketoiminnan käyttäjille tai konsultille lisätä Text-kenttä ilman kehitystyötä.
- Avaa Odoo Studio päävalikosta (edellyttää Studio-sovellusta).
- Mene lomakkeelle, johon kentän haluat lisätä.
- Vedä Multi-Line Text -kenttä Studio-sivupalkista lomakkeelle.
- Määritä kentän näkyvä nimi, pakollisuus ja mahdollinen oletusarvo kenttäasetuksissa.
- Tallenna ja sulje Studio.
Studio hoitaa kentän luonnin ja näkymän päivittämisen automaattisesti; kentälle tulee x_studio_-etuliite ja se on heti käytettävissä ilman tietokantamuutoksia tai palvelimen uudelleenkäynnistystä.
Pythonilla oman moduulin kautta
Kun haluat versiokontrolloitavan ja ylläpidettävän ratkaisun tuotantoon, kentän määrittely Python-moduulissa on oikea tapa ja normaali Odoo-kehityskäytäntö.
Malliin lisätään fields.Text-määrittely, jossa annetaan tekninen nimi, näyttönimi, käännös- ja kopiointiasetukset sekä mahdolliset muut ominaisuudet.
Kentän lisäämisen jälkeen muista lisätä se myös näkymän XML:ään, jotta se näkyy käyttöliittymässä — Odoo luo tarvittavan tietokantasaraken automaattisesti moduulin asennuksessa tai päivityksessä.
XML-RPC API:n kautta
Jos hallinnoit kenttiä ohjelmallisesti esimerkiksi käyttöönotto- tai konfiguraatioskriptissä, voit luoda Text-kenttiä myös XML-RPC-rajapinnan kautta.
API-kutsu luo ir.model.fields -tietueen, jossa määritellään kentän tekninen nimi, kuvaus, malliviite, ttype='text' sekä muut asetukset kuten translate ja copy.
Parametri ttype: 'text' kertoo Odoolle, että luodaan Text-kenttä. state:'manual' ilmaisee, että kenttä on luotu moduulin ulkopuolella — käytännöllinen tapa hallita Studio- tai API-luotuja kenttiä etähallinnan yhteydessä.
Parhaat käytännöt
1. Käytä Text-kenttää vain kun tarvitaan monirivistä sisältöä
Yleisin virhe on valita Text kentäksi tilanteessa, jossa Char riittäisi. Yksirivinen tieto kuten nimi, koodi tai tunniste kuuluu Char-kenttään; Text tekee lomakkeesta kömpelön ja vääristää tietomallia jos sitä käytetään lyhyisiin arvoihin.
2. Valitse Html kun muotoilu on tarpeen
Jos sisältöön tarvitaan luetteloita, lihavointeja, linkkejä tai muuta muotoilua, Text ei ole oikea valinta — Html-kenttä tarjoaa käyttäjille muokkaustyökalut ja säilyttää muotoilun, kun taas Text poistaa kaiken muotoilun.
3. Ota translate käyttöön asiakas- tai julkiselle sisällölle
Monikielisissä Odoo-ympäristöissä asiakasnäkymissä näkyville Text-kentille kannattaa asettaa translate=True, jotta käännökset pysyvät kielikohtaisina. Sisäisille muistiinpanoille käännösasetusta ei yleensä tarvita.
4. Aseta copy=False muistiinpanoille, joita ei pidä kopioida
Duplikoitaessa tilauksia tai tuotteita Text-kentät kopioituvat oletuksena. Jos kenttä sisältää kontekstikohtaista tietoa, kuten asiakkaan keskustelun yksityiskohdan, copy=False estää vanhojen muistiinpanojen leviämisen uusiin kopioihin.
5. Hyödynnä compute + store=True automaattisiin yhteenvetoihin
Voit laskea Text-kentän arvon dynaamisesti yhdistämällä muita kenttiä ja tallentaa sen tietokantaan store=True-asetuksella. Näin luotu yhteenvedon teksti on haettavissa ja käytettävissä raporteissa ilman raskaita raporttirakenteita.
Yleisiä sudenkuoppia
Valitse Text vain, kun Html ei ole tarpeen
Jos kentän sisältö julkaistaan verkkosivulla tai muotoillaan PDF:ssä, Text-pohjainen ratkaisu vie pois kaiken muotoilun. Käyttäjät, jotka liittävät bullet-listoja tai lihavointeja, yllättyvät kun sisältö katoaa tasaiseksi tekstiksi — arvioi käyttökanava ennen kenttätyypin valintaa.
Textin valitseminen silloin kun Char riittää
Text näkyy lomakkeella suurena tekstialueena; jos kenttään tulee vain lyhyt arvo kuten seurantakoodi, käytä Char-kenttää — se pitää lomakkeen siistinä ja käytettävänä.
Unohtuminen translate-asetuksen kanssa monikielisessä ympäristössä
Jos käyttöliittymässä näkyvä Text-kenttä jätetään ilman translate=True-asetusta monikielisessä ympäristössä, kaikki käyttäjät näkevät saman arvon kieliasetuksesta riippumatta. Vakavampia vaikutuksia on tuotetekstien tai kategoriakuvausten kohdalla, ja korjaus voi vaatia huolellisen migraation.
Text-kentän käyttö rakenteellisen datan tallentamiseen
Jos kenttään tallennetaan JSON:ia, putkierotettua tekstiä tai muuta strukturoiduksi tarkoitettua dataa, ylläpidettävyys kärsii. Rakenne kuuluu omaan malliin tai sopivaan kenttätyyppiin (Selection, Many2one, relation-taulu), jotta suodatus, ryhmittely ja raportointi toimivat luotettavasti.
Kentän unohtaminen hakunäkymästä
Jos tärkeä Text-kenttä ei ole hakunäkymässä, käyttäjät eivät voi suodattaa listaa sen perusteella ja joutuvat selaamaan manuaalisesti. Lisää usein haettavat tekstikentät hakunäkymään suunnitteluvaiheessa.
Yhteenveto
Text-kenttä on eräs Odoon peruselementeistä, joka vaikuttaa vähäpätöiseltä mutta nousee tärkeäksi kun lomakkeiden ja tietomallin suunnitteluun paneudutaan kunnolla.
Oikean kenttätyypin valinta — Char, Text vai Html — on yksi ensimmäisistä ja tärkeimmistä päätöksistä Odoo-projektissa; hyvä valinta säästää aikaa ja ehkäisee tietolaatuongelmia myöhemmin.
Olipa kenttä lisätty Studiolla, määritelty Python-moduulissa tai luotu API:n kautta, tässä oppaassa kuvattu polku auttaa tekemään perustellun päätöksen ja konfiguroimaan kentän oikein käyttötarkoitukseen.
Hyvin toimiva Odoo-tietomalli koostuu pienistä mutta harkituista valinnoista. Kenttätyypin valinta on yksi näistä valinnoista: Text on joustava ja luotettava silloin kun tieto ei sovi tiukasti strukturoituihin kenttiin.
Me Dasololla autamme yrityksiä ottamaan Odoon käyttöön, muokkaamaan ja optimoimaan sitä eri osastoilla. Tarjoamme tukea tietomallin suunnitteluun, kenttä- ja työnkulkujen rakentamiseen sekä koko käyttöönoton läpivientiin. Ota yhteyttä Keskustellaan projektistasi ja katsotaan, miten voimme auttaa.