Activate CV module

From DoKSwiki

Table of contents

The very basics of the CV module

Everything for the CV module is present in the DoKS version 1.3.0.
If you are still working with an earlier version a lot can be done or shown already, which illustrates the flexibility of DoKS for adding completely new applications. This new functionality did not require any programming (just some scripting in DoKS itself), only configuration files and templates needed to be changed or created.
The programming for the wizard was merely making links between records a more user friendly experience and the programming for the special CV search page made indexing more configurable for all kinds of structures. Normal searching will still work with CV's.

Add CV data structures

A CV is linked to an Author (in the same way as an ETD), and it is linked to Education, Apprenticeship, WorkExperience, Reference and Language data structures. To add all these to your DoKS installation add this line to the Author structure in your /conf/structures.xml file:

<field type="recordlinklist" name="cv"/>

and append the following to your /conf/structures.xml file:

<structure name="CV" id="Cur" descriptionname="CV_cv">
	<!--start personal information-->
	<field type="recordlinklist" name="naam" classname="Author" inversefield="cv"/>
	<field type="text" name="address"/>
	<field type="date" name="birthDate"/>
	<field type="choice" name="gender" classname="gender"/>
	<field type="string" name="nationality"/>
	<field type="string" name="familySituation"/>
	<field type="url" name="email"/>
	<field type="string" name="telephone"/>
	<field type="string" name="mobile"/>
	<field type="string" name="fax"/>
	<field type="url" name="personalWebsite"/>
	<!--end personal information-->
	<!--start educational information-->
	<field type="recordlinklist" name="education"/>
	<!--end educational information-->
	<!-- start experience information-->
	<field type="recordlinklist" name="apprenticeship"/>
	<field type="recordlinklist" name="workexperience"/>
	<field type="recordlinklist" name="reference"/>
	<!--end experience information-->
	<!--start skills information-->
	<field type="recordlinklist" name="language"/>
	<field type="text" name="social" maxlength="1024"/>
	<field type="text" name="organisational" maxlength="1024"/>
	<field type="text" name="technical" maxlength="1024"/>
	<field type="text" name="computer" maxlength="1024"/>
	<field type="text" name="artistic" maxlength="1024"/>
	<field type="text" name="commercial" maxlength="1024"/>
	<field type="string" name="driving"/>
	<field type="text" name="other" maxlength="1024"/>		
	<!--end skills information-->
	<!-- start extra info-->
	<field type="text" name="mobility"/>
	<field type="text" name="carreerGoal" maxlength="10000"/>
	<field type="choice" name="status" classname="cvStatus"/>
	<field type="choice" name="activity" classname="cvActivity"/>
	<!-- end extra info-->
<structure name="Education" id="Edu" descriptionname="Edu_title">
	<field type="date" name="from"/>
	<field type="date" name="to"/>
	<field type="text" name="skills" maxlength="1024"/>
	<field type="string" name="organisation"/>
	<field type="string" name="level"/>
	<field type="text" name="thesis"/>
	<field type="text" name="extraInfo" maxlength="1024"/>
	<field type="recordlinklist" name="cv" classname="CV" inversefield="education"/>
<structure name="Apprenticeship" id="App" descriptionname="App_position">
	<field type="date" name="from"/>
	<field type="date" name="to"/>
	<field type="text" name="activities" maxlength="1024"/>
	<field type="string" name="employer"/>
	<field type="string" name="sector"/>
	<field type="text" name="extraInfo" maxlength="1024"/>
	<field type="recordlinklist" name="cv" classname="CV" inversefield="apprenticeship"/>		
<structure name="WorkExperience" id="Wex" descriptionname="Wex_position">
	<field type="date" name="from"/>
	<field type="date" name="to"/>
	<field type="text" name="activities" maxlength="1024"/>
	<field type="string" name="employer"/>
	<field type="string" name="sector"/>
	<field type="text" name="extraInfo" maxlength="1024"/>
	<field type="recordlinklist" name="cv" classname="CV" inversefield="workexperience"/>
<structure name="Language" id="Lan" descriptionname="Lan_language">
	<field type="choice" name="level" classname="languageLevel"/>
	<field type="text" name="extraInfo" maxlength="1024"/>
	<field type="recordlinklist" name="cv" classname="CV" inversefield="language"/>
<structure name="Reference" id="Ref" descriptionname="Ref_name">
	<field type="string" name="function"/>
	<field type="string" name="company"/>
	<field type="string" name="telephone"/>
	<field type="string" name="email"/>
	<field type="text" name="extraInfo" maxlength="1024"/>
	<field type="recordlinklist" name="cv" classname="CV" inversefield="reference"/>

Now, after stopping Tomcat, deploy the application and update the database (ant deploy and ant schemaupdate).

Add the CV views and the CV edit wizard

You need DoKS version 1.3.0 or higher for the wizard to work properly, the views will work in lower versions if you follow the steps below.

Everything should be present from version 1.3.0 onwards, to be sure check your DoKS installation for the directory /local/CV. If it doesn't exist you will have to take all the following steps.

familySituation=Burgerlijke staat
personalWebsite=Persoonlijke website
otherExperience=Overige Ervaring
social=Sociale vaardigheden
organisational=Organisatorische vaardigheden
technical=Technische vaardigheden
artistic=Artistieke vaardigheden
commercial=Commerciële vaardigheden
otherSkills=Overige vaardigheden
activity=Beschikbaarheid voor werkgevers

