Lightning Talks

This video is from Wagtail Space US 2020 in Online.

Lightning Talks
0:47:01
Published August 11, 2020
120 views

Transcript

7,381 words · auto-generated Show

Automatically transcribed, so expect mistakes in names and technical terms.

0:02

Speaker 1: Hey, I'm Tim. It's good to be back, and uh it's time for Lightning Talks, and I think we'll dive right in. Um first up we have Loek Texera.

0:15

Speaker 2: Cool. Um all right, so like everybody I'll start by sharing my screen, which I've never done with Zoom. All right Hopefully everybody sees my brother, Trisna.

0:32

Speaker 3: Yeah, we've got it.

0:34

Speaker 2: Cool Alright, so I want to talk about the internationalization of the white tier admin. Because we've had some talks about doing it for the front end. and also talks about accessibility but language is also another pendant of the accessibility. And so I want to start by showing the white admin, which right now is in English, but unlike your frontend that you will control in your code where you will be able to uh say I support French and English and

1:20

Speaker 2: there will be different mechanisms for people to switch between them but you can control what they uh which language they can use. However, in the admin , it's all built in in Wagtel and you can come to your settings and go to your language preferences and then switch to French and update and the whole interface is in French even though even if you don't have anything supporting it for the front end. So Sorry, so what I want to go with is it it doesn't get translated by itself actually if we go to It's another part, another way you could contribute to work

2:06

Speaker 2: as well if you're not too comfortable with coding. And so if we go to the documentation and to contributing to workell, we are going to have a small section about translation, which is going to take us to Transiflex. So if you click that link, you'll be around well you'll arrive on this one page and you can say help translate Wi-Fi. And then you'll so you have to log in with either GitHub, an email, whatever, and and then you will have to request access, I believe. I can't really remember the the process, but you you'll say I want to translate. French, German, whatever.

2:51

Speaker 2: And then I think on our end we'll have to make uh one little validation. But so you wind up on that uh on that page of Wagter where you can see a list of all the languages which WagTel is available in. But as we can see right now Uh maybe I need to refresh the page. I've done stuff in the meantime. Oh no, all right. I was surprised too, sorry for scrolling a bit fast to not see French in the list of ready to use languages, but that's because I untranslated some uh strings just so I could translate them again for the demo

3:37

Speaker 2: But yeah, so right now we actually only have three languages which are complete. Some of them aren't that far, that is uh probably just because of the 2. 10 release which is about to come and the moderation pipeline adds a lot of new strings, but some of them can really get some love. So once you pick your language, you've been approved, you'll be you'll end up on this one page. And you can see here, it's a bit daunting at first. There's quite a few panels here and there, but it's actually we'll see, pretty simple. Um so we'll have a few modules here which actually reflect If I can move the how do I move the zoom thing?

4:22

Speaker 2: Oh yeah, here you go. Um which reflects the module in YTL. With the exception that if you see here we have Wagter admin. It's actually the old name from the 1. x uh release of Wagtail for compatibility reason the the file still has the same name. But we have admin core docs and if we go over on GitHub we have admin here core document docs have been renamed but um so that that's an easy way for you to um Probably pick a module you're comfortable with. If you know you've worked a lot with docs , you can just jump ahead and start with document

5:07

Speaker 2: documentation translation to get used to it. And obviously I haven't uh said it, but it's it's good if you speak the language you're translating into. Um So right now I I went into the Wibtail admin module and I have that first string which is publish in English. And so we have that two panes, a list of all the strings to translate on the left. On the right I'll have my translation panel and below we have some tabs. If you have a really wide monitor, it will appear on the right-hand side rather than below. But yeah, two to three panels. So here I can then translate. Oops, sorry, wrong keyboards.

5:54

Speaker 2: So here I know we're in the context of a page, so in French it's going to have a But whatever. This is not the point of the talk, sorry. And then I can save my translation. Now it went to green and next release it will be picked up Just on this one interface we can see here we have copy source string which is going to copy everything for you. Right here we have one word, so it's not that interesting but when you have really long sentences that can be interesting to just copy it and then replace a few bits. We have uh revert um when you have made changes. And that one is also quite interesting to add special characters. So probably

6:39

