ketchalegend/filament-survey

Filament Laravel Survey plugin with multi tenancy

2.0 2023-12-14 15:49 UTC

This package is auto-updated.

Last update: 2024-11-14 18:04:26 UTC


README

A Filament plugin for Laravel Survey package.

This package provides Filament resources for Laravel Survey.

Requirements

Dependencies

Installation

Installing the required package (Laravel Survey)

This plugin uses a modifed version of Laravel Survey package: https://github.com/ketchalegend/laravel-survey/tree/translatable that adds translatable and sortable fields to the survey models. More details in this PR: matt-daneshvar/laravel-survey#39.

So you must install this version instead of requiring matt-daneshvar/laravel-survey. In order to do so, add to your project's composer.json:

"require": {
    ...
    "matt-daneshvar/laravel-survey": "dev-translatable",
},

"repositories": [
    ...
    {
        "type": "vcs",
        "url": "https://github.com/Ketchalegend/laravel-survey"
    }
],

Install it using Composer

composer update

Publish the package migrations

php artisan vendor:publish --provider="MattDaneshvar\Survey\SurveyServiceProvider" --tag="migrations"

Run the migrations

php artisan migrate

Installing the Filament Survey plugin

Install the plugin via Composer:

composer require ketchalegend/filament-survey:"^3.0"

Optional: Publish the plugin's views, translations, and config

You can publish the view file with:

php artisan vendor:publish --tag="filament-survey-views"

You can publish the translations files with:

php artisan vendor:publish --tag="filament-survey-translations"

You can publish the config file with:

php artisan vendor:publish --tag="filament-survey-config"

Adding the plugin to a panel

Add this plugin to a panel on plugins() method (e.g. in app/Providers/Filament/AdminPanelProvider.php). This plugin requires the Spatie Translatable plugin, so it should also be added on a panel like so:

use Filament\SpatieLaravelTranslatablePlugin;
use Ketchalegend\FilamentSurvey\FilamentSurveyPlugin;
 
public function panel(Panel $panel): Panel
{
    return $panel
        // ...
        ->plugins([
            FilamentSurveyPlugin::make(),
            SpatieLaravelTranslatablePlugin::make(),
            //...
        ]);
}

That's it! Now the surveys, sections, questions, answers, and entries resources will be displayed in the left sidebar in your Filament admin panel.