Skip to content

Commit

Permalink
Merge pull request #138 from stats4sd/tidy-migrations-and-models
Browse files Browse the repository at this point in the history
Tidy migrations and models
  • Loading branch information
dave-mills authored Jan 3, 2025
2 parents 1e7bcee + d465523 commit 91554d6
Show file tree
Hide file tree
Showing 197 changed files with 1,028 additions and 1,983 deletions.
7 changes: 3 additions & 4 deletions app/Exports/XlsformExport/XlsformChoicesExport.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,16 @@

namespace App\Exports\XlsformExport;

use App\Models\Language;
use App\Models\XlsformLanguages\Language;
use App\Models\XlsformLanguages\XlsformTemplateLanguage;
use App\Models\Xlsforms\ChoiceListEntry;
use App\Models\Xlsforms\Xlsform;
use App\Models\XlsformTemplateLanguage;
use App\Models\XlsformTemplates\ChoiceListEntry;
use Illuminate\Support\Collection;
use Illuminate\Support\Str;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
use Maatwebsite\Excel\Concerns\WithColumnWidths;
use Maatwebsite\Excel\Concerns\WithHeadings;
use Maatwebsite\Excel\Concerns\WithMapping;
use Maatwebsite\Excel\Concerns\WithStyles;
use Maatwebsite\Excel\Concerns\WithTitle;
use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
Expand Down
13 changes: 4 additions & 9 deletions app/Exports/XlsformExport/XlsformSurveyExport.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,26 +2,21 @@

namespace App\Exports\XlsformExport;

use App\Models\Language;
use App\Models\Locale;
use App\Models\Team;
use App\Models\XlsformModule;
use App\Models\XlsformModuleVersion;
use App\Models\XlsformLanguages\Language;
use App\Models\Xlsforms\SurveyRow;
use App\Models\Xlsforms\Xlsform;
use App\Models\XlsformTemplateLanguage;
use App\Models\XlsformTemplates\SurveyRow;
use App\Models\Xlsforms\XlsformModule;
use App\Models\Xlsforms\XlsformModuleVersion;
use Illuminate\Support\Collection;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
use Maatwebsite\Excel\Concerns\WithColumnWidths;
use Maatwebsite\Excel\Concerns\WithHeadings;
use Maatwebsite\Excel\Concerns\WithMapping;
use Maatwebsite\Excel\Concerns\WithStyles;
use Maatwebsite\Excel\Concerns\WithTitle;
use Maatwebsite\Excel\Row;
use PhpOffice\PhpSpreadsheet\Style\Fill;
use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
use Stats4sd\FilamentOdkLink\Models\OdkLink\XlsformTemplate;