Speaker 2: if you translating a language which has accents, you probably have a way of putting it with your keyboard, but you can otherwise access it here. But there's also some other really interesting ones like the NBSP, the non-breaking space, which some language like French use around punctuations and stuff. So that can it's really handy because that one specifically can be hard to do on a given keyboard. And we'll look at the first tab of the panel below, context Because sometimes you don't really know where that string is going. So if we look here, we can see so we're still in the water admin module and we are in the action menu. py So I can go over to GitHub

7:26

Speaker 2: and this is more for GitHub tips, but I could navigate all the way, but you can also press T, which is the file search on GitHub paste it and I see I have white admin action menu so then I can click on that file and if I come back on the previous Slide that was line 64. So now I can press L to jump to the line, see on the line 64, and I can see it's actually the publish menu item. So if you know a little bit of the uh intricate of work to our you'll uh you'll know that's one of the buttons at the bottom of the page publishing um like the actions you have at the bottom of the page So that's one way to sometimes get a bit more context. After doing translations for the last few releases.

8:14

Speaker 2: There's definitely some pain points like this. Sometimes we really lacking context for languages, like in English, it's just and actually I was getting ahead of myself. I think that's um That's a verb here. But French will have notion of genders for nouns that English doesn't have and sometimes we're really liking that context um of knowing what is being published which would influence um how you write things. So um I've started a list of those things and I'll try to work with the core team to see how we can make this easier but um yeah it's still there's still ways for you to get more context. So if we continue here we have a slightly more complicated

9:00

Speaker 2: uh Translation string. We have a label here. You can see that percent label S and one is just because that's the first one in that string, the first uh tag basically It's going to be to come and be replaced at runtime when the page is generated with whatever label we're talking about. And here I can just simply click on it and it will pop into my below. But what's great when it's used like this is maybe in French it's not the case here, but it could come last. So you can rearrange things as you want. And also , if I don't do it, if I don't add it and save my translation, I'll have an error saying that some labels are missing.

9:52

Speaker 2: So I can fix this and save my translation and the error went away. Sorry, there's a little the underline here and the number on the side has nothing to do with trends effects. It's uh I have the language tool. plugin which helps with spelling and stuff so the next extra help with the translation. So again if we continue here we have a different type of label which is a Um that 's one of the pain points I was talking before and I might want I want to discuss with the core team. I can't click on this one. I might still have a warning if it's not uh in there, but more the the warning is not specifically about

10:42

Speaker 2: Oh all right, here you go. Oh no, here, okay. I guess they changed it. Before it would just tell me it's missing the brackets, but not specifically number zero. But yeah, I can't click on this one. It's uh Um uh yeah, it's not as useful as the previous one. And since I'm here, uh Don't want to type the thing again, I'll show you also there's a history tab. So I could come back here and see that there was one previous translation which I can there's the same copy icon use this and save my change and revert back so yeah you're not losing anything when you're just trying things Alright, if we continue here we have another special type. You can see here we have a one

11:27

Speaker 2: and other. That's a uh sentence which is going to be passed in number and when the number is one will be in that case when the number is more than one or other we'll be in that second case. So I was saying earlier there's not much the distinction between gender, but we can have the distinction for uh count, number. Um

11:51

Speaker 1: got about 30 seconds left, my friend.

11:54

Speaker 2: So you have to feel both uh before uh to s to be able to save. Likewise here we have tags like A tags. So again you can click on them to put them on your string. Uh what do I have here? Um I was about to we have comments, so you can comment here and discuss between with each other. And lastly, I'll finish on this. You have suggestion as well as your site grows, or as the translation is filled in, you'll have translation from all the strings which might help you to translate. And likewise you can save glossary items. So when you decide on a specific translation for a word, here we've discussed it on Slack. you can define it.

12:41

Speaker 2: So after that, every time you have the word you can say it's underlined here. So then you can click and you get automatically the translation that you had already decided previously And here is a full view of the glossary. And yeah, you can see you have the redirect as a noun, redirect as a verb, which does not translate to the same thing in French. So yeah, that's also a very helpful tool to make sure you have consistency across translation. All right.

13:13

Speaker 1: Thank you very much. All right. Next up we have Nick Pereira.

13:25

Speaker 4: Hello. Can you see my screen?

13:27

Speaker 1: Absolutely. You have till 321 or so, Nick.

13:32

