We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

A long time ago in an University far far away in Bologna

00:00

Formal Metadata

Title
A long time ago in an University far far away in Bologna
Title of Series
Number of Parts
44
Author
License
CC Attribution 3.0 Germany:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language
Production PlaceNamur, Belgium

Content Metadata

Subject Area
Genre
Abstract
A travel through time and space in the University of Bologna Galaxy made of 2410 Plone sites. We started our journey with Plone in 2010 on a pilot site, and after that we developed A LOTS of plone sites: for departments, main university website, museums, libraries, events, image repository, generic sites, degree programs, departments again... We are going to show different projects where Plone was used with success, the needed customizations (both BE and FE) and migrations.
Turtle graphicsText editorLevel (video gaming)AuthorizationCuboidRootInstance (computer science)Interface (computing)TesselationElectronic mailing listData managementSource codeField (computer science)Computer fileTable (information)Web pageProjective planeWebsitePlanningPoint (geometry)Human migrationPresentation of a groupClique-widthMereologyProof theoryUsabilityEmailMultiplication signRule of inferenceIterationGraph coloringProgram slicingMappingVideoconferencingImage resolutionOrder (biology)Different (Kate Ryan album)Moment (mathematics)Filter <Stochastik>Digital watermarkingLetterpress printingLibrary catalogDemo (music)Attribute grammarContext awarenessTheory of relativityFunctional (mathematics)Query languageRepository (publishing)TrailPlastikkarteDecision tree learningCentralizer and normalizerContent (media)Latent heatLink (knot theory)Revision controlDimensional analysisHypermediaSheaf (mathematics)Uniform resource locatorTask (computing)Web 2.0Subject indexingStudent's t-testSynchronizationType theoryFile formatForm (programming)Category of beingPower setSquare numberBackupService (economics)Universe (mathematics)Event horizonImage registrationInformation securityProcess (computing)Degree (graph theory)Bookmark (World Wide Web)Speech synthesisView (database)Information privacyState of matterTemplate (C++)Data structureMobile appMedical imagingTerm (mathematics)Computer fontScaling (geometry)CodeComputer configurationPattern languageWeb-DesignerHome pageGraphic designCustomer relationship managementComputer programmingProfil (magazine)Hash functionQueue (abstract data type)INTEGRALPosition operatorGoogle AnalyticsStatisticsCASE <Informatik>Musical ensembleAreaAddress spaceGroup actionPhysical systemProduct (business)SpacetimeRight angleRenewal theoryDynamical systemTouch typingNewsletterStandard deviationPay televisionBitSelectivity (electronic)Integrated development environmentPhysical lawComputer iconVertex (graph theory)SubsetOcean currentDirection (geometry)Orientation (vector space)System administratorWeb browserGUI widgetOperator (mathematics)Directed graphAxiom of choiceCondition numberObject (grammar)Formal languageDescriptive statisticsDisk read-and-write headReal numberStructural loadCountingTraverse (surveying)NumberSoftware maintenanceMaxima and minimaMetadataOptical disc driveDefault (computer science)Point cloudGoodness of fitThumbnailCloningFigurate numberEndliche ModelltheorieSet (mathematics)Wave packetSoftware developerStaff (military)Computer animation
Hill differential equationUniformer RaumPlane (geometry)Goodness of fitWeb-DesignerMultiplication signUniverse (mathematics)Lecture/Conference
Manufacturing execution systemProjective planeCloningSoftware developerWebsiteFigurate numberComputer animation
Web pageView (database)Text editorLecture/Conference
MassRepository (publishing)WebsiteInterface (computing)Object (grammar)Computer animation
Right angleProjective planeWeb pageText editorLecture/ConferenceSource code
WebsiteTesselationData structureDifferent (Kate Ryan album)MultiplicationReal numberCloningProjective planeLatent heatObject (grammar)Multiplication signField (computer science)Formal languageText editorContent (media)Lecture/Conference
Universe (mathematics)WebsiteGraphic designMereology
Computer-generated imageryInformation securityUniverse (mathematics)WebsiteLatent heatGraphic designData storage deviceMultiplication signRule of inferenceProjective plane
Information securityHill differential equationUsabilityText editorProjective planeEvent horizonWebsiteMedical imagingComputer fileWeb pageLecture/Conference
Limit (category theory)Network topologyComputer-generated imageryCuboidContent (media)Medical imagingInstance (computer science)Interface (computing)
Network topologyLevel (video gaming)Text editorRootLatent heatType theoryMedical imagingLecture/Conference
GUI widgetFinitary relationMenu (computing)Data structureNormed vector spaceMusical ensembleForm (programming)EmailLogical constantSoftwarePerformance appraisalConsistencyTask (computing)Internet service providerWhiteboardRankingGenderExplosionObservational studyGroup actionInformationDegree (graph theory)Computer programLatent heatGUI widgetType theoryCustomer relationship managementContent (media)Web pageCuboidComputer fileElectronic mailing listLecture/ConferenceComputer animation
Standard deviationFingerprintTask (computing)Performance appraisalMusical ensembleLogical constantCodeEmailDirectory serviceWhiteboardSoftwareHausdorff dimensionExtension (kinesiology)Term (mathematics)Latent heatStudent's t-testPhysical systemElectronic mailing listField (computer science)Source codeEmailUniverse (mathematics)Universal product codeCuboidComputer animation
Performance appraisalPhysical systemMusical ensembleMenu (computing)Maxima and minimaFingerprintTask (computing)WhiteboardStandard deviationLogical constantData structureComputer wormService (economics)Mixed realityWeb pageTable (information)Link (knot theory)Source codeLecture/Conference
AnalogyMeta elementPrice indexTheory of relativityTable (information)Web pageAttribute grammarContext awarenessFunctional (mathematics)Library catalogQuery language
Projective planeMedical imagingPresentation of a groupTrailText editorVideoconferencingWebsiteCentralizer and normalizerRepository (publishing)Lecture/ConferenceMeeting/Interview
Level (video gaming)Decision tree learningRevision controlImage resolutionOrder (biology)VideoconferencingDifferent (Kate Ryan album)HypermediaField (computer science)Letterpress printingDigital watermarkingMeeting/InterviewLecture/Conference
VideoconferencingMoment (mathematics)VideoconferencingFilter <Stochastik>Sheaf (mathematics)Home pageTrailPresentation of a groupDecision tree learningStudent's t-testLecture/ConferenceMeeting/InterviewComputer animation
Digital watermarkingText editorSelectivity (electronic)Computer animation
MetadataDescriptive statisticsImage resolutionDecision tree learningNumberLink (knot theory)ThumbnailComputer animationLecture/Conference
VideoconferencingNormed vector spaceDigital watermarkingText editorMedical imagingPresentation of a groupSheaf (mathematics)VideoconferencingComputer animation
Arc (geometry)VideoconferencingComputer programComputer wormHypermediaDecision tree learningImage resolutionTerm (mathematics)Condition numberHypermediaComputer animation
Pole (complex analysis)Time zoneComputer-generated imageryComputer fontMaxima and minimaRotationProgrammschleifeThermal expansionScaling (geometry)Computer fileEmailText editorMedical imagingTouch typingPoint (geometry)Digital watermarkingProgrammschleifeProcess (computing)Computer fontDegree (graph theory)Image resolutionCodeComputer animation
IcosahedronComputer-generated imageryFile formatSquare numberBookmark (World Wide Web)Orientation (vector space)Subject indexingFile formatWebsiteBookmark (World Wide Web)Medical imagingLecture/ConferenceSource codeMeeting/Interview
Plane (geometry)Server (computing)Universe (mathematics)WebsiteSoftware maintenanceStaff (military)Information securityEndliche ModelltheorieWave packetService (economics)Text editorLecture/Conference
Plane (geometry)WebsiteTesselationProjective planeData managementProcess (computing)Lecture/Conference
Process (computing)Gamma functionLink (knot theory)Text editorData managementDisk read-and-write headFormal languageEmailMathematicsWebsiteLecture/Conference
Menu (computing)Revision controlHome pageElement (mathematics)MetreEmailLink (knot theory)Text editorWebsitePoint (geometry)Universe (mathematics)Graph coloringXML
Hill differential equationUniform resource locatorComputer-generated imageryWebsiteText editorGraph coloringEmailTesselationType theoryCuboidLecture/ConferenceComputer animationMeeting/Interview
Dynamic random-access memoryMedical imagingTesselationText editorWebsiteStatisticsComputer animationLecture/Conference
Product (business)WebsiteText editorProfil (magazine)Product (business)StatisticsField (computer science)INTEGRALSource code
Hill differential equationDegree (graph theory)WebsiteWeb pageEvent horizonComputer programmingDegree (graph theory)Revision controlWebsiteWeb pageMeeting/InterviewLecture/ConferenceComputer animation
Plane (geometry)World Wide Web ConsortiumText editorPattern languageCentralizer and normalizerWebsiteDegree (graph theory)Computer programmingType theoryDifferent (Kate Ryan album)Latent heat
Form (programming)World Wide Web ConsortiumGamma functionWeb pageUniform resource locatorContent (media)Abelian categoryUser profileComputer programMobile appText editorWebsiteWeb pageComputer configurationLecture/ConferenceComputer animation
Single-precision floating-point formatDegree (graph theory)Template (C++)Web pageWebsiteUniform resource locatorMusical ensembleInformationAbelian categoryMobile appMach's principleFrequencyPlane (geometry)Computer-generated imageryStress (mechanics)Digital photographyWebsiteDegree (graph theory)Content (media)TesselationMedical imagingText editorElectronic mailing list
Computer-generated imageryVideoconferencingWeb pageElement (mathematics)Sheaf (mathematics)FrequencyWorkstation <Musikinstrument>Lemma (mathematics)Asynchronous Transfer ModeCivil engineeringDegree (graph theory)WebsiteWorld Wide Web ConsortiumForm (programming)Abelian categoryStatisticsMobile appTemplate (C++)Content (media)Text editorLink (knot theory)Electronic mailing listWeb pageComputer animation
Degree (graph theory)WebsiteElement (mathematics)Link (knot theory)Sheaf (mathematics)FrequencyCivil engineeringWorkstation <Musikinstrument>Computer-generated imageryService (economics)Directory serviceEmailEntire functionAliasingDigital photographyWebsiteAreaInformationLatent heatContent (media)Web pagePosition operatorComputer fileXML
File formatWebsiteDigital filterHill differential equationContent (media)Task (computing)Queue (abstract data type)Computer animationLecture/Conference
SynchronizationLattice (order)Content (media)Codierung <Programmierung>Web browserElectronic mailing listSynchronizationProcess (computing)Different (Kate Ryan album)View (database)Content (media)Uniform resource locatorOperator (mathematics)Lecture/Conference
Content (media)GUI widgetObject (grammar)Content (media)TesselationWeb pageTemplate (C++)View (database)WebsiteLecture/Conference
Maxima and minimaText editorInformation privacyForm (programming)NewsletterGraphic designRenewal theoryLecture/Conference
Event horizonProjective planeService (economics)Form (programming)Event horizonInformation privacySubsetType theoryPay televisionBitText editorRenewal theoryLecture/Conference
Information privacyEvent horizonEvent horizonVideoconferencingDifferent (Kate Ryan album)EmailSubsetInformation privacyText editorLecture/Conference
Event horizonTunisFrequencyBoom (sailing)Musical ensembleModemPower (physics)System programmingData typeSolid geometryState of matterMeasurementAbstractionPhysical systemLevel (video gaming)Reverse engineeringForm (programming)Type theoryBand matrixMach's principleWechselseitige InformationUniform resource locatorInformation privacyChannel capacityWeb pageCubeComputer-generated imageryVideoconferencingInformationLatin squareImage registrationDemo (music)Web pageEvent horizonForm (programming)TesselationNumberImage registrationInformation privacyVideoconferencingDifferent (Kate Ryan album)System administratorSelectivity (electronic)Type theoryComputer animationSource codeXML
AbstractionLevel (video gaming)FrequencySystem programmingBand matrixShooting methodPhysical systemReverse engineeringDecimalTerm (mathematics)Type theoryDevice driverSoftware developerInformationRobotProcess (computing)CodeOffice suiteIcosahedronGEDCOMForm (programming)Field (computer science)Default (computer science)Set (mathematics)System administratorInformation privacyEmailText editorView (database)XMLComputer animation
Frame problemGamma functionOctahedronEvent horizonPoint (geometry)Touch typingProcess (computing)Library catalogForm (programming)EmailQuery languageComputer animationSource codeXMLLecture/Conference
Infinite conjugacy class propertyAddress spaceText editorMessage passingInformation privacyGroup actionEmailForm (programming)Group actionCountingField (computer science)Text editorWebsitePresentation of a groupSystem administratorWeb 2.0Source codeXMLLecture/ConferenceMeeting/Interview
Structural loadPlanningProduct (business)Point cloudLecture/Conference
Optical disc driveTrailBackupService (economics)Text editorInformation privacyPhysical systemLecture/Conference
Hill differential equationTorusWebsiteContent (media)SpacetimeDigital libraryPower setLibrary catalogMeeting/Interview
Moment of inertiaProjective planePoint (geometry)Lecture/Conference
Turtle graphicsComputer animation
Transcript: English(auto-generated)
far, far away in Bologna presented by Valentina Bolognini and Matteo Parucci. Good afternoon everybody. I am Matteo Parucci and my colleague is Valentina Bolognini. We work at Bologna University as web developers. Today we will talk about some of our war stories from the past.
Can we go more to the microphones? Yes, sure. A long time ago in a university far, far away in Bologna.
I do not know if it rings a bell. Seven members of the residents. That is our team. We are two and a half clone developers and the others are on other projects. We started using clones for the university sites. We launched our first small pilot project.
It was 2010. It was on a clone three dot something. It was hard but we did it. Twelve years later these are some of our figures. We have 29 clone sites and 2,000 clone subsites. We manage 500,000 pages edited by 4,000 editors.
And we receive 59 million visits and 147 page view per year. Let's see some of the planets we explored. The first few will be only mentioned by name because they are not very relevant anymore.
Episode one was the pilot project Scinta d'Albozzi. And it was basically a repository of historical female scientists. Our main objectives were to learn as much as possible
and to decide if it could be the tool that we would have used in the future for the other sites. We used clone three and the search interface was implemented with a slightly customized EEA face navigation.
It was implemented full text search. And it was a simple project but we were able to learn a lot. And we also were able to evaluate that clone. Yes, it was the right tool for us.
One year later, episode two, the department sites, we needed to create very flexible pages that allowed our editors to change the look and feel of the page quite easily. There were no tiles obviously at the time so we had to implement and hack something together.
We had multiple clone sites for different languages because the structure of the contents were not the same on the English and Italian sites. So we made different clone sites per language.
And it was the first time we used custom compiled CSS based on the site object fields. It was our first real world project with specifics and editors to ask things.
Now the graphic design feels quite old but it was redone and it's a spoiler for the following parts of the presentation. Episode three is the university main site.
In 2013 we were ready for a big step so we migrated the main university website in Plone. It was our first project in Plone 4.3 and we used dexterity for the first time. For the team we used diazo with specific rules to make our graphic design.
The previous website was in Microsoft CMS so we used the collective transmogrify to migrate the site. We adopted Oracle with storage that was conformed to university security policy.
It was the first project where we focused our attention on usability for the website editors. It's a really big site with 25,000 pages, 5,000 news and events and 40,000 files and images.
We had lots of editors that needed to work together so we created custom workflow and used Plone Appiterate for the working copy features.
We decided to centralize in a specific folder the resources that are referenced in pages. For resource I mean an atomic content like an image, a file, a link, a contact that can be referenced in a page, in a box like a contact box or a slideshow.
We made folders with marker interface to identify that. For instance we have an image folder with eye image folder interface set to identify them.
These folders are located at all levels of the navigation tree. We can have an image folder at the root level but we can have an image folder in a
specific sub-channel so that editors that access only in a specific sub-channel have their own type specific folder. We created a custom relation widget that consent to add only specific type of resource in the folder.
Now I'll show how it works. This is a custom content type for a page. We add behaviors with a common box like attachment box or contact box.
With the add reference button we open a specific folder with a list of attachment. This is the nearest folder we want to add the page that we are creating now.
We have only file with the name and the size. We choose one of them and the file is added to the specific box. Now in the contact box we made the same thing.
When we use that we automatically see the contacts folder nearest. We have only contacts and we can choose one on the list that we see or we can create a new one.
For example now I create a new contact that is added in the specific folder. Now I use my university code because it's attached with the university data source.
I can add some additional field but it took my data from the data source so the name, the email is already in there. We add the box with my name, we can drag and drop the resource or remove that.
Now the back references. We use backrefs in all the resources in a table after the resource to show all the pages where a specific resource is referenced with the name, link and the status.
We can easily go to see if we can modify or delete the resource. This is the method that we are using to take the backref.
It's really simple, in Plone we need to make a query to the catalogue of the relations with find relation function with the attribute to ID set with the target ID of the page that we can take with helper method get ID
that search the context in the anti-disk catalogue, after them for each relation we return what we need to show in the table. Episode 4, Media Repository.
In this project we needed to create a central repository for site editors to have a common place to take images, videos and presentation from. Also we needed to implement a cart-like workflow to keep track of the image usage.
It isn't a real cart because you don't have to pay obviously and also because it doesn't require an approval. It did in the first version but they received too many requests so they asked us to be automatic.
Also it needed to give different resolutions for video and pictures in order to use for different media. Maybe you want an high resolution picture for the printing or a low resolution picture for the web. The new tools we used, we implemented a custom scaler that added the editorial watermark based on one of the fields of the media.
Also we implemented a two-level faceted filter that allowed the user to better search the needed resources. At the moment it indexed almost 40,000 media.
That's a small video. Here we are in the homepage. You have a picture section where you can search for the most used filters. The video section works more or less the same way and there is the presentation section that is outside of the cart.
It's a direct download. It doesn't need the two track requests. In the picture section, I can filter for subject and I get student pictures.
Maybe I only want horizontal picture because they fit better my layout so I remove the vertical, selecting format, horizontal. After that, maybe I want pictures that were taken outside so I choose environment.
It's only in Italian because our editor is Italian. You have infinite scroll. When you open the picture, you can see the details. This is the editorial watermark that comes from one of the editorial fields. This is the default, University of Bologna.
These are the tags that are in two levels, category, hash, tag. Here you have the description that is helpful for full-text search. The year that is taken from the EXIF metadata automatically. The available sizes, low and high resolution.
The copyright, as I said before, and the link or number of requests that this picture had. I can add it to the cart. I can add other pictures to the cart directly from the thumbnail. As you can see, this other picture has another watermark.
This picture was taken from by Davide Tarsi. Also, it has a request. The editors can link to see the full request with all the pictures that have been requested. This is another image with a different copyright.
For the picture, that's it. The video section works almost the same way. We can filter for a theme, so we are getting only institutional presentation here. Also, we have here infinite scroll. We choose only English presentation.
We can open like we saw before and you can add it to the cart. There is a unique cart for all the media. Now we go to the cart and we want to finalize the request. Before I remove the video, because otherwise I would have to download 100 megabytes. I confirm.
I put a title for the request. The name of my structure, if I want high or low resolution for the pictures. I accept the terms and conditions and I send the request. It gets automatically accepted. The editor receives an email. I can download single images like this or I can download all the images together in a zip file.
And that's it. Our touch point is about dynamic watermarking.
This is the piece of code that does the magic. Basically, it's attached to the scanning process and it selects the font size based on the image resolution. So that has the same proportion on all the images.
After that, it writes on a pill image the editorial text with the font and font size we chosen. It rotates this image by 45 degrees and it loops through the coordinates of the original image.
Repeating the watermark image on it. After that, it returns the modified image. So we have the image with the watermark attached on it. Another thing is the automatic orientation detection.
As I said before, all the tags are saved in the subject, in the index. And they have the category, hash, value, format. For example, year, hash, 2015, format, hash, square, etc.
During the indexing process, we get the image orientation from the ratio. And it can be, as you can see, panoramic if it is very wide. Horizontal, square, vertical, or bookmark if it's very vertical. And basically, that's it. Episode 5.
Episode 5, Sites on Demand. In 2016, we had lots of websites hosted in servers located all around the university department.
So we faced with lots of issues of security and maintainability. We decided to centralize this website and create a service for the people that work in the university. We created the Sites on Demand service that allowed editors to create and manage their home website without training for the editor staff.
We had six types, six models of Sites on Demand. Events, PhDs, Masters, School of Specialization, and the general-purpose website.
We moved from our experience with collective lineage to create this sub-site in Plun. It was our first project with Plun Tile, which created a custom tile manager and a step-by-step wizard to create and configure the website.
This is the creation process of the website. It's really simple to create a new site. The editor goes in an online request form, sets some data about the website, like title, description, URL, and language.
Automatically, a mail is sent to the manager or the head of the department with a link to approve the request.
In the Plun instance, the website is already created in an approving state, waiting for the approval of the manager. It's only a link the manager needs to click, and the workflow changes because there is a token and you don't need to log in to Plun to make that.
After the approval, an email is sent to the editor with another link with a wizard step-by-step.
This is the wizard, only three points. In the first step, you need to insert the title that will become the header of the website. It's really simple. After that, you need to set the colors. We have a palette of three colors and a preview.
After that, we set the other website editor. We are attached to the university lead-up. Okay, it's ready. There is a guided tour for the editor that explains where to use the website.
This is the site already created with the color supplied. This is the title in the header. Now I have a teaser title with title, URL, and image, but we have lots of tiles that the editor can use, like maps, videos, or other types.
So, editors can customize a lot their own website. It's really simple after that we create the tile in the box.
These buttons are the other tiles that we can add. With the preview button, we can see the site, and it's ready. The editor can publish and manage the site already.
On Sites on Demand, another need emerged by the editors. They wanted to have a statistic panel to check how the site was doing,
and what was the most visited content, etc. We integrated with our Matomo on-premise, and we had to create a custom product for integration with the API. Basically, the Matomo profiles are created automatically when the site is created, if the editor chooses to.
So, he has some field to fill in to have the Matomo profile created. After that, the site starts gathering data, and the editor has a panel button to assess the statistic panel.
That is an iframe that shows a personalized version of the dashboard of Matomo. In the degree program websites, in 2018, we migrated all the degree program websites in Plone.
It was emigration from Microsoft SharePoint. It's a really big migration, 73,000 pages in one Plone with 600 subsites.
In this website, we had the particularity of two different types of editors. We had local editors that worked in a specific degree program website,
and central editors that needed to publish and create pages in different websites. To do that, we created a primary and a replica pattern.
The editors created primary content, and a replica is created in all the websites that need the replica. This is an example where we can add the primary page. It's a simple page. We put the title and save.
This is the option of publication. We can choose if the replica is in all types of degree program, in all campus, or only in one, or in all but not in one website.
Otherwise, we can choose the specific websites where we need to create the replica. After that, we add the primary content created and a list of custom tiles that the editor can add. Now, I add a text and image tile, and this content is immutable to local editor.
All the tiles that central editors added here are not modified by the editor in the replica content. This is the list of all replica content that are created. The editor can publish all the contents, and there is a link to go to the replica content.
Now, in the replica content, the local editor sees the same pages with the immutable parts, but it has
two or three areas where it can add specific website content because it's necessary to add information about that. This is the preview button. Now, I add some other text, and in this specific case, this text are not in the primary content.
It's content only for the replica in this specific website, not for only replica. You can add text or in the second column, the contents or files.
We choose the dimension, the position of the image, and the preview of the site shows the page.
How we created that? When the primary content is updated, created, or deleted, we need to modify the replica content.
For that, we use collective task queue that allow to make task in an async queue. When an update or a creation happen, we add the task in the task queue with the add method, with the URL of the browser view method that made the sync.
When the jobs start, it's called the high primary content adapter sync method that create a different list of replica paths.
For each of these paths, it made the current operation that we need to do. We have another list with all the paths of all the replicas that we need to create, the delete list with the replica that we need to delete, and all renamed.
For that, we use prone API methods. For update, we need to change the modification data of the replica content and to reindex the object. For the tiles, we don't copy the tiles of the primary content in all
the replica content, because we directly show the primary view in the replica content. We have this method that returns the view, and the page template will show directly the tiles of the primary content.
Episode 2, remastered edition. As I said before, department sites were remade in recent years. We immigrated all the 2011 sites, but also we had other requests.
The editors wanted to have editorial newsletters and privacy compliant form that deleted data after the expiration date as per GDPR. We also did a full renewal of the graphic design.
To do that, we needed to do a deep customization collective EasyForms. We created a Unibo EasyForms package that overrides a lot of things.
Also, we had to integrate with MailApp. That was our selected service to send newsletters. Working with editable forms is hard. That is my takeaway from this project. Basically, the design renewal is what you see. The one on the left became the one on the right, a little bit more modern.
About the department site's privacy compliant form, we needed that editors wanted to accept event subscription through forms.
They wanted to choose the kind of privacy that depended on the type of event. Maybe you have events where pictures are taken or videos and the end user must release the permission for this.
Users, on the other hand, needed to accept different privacy policies. By law, we needed to delete collected data past the expiration date. Also, the editor wanted to be reminded of the data deletion to avoid accidental data deletion.
Reminded mail needed to be sent days before the removal. Here we have a small demo of the event pages. The event page, I go inside an event and I add a form tile with the title.
Inside this tile, I can add the effective form that will render as a button that opens the actual form.
It is the button text. I also have to decide the maximum number of subscribers, the number of people that can be queued, a reference email, that is the administration form email, and the end date for the registration.
I also have to select a deletion date for the data as per GDPR. As I said before, you can also select different kinds of privacy based on the type of event. Here I am selecting an event with pictures and videos registration and I add the form.
Now I can see the preview of the form with the default fields. We selected a set of default fields that we show and they are name, address, city, the usual things,
and recapture that is mandatory. Also, I can open the privacy policy that is a long text with the mail of the administrator of the form to send compliant things.
This is the edit view of the form. We can add fields. In this example, I add a choice field.
I can decide if it is required or not. Obviously, I can drag and drop the fields. I can edit the fields. Here I can add the possible values for my choice field. I can remove unwanted fields. The only one I can touch is recapture because it is mandatory.
Here I move fields around. I remove one field and I save the form. I preview the form. Being tied, the save is not needed. Here I have my new fields. It is really nothing fancy.
When I submit the form, the editor also gets emailed with all the data that I submitted. The touch point is about data deletion. We created a daily cron job that runs every night.
It searches the catalog for forms that are about to expire. We have three cases. 15 and two days before deletion, it sends a notification email. On expiration day, it deletes data. We do the relevant query to the catalog.
We look through the forms. If the days are greater than zero, I send an expiration email. If the days are zero, I delete the data. Here we have the two methods that send an expiration email. That is quite standard.
I get the mail lost. I set the subject of the email. The from address, that is our web desk support email. The destination, the recipient of the email. The admin email form, the email that I added in the form edit.
And all the editors of the current site. Then I send the email. The text was way longer than this. It was for presentation reasons. This is the method where I delete data. I traverse the form actions view.
I get the schema that is named saved data from easy form. And I save the count of the subscribed users. I save it to an actual field of the form that is expired data count.
I can save this data because it is aggregated data. It is not personal data. And then I remove the data as per load. So, our two plans. You must unlearn what you have learned. We would like to deploy next product on cloud.
So we would have to unlearn, build out, I hope. You watch your language. So we decide to steal some Python tools. Never tell me the odds. We would like to use Matomo as a service as a backup tracking tool.
We now have Matomo on premise as main tracking tool. But our editors want to have a backup system. We have removed Google Analytics for the privacy issues. And we would like to replace it with Matomo as a service.
I hope you know what we are doing. We want to add a new feature on site on demand. Something magic with preferences of user and the content that the user has created a perfect website.
Traveling through hyperspace ain't like dusting crops. We will have to integrate with this space. To have on the site on demand a digital library catalog.
Always emotion the future is. We are looking for a suitable project to use drone 6. And goodbye old friend. May the force be with you. It was only no point of future only.
These are our contacts. Please reach out if you have questions or anything. Thank you. If you have questions, please speak on the mic.
Thank you.