---
title: "Important: A wizard repairs the jobs of the old new job form"
manual: "Academic Jobs"
version: "main"
permalink: "https://docs.typo3.org/permalink/fgtclb/academic-jobs:important-repair-wizard-for-jobs-of-the-old-form@main"
source: "Changelog/2.4/Important-RepairWizardForJobsOfTheOldForm.rst"
rendered: "2026-10-12T10:12:12+00:00"
---

# Important: A wizard repairs the jobs of the old new job form {#important-repair-wizard-for-jobs-of-the-old-form}

## Description {#description}

Before the new job form stored the values a visitor chose, it stored values
the visitor had not entered, see
[Important: The new job form stores the chosen values](https://docs.typo3.org/permalink/fgtclb/academic-jobs:important-new-job-form-stores-the-chosen-values@main). The upgrade wizard
*Repair the jobs stored by the old new job form of academic jobs*
(`academicJobs_repairNewJobFormValues`) repairs what the stored values allow
to repair, and lists what needs an editor.

### Start date and application deadline {#start-date-and-application-deadline}

The old form took the time of day of the submission for **When** and
**Application deadline**, the same for both, in the time zone of the
server. Nothing else marks a job as made by the form, and an editor may set a
time of day in the backend fields **Publish Date** and
**Expiration Date** on purpose. The wizard therefore changes a job
only when

-   both `starttime` and `endtime` are set,
-   both carry the same time of day down to the second,
-   and that time of day is not midnight,

read in the time zone of the process that runs the wizard. Such a job gets
what the form stores today: the start date at midnight of its day, the
deadline at the last second of its day. The day itself does not change.

### The time zone {#the-time-zone}

The time zone is `$GLOBALS['TYPO3_CONF_VARS']['SYS']['phpTimeZone']` or,
when that is empty, which is its default, the default time zone of PHP in the
process. That one comes from `date.timezone` or the environment, and it can
differ between the command line and the web server. The form ran in the web
server, `vendor/bin/typo3 upgrade:run` runs on the command line.

A wrong time zone writes wrong values that cannot be taken back: jobs whose two
times of day still match are moved to midnight of the wrong zone, which is off
the day in the right one by the difference between the two zones, and the old
values are not kept anywhere. The description of the wizard, shown by
`vendor/bin/typo3 upgrade:list` and in the upgrade module, names the time
zone it will use. Check it before running the wizard, and set
`phpTimeZone` or run the wizard from the upgrade module of the web server
if it is not the zone the form ran in.

### Employment type and job type {#employment-type-and-job-type}

A `0` in `employment_type` (**Working hours** in the form) or
`type` is what the form stored for a select left on
**Please choose**. The value the visitor meant cannot be derived, so
the wizard does not change these jobs. It lists them in its output with uid,
page and title, and with language and workspace where they are not the default
ones, for an editor to choose the value in the backend.

### Which jobs count {#which-jobs-count}

Every job that is not deleted: hidden, scheduled and expired jobs as well,
translations, which carry dates of their own, and workspace versions, so that
publishing one does not bring the old values back. The delete placeholder of a
workspace is left out.

### What the wizard cannot repair {#what-the-wizard-cannot-repair}

-   A job with only one of the two dates. Both fields are optional in the form,
    and one time of day alone does not tell a submission from an editor.
-   A job whose start date or deadline an editor changed since, so that the
    two times of day differ.
-   A job submitted in a time of day that did not exist on the start day or on
    the deadline day, an hour skipped by the change to summer time, which
    shifted that one value by an hour. The same applies to the rare submission
    whose two values were parsed on both sides of a second.

### What it changes although an editor set it {#what-it-changes-although-an-editor-set-it}

A job whose start date and deadline an editor set to the same time of day, for
example both to 08:00, cannot be told from a job of the form and is moved to
whole days as well. Check the jobs that are visible from or until a particular
hour before running the wizard.

## Impact {#impact}

The start date and the deadline of a job the wizard repairs cover whole days,
as for a job the form stores now. A job submitted in the afternoon no longer
disappears in the afternoon of its deadline day. Jobs with a `0` are not
changed. Behaviour is identical on TYPO3 v12 and v13.

## Affected Installations {#affected-installations}

Every installation that received jobs through the **Jobs New** plugin
before it stored whole days and refused an unchosen value.

## Migration {#migration}

Check the time zone the description of the wizard names, then run it:

```bash
vendor/bin/typo3 upgrade:run academicJobs_repairNewJobFormValues
```

or use **Admin Tools > Upgrade > Upgrade Wizard**. The wizard writes the
database directly, not through the `DataHandler`, so the change is not
recorded in the history of a job. Flush the frontend caches afterwards: a page
cached before still shows the jobs with their old times.

The jobs with a `0` are listed once, in that run, and the wizard is marked
as done afterwards like any other. Keep the list: a job with a `0` does not
bring the wizard back, so neither the upgrade module nor
**System > Reports** reminds anybody of it. To see the list again, mark
the wizard as undone and run it once more. The upgrade wizard module lists it
under **Wizards marked as done**, with a **Mark undone**
button. On TYPO3 v13 the command line does the same:

```bash
vendor/bin/typo3 upgrade:mark:undone academicJobs_repairNewJobFormValues
vendor/bin/typo3 upgrade:run academicJobs_repairNewJobFormValues
```

TYPO3 v12 has no `upgrade:mark:undone` command, use the upgrade module there.

Running it again changes no date, a repaired job no longer carries the same
time of day on both.