Speaker 4: Okay, cool. Um hi, my name is Nick Bereda. I'm a software engineer at BeWell Connected Health. Um BeWell Connected Health is a company that wants to um Get a lot of uh basically um fragmented information from the healthcare space. and present it in a way that is coherent and easy to manage for our users. One of those um One of those things that we're uh going to be doing is sending a lot a lot of like targeted articles for our um our our

14:17

Speaker 4: users, like for example, um on monitoring your blood pressure for someone that has um high blood pressure, right? Um And things like that. And the one of the big problems that we had well that B Well had is that they didn't have a good way to manage their content, right? When I started there a couple months ago, the way they were managing their content was through a Google spreadsheet. So as you can tell, that can that is uh that can be very error prone uh from copy errors and things like that. Um and they wanted to uh have a better solution, right?

15:02

Speaker 4: Uh but The approach was a little um I guess not not over not really well Taken because they told the content editor, hey, what do you want to be your content management system? Right. And They only looked at it from the perspective perspective of content. I saw what was happening and I basically wanted to share my experience too. let anyone know if anyone's had to face something like this. Essentially how to make a very compelling argument. To your company.

15:50

Speaker 4: So I looked at the problem and I uh considered it from a bunch of different perspectives. I saw the content editor perspective, I saw the developers perspective, and I saw the business perspective. My experience with Wagtail before I was working at BeWell was with a travel e-commerce website for the past four years. And um and I I learned a lot about basically Wagtail CMS and I was able to convey um This with a proof of concept. I made a proof of concept with Wagtail and I made a proof of concept with another uh vendor that they were considering, which was a cloud CMS. And

16:35

Speaker 4: um I looked at the requirements from the content team. The user of this application was going to be the content editors, right? We already had a really big content library. So Wagtail has the ability to import all of that. These are all basically the requirements that they presented. And then I also took at the engineering requirements. We needed it to fit within all of our current stacks. We run Python, Django stack. We want it to be scalable, customizable, basically a lot of the things that Wagtail provides, right? And so I was able to present this to my engineering team, my content editor team, and

17:21

Speaker 4: the business team. And I mean uh like I think if you can approach it from all these different angles and not give the responsibility on just one angle because The content editor was like, okay, I really don't know much about what needs to happen. Um and it she was kind of basically given this responsibility without really knowing anything about content management systems. And so I guess my point is it's really a team effort, you know. Um And I I just wanted to I guess mention well Wagtail is a really exceptional choice. So I appreciate the creators and the contributors of the project.

18:08

Speaker 4: So thank you. And and then also I did a demo. This is where I did the demo. These slides I'm showing are basically just a shortened version of what I talked to at my company. But uh Tom was actually interested. and uh and and how I presented this and talked about this. So I was like, okay, I'll do a short little lightning talk. I can show really quick. This is uh the um the landing page the that I did. Um but what I did was I got their current content creation thing and this is for example a uh an uh a challenge we call them challenges right um and I saw everything that they had in their current templates and I basically turned them to content blocks as you guys are familiar with.

18:58

Speaker 4: And I showed the content editor there that they can rearrange this however they want with the stream fields And everyone loves it. They love the customization. I made I put the little logo here for them and I changed the colors. The colors were a little difficult to do, like these buttons are not very consistent. I still got to look at that. But that is my my experience with suggesting Wagtail at my company. And then my last slide is a plug for Bewell that we're hiring. So if anyone is interested in working at a healthcare um uh systems company and um We are based in Maryland in Austin, but we are all remote right now, obviously, because of COVID, and we're hiring all these people.

19:46

Speaker 4: So that's my presentation. Thank you.

19:50

Speaker 1: Awesome. Thanks so much, Nick. That was fantastic.

19:54

Speaker 4: Does anyone have any questions?

19:57

Speaker 1: Will these positions be remote forever and ever?

20:01

Speaker 4: Hmm. Well, we don't have an office. We actually got rid of our office, so for the foreseeable future.

20:07

Speaker 1: Nice.

20:09

Speaker 4: Yeah. Uh we're in Baltimore and our engineering is mainly in Austin.

20:15

Speaker 1: Cool. Thank you. Next up, we have uh someone reached out to me who was like, is it okay to do something off topic and mentioned it to me? And it sounded more awesome than anything else I'd ever heard about. uh since COVID started. So without further ado, here's Struther Scott.

