/** * Remove the specified resource from storage. * * @param Request $request * @param int $id * @return \Illuminate\Http\Response * @throws \Exception */ public function destroy(Request $request, $id) { $this->authorize('litteraturkritikk'); if (!$request->get('confirm-deleteperson')) { return redirect()->back()->with('status', 'Manglet bekreftelse'); } $person = Person::findOrFail($id); $person->records()->detach(); $person->delete(); \DB::unprepared('REFRESH MATERIALIZED VIEW litteraturkritikk_records_search'); return redirect()->action('LitteraturkritikkPersonController@show', $id)->with('status', 'Personen ble slettet'); }
public function processPerson(&$record, &$row, $role) { $rowId = $row['id']; $etternavn = $row[$role . '_etternavn']; $fornavn = $row[$role . '_fornavn']; $kjonn = $row[$role . '_kjonn']; $etternavn_arr = $this->splitTrimAndFilterEmpty($etternavn); $fornavn_arr = $this->splitTrimAndFilterEmpty($fornavn); $this->stats[$role][count($etternavn_arr)] = isset($this->stats[$role][count($etternavn_arr)]) ? $this->stats[$role][count($etternavn_arr)] + 1 : 1; if (count($etternavn_arr) > count($fornavn_arr)) { if (!in_array($etternavn_arr[0], ['anonym', 'ukjent', 'Ukjent'])) { $this->warn("[{$rowId}] Antall etternavn <{$etternavn}> er flere enn antallet fornavn <{$fornavn}>."); } } if (count($etternavn_arr) < count($fornavn_arr)) { $this->error("[{$rowId}] Antall etternavn <{$etternavn}> er færre enn antallet fornavn <{$fornavn}>."); } for ($i = 0; $i < count($etternavn_arr); $i++) { if (!isset($fornavn_arr[$i])) { $fornavn_arr[$i] = null; } if (strtolower($etternavn_arr[$i] == 'ukjent')) { $etternavn_arr[$i] = 'ukjent'; $fornavn_arr[$i] = null; } $red = false; if (preg_match('/\\s?\\(red\\.\\)/', $etternavn_arr[$i])) { $etternavn_arr[$i] = preg_replace('/\\s?\\(red\\.\\)/', '', $etternavn_arr[$i]); $red = true; } if (preg_match('/\\s?\\(red\\.\\)/', $fornavn_arr[$i])) { $fornavn_arr[$i] = preg_replace('/\\s?\\(red\\.\\)/', '', $fornavn_arr[$i]); $red = true; } $person = Person::firstOrNew(['etternavn' => $etternavn_arr[$i], 'fornavn' => $fornavn_arr[$i]]); $kjonn = $this->normalizeKjonn($kjonn); if ($person->kjonn && $kjonn && $person->kjonn != $kjonn) { $this->error("[{$rowId}] Person {$person->id} har registrert flere verdier for kjønn: <{$person->kjonn}> og <{$kjonn}>"); } $person->kjonn = $kjonn; if ($role == 'kritiker' && $red) { $this->error("[{$rowId}] Redaktørrolle angitt for kritiker"); } $person_role = $red ? 'redaktør' : $role; $record->persons()->save($person, ['person_role' => $person_role]); } }