#CV structures
extraInfo=Bijkomende Informatie

and /conf/messagefiles/ and add the lines below (you can modify the translations if you like)

firstname=First Name
familySituation=Civil State
personalWebsite=Personal website
carreerGoal=Career goals
computerSkills=Computer Skills
otherExperience=Other Experience
social=Social Skills
organisational=Organisational Skills
technical=Technical Skills
artistic=Artistic Skills
commercial=Commercial Skills
driving=Driver's Licence
otherSkills=Other Skills
activity=Availability for employers

#CV structures
extraInfo=Extra Information
  • Make sure the following lines are in /src/web/assets/style.css:
div.cvhelp{display: none;}
.cvhelptd {border-bottom:dashed gray 1px; border-left:dashed gray 1px; padding: 5px 5px;}

/* Curriculum Vitae */
.cv_table {border:solid gray 1px; background-color:#DEDEDE; width:700px; border-collapse: collapse;font-size: x-small;}
.cv_thr {border-bottom:dashed gray 1px; background-color:#CCCCCC; text-align:right; font-size: small;}
.cv_thl {border-bottom:dashed gray 1px; background-color:#CCCCCC; text-align:left; font-size: small;}
  • Copy all the files and folders to the build with the command ant copywebapp.
  • If not present add the scripts "setCVPermissions", "Apprenticeship_update", "Education_update", "Language_update", "Reference_update" and "Workexperience_update" from To do this login as an administrator to your DoKS repository and go to 'Administrator' ('Beheerder'), 'Script Management', 'New Script' (at bottom of the page). Give all these scripts 'administrator rights' ('Beheerderrechten') (check the box) and change 'permissions' ('Toegangsrechten') to Everyone Execute (check the box).

Add a CV usergroup and users

  • Login as an administrator to your DoKS repository.
  • Go to 'Administrator' ('Beheerder'), 'User Management' and create a user group named CV (you only need to provide a name, the second field can be left empty).
  • Edit the CV user Group and add at least one user who will be entitled to view all CV's. Administrators automatically have this permission, this is meant for 'external' users like a school's job service or a company that has been granted access to the CV's (for free or for a fee).

Set up a CV folder structure

  • Login as an administrator to your DoKS repository.
  • Go to the Home folder 'Edit' ('Bewerk') and click the 'Edit' ('Bewerk') link under 'Records and subfolders'.
  • Add a new Folder named "CV" (the second field should be made empty, it probably reads FolderInfo now).
  • Add another new Folder named "Cv-attached structures" (the second field should be made empty, it probably reads FolderInfo now).
  • Go to the folder "Cv-attached structures" and add 5 subfolders respectively named "Apprenticeship", "Education", "Language", "Reference" and "Workexperience" (this works in the same way as you did for the Home folder).

Now the folders must be made to accept the appropriate data structures and get appropriate access rights.

  • Change 'permissions' ('Toegangsrechten') for the folders "CV" and "Cv-attached structures" to give only read access to the 'CV' usergroup. All the other boxes should remain empty!
  • To let students edit their CV's change permissions for the "Apprenticeship", "Education", "Language", "Reference" and "Workexperience" folders to give the usergroup 'Students' all the rights except 'administrate'('beheren'). All the other boxes should remain empty!
  • Edit the CV folder and select CV in the list of recordtypes. Click the save button.
  • Edit the "Apprenticeship", "Education", "Language", "Reference" and "Workexperience" folders and select the respective recordtypes in the list of recordtypes as you did for the CV folder.

Create CV's

Add Manually

  • Login as an administrator to your DoKS repository.
  • Go to the CV folder, click the CV tab and click 'New Record'. You are now in the CV edit wizard.
  • Enter the data (Title is mandatory, we usually write something like "CV van Jan Janssens") and click next.
  • This second page of the wizard is for adding Apprenticeships, Educations, Languages, References and Workexperience. It will not work with DoKS versions lower than 1.3.0. But instead you can find a link "Full edit" at the bottom of the page. This brings you to the standard DoKS edit screen where you can fill out fields and link to other structures by pasting. To add an Education you have to create one first by going to /Cv-attached structures/Education folder (first save your new CV!) then the Education tab and "New Record". After saving the Education record you have to copy it. Then go back to the CV you have created, edit it and use the "Full Edit" link, where you can paste the education to the appropriate field and save the CV. You can follow the same procedure for Languages, References, etc. The update scripts take care of setting the correct access rights. This is quite an elaborate procedure, it works but you understand why we made it a one click operation in version 1.3.0.
  • Copy the CV, go to an Author record (or create one) and paste it in the Cv field.

Automate with a script

You can write a script very much like any other import script, see Automating_Tasks_en_Procedures. We do this at KHK to import student data from the school's administration so all students get a pre-filled CV attached to their Author record that they can update and modify.

The CV search page

Available as from version 1.3.0

Specific CV indexing

Not yet available.

Add the search page

Searching will not work if DoKS is not updated to version 1.3.0 or higher but you can have a look at the page by taking the following steps.

  • Take the latest version of /src/web/search/CVsearch.vm from (
  • Copy the file to the build with the command ant copywebapp.
  • There's currently no direct link to this page. It can be accessed by going to the advanced search page and then changing the last part of the URL in your browser's address bar to CVsearch.vm instead of AdvancedSearch.vm.