20:33

Speaker 5: How are you all? Can you hear me okay?

20:37

Speaker 1: Can you turn up a little bit?

20:39

Speaker 3: It's a bit quiet, Struther.

20:40

Speaker 5: Why don't I turn that up? Can you hear me now?

20:46

Speaker 6: It sounds like it's all a little bit.

20:48

Speaker 5: Built in microphone.

20:51

Speaker 6: Is your microphone uh uh blocked by chance or is there something

20:55

Speaker 5: MacLa MacBook Air?

20:58

Speaker 6: Is it blocked by another item by chance or

21:02

Speaker 5: No idea. Can you hear me at all?

21:05

Speaker 1: We can hear you. You're just quiet.

21:07

Speaker 3: We'll we'll just turn up the volume.

21:10

Speaker 5: It's not really key that I um talk after this thing. Share screen. Share screen. Share

21:27

Speaker 6: No, I can't hear you at all. I don't know about everybody else.

21:31

Speaker 5: Can you hear me now? That's I'm a I'm a can you hear me at all?

21:35

Speaker 1: Yeah, we can hear you. We can hear you just a little bit, but uh we can turn it up when we make the video, I think. So if everybody

21:42

Speaker 5: 's I'll talk. You know how to do it? You don't have to I I know I'm a retired banker. I've been doing wagtail on two websites for four years. I'm not a c programmer. I've got a coda that helps me I got on Upwork. We live on a farm at In Goochin, Virginia, near Richmond, and I've become a beekeeper the last six years. I've got honey bees. And this is an example of a field I have uh where um I'm growing Clemson clover because the main thing that with my bees where we live is trying to get a uh plenty of food for them. So this is what crimson clover looks like up front, up close. This is a this might be Billy who's here with me now. This this is a honeybee have

22:23

Speaker 3: brother we're not seeing your screen.

22:25

Speaker 1: Unfortunately your your screen isn't being shared yet. If you look at the bottom, did you hit share screen? It's in if you if you m if you mouse over where the video is, there'll be a green share screen button

22:46

Speaker 5: I've hit that, but desktop is what I'm looking at. So desktop says exclamation point.

22:51

Speaker 1: Hmm.

22:53

Speaker 3: I think yeah, then you have to hit another button that says okay or share screen or something.

23:00

Speaker 5: Open system preferences. Zoom.

23:03

Speaker 3: I think it says share at the bottom right. It's a blue button at the bottom right that says share.

23:07

Speaker 1: I uh are are you're on a Mac running Catalina? I think for the first time he has to give permission for the screen share to be able to go off a Mac.

23:25

Speaker 3: Shall I drop in and do mine while Strother does the re Oh no it's working.

23:30

Speaker 1: Oh there we go. Perfect. Alright, that looks fantastic.

23:37

Speaker 7: Yes, bees. I'm here for the bees.

23:40

Speaker 5: This is my Crimson Clover feel with my dog. This is what Crimson Clover looks like up fr up close. This is a honeybee hive. A typical hive has got ten frames. And here one frame has been pulled out so the guy can look at the bees And this this is interesting because people always ask about the queen. And you see the queen is the guy right here. All the boys and the girl bees have got bands on the back and the queen 's got a long tail And the bottom, just below the middle on the left. So this is my beehives from a distance and these are my flowers I plant in front of the beehives to give them food And this is what the hives look like up close. And so

24:26

Speaker 5: one day the phone rang at my wife's office, my wife's phone, and said a friend had a um got to change A um a friend called to say, I've got a swarm of bees, can you help me out? So this is my I went to visit the bees and this is the uh that's Ken Law. I was gone. This is his backyard. And I'm gonna approach the swarm. Right there The bushes, two feet off the ground, easy to get a box underneath it. And so, um I put my B suit on and I went under the uh hive with the with a I got under the tree with this um

25:12

Speaker 5: hive that's got only five frames and it'll leave room for the bushes to fall down and went to work uh to to position it to to drop the um swarm into the hive. And this is where the queen comes in. How do you know you got the queen? Well the the reason the bees are all tight around that is because their full job in life is to keep the queen happy. And so they're all right there trying to keep her warm. And so this is cutting away the bushes to drop it in. And now I'm starting to drop them in a little bit And this is my wife's video. Some of them are already down in there. Some of them are already down in there, it says. Awesome So here's the I've cut more branches away and I've got most of them in the box.