class XlsformSurveyExport implements FromCollection, WithHeadings, WithTitle, WithStyles, ShouldAutoSize, WithColumnWidths
{
Expand Down
4 changes: 2 additions & 2 deletions app/Exports/XlsformExport/XlsformWorkbookExport.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@

namespace App\Exports\XlsformExport;

use App\Models\LanguageStringType;
use App\Models\Locale;
use App\Models\Team;
use App\Models\XlsformLanguages\LanguageStringType;
use App\Models\XlsformLanguages\Locale;
use App\Models\Xlsforms\Xlsform;
use Illuminate\Support\Collection;
use Maatwebsite\Excel\Concerns\WithMultipleSheets;
Expand Down
4 changes: 2 additions & 2 deletions app/Exports/XlsformTemplateLanguageExport.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

namespace App\Exports;

use App\Models\XlsformTemplateLanguage;
use App\Models\XlsformTemplates\XlsformTemplate;
use App\Models\XlsformLanguages\XlsformTemplateLanguage;
use App\Models\Xlsforms\XlsformTemplate;
use Maatwebsite\Excel\Concerns\FromArray;
use Maatwebsite\Excel\Concerns\WithBackgroundColor;
use Maatwebsite\Excel\Concerns\WithColumnWidths;
Expand Down
7 changes: 3 additions & 4 deletions app/Filament/Admin/Resources/ChoiceListResource.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,15 @@

use App\Filament\Admin\Resources\ChoiceListResource\Pages;
use App\Filament\Admin\Resources\ChoiceListResource\RelationManagers;
use App\Models\XlsformModuleVersion;
use App\Models\XlsformTemplates\ChoiceList;
use App\Models\XlsformTemplates\XlsformTemplate;
use App\Models\Xlsforms\ChoiceList;
use App\Models\Xlsforms\XlsformModuleVersion;
use App\Models\Xlsforms\XlsformTemplate;
use Filament\Forms;
use Filament\Forms\Form;
use Filament\Resources\Resource;
use Filament\Tables;
use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;

class ChoiceListResource extends Resource
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,10 @@

namespace App\Filament\Admin\Resources\ChoiceListResource\RelationManagers;

use App\Filament\App\Clusters\Localisations\Resources\ChoiceListEntryResource;
use App\Models\LanguageStringType;
use App\Models\XlsformTemplateLanguage;
use App\Models\XlsformTemplates\ChoiceList;
use App\Models\XlsformTemplates\ChoiceListEntry;
use App\Models\XlsformLanguages\LanguageStringType;
use App\Models\XlsformLanguages\XlsformTemplateLanguage;
use App\Models\Xlsforms\ChoiceList;
use App\Models\Xlsforms\ChoiceListEntry;
use Filament\Forms;
use Filament\Forms\Components\Hidden;
use Filament\Forms\Components\Repeater;
Expand All @@ -16,8 +15,6 @@
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Tables;
use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;

class ChoiceListEntriesRelationManager extends RelationManager
{
Expand Down
4 changes: 1 addition & 3 deletions app/Filament/Admin/Resources/DomainResource.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,12 @@

use App\Filament\Admin\Resources\DomainResource\Pages;
use App\Filament\Admin\Resources\DomainResource\RelationManagers;
use App\Models\Domain;
use App\Models\Holpa\Domain;
use Filament\Forms;
use Filament\Forms\Form;
use Filament\Resources\Resource;
use Filament\Tables;
use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;

class DomainResource extends Resource
{
Expand Down
12 changes: 6 additions & 6 deletions app/Filament/Admin/Resources/GlobalIndicatorResource.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@

namespace App\Filament\Admin\Resources;

use App\Filament\Admin\Resources\GlobalIndicatorResource\Pages;
use App\Filament\Admin\Resources\GlobalIndicatorResource\RelationManagers;
use App\Models\Holpa\GlobalIndicator;
use App\Models\Holpa\Theme;
use Filament\Forms;
use Filament\Tables;
use App\Models\Theme;
use Filament\Forms\Form;
use Filament\Tables\Table;
use App\Models\GlobalIndicator;
use Filament\Resources\Resource;
use App\Filament\Admin\Resources\GlobalIndicatorResource\Pages;
use App\Filament\Admin\Resources\GlobalIndicatorResource\RelationManagers;
use Filament\Tables;
use Filament\Tables\Table;

class GlobalIndicatorResource extends Resource
{
Expand Down
2 changes: 1 addition & 1 deletion app/Filament/Admin/Resources/TeamResource.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
use App\Models\Team;
use Filament\Tables;
use Filament\Tables\Table;
use Stats4sd\FilamentTeamManagement\Filament\Admin\Resources\TeamResource\RelationManagers\UsersRelationManager;
use Stats4sd\FilamentTeamManagement\Filament\Admin\Resources\TeamResource\RelationManagers\InvitesRelationManager;
use Stats4sd\FilamentTeamManagement\Filament\Admin\Resources\TeamResource\RelationManagers\UsersRelationManager;

class TeamResource extends \Stats4sd\FilamentTeamManagement\Filament\Admin\Resources\TeamResource
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,11 @@

namespace App\Filament\Admin\Resources\TeamResource\RelationManagers;

use App\Models\Language;
use Filament\Forms;
use Filament\Forms\Form;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Tables;
use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;

class LocalesRelationManager extends RelationManager
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
use Filament\Tables\Actions\CreateAction;
use Filament\Tables\Table;
use Maatwebsite\Excel\Facades\Excel;
use Stats4sd\FilamentOdkLink\Jobs\UpdateXlsformTitleInFile;
use Stats4sd\FilamentOdkLink\Services\OdkLinkService;

class XlsformsRelationManager extends \Stats4sd\FilamentOdkLink\Filament\Resources\TeamResource\RelationManagers\XlsformsRelationManager
Expand Down
12 changes: 6 additions & 6 deletions app/Filament/Admin/Resources/ThemeResource.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@

namespace App\Filament\Admin\Resources;

use App\Filament\Admin\Resources\ThemeResource\Pages;
use App\Filament\Admin\Resources\ThemeResource\RelationManagers;
use App\Models\Holpa\Domain;
use App\Models\Holpa\Theme;
use Filament\Forms;
use Filament\Tables;
use App\Models\Theme;
use App\Models\Domain;
use Filament\Forms\Form;
use Filament\Tables\Table;
use Filament\Resources\Resource;
use App\Filament\Admin\Resources\ThemeResource\Pages;
use App\Filament\Admin\Resources\ThemeResource\RelationManagers;
use Filament\Tables;
use Filament\Tables\Table;

class ThemeResource extends Resource
{
Expand Down
4 changes: 1 addition & 3 deletions app/Filament/Admin/Resources/XlsformModuleResource.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,12 @@
namespace App\Filament\Admin\Resources;

use App\Filament\Admin\Resources\XlsformModuleResource\Pages\ManageXlsformModule;
use App\Models\XlsformModule;
use App\Models\Xlsforms\XlsformModule;
use Filament\Forms;
use Filament\Forms\Form;
use Filament\Resources\Resource;
use Filament\Tables;
use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;

class XlsformModuleResource extends Resource
{
Expand Down
8 changes: 2 additions & 6 deletions app/Filament/Admin/Resources/XlsformModuleVersionResource.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,14 @@
namespace App\Filament\Admin\Resources;

use App\Filament\Admin\Resources\XlsformModuleVersionResource\Pages\ManageXlsformModuleVersion;

use App\Models\XlsformModule;
use App\Models\XlsformModuleVersion;
use App\Models\Xlsforms\XlsformModule;
use App\Models\Xlsforms\XlsformModuleVersion;
use Awcodes\Shout\Components\Shout;
use Filament\Forms;
use Filament\Forms\Form;
use Filament\Resources\Resource;
use Filament\Tables;
use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
use Stats4sd\FilamentOdkLink\Models\OdkLink\Interfaces\WithXlsFormDrafts;

class XlsformModuleVersionResource extends Resource
{
Expand Down
2 changes: 1 addition & 1 deletion app/Filament/Admin/Resources/XlsformTemplateResource.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

use App\Filament\Admin\Resources\XlsformTemplateResource\Pages;
use App\Filament\Admin\Resources\XlsformTemplateResource\RelationManagers;
use App\Models\XlsformTemplates\XlsformTemplate;
use App\Models\Xlsforms\XlsformTemplate;
use Stats4sd\FilamentOdkLink\Filament\Resources\XlsformTemplateResource as OdkLinkXlsformTemplateResource;

class XlsformTemplateResource extends OdkLinkXlsformTemplateResource
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
namespace App\Filament\Admin\Resources\XlsformTemplateResource\Pages;

use App\Filament\Admin\Resources\XlsformTemplateResource;
use App\Models\XlsformTemplates\XlsformTemplate;
use App\Models\Xlsforms\XlsformTemplate;
use Filament\Forms\Components\Wizard\Step;
use Filament\Forms\Get;
use Stats4sd\FilamentOdkLink\Filament\Resources\XlsformTemplateResource\Pages\CreateXlsformTemplate as OdkLinkCreateXlsformTemplate;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,27 +2,23 @@

namespace App\Filament\Admin\Resources\XlsformTemplateResource\RelationManagers;

use Closure;
use App\Exports\XlsformTemplateLanguageExport;
use App\Imports\XlsformTemplateLanguageImport;
use App\Models\XlsformLanguages\Language;
use App\Models\XlsformLanguages\Locale;
use App\Models\XlsformLanguages\XlsformTemplateLanguage;
use Carbon\Carbon;
use Closure;
use Filament\Forms;
use Filament\Tables;
use App\Models\Locale;
use Filament\Forms\Get;
use App\Models\Language;
use Filament\Forms\Form;
use Filament\Tables\Table;
use Filament\Forms\Components\Group;
use Maatwebsite\Excel\Facades\Excel;
use App\Models\XlsformTemplateLanguage;
use Illuminate\Support\Facades\Storage;
use Filament\Forms\Form;
use Filament\Forms\Get;
use Filament\Notifications\Notification;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Facades\Validator;
use App\Exports\XlsformTemplateLanguageExport;
use App\Imports\XlsformTemplateLanguageImport;
use Illuminate\Validation\ValidationException;
use Illuminate\Database\Eloquent\SoftDeletingScope;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Tables;
use Filament\Tables\Table;
use Illuminate\Support\Facades\Storage;
use Maatwebsite\Excel\Facades\Excel;

class XlsformTemplateLanguageRelationManager extends RelationManager
{
Expand Down Expand Up @@ -90,13 +86,13 @@ public function table(Table $table): Table

return Excel::download(new XlsformTemplateLanguageExport($template, $record), $filename);
}),

Tables\Actions\Action::make('upload_translation')
->label('Upload translation file')
->icon('heroicon-m-arrow-up-circle')
->modalHeading(function (XlsformTemplateLanguage $record) {
->modalHeading(function (XlsformTemplateLanguage $record) {
return 'Upload Completed Translation File for ' . $record->localeLanguageLabel;
})
})
->form(function (XlsformTemplateLanguage $record) {
return [
Forms\Components\FileUpload::make('translation_file')
Expand All @@ -112,48 +108,48 @@ public function table(Table $table): Table

// get the file from $get
$file = collect($get('translation_file'))->first();

// Load the file as an array, getting the first sheet
$rows = Excel::toArray([], $file)[0];

// Get the headers from the first row
$headers = $rows[0];

// Get the indices for 'name' and the languageLabel column
$nameIndex = array_search('name', $headers);
$currentTranslationIndex = array_search($languageLabel, $headers);

// If the languageLabel column is missing in the file, validation fails
if ($currentTranslationIndex === false) {
return $fail('The translations file must contain the translation column"' . $languageLabel . '"');
}

// Remove the header row
array_shift($rows);

// Check for missing translations in the 'languageLabel' column (when 'name' is not null to avoid empty rows)
$invalidRows = collect($rows)->filter(function ($row) use ($nameIndex, $currentTranslationIndex) {
$name = $row[$nameIndex] ?? null;
$currentTranslation = $row[$currentTranslationIndex] ?? null;
return !empty($name) && (is_null($currentTranslation) || trim($currentTranslation) === '');
});

// If there are missing translations, display an error and prevent the import
if ($invalidRows->isNotEmpty()) {
// Map the invalid rows to display 'name (translation type)'
$invalidNamesWithType = $invalidRows->flatMap(function ($row) use ($nameIndex, $headers, $currentTranslationIndex) {
$name = $row[$nameIndex];
$translationType = $row[array_search('translation type', $headers)];

return (is_null($row[$currentTranslationIndex]) || trim($row[$currentTranslationIndex]) === '')
? [$name . ' (' . $translationType . ')']
return (is_null($row[$currentTranslationIndex]) || trim($row[$currentTranslationIndex]) === '')
? [$name . ' (' . $translationType . ')']
: []; // Return an empty array if the translation is present
});

return $fail('The translations file cannot be uploaded as there are missing translations in the "' . $languageLabel . '" column for the following: ' . $invalidNamesWithType->implode(', '));
}
return true;
},
},
]),
];
})
Expand Down
Loading

0 comments on commit 91554d6

Please sign in to comment.