hello and welcome to all of you here today my name is hendrick and i work at odu as an account manager next to me is marie nice to meet you my name is mary and i work at urdu as a business analyst and i'm also a studio expert today we are here to explain you odu studio in a bit more detail we will be presenting a use case we will also be going through a couple of basic things some tips and tricks and comm mistakes and of course a q a section in the end just
for information if you have any questions at the end of the webinar or during the webinar of course feel free to leave them in the chat so we can answer them later on so first of all what is odoo studio audio studio is a tool created of course by odoo it is created to make smaller and a little bit bigger customizations to the standard package and it is also thus covered by odoo's upgrades services it is most well known for its drag and drop design which makes it easy and fun to use for beginners up
to experts as well money on to that use case now so what will be will we be presenting our viewers today so our use case today is a use case that we also present sometimes to our consultants for them to discover studio as well uh so this use case is quite simple we are an ngo for animals we gather animals that we find wounded in the nature we put them in our center and then we release them when they are healed cool so first of all how will we be creating that first app can you
show the viewers um what we will be doing first yes so uh indeed because we have this new uh reality that is uh that already animals that is not represented yet in the database we need to create a new model to represent these animals we will also create an app to reach this model so here i'm clicking on just the little studio icon to be able to create a new app so creating a new app and creating a new model are uh two different things the app is really the menu entry that allows us to
reach the model right uh and one app can allow us to reach multiple models so it's just it's not one app per model but it's just a menu entry that then we can reach uh some models here i'll just name my uh app animals right like this i'll upload a nice picture for it okay and then i will also find a name for my object so my model it's also going to be animals as you see it's written first object name because we as i said might have multiple objects in the same app from here
thanks to i mean since the v14 we have the option to choose our model's features all right so here i'd like to have a picture for my animals i would also like to be able to keep notes on it and uh last but not least i'd like to have pipeline stages to know if my animal is just has just arrived or is in progress of healing or if the animal is done i mean released all right so i can create my app in my model all right ah feel connection let me try again i'll go
like this picture notes create your app and let's hope that our local area network our uh wi-fi is uh not giving us too much trouble but it seems oh so we're having a bit of uh yeah like quickly again sorry for that animal upload the lion it's good that our viewers see it a second time yeah then you know how to create a model uh okay right and notes create your app let's see are we good to go it seems to be working all right so cool we have this new app created as you can
see here i'm connected directly on the form view of my first object which is the animals so from here i'd like to add also a selection field that allows me to precise which type of animal i am handling so is it a dog is it a cat or is it a crocodile these are the three animals type that we are handling so here a dog cat and crocodile you can see that it's really fast to create this new field like this i will also rename it so that i know i am choosing the type of
animal every time right all right cool so now we have created our first model but i would like to know uh if we can link the veterinarian that will take care of this animal to the model that we have just created can we do that yes so um studio is also very good to create links relationship between models so in this case we can create a relationship between our new newly created model in an existing model which is the very famous contact models right in this case i'm just gonna drag and drop quickly a many
to one here okay so why did i choose a many to one because many animals can be linked to one vet all right so here i'll go and link this model to the contact model which is my target model okay and i will name it vet like this so now i am able to choose for each animal the vet that would will take care of it and on the other side on the contact form i will also create the opposite relationship so here i'll quickly go on the contacts select this okay enter studio again and
drag and drop a one too many so the one too many is the opposite relationship and when you create it you have to select the menu to one that was created just before so you cannot create one too many if there is no money to one existing from here i'll look for a vet my field that i just created and uh it should be working fine like this on this one too many that will name animals i will not have two animals that's fine i will not have to populate anything because it will be automatically
populated based on what i put on the many to one on the other side all right so um we've created the first model but for example i'd like to have a quick overview page of the animal that we're looking at would it be able to uh would studio help us to create for example a custom report that we can even print afterwards yes so it's also possible just before that i'd like to import uh some data quickly so that we can actually create a report that we uh i mean in which we can see the
data so i'll just do it that quickly so while importing i can explain quickly what i'm doing here uh these columns represent the fields that we created in the animals model and uh so yeah it seems to be working fine so we can import like this i chose nice names for my animals as you can see real names let's say like this so now we have our animals um from here so you asked a way to create a quick report a quick pdf to have a quick overview of uh the characteristics of my animals right
so indeed odoo studio also allows us to do that by clicking here on reports then create and there i have three options external internal or blank xl uh will display the logo and the footer of the company of your database which is what we want so i'll just choose this one okay and i can start dragging and dropping the fields that i like so i'll just start with a title which is going to be the animal card right so i'll rename it oops and need more card like this then i can drag and drop let's
say first the photo of the animal so oops it's animal image and i can add the fields that i like so i'll put just down here the name and the name of the vet for example name of the animal and then the name of the vet so you see it's really quick [Music] and then we can print this and put it on the the room of the animal so that we know which animal is taken care of by which veteran what is the what should the animal look like for example all right cool and so
we've created a report as well let's say i want to see when an animal needs to go for a doctor's visit so we want to send them to the veterinarian when or how can we schedule that and can we maybe even automate that action yeah so let's imagine that whenever you receive a new animal you want to leave the animal two days in this center so that it gets used to the place and then you want to make after two days an appointment with the doctor to do this medical analysis okay to know how to
heal the animal because it's two days after you might forget to do that if you don't automate a reminder to uh yet to remember this so we can automate this reminder by just entering studio and creating an automated action right that is gonna be um just so first we need to name the automated action in a clear way i always start with uh the name of the model and then a clear explanation of what i want to do so reminder uh to take medical uh in analysis like this okay so it's going to be based
on creation so at the creation when we receive the animal we want to plan a next activity that's going to be my reminder so to do two days after the creation and it's going to be always assigned to me because i'm the one doing the analysis right so the to-do is going to be medical and not only this needed okay okay so now we can test it quickly because when we create automated actions it's really important to test them right away let it load a little bit photo is now taking the time to set it
up over in the background exactly so here i have it done and i can create a new animal to see if it's going to work so i'll name my animal hendrick for example thank you yeah you're welcome so here i choose a vet and i save and i see that i have my medical analysis that is automatically planned for in two days all right that's really cool um so we've created a model uh we've created custom report and we've shown the viewers how to create an automated action but before you go and dive into other
studio yourself in more detail let's maybe jump into a couple of common mistakes that we have encountered with studio when we're also giving support to our partners and our customers um first of all what are the things that we need to be cautious of when we used to do are there any downfalls that we have to take care of that we have to take into account yeah so um actually when we discover studio and we discover what it can do so uh we feel like uh we want to use studio all the time right but
the common mistake people do the most common one is that they start forgetting about the odoo standard that is already very amazing right so it's really important when you start implementing something to explore the odoo standard before you actually customize the database so this is a really common mistake i can show you for example um this use case in which let's say that we want to have the phone of the vet displayed on the animal forum right because we want to be able to call the vet quite quickly so we need to have this phone
displayed [Music] let it load oops here i am so if we don't explore the standard we would just enter studio because we love studio we drag and drop this chart field and uh in the field we can write down the phone after that right yeah so it means that every time we will create a new animal we will have to write down the phone and it's going to be a bit time consuming and so on so that is actually a mistake why because if you explore the odoo standard here for example you'll see that the
contacts they already have a phone configured right if you don't see the field that you're looking for here on the forum or on the list view or anything you can also explore the existing fields by clicking here on the little bug and then view fields from here you can start typing the field that you're looking for if you don't know the name just try okay and there i see that i have a phone field that i i'm already able to use in standard so i shouldn't create another one from scratch the right way to go
indeed here would be not to create this one from zero but actually to create a related field that will allow us to uh use our standard phone from the vet right so i just take the vet here all right click on delete i think we need to ask fabian to update our internet connection here i guess um come on i'll try again so just related like this then vet if it's not blocking us this time i think our viewers must cross their fingers yeah everything everybody's stressing behind the screen now that's anyways you understand what
i mean so the good way to go would have been to create this related field to display the phone of the vet directly on uh the animal forum right yeah cool i think the connection is just giving us difficulties uh because we want to create something that's already available in odoo that's exactly it but let's say i have made a mistake when creating a field so i've made a mistake what would be the proper way to correct or even delete the field that i've created with studio so the first reflex people have when they want
to delete something that they created with studio is that they just click on it they click on field that's what you're referring to yeah they click on the field and then they click on remove from view so i'll just try to show um how they can do that [Music] like this yeah see the connection there was interrupted all right so we have it again great so the the first thing they do is actually they click on the field and they remove from view and they decide it's already enough but actually removing a field from view
doesn't delete the field from the database so it's also important when you remove a field from the view to go to the fields list in the database like this just by clicking by typing fields the right way to go is settings technical database structure and fields and from here you search for the field that you'd like to delete so x studio is the way you name i mean your fields are named when you create them with a studio so they all start with this and when you type here you will see all the physio created
with studio and you find your your field that you'd like to delete action delete this way the field is really gone from the database all right you will only be able to delete a field from this list if the field is not visible anymore in any view so it's really good to remove from you first and then come here all right that's a very good tip but i just saw all these names uh in there do i need to remember these forever do i need to remember what i call that field or is there some
sort of technical name behind it as well yeah so um actually when you create a field uh the field has uh i mean gets a technical name and a label so um another common mistake uh that happens when you create a field is that people don't rename the fields let's say for example i like it i would like to have a text field to put some other notes okay i'm happy with this one i leave the studio okay and now if i check the technical name of this field it's quite ugly right we don't understand
uh this technical name as human we don't know why this field was created for and so on so that's why it's really important when you drag and drop fields when you create fields with studio to actually rename the label all right so that the technical name is also renamed if you like the label already you don't want to rename it you have the option when it's the creation mode to only rename the technical name technical names are important because when you check for example the view so i'm not going to go too much into details
about what is viewed don't hesitate to take contact with us if you want to know more about this but so when you go to this view that describes what we see this is not understandable so do uses the technical names but i as a human don't know what it is about so it's it's why it's really important to uh to rename your fields all right cool and i saw something before with related fields as well so we tried to create one but i've also seen the option between read only and not read only could you
elaborate a bit on that yes so um indeed when we create related fields so fields that display information from another model these related fields they are by default read-only so let's for example um take this use case in which i'd like to display on top of the phone of the vet i'd like to display also the notes that are written on the vet's forum because i need to know for example if we can pay by card or if the vet is good with cats or dogs or something like this but let's say that on top
of the notes i would also like to be able to modify on the animal forms only uh the notes that are were displayed from the from the vet forum so in this case the first reflex would be to create a related field again let's hope udu lets us this time so that notes here we have it good so here we have our related field i will rename it and now i want to be able to modify this related field by default related fields they are read-only as we said because they display information that can be
edited somewhere else but if i want to be able to change the information here the first reflex would be to remove the read-only condition so if i click here audio's not gonna let me because actually it's not a good idea to do that but i could still try to force it by clicking on the con i mean creating condition that says that this field should be read only when the id equals a so that's an impossible condition because the ids are always numbers so this is never going to happen so my field is never going
to be read only it's a way to force to remove the read-only condition even though it's not a good idea we'll just discover it why just right now so here i have my uh note field that can be now it is it for example it allows me to put in which room i should bring this specific uh animal right which is something i just want to see on the animal form but not the vet form so i feel like okay it's working super fine i'm really happy but the problem is here now let's say that
you have a colleague that comes and edits the notes from this form view okay let's say has a new degree in dogs let's say like this uh then uh it's gonna because it's a related field it's gonna update the uh value of this field on the animal also so it's not the way the good way to go so let's never remove the read-only condition on related fields the good way to go if we want to make this use case work is to create actually an automated action to copy paste the information from the notes once
when we create the animal and then to keep these two fields independent so i'll just do it quickly here i'll just make sure we have our notes here yeah we have so we will use this notes field x2 notes it's named and i will create an automated action to do that so it's at least good that it's showing loading and not not doing anything else indeed indeed it's good i'll just refresh again i think all right you seem to be having an unstable connection here in this room but yeah that's fine it will work as
it always does i think with all the equipment here might be uh under undercut with the internet subscription let's hope we can get it back up and running yeah there is no internet at this point so let's try it again all right we're back up yes so seems to have a bit of a difficult day today okay um so let's create this automated action we're talking about animals is again the name of the model and then what i wanna say is that um i wanna take the notes from vet okay so what i'm to do
is that i'm going to say on creation for animals that have a vet configured so vet is set all right then i want to update the record and here what i want to do let's hope it's not this is just pausing yeah it's just thinking of what i'm saying yeah yeah like he's trying to assess what you're trying to do let's hopefully then this time we're back up and running a bit quicker because this is all right we have it okay so what i want to do is that i want the notes field of my
animal i'll just make sure it's this one x studio note it's this one um to be equal to the notes field of uh my vet all right so here i'm gonna write down the python expression which is a little bit advanced uh technically speaking but don't hesitate again to to come back to us if you want to be able to do that also in your databases so x record then x studio that and then comment so record is the current record so it's the animal we are looking at then x studio vet is uh the
many to one that we created to target the the contact model and comment is the name of the note field on the vet form all right so from here i'll just save and hope it works um so i'll close and try to create a new animal right i'll just make sure that we have a vet with a comment so i'll take an example here yeah i'm not sure where we configured it before but let's uh try and see if danielle is uh daniel the cat is configured yet yeah i think i think it is it
has danielle the cat that's luckily there are some good pictures to look at in between that's true i realized we have twins right sofia and thomas that's nice yeah apparently yeah apologies once again for uh the rough internet connection today all right so yeah so we're having some some trouble here but uh it has fixed before so yeah it should do this time let's not lose the hope we have yeah could i maybe ask you a question in the meantime um i've seen that uh we received or do you want to continue with this first
or let's try to continue with this one so i have a nickel for it that is a vet so i'll just uh configure it again so let's take uh mary as a new animal i'll put a vet to make sure we trigger the automated action nicole for it i'll save and what i want to see is that yeah we have now the information of the vet just here on this field okay and it's now independent from the field that is on the the vet form all right so this one is not useful anymore and this
one is all right okay cool then on to the question that i've received myself but also that i've seen in with my colleagues um in terms of the domain names what would be our advice in terms of the vein defining the main names for uh with studio yeah so uh domains are used to reduce uh the the amount of records that we can choose when we uh use a many-to-one or relational fields uh in general so here we can take this example in which we are not allowed let's say to work with vets from belgium
because we have no agreement let's say like this so we could create a domain to to avoid choosing vets that have the country belgium configured on the for their form so to do that we could decide to start like this country and say simply that the name of the country should not be belgium is not equal to belgium all right this will work to a certain extent why because here uh it will work so i will just show it works first and then i will show in which case it doesn't so let me make sure
that i didn't configure it wrong so country name isn't equal to belgium that's good so now let's configure that nichol ford actually lives in belgium should be on the main company so i'll just change it here belgium all right in this case i'm expecting not to be able to see the caring vet company when i choose my vet all right so i'll just go back to my animal it seems we have to do a lot of praying today for it to look yes makes the job not easier but [Music] then we all know why we
should invest in a proper internet connection it is really not helping us today all right maybe go through there yes okay maybe to make uh our lives easier i will also delete this uh field maybe it's also this one that uh is making the database slow so i'll just quickly remove it just to be sure just to be sure exactly so it's notes uh i'll go x studio um note it's this one yes action delete hope it lets me yes good okay so what we wanted to make sure is that now we cannot see this
company that is carrying that corporation so i will just remove it from here and search for it again okay that does it save to the the domain now just double check i'll double check that the domain is fine and the domain is not saved okay i'll put it back so country name is not bell jim belgium is good right yeah seems about right all right now we do the test carrying so i can't see i can't choose my vet anymore because it is in belgium now let's say that you have multiple users in your database
because your company is growing growing and one of your users um they don't speak english they speak french for example so you will change for this user uh the language so i'll just do it quickly for me all right i'm wondering what you will change it on to french what a surprise yes so from here we can expect belgium to be not named belgium anymore in the baseball but belgique right and for that reason uh our filter will not work anymore so here if i search for carrying that corporation it shows again which is not
what we want right so i'll just switch back to english to make our lives easier and then i will explain what we should do with this domain now our viewers have also seen how quick it is to change languages indeed that's good to see indeed um so here the good way to go is not to define the domain based on the name of the country but based on the id of the country so to do that i just go to the country model and from here i search for for belgium all right there i want
to find the id of the country what is the id it's a way to i mean it's a data that we put on each record of each model that allows us to identify this specific record all right so it's unique per record per model so to find the id of the country i just click on the bug and then view metadata and the internal id of this country is 20 so i'm just going to base my filter my domain on this here i'll go back to my forum view and change the domain so here it's
not going to be country name is not belgium it's going to be country is not 20 all right and from here this domain is going to work for any language and it's also going to work for example if belgium changes name let's say it's called belgian federation or something that is still you don't know here you never know surprises right so yeah now the domain's gonna work all right cool and then maybe one last common mistake that we have seen or that you could maybe explain to our viewers is having standard views but also having
inherited views indeed um so when you customize with studio when you drag and drop fields and so on it creates an inherited view and that inherited view is just let's say plugged into standard views to have it together and see the standard or do plus what you customized right so if you're good with code if you like coding and so on you might already have explored a little bit odo and found out that we have these views displayed here so this is just an explanation in a code of what you see on this side all
right so this is a standard view so uh that shows the standard fields of odoo if you don't respect let's say uh the studio and you just go through um the standard views you could decide to just remove here a field because you don't want to have it for example so let's say you're not interested in the mobile field because uh this field is um you feel it's doubled with a phone you just have one phone number per contact it might be then you want to remove it from here to have not too much information
in the same in the same view the problem so let's just do it before if you do that it seems that it will work so it will work fine here we don't see the mobile field anymore but um when you will upgrade from one version to another odo will push again the standard views in your database so you will lose the changes that you did first and second it might be that odoo pushes other parts of the code that are related to this standard view and so it creates tracebacks and errors in your database because
you touch to the standard view so instead of touching the standard views it's really better to use the studio to create inherited views and have it clean all right cool thanks for explaining that to us of course if you have any more questions we'll be going into the q a uh right before um but are if you are interested in speaking to experts or getting advice from experts like marie we have many others in our consultants team i suggest to reach out to your your account manager and to discuss the proposals for our partner packs
which means that you can make use and get help with your projects in order to make a bigger success for your customer so let's jump into the q a and let's see if we can find any questions on the right side there marie um so i see a question from bill thank you for that how do the animal images display if they're given google drive links yeah so that's a technique we use so we can import images i think you understand what i do you understood what i did here while i imported images i chose
links from the internet that were hosting these images in this case it's these are google drives links but um this part of the google drive is public that's why i could simply import it in my database okay cool um i'll see another question there from billy can i use audio studio to create a customized customized sorry app so yeah you can use audio studio to create a customized app as we did just right now so i see you make a reference to create read and delete and update all right so we can use studio also
to manage the access rights we didn't cover that today but don't hesitate to come back to us if you have precise questions about this okay cool and then i see a question from tim if i create custom fields for contacts is it assured that these fields will be available after major updates or do i risk that custom fields might be gone so when you do an update with i mean when you uh customize your database with studio these customizations are taken care of when we upgrade from one version to another so you shouldn't uh be
worried about that it's gonna be taken from uh your version to the next version all right cool so for example when people are following the audio experience uh in the beginning of october uh this year uh they can of course see all the new features of audio version 15 and then our upgrade service will cover that for them exactly all right cool then i see one more question there as well uh which reads can the search search in all the vid sorry i'll start over can the search uh like after dragging the related field search
in all the available models um in this case you have to select the fed first and then you can search like the phone number yeah so when you create a related field indeed you don't have options to search in uh every available model the only models that you will see are the models for which we already have a many to one field on the model all right is that clear for example if i am on my animal model and i'm creating a related field i will only be able to select uh the vet model or
some other models for which we already have a many-to-one target targeting the model all right cool let's quickly see if there is another question in there as well um do you see one more will odoo allow the addition of the header and footer fields of an external report every tr every time you try to edit it now you get a message saying you cannot modify this view it's part of the generic layout indeed so it's not possible to modify the header and footer of a report with studio but it's actually possible in you actually don't
need audio studio to do that let me just get out of studio right now and i'll just refresh and i'll just show you quickly here in the settings that's uh really simple you have the option to configure document layout in which you can change the the company logo the layout put a font put a company tag line a footer and so on so this is where you can change the footer and header of your documents all right cool um i see one more question coming in from eve thank you for that eve what's the easiest
way to migrate a studio export to a module with python code um so it really depends on your uh module in this case i guess i'd rather analyze this more in depth with you before i can answer this question okay uh if uh like madison we'll get back to that please uh reach out to us so we can uh reach out to you as well after that um and by that i'll think we'll uh end the webinar or is there any more questions that will we have no it seems not might be a bit of
delay but uh of course we'll be or we are available you can see the email addresses here on the screen we would like to thank you for listening and for your attention of course if there's any questions please feel free to reach out to marie or myself uh contact your account manager get in touch with your consultants through the partner packs or reach out to your account manager for a uh for a quotation for a pac or for more information around that as well once again thank you very much for being here today for uh
watching this odu studio session and we hope to see you next time thank you thank you bye