26:01

Speaker 5: Still getting in the box. And now I'm finished. And so now there's the hot there's I put some frames in to make it tighter. And I'm gonna put a top on it and clamp it up together so now the bees are trapped and they can't go away. And so there I am taking the bees back to my farm to put it on the beehives. And and that there they are. The one in the middle is this is the swarm, the single one. And I've got two more to show you. This is a this is a month later in May, a bunch of bees came and landed on one of our hives, and and and that's another swarm. It's not my bees And the guy that helps me, I took a box and and and brushed them off into the box.

26:50

Speaker 5: I think this is a video. That's a video. So here he is collecting the bees. And they're doing better. Billy points I I should say that swarms are very docile, whereas hives they get mad at you, but these bees are desperate for help and so they don't they don't want to try to swing you off Dropping the bees in the box and putting and putting the top on it.

27:36

Speaker 5: And my and there are the bees in the box. One frame worth of these. And we had to feed them after that, so we put some honey on the frames to make them something to eat because they were in a new territory, didn't know where the flowers were. And this is my final video Um this is in Massachusetts. My son's girlfriend's father is a beekeeper. This is his collecting a swarm in his house The swarm is up in the tree. You can see it hanging six feet above his head and he's already on an eight-foot ladder. His friend has got a rope down there

28:16

Speaker 8: How to recapture a swarm.

28:23

Speaker 5: So guess what happens?

28:30

Speaker 8: Is he gonna shake it or cut it? Oh my Oh my god. Alright. I don't think I want to be near those bees.

28:41

Speaker 5: That concludes not talk.

28:45

Speaker 1: Nice, that was fantastic. Thanks, Strother.

28:52

Speaker 6: I was I was scared the whole time, but it was really cool. I'm glad that I'm behind a screen and not there.

28:57

Speaker 1: Better you than me.

29:01

Speaker 3: Thank you, Strong. That was amazing.

29:04

Speaker 1: All right. Next up we have uh a newcomer to our community, I believe uh Tom Dyson.

29:14

Speaker 3: Yeah, it runs. Right. I'm glad that Strather went uh off Wagtail for that topic because my my lightning talk is also not nothing to do with Wagtail. It's the the title is Micro Adventures and this person on the screen is called Alastair Humphreys. He's a British guy and he's an explorer and he's done Some amazing trips, he's cycled around the world. Uh you can read about him like road across the Atlantic, all the all the crazy things you could do. And he gives talks to people about exploring and he said one of the questions he gets most frequently is uh It's not really a question, it's a an observation people say, uh

30:00

Speaker 3: what you do is so amazing, but I just I just wish I was able to do that if I didn't have a job or a family or having to pay a mortgage. And um and he heard this so many times that he read a book called Micro Adventures. And the idea is that you can still have adventures, but um they don't have to be like changing your life and uh taking two years off to to walk across the Sahara. There are things that you can do like locally to you in a short amount of time. And uh And uh I I bought this book and I've been feeling a bit inspired by it. So I I I carried out my first micro adventure before coming to Wagtail Space. So I live in Oxfordshire in in kind of uh centre of England and my parents live in East Sussex, which is on the on the south coast. And we were coming down anyway because it was my mother's birthday

30:45

Speaker 3: and uh and I thought I could cycle. Um so I used an app called Commute. This shows the route. Uh it's about 230 kilometers. At the towards the bottom of the screen you can see the the elevation profile so this shows the hills and uh this one here is something called Christmas Common which is quite a famous steep hill and then here we have the North Downs which is a big area of land that goes uh just south of London around here. So I so I made my route and I have a new bike which I'm really in love with. Two of the things I like about it, it's it's it's made of steel, which is makes makes it quite heavy, but it's also uh it's steel is is has a bit of a kind of flex, this mythical flex. And also the it has um

31:31

Speaker 3: it allows wider not the steel but the the design of the bike means it supports uh wider wheels than usual. So you can uh you can take it some places that that you might normally take a normal road bike. So I've loaded it up. And uh side on my right and the app I showed is something called commute, it's a bit like Google Maps but for for cyclists and and runners and walkers And um I I set the touring option, but Kamut gave me some pretty gnarly routes. And this is the starter one. I was a bit surprised when I found that I had to go through this field. And the field then turned into this, which is uh I looked up later on the map's called Stony Lane. And I think Kamut probably just it uses this uh like uh old data and uh this probably was a Roman road two thousand years ago and it's still marked on the maps, but uh I don't think anyone has walked down this. for years, let alone cycled

32:17

Speaker 3: down it. So anyway, by the time I got here I it was too late to turn around, so I just had to keep pushing on. And pretty soon I had a puncture, uh, which I managed to fix. That was okay. And it was a long day, but uh the exciting bit happened really at the end. So I did this across two days. And uh after the end of the first day, I was halfway and I was at that second peak I showed, the the north downs. And um and that's where I spent the night. And uh something that Alastair Humphreys talks a lot about is this idea of um uh just kind of sleeping out and uh uh this the what you can see just on the other side of my bike is a is a bivy bag. I don't know if that's that word is also used in in uh elsewhere around the world but it's just like a uh a thin waterproof covering for your for your sleeping bag And uh

33:02

Speaker 3: it's obviously very lightweight to travel and it means you can you can camp very quickly. It's actually not it's not strictly legal just to camp in a field anywhere in England. You can in Scotland but not in England. But generally people would say that if you if you arrive after dark and you leave before light and no one sees you and you you know you don't leave anything behind of course. then uh then you should be okay. So so I I lay down and uh I did feel a bit nervous, like, you know, maybe there'd be badges or uh deer or something snuffling around and there was definitely a lot of snuffling at night time, but I s I slept pretty well. That was me just before I went to bed. But the best thing was in the morning and the South Downs and I I got up at 5. 30 And uh has this incredible view. This is zoomed in a bit, but this is over the the skyscrapers of London, so

33:50

Speaker 3: from a big distance. And uh I carried on cycling and you know you had this especially early in the morning, this magical experience of these high up roads with no traffic, no people at all, just a lot of animals around. And uh this is a photo from near the end. So um nothing , no more kind of mishaps or anything, but I think the thing that struck me about it and that um I feel uh like validates this concept of microadventures is that uh it's how surpr how surprisingly easy it is to go from thinking about cache invalidation and the benefits of static site generation over server-side rendering to suddenly like just worrying about movement and food and sleep. And uh

34:36

Speaker 3: I found it a very refreshing experience and uh I mean yeah because of various commitments I'm not gonna be able to do it that often, but uh I really like the idea and uh I recommend it. That's me.

34:49

Speaker 1: Thanks, Tom I know there are quite a few cycling enthusiasts in our community. I I'm not at the level of our of our next speaker when it comes to cycling enthusiasm, but I put uh quite a few miles on mine every year. So that's a good lead-in for our, I believe, final lightning talk of the day, which is my friend and colleague and fellow cyclist Ryan Sullivan.

35:19

Speaker 5: Hey. So thank you. So one quick question before I begin. I noticed that your bike, the the pedal's in the right position, the valve stems are lined up with the logos on the tires. This is bike vault material. I was wondering if you uploaded this to the GCN bike vault.

35:39

Speaker 3: I d I didn't. No, no. Please.

35:44

Speaker 5: In case anybody's wondering what we're talking about, there's a British cycling show on YouTube where they judge people's pictures of their bikes. It's actually pretty fun if you're into that sort of thing. I'm going last, so I figure I can uh add add dub a little bit. This is actually going to be pretty quick. Um okay, let's see here. Let's start out with It is I think everybody here is familiar with the idea that um Wagtail has a forms element built into it and uh a forms um sort of functionality built into it. And that's pretty neat, um, but it it lacks a little bit of functionality

36:31

Speaker 5: and sort of letting you freeform create uh forms and save their contents. And this is a cool little package that somebody created. And one of the contributors is actually uh this guy, it looks like. Um Can you guys see my screen?

36:52

Speaker 3: Yeah, we got it.

36:53

Speaker 1: Yeah, we're all good.

36:54

Speaker 5: Okay, good. Sorry, I'm not getting uh visual feedback on that. Great. Um and so I installed this and I tried using it and I thought this is great. And just I'll give you a quick walkthrough of what it does. So when you're on your Wagtail site, you can go to the stream form section and then it'll let you create a form. And so you do that by clicking add form. I'm going to go ahead and open up this one I've already created. And um I'm sorry, this is running uh really slow right now. Just have to forgive that. I've got most of this, most of my tabs preloaded, so you won't have to wait. I didn't preload this one. Almost there.

37:40

Speaker 5: Anyhow, what you're going to see is that you can create a form, and that form is um That form is an instance of a Django model, and it holds a list of fields that should be shown on the page so that you can um fill out the form fields on the page. So this is taking too long, I'm going to move on. So anyhow, I've created three pages, and these three pages have three different sort of types of of using Wagtel stream forms. This this um package is called Wagtail Stream Forms. I'm just going to make sure that my server is running because if that's the reason this is failing, that's not good. Yeah, it's running

38:25

Speaker 5: All right. Um so anyhow, this is what it would look like if you were to If you were to use the base uh ITEL stream form, um what happens is you you um here we go. This is what it looks like when you are setting up a form. So you put in a title, slug, you decide what template you want to use. I'm just using the default template here. some success fail messages. And then the cool thing is you put in you can choose fields. And you're just using stream fields to generate fields. So I have some radio buttons here that I want to select from with options A, B, and C And when you see that

39:10

Speaker 5: rendered, it looks like this. Here's a field, and here's an option that you can choose. And if you submit this, ideally it will save this submission to the database And that's pretty cool. So you can generate these forms using Wagtail stream fields, you know, pretty much on the fly. Um in and of itself, that's super neat. But what we at Words want to do is we want to uh be able to generate um I'm not entirely sure what just happened, but it worked, okay? We promise. And we want to be able to generate uh something like 1800 forms, 1800 unique forms with the unique set to the input and then we want to also be able to programmatically generate forms on the fly and do all sorts of interesting things because sort of our bread and butters

39:57

Speaker 5: uh we have a lot of forms and so what we said is We don't really want to go the path of having one of these uh four model instances for every single um form that we create and we don't want to have to go and create the form here and then the the workflow is you create the form here by clicking add form in the upper right and then on a page you go and sorry this page so this is uh an example page where you would go use the form you then go and in the page choose from this drop down the drop down list the form that you've already created. So this is a listing of all of your form instances and you click one and then that's how it renders this form on the page. So just to be just to

40:42

Speaker 5: really drive that home, if I have 1800 forms, I'm going to have 1800 rows on this page, or I'll have some pagination, but still 1800 um instances of of forms and then I will have a drop-down list here of eighteen hundred options And then I'll have to create 1800 pages and for each page choose the correct form option here and then my forms will work. Okay, that totally works, but could we do better? So what we looked at is, well, can we eliminate the concept of the form um model and just put the whole thing inside of a stream field. And we hacked it all together and it turns out the answer is yes. And so this is an example of

41:28

Speaker 5: our hacked up code where we said Instead of creating a the form in the in the form model, we are just choosing the form fields on the fly here. inside of inside of the stream for it's stream field. So like I can just come in here and say, you know what, I want to have a drop-down field. It's going to be called my drop down field. And it'll be required and option A

42:13

Speaker 5: Option B, right? And then if I save this, so before I save it, you can see this was that page before I saved it. I have text filled and some options here. And now when I save this. Tim, how am I doing on time?

42:31

Speaker 1: You have about one minute left.

42:33

Speaker 5: Thank you. So when I save this, if I refresh this page now, you'll see that now I have a couple more options here I have a draw I should have a drop down on this page. Come on, run server. There we go. So now I have this option with options A and B. And the cool thing about this is if I put fill in these fields and I submit this, I'm going through the I'm going through form validate. So this form is actually getting grabbed upon submission and going through the same validation. So all the form elements are being pulled out of the stream forms A bound form is created and validate is run against it.

43:20

Speaker 5: And so if I've used something wrong here, like I think that I said that this checkbox field is required, and I Submit it there, I should get an error message saying, nope, uh how about this one? I think this one is s required. There you go. I get an error message saying nope, this is required field. So this totally works. Where it sort of falls apart for us is that we wanted to do something slightly more complex. And here's an example of slightly more complex. So we have this idea of I won't even go into what all of this does, but our forms have hierarchical form elements where we have more forms within forms.

44:07

Speaker 5: And because of the way that like HTML forms by their nature aren't hierarchical. Stream fields and stream forms are still just black magic to me. And so like this is the sort of we've reached the edge of the ability of me to hack. Right. So

44:24

Speaker 1: by the way, pause right there for a second and you can see in the comment there that it says the value that will be passed to SAS if this option is chosen. So speaking of being on the border of sanity, yes. Yeah.

44:37

Speaker 5: Border of Sanity. So just to give you an idea of um of what we did to make this work, and yes I am using Windows. And no, this isn't a Mac. I'm actually on a Lenovo, but usually I use Windows on a Mac Um what we did is we created um this big fat Stream for stream block, scrolling to the top called Words Form Block. And Words Form Block actually has all of the functionality that you would have found inside of the Um I don't know where I put it. I had it here to show you. But inside of the uh the abstract form

45:22

Speaker 5: that ships with words, uh sorry, with Wagtail stream forms. So we basically pulled all that functionality out of the form, got rid of the form object, and just dumped it all into the stream block, and then did some fancy wiring up of the hooks in order to actually make all of this work That fancy wiring up of the hooks, um basically it's complete hacks over the stream field because once we even figured out stream fields then previewing them was a whole different story because we had to deal with an entirely different model of how the data is represented, which I'm sure there's like an efficient way to do that, but I don't know it. So Yeah, this is where we got and I think this is really cool. I'm ready to get this um

46:07

Speaker 5: I'm I've got two sort of initiatives here, two goals here actually at this point. My first goal is um, I mean, clearly the thing works with the as a as a you know form model less um form builder in Wagtail. And you can put save hooks, like submit hooks. So you can do whatever you want with the data after it's been submitted and validated against the bound form. That totally works and I want to sort of get that back out into the open source community because that code sits here and it's running and it totally works. But then the next step is how do we actually expand upon this a little bit more and handle this hierarchical uh forms and then you know as a second delivery then get that back out into the community because I think that that would be even cooler.

46:56

Speaker 5: So thank you for your time. I'm sorry I went a little long.

Questions this talk answers

How can I help translate Wagtail?

Use the translation link in Wagtail’s contributing documentation to join the project on Transifex. After requesting and receiving access, choose a language and translate its strings; completed translations are picked up in a later release.

Discussed at 2:06

How can I find context for a Wagtail translation string?

Check the string’s Context panel for the module and source file, then locate that file on GitHub to see how the text is used. The surrounding code can clarify what the string refers to when the translation interface alone doesn’t provide enough context.

Discussed at 6:39

How do I handle placeholders in Wagtail translations?

Keep all required placeholders in the translated string, but move them to a different position if the target language needs it. Transifex flags missing placeholders so you can correct the translation.

Discussed at 9:00

How do I translate plural strings in Wagtail?

Translate each plural form required by the language, such as the singular form and the form used for other counts. The plural form is selected based on the number passed into the string.

Discussed at 11:27

How can I keep terminology consistent across Wagtail translations?

Use the Transifex glossary to save agreed translations for terms. Translators can reuse those glossary entries when the terms appear again.

Discussed at 11:54

How do I make a compelling case for Wagtail as a CMS at work?

Build a proof of concept and make the case from the perspectives of content editors, engineering, and the business, rather than leaving the decision to just one group. In the talk, a Wagtail demo showed how existing content could be imported and rearranged with StreamField blocks.

Discussed at 15:50

How do you capture a honeybee swarm?

Place a hive box with frames beneath the swarm, clear branches as needed, and guide or brush the bees into the box. Once most are inside, add the remaining frames and secure the lid; the speaker notes that swarms are generally docile.

Discussed at 24:26

What is a microadventure, and how can I try one?

A microadventure is a short, local adventure that fits around work and other commitments. The speaker’s example was cycling to visit family over two days and sleeping outdoors overnight in a bivy bag.

Discussed at 30:00

Can I build Wagtail forms dynamically with StreamField instead of creating a form model for each one?

Yes. The speaker describes putting form fields directly in a StreamField block, then creating and validating a bound form when the page is submitted; this avoids maintaining a separate form instance for every form. More complex hierarchical forms remained a challenge in their implementation.

Discussed at 40:42

Note: We understand that names change, people change, and bodies change. We respect each individual's journey and privacy. If you have any concerns about a video or need us to remove content, please don't hesitate to contact us. We will handle your request with care and promptly address any issues.

More videos from Wagtail Space US