Commit 32a7cf36f08bf4cb7447cc777f83869a9d0fb22a

Authored by Eder Soares
2 parents 5a64036a e913d4b4
Exists in 2.9 and in 3 other branches 2.6, 2.7, 2.8

Merge branch 'master' into laravel-8

.gitignore
... ... @@ -9,6 +9,7 @@
9 9 composer-plug-and-play.json
10 10 composer-plug-and-play.lock
11 11 laravel-echo-server.json
  12 +package-lock.json
12 13  
13 14 ieducar-*.tar.gz
14 15 .env
... ...
.travis.yml
... ... @@ -5,44 +5,6 @@ matrix:
5 5 - language: php
6 6  
7 7 php:
8   - - '7.3'
9   -
10   - sudo: required
11   -
12   - dist: xenial
13   -
14   - addons:
15   - postgresql: '9.5'
16   - chrome: stable
17   -
18   - cache:
19   - directories:
20   - - $HOME/.composer/cache
21   -
22   - before_script:
23   - - composer self-update --1
24   - - composer new-install
25   - - php artisan serve > /dev/null 2>&1 &
26   -
27   - script:
28   - - vendor/bin/phpunit
29   - - vendor/bin/phpunit --testsuite Diario
30   -
31   - env:
32   - - APP_URL=http://localhost:8000
33   - - APP_ENV=testing
34   - - DB_CONNECTION=pgsql
35   - - DB_HOST=localhost
36   - - DB_PORT=5432
37   - - DB_DATABASE=travis
38   - - DB_USERNAME=postgres
39   - - DB_PASSWORD=
40   - - API_ACCESS_KEY=ieducar-access-key
41   - - API_SECRET_KEY=ieducar-secret-key
42   -
43   - - language: php
44   -
45   - php:
46 8 - '7.4'
47 9  
48 10 sudo: required
... ... @@ -58,9 +20,7 @@ matrix:
58 20 - $HOME/.composer/cache
59 21  
60 22 before_script:
61   - - composer self-update --1
62 23 - composer new-install
63   - - php artisan serve > /dev/null 2>&1 &
64 24  
65 25 script:
66 26 - vendor/bin/phpunit
... ...
app/Console/Kernel.php
... ... @@ -27,6 +27,8 @@ class Kernel extends ConsoleKernel
27 27 protected function schedule(Schedule $schedule)
28 28 {
29 29 $schedule->job(new TenantsJob(CheckInstitutionConfigurationsJob::class))->cron('0 8 1 1 *');
  30 +
  31 + $schedule->command('horizon:snapshot')->everyFiveMinutes();
30 32 }
31 33  
32 34 /**
... ...
app/Jobs/BatchExemptionJob.php
... ... @@ -37,6 +37,10 @@ class BatchExemptionJob implements ShouldQueue
37 37 */
38 38 private $user;
39 39  
  40 + /**
  41 + * @var int
  42 + */
  43 + public $timeout = 600;
40 44  
41 45 public function __construct(BatchExemptionService $batchExemptionService, $databaseConnection, User $user)
42 46 {
... ...
app/Models/LegacyPersonAddress.php
... ... @@ -6,6 +6,7 @@ use Illuminate\Database\Eloquent\Relations\BelongsTo;
6 6 use Illuminate\Database\Eloquent\Model;
7 7  
8 8 /**
  9 + * @deprecated
9 10 * @property string $name
10 11 */
11 12 class LegacyPersonAddress extends Model
... ...
composer.json
... ... @@ -3,14 +3,14 @@
3 3 "description": "Software livre de gestão escolar",
4 4 "type": "project",
5 5 "license": "GPL-2.0-or-later",
6   - "version": "2.4.2",
  6 + "version": "2.5.1",
7 7 "keywords": [
8 8 "Portabilis",
9 9 "i-Educar"
10 10 ],
11 11 "homepage": "https://github.com/portabilis/i-educar",
12 12 "require": {
13   - "php": "^7.3",
  13 + "php": "^7.4",
14 14 "ext-gd": "*",
15 15 "ext-json": "*",
16 16 "ext-pdo": "*",
... ... @@ -19,7 +19,7 @@
19 19 "cocur/slugify": "^3.1",
20 20 "composer/semver": "^1.4",
21 21 "cossou/jasperphp": "^2.7",
22   - "dex/composer-plug-and-play": "^0.1.0",
  22 + "dex/composer-plug-and-play": "~0.1",
23 23 "doctrine/dbal": "^2.9",
24 24 "fideloper/proxy": "^4.4",
25 25 "fruitcake/laravel-cors": "^2.0",
... ...
composer.lock
... ... @@ -4,7 +4,7 @@
4 4 "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
5 5 "This file is @generated automatically"
6 6 ],
7   - "content-hash": "ff866b618b1b7bb24e67da73c8280761",
  7 + "content-hash": "9b461ce01c5b76e2bec8fef3ae4254f9",
8 8 "packages": [
9 9 {
10 10 "name": "asm89/stack-cors",
... ... @@ -64,16 +64,16 @@
64 64 },
65 65 {
66 66 "name": "aws/aws-sdk-php",
67   - "version": "3.171.8",
  67 + "version": "3.171.20",
68 68 "source": {
69 69 "type": "git",
70 70 "url": "https://github.com/aws/aws-sdk-php.git",
71   - "reference": "1f7f7c1db844f6c988c93008f902b352c7616da8"
  71 + "reference": "02aaf7007c5678a6358ea924cd85531300aa1747"
72 72 },
73 73 "dist": {
74 74 "type": "zip",
75   - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/1f7f7c1db844f6c988c93008f902b352c7616da8",
76   - "reference": "1f7f7c1db844f6c988c93008f902b352c7616da8",
  75 + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/02aaf7007c5678a6358ea924cd85531300aa1747",
  76 + "reference": "02aaf7007c5678a6358ea924cd85531300aa1747",
77 77 "shasum": ""
78 78 },
79 79 "require": {
... ... @@ -148,9 +148,9 @@
148 148 "support": {
149 149 "forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80",
150 150 "issues": "https://github.com/aws/aws-sdk-php/issues",
151   - "source": "https://github.com/aws/aws-sdk-php/tree/3.171.8"
  151 + "source": "https://github.com/aws/aws-sdk-php/tree/3.171.20"
152 152 },
153   - "time": "2020-12-29T19:11:15+00:00"
  153 + "time": "2021-01-19T19:13:08+00:00"
154 154 },
155 155 {
156 156 "name": "aws/aws-sdk-php-laravel",
... ... @@ -478,16 +478,16 @@
478 478 },
479 479 {
480 480 "name": "dex/composer-plug-and-play",
481   - "version": "0.1.0",
  481 + "version": "0.2.0",
482 482 "source": {
483 483 "type": "git",
484 484 "url": "https://github.com/edersoares/composer-plug-and-play.git",
485   - "reference": "0080cc733392108bb24822344938297198dc0a54"
  485 + "reference": "90660dcb1131d4c2236ee6c50ad9caa50995bfa5"
486 486 },
487 487 "dist": {
488 488 "type": "zip",
489   - "url": "https://api.github.com/repos/edersoares/composer-plug-and-play/zipball/0080cc733392108bb24822344938297198dc0a54",
490   - "reference": "0080cc733392108bb24822344938297198dc0a54",
  489 + "url": "https://api.github.com/repos/edersoares/composer-plug-and-play/zipball/90660dcb1131d4c2236ee6c50ad9caa50995bfa5",
  490 + "reference": "90660dcb1131d4c2236ee6c50ad9caa50995bfa5",
491 491 "shasum": ""
492 492 },
493 493 "require": {
... ... @@ -522,9 +522,9 @@
522 522 "description": "Plug and play packages for Composer",
523 523 "support": {
524 524 "issues": "https://github.com/edersoares/composer-plug-and-play/issues",
525   - "source": "https://github.com/edersoares/composer-plug-and-play/tree/0.1.0"
  525 + "source": "https://github.com/edersoares/composer-plug-and-play/tree/0.2.0"
526 526 },
527   - "time": "2020-11-24T02:58:23+00:00"
  527 + "time": "2021-01-05T21:12:34+00:00"
528 528 },
529 529 {
530 530 "name": "dnoegel/php-xdg-base-dir",
... ... @@ -1173,6 +1173,60 @@
1173 1173 "time": "2020-12-29T14:50:06+00:00"
1174 1174 },
1175 1175 {
  1176 + "name": "ezyang/htmlpurifier",
  1177 + "version": "v4.13.0",
  1178 + "source": {
  1179 + "type": "git",
  1180 + "url": "https://github.com/ezyang/htmlpurifier.git",
  1181 + "reference": "08e27c97e4c6ed02f37c5b2b20488046c8d90d75"
  1182 + },
  1183 + "dist": {
  1184 + "type": "zip",
  1185 + "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/08e27c97e4c6ed02f37c5b2b20488046c8d90d75",
  1186 + "reference": "08e27c97e4c6ed02f37c5b2b20488046c8d90d75",
  1187 + "shasum": ""
  1188 + },
  1189 + "require": {
  1190 + "php": ">=5.2"
  1191 + },
  1192 + "require-dev": {
  1193 + "simpletest/simpletest": "dev-master#72de02a7b80c6bb8864ef9bf66d41d2f58f826bd"
  1194 + },
  1195 + "type": "library",
  1196 + "autoload": {
  1197 + "psr-0": {
  1198 + "HTMLPurifier": "library/"
  1199 + },
  1200 + "files": [
  1201 + "library/HTMLPurifier.composer.php"
  1202 + ],
  1203 + "exclude-from-classmap": [
  1204 + "/library/HTMLPurifier/Language/"
  1205 + ]
  1206 + },
  1207 + "notification-url": "https://packagist.org/downloads/",
  1208 + "license": [
  1209 + "LGPL-2.1-or-later"
  1210 + ],
  1211 + "authors": [
  1212 + {
  1213 + "name": "Edward Z. Yang",
  1214 + "email": "admin@htmlpurifier.org",
  1215 + "homepage": "http://ezyang.com"
  1216 + }
  1217 + ],
  1218 + "description": "Standards compliant HTML filter written in PHP",
  1219 + "homepage": "http://htmlpurifier.org/",
  1220 + "keywords": [
  1221 + "html"
  1222 + ],
  1223 + "support": {
  1224 + "issues": "https://github.com/ezyang/htmlpurifier/issues",
  1225 + "source": "https://github.com/ezyang/htmlpurifier/tree/master"
  1226 + },
  1227 + "time": "2020-06-29T00:56:53+00:00"
  1228 + },
  1229 + {
1176 1230 "name": "fideloper/proxy",
1177 1231 "version": "4.4.1",
1178 1232 "source": {
... ... @@ -1866,16 +1920,16 @@
1866 1920 },
1867 1921 {
1868 1922 "name": "laravel/framework",
1869   - "version": "v8.20.1",
  1923 + "version": "v8.23.1",
1870 1924 "source": {
1871 1925 "type": "git",
1872 1926 "url": "https://github.com/laravel/framework.git",
1873   - "reference": "b5d8573ab16027867eaa1ac148893833434f9b02"
  1927 + "reference": "a813df1b248ca305e5f5ce23ea981ed6c6905504"
1874 1928 },
1875 1929 "dist": {
1876 1930 "type": "zip",
1877   - "url": "https://api.github.com/repos/laravel/framework/zipball/b5d8573ab16027867eaa1ac148893833434f9b02",
1878   - "reference": "b5d8573ab16027867eaa1ac148893833434f9b02",
  1931 + "url": "https://api.github.com/repos/laravel/framework/zipball/a813df1b248ca305e5f5ce23ea981ed6c6905504",
  1932 + "reference": "a813df1b248ca305e5f5ce23ea981ed6c6905504",
1879 1933 "shasum": ""
1880 1934 },
1881 1935 "require": {
... ... @@ -2029,29 +2083,29 @@
2029 2083 "issues": "https://github.com/laravel/framework/issues",
2030 2084 "source": "https://github.com/laravel/framework"
2031 2085 },
2032   - "time": "2020-12-22T21:21:19+00:00"
  2086 + "time": "2021-01-19T14:10:48+00:00"
2033 2087 },
2034 2088 {
2035 2089 "name": "laravel/horizon",
2036   - "version": "v5.6.3",
  2090 + "version": "v5.6.5",
2037 2091 "source": {
2038 2092 "type": "git",
2039 2093 "url": "https://github.com/laravel/horizon.git",
2040   - "reference": "f91245c1b32289da8dfdd3f66f13fe79dde347fd"
  2094 + "reference": "9f0ed546f82e2290e6c8de6151d4da8d29f34a0f"
2041 2095 },
2042 2096 "dist": {
2043 2097 "type": "zip",
2044   - "url": "https://api.github.com/repos/laravel/horizon/zipball/f91245c1b32289da8dfdd3f66f13fe79dde347fd",
2045   - "reference": "f91245c1b32289da8dfdd3f66f13fe79dde347fd",
  2098 + "url": "https://api.github.com/repos/laravel/horizon/zipball/9f0ed546f82e2290e6c8de6151d4da8d29f34a0f",
  2099 + "reference": "9f0ed546f82e2290e6c8de6151d4da8d29f34a0f",
2046 2100 "shasum": ""
2047 2101 },
2048 2102 "require": {
2049 2103 "ext-json": "*",
2050 2104 "ext-pcntl": "*",
2051 2105 "ext-posix": "*",
2052   - "illuminate/contracts": "^8.0",
2053   - "illuminate/queue": "^8.0",
2054   - "illuminate/support": "^8.0",
  2106 + "illuminate/contracts": "^8.17",
  2107 + "illuminate/queue": "^8.17",
  2108 + "illuminate/support": "^8.17",
2055 2109 "nesbot/carbon": "^2.17",
2056 2110 "php": "^7.3|^8.0",
2057 2111 "ramsey/uuid": "^4.0",
... ... @@ -2104,9 +2158,9 @@
2104 2158 ],
2105 2159 "support": {
2106 2160 "issues": "https://github.com/laravel/horizon/issues",
2107   - "source": "https://github.com/laravel/horizon/tree/v5.6.3"
  2161 + "source": "https://github.com/laravel/horizon/tree/v5.6.5"
2108 2162 },
2109   - "time": "2020-12-22T17:03:05+00:00"
  2163 + "time": "2021-01-12T16:51:53+00:00"
2110 2164 },
2111 2165 {
2112 2166 "name": "laravel/legacy-factories",
... ... @@ -2234,16 +2288,16 @@
2234 2288 },
2235 2289 {
2236 2290 "name": "laravel/ui",
2237   - "version": "v3.1.0",
  2291 + "version": "v3.2.0",
2238 2292 "source": {
2239 2293 "type": "git",
2240 2294 "url": "https://github.com/laravel/ui.git",
2241   - "reference": "444072cb2f8baaa15172c5cde2bd30d188c3b7e7"
  2295 + "reference": "a1f82c6283c8373ea1958b8a27c3d5c98cade351"
2242 2296 },
2243 2297 "dist": {
2244 2298 "type": "zip",
2245   - "url": "https://api.github.com/repos/laravel/ui/zipball/444072cb2f8baaa15172c5cde2bd30d188c3b7e7",
2246   - "reference": "444072cb2f8baaa15172c5cde2bd30d188c3b7e7",
  2299 + "url": "https://api.github.com/repos/laravel/ui/zipball/a1f82c6283c8373ea1958b8a27c3d5c98cade351",
  2300 + "reference": "a1f82c6283c8373ea1958b8a27c3d5c98cade351",
2247 2301 "shasum": ""
2248 2302 },
2249 2303 "require": {
... ... @@ -2286,9 +2340,9 @@
2286 2340 ],
2287 2341 "support": {
2288 2342 "issues": "https://github.com/laravel/ui/issues",
2289   - "source": "https://github.com/laravel/ui/tree/v3.1.0"
  2343 + "source": "https://github.com/laravel/ui/tree/v3.2.0"
2290 2344 },
2291   - "time": "2020-11-03T19:51:21+00:00"
  2345 + "time": "2021-01-06T19:20:22+00:00"
2292 2346 },
2293 2347 {
2294 2348 "name": "league/commonmark",
... ... @@ -2720,16 +2774,16 @@
2720 2774 },
2721 2775 {
2722 2776 "name": "league/mime-type-detection",
2723   - "version": "1.5.1",
  2777 + "version": "1.7.0",
2724 2778 "source": {
2725 2779 "type": "git",
2726 2780 "url": "https://github.com/thephpleague/mime-type-detection.git",
2727   - "reference": "353f66d7555d8a90781f6f5e7091932f9a4250aa"
  2781 + "reference": "3b9dff8aaf7323590c1d2e443db701eb1f9aa0d3"
2728 2782 },
2729 2783 "dist": {
2730 2784 "type": "zip",
2731   - "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/353f66d7555d8a90781f6f5e7091932f9a4250aa",
2732   - "reference": "353f66d7555d8a90781f6f5e7091932f9a4250aa",
  2785 + "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/3b9dff8aaf7323590c1d2e443db701eb1f9aa0d3",
  2786 + "reference": "3b9dff8aaf7323590c1d2e443db701eb1f9aa0d3",
2733 2787 "shasum": ""
2734 2788 },
2735 2789 "require": {
... ... @@ -2737,8 +2791,9 @@
2737 2791 "php": "^7.2 || ^8.0"
2738 2792 },
2739 2793 "require-dev": {
2740   - "phpstan/phpstan": "^0.12.36",
2741   - "phpunit/phpunit": "^8.5.8"
  2794 + "friendsofphp/php-cs-fixer": "^2.18",
  2795 + "phpstan/phpstan": "^0.12.68",
  2796 + "phpunit/phpunit": "^8.5.8 || ^9.3"
2742 2797 },
2743 2798 "type": "library",
2744 2799 "autoload": {
... ... @@ -2759,7 +2814,7 @@
2759 2814 "description": "Mime-type detection for Flysystem",
2760 2815 "support": {
2761 2816 "issues": "https://github.com/thephpleague/mime-type-detection/issues",
2762   - "source": "https://github.com/thephpleague/mime-type-detection/tree/1.5.1"
  2817 + "source": "https://github.com/thephpleague/mime-type-detection/tree/1.7.0"
2763 2818 },
2764 2819 "funding": [
2765 2820 {
... ... @@ -2771,7 +2826,7 @@
2771 2826 "type": "tidelift"
2772 2827 }
2773 2828 ],
2774   - "time": "2020-10-18T11:50:25+00:00"
  2829 + "time": "2021-01-18T20:58:21+00:00"
2775 2830 },
2776 2831 {
2777 2832 "name": "maatwebsite/excel",
... ... @@ -3023,20 +3078,20 @@
3023 3078 },
3024 3079 {
3025 3080 "name": "markbaker/matrix",
3026   - "version": "2.0.0",
  3081 + "version": "2.1.0",
3027 3082 "source": {
3028 3083 "type": "git",
3029 3084 "url": "https://github.com/MarkBaker/PHPMatrix.git",
3030   - "reference": "9567d9c4c519fbe40de01dbd1e4469dbbb66f46a"
  3085 + "reference": "9b16a8544a00ac9f9354535ef64d0109f65e300e"
3031 3086 },
3032 3087 "dist": {
3033 3088 "type": "zip",
3034   - "url": "https://api.github.com/repos/MarkBaker/PHPMatrix/zipball/9567d9c4c519fbe40de01dbd1e4469dbbb66f46a",
3035   - "reference": "9567d9c4c519fbe40de01dbd1e4469dbbb66f46a",
  3089 + "url": "https://api.github.com/repos/MarkBaker/PHPMatrix/zipball/9b16a8544a00ac9f9354535ef64d0109f65e300e",
  3090 + "reference": "9b16a8544a00ac9f9354535ef64d0109f65e300e",
3036 3091 "shasum": ""
3037 3092 },
3038 3093 "require": {
3039   - "php": "^7.2 || ^8.0"
  3094 + "php": "^7.1 || ^8.0"
3040 3095 },
3041 3096 "require-dev": {
3042 3097 "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0",
... ... @@ -3054,22 +3109,22 @@
3054 3109 "Matrix\\": "classes/src/"
3055 3110 },
3056 3111 "files": [
3057   - "classes/src/functions/adjoint.php",
3058   - "classes/src/functions/antidiagonal.php",
3059   - "classes/src/functions/cofactors.php",
3060   - "classes/src/functions/determinant.php",
3061   - "classes/src/functions/diagonal.php",
3062   - "classes/src/functions/identity.php",
3063   - "classes/src/functions/inverse.php",
3064   - "classes/src/functions/minors.php",
3065   - "classes/src/functions/trace.php",
3066   - "classes/src/functions/transpose.php",
3067   - "classes/src/operations/add.php",
3068   - "classes/src/operations/directsum.php",
3069   - "classes/src/operations/subtract.php",
3070   - "classes/src/operations/multiply.php",
3071   - "classes/src/operations/divideby.php",
3072   - "classes/src/operations/divideinto.php"
  3112 + "classes/src/Functions/adjoint.php",
  3113 + "classes/src/Functions/antidiagonal.php",
  3114 + "classes/src/Functions/cofactors.php",
  3115 + "classes/src/Functions/determinant.php",
  3116 + "classes/src/Functions/diagonal.php",
  3117 + "classes/src/Functions/identity.php",
  3118 + "classes/src/Functions/inverse.php",
  3119 + "classes/src/Functions/minors.php",
  3120 + "classes/src/Functions/trace.php",
  3121 + "classes/src/Functions/transpose.php",
  3122 + "classes/src/Operations/add.php",
  3123 + "classes/src/Operations/directsum.php",
  3124 + "classes/src/Operations/subtract.php",
  3125 + "classes/src/Operations/multiply.php",
  3126 + "classes/src/Operations/divideby.php",
  3127 + "classes/src/Operations/divideinto.php"
3073 3128 ]
3074 3129 },
3075 3130 "notification-url": "https://packagist.org/downloads/",
... ... @@ -3091,9 +3146,9 @@
3091 3146 ],
3092 3147 "support": {
3093 3148 "issues": "https://github.com/MarkBaker/PHPMatrix/issues",
3094   - "source": "https://github.com/MarkBaker/PHPMatrix/tree/PHP8"
  3149 + "source": "https://github.com/MarkBaker/PHPMatrix/tree/2.1.0"
3095 3150 },
3096   - "time": "2020-08-28T17:11:00+00:00"
  3151 + "time": "2021-01-20T18:10:04+00:00"
3097 3152 },
3098 3153 {
3099 3154 "name": "mll-lab/graphql-php-scalars",
... ... @@ -3699,16 +3754,16 @@
3699 3754 },
3700 3755 {
3701 3756 "name": "phpoffice/phpspreadsheet",
3702   - "version": "1.15.0",
  3757 + "version": "1.16.0",
3703 3758 "source": {
3704 3759 "type": "git",
3705 3760 "url": "https://github.com/PHPOffice/PhpSpreadsheet.git",
3706   - "reference": "a8e8068b31b8119e1daa5b1eb5715a3a8ea8305f"
  3761 + "reference": "76d4323b85129d0c368149c831a07a3e258b2b50"
3707 3762 },
3708 3763 "dist": {
3709 3764 "type": "zip",
3710   - "url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/a8e8068b31b8119e1daa5b1eb5715a3a8ea8305f",
3711   - "reference": "a8e8068b31b8119e1daa5b1eb5715a3a8ea8305f",
  3765 + "url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/76d4323b85129d0c368149c831a07a3e258b2b50",
  3766 + "reference": "76d4323b85129d0c368149c831a07a3e258b2b50",
3712 3767 "shasum": ""
3713 3768 },
3714 3769 "require": {
... ... @@ -3725,10 +3780,11 @@
3725 3780 "ext-xmlwriter": "*",
3726 3781 "ext-zip": "*",
3727 3782 "ext-zlib": "*",
  3783 + "ezyang/htmlpurifier": "^4.13",
3728 3784 "maennchen/zipstream-php": "^2.1",
3729   - "markbaker/complex": "^1.5|^2.0",
3730   - "markbaker/matrix": "^1.2|^2.0",
3731   - "php": "^7.2|^8.0",
  3785 + "markbaker/complex": "^1.5||^2.0",
  3786 + "markbaker/matrix": "^1.2||^2.0",
  3787 + "php": "^7.2||^8.0",
3732 3788 "psr/http-client": "^1.0",
3733 3789 "psr/http-factory": "^1.0",
3734 3790 "psr/simple-cache": "^1.0"
... ... @@ -3739,7 +3795,7 @@
3739 3795 "jpgraph/jpgraph": "^4.0",
3740 3796 "mpdf/mpdf": "^8.0",
3741 3797 "phpcompatibility/php-compatibility": "^9.3",
3742   - "phpunit/phpunit": "^8.5|^9.3",
  3798 + "phpunit/phpunit": "^8.5||^9.3",
3743 3799 "squizlabs/php_codesniffer": "^3.5",
3744 3800 "tecnickcom/tcpdf": "^6.3"
3745 3801 },
... ... @@ -3793,9 +3849,9 @@
3793 3849 ],
3794 3850 "support": {
3795 3851 "issues": "https://github.com/PHPOffice/PhpSpreadsheet/issues",
3796   - "source": "https://github.com/PHPOffice/PhpSpreadsheet/tree/1.15.0"
  3852 + "source": "https://github.com/PHPOffice/PhpSpreadsheet/tree/1.16.0"
3797 3853 },
3798   - "time": "2020-10-11T13:20:59+00:00"
  3854 + "time": "2020-12-31T18:03:49+00:00"
3799 3855 },
3800 3856 {
3801 3857 "name": "phpoption/phpoption",
... ... @@ -4469,16 +4525,16 @@
4469 4525 },
4470 4526 {
4471 4527 "name": "psy/psysh",
4472   - "version": "v0.10.5",
  4528 + "version": "v0.10.6",
4473 4529 "source": {
4474 4530 "type": "git",
4475 4531 "url": "https://github.com/bobthecow/psysh.git",
4476   - "reference": "7c710551d4a2653afa259c544508dc18a9098956"
  4532 + "reference": "6f990c19f91729de8b31e639d6e204ea59f19cf3"
4477 4533 },
4478 4534 "dist": {
4479 4535 "type": "zip",
4480   - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/7c710551d4a2653afa259c544508dc18a9098956",
4481   - "reference": "7c710551d4a2653afa259c544508dc18a9098956",
  4536 + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/6f990c19f91729de8b31e639d6e204ea59f19cf3",
  4537 + "reference": "6f990c19f91729de8b31e639d6e204ea59f19cf3",
4482 4538 "shasum": ""
4483 4539 },
4484 4540 "require": {
... ... @@ -4507,7 +4563,7 @@
4507 4563 "type": "library",
4508 4564 "extra": {
4509 4565 "branch-alias": {
4510   - "dev-master": "0.10.x-dev"
  4566 + "dev-main": "0.10.x-dev"
4511 4567 }
4512 4568 },
4513 4569 "autoload": {
... ... @@ -4539,9 +4595,9 @@
4539 4595 ],
4540 4596 "support": {
4541 4597 "issues": "https://github.com/bobthecow/psysh/issues",
4542   - "source": "https://github.com/bobthecow/psysh/tree/v0.10.5"
  4598 + "source": "https://github.com/bobthecow/psysh/tree/v0.10.6"
4543 4599 },
4544   - "time": "2020-12-04T02:51:30+00:00"
  4600 + "time": "2021-01-18T15:53:43+00:00"
4545 4601 },
4546 4602 {
4547 4603 "name": "ralouphie/getallheaders",
... ... @@ -4869,16 +4925,16 @@
4869 4925 },
4870 4926 {
4871 4927 "name": "swiftmailer/swiftmailer",
4872   - "version": "v6.2.4",
  4928 + "version": "v6.2.5",
4873 4929 "source": {
4874 4930 "type": "git",
4875 4931 "url": "https://github.com/swiftmailer/swiftmailer.git",
4876   - "reference": "56f0ab23f54c4ccbb0d5dcc67ff8552e0c98d59e"
  4932 + "reference": "698a6a9f54d7eb321274de3ad19863802c879fb7"
4877 4933 },
4878 4934 "dist": {
4879 4935 "type": "zip",
4880   - "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/56f0ab23f54c4ccbb0d5dcc67ff8552e0c98d59e",
4881   - "reference": "56f0ab23f54c4ccbb0d5dcc67ff8552e0c98d59e",
  4936 + "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/698a6a9f54d7eb321274de3ad19863802c879fb7",
  4937 + "reference": "698a6a9f54d7eb321274de3ad19863802c879fb7",
4882 4938 "shasum": ""
4883 4939 },
4884 4940 "require": {
... ... @@ -4928,7 +4984,7 @@
4928 4984 ],
4929 4985 "support": {
4930 4986 "issues": "https://github.com/swiftmailer/swiftmailer/issues",
4931   - "source": "https://github.com/swiftmailer/swiftmailer/tree/v6.2.4"
  4987 + "source": "https://github.com/swiftmailer/swiftmailer/tree/v6.2.5"
4932 4988 },
4933 4989 "funding": [
4934 4990 {
... ... @@ -4940,7 +4996,7 @@
4940 4996 "type": "tidelift"
4941 4997 }
4942 4998 ],
4943   - "time": "2020-12-08T18:02:06+00:00"
  4999 + "time": "2021-01-12T09:35:59+00:00"
4944 5000 },
4945 5001 {
4946 5002 "name": "symfony/console",
... ... @@ -5811,16 +5867,16 @@
5811 5867 },
5812 5868 {
5813 5869 "name": "symfony/polyfill-ctype",
5814   - "version": "v1.20.0",
  5870 + "version": "v1.22.0",
5815 5871 "source": {
5816 5872 "type": "git",
5817 5873 "url": "https://github.com/symfony/polyfill-ctype.git",
5818   - "reference": "f4ba089a5b6366e453971d3aad5fe8e897b37f41"
  5874 + "reference": "c6c942b1ac76c82448322025e084cadc56048b4e"
5819 5875 },
5820 5876 "dist": {
5821 5877 "type": "zip",
5822   - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/f4ba089a5b6366e453971d3aad5fe8e897b37f41",
5823   - "reference": "f4ba089a5b6366e453971d3aad5fe8e897b37f41",
  5878 + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/c6c942b1ac76c82448322025e084cadc56048b4e",
  5879 + "reference": "c6c942b1ac76c82448322025e084cadc56048b4e",
5824 5880 "shasum": ""
5825 5881 },
5826 5882 "require": {
... ... @@ -5832,7 +5888,7 @@
5832 5888 "type": "library",
5833 5889 "extra": {
5834 5890 "branch-alias": {
5835   - "dev-main": "1.20-dev"
  5891 + "dev-main": "1.22-dev"
5836 5892 },
5837 5893 "thanks": {
5838 5894 "name": "symfony/polyfill",
... ... @@ -5870,7 +5926,7 @@
5870 5926 "portable"
5871 5927 ],
5872 5928 "support": {
5873   - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.20.0"
  5929 + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.22.0"
5874 5930 },
5875 5931 "funding": [
5876 5932 {
... ... @@ -5886,20 +5942,20 @@
5886 5942 "type": "tidelift"
5887 5943 }
5888 5944 ],
5889   - "time": "2020-10-23T14:02:19+00:00"
  5945 + "time": "2021-01-07T16:49:33+00:00"
5890 5946 },
5891 5947 {
5892 5948 "name": "symfony/polyfill-iconv",
5893   - "version": "v1.20.0",
  5949 + "version": "v1.22.0",
5894 5950 "source": {
5895 5951 "type": "git",
5896 5952 "url": "https://github.com/symfony/polyfill-iconv.git",
5897   - "reference": "c536646fdb4f29104dd26effc2fdcb9a5b085024"
  5953 + "reference": "b34bfb8c4c22650ac080d2662ae3502e5f2f4ae6"
5898 5954 },
5899 5955 "dist": {
5900 5956 "type": "zip",
5901   - "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/c536646fdb4f29104dd26effc2fdcb9a5b085024",
5902   - "reference": "c536646fdb4f29104dd26effc2fdcb9a5b085024",
  5957 + "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/b34bfb8c4c22650ac080d2662ae3502e5f2f4ae6",
  5958 + "reference": "b34bfb8c4c22650ac080d2662ae3502e5f2f4ae6",
5903 5959 "shasum": ""
5904 5960 },
5905 5961 "require": {
... ... @@ -5911,7 +5967,7 @@
5911 5967 "type": "library",
5912 5968 "extra": {
5913 5969 "branch-alias": {
5914   - "dev-main": "1.20-dev"
  5970 + "dev-main": "1.22-dev"
5915 5971 },
5916 5972 "thanks": {
5917 5973 "name": "symfony/polyfill",
... ... @@ -5950,7 +6006,7 @@
5950 6006 "shim"
5951 6007 ],
5952 6008 "support": {
5953   - "source": "https://github.com/symfony/polyfill-iconv/tree/v1.20.0"
  6009 + "source": "https://github.com/symfony/polyfill-iconv/tree/v1.22.0"
5954 6010 },
5955 6011 "funding": [
5956 6012 {
... ... @@ -5966,20 +6022,20 @@
5966 6022 "type": "tidelift"
5967 6023 }
5968 6024 ],
5969   - "time": "2020-10-23T14:02:19+00:00"
  6025 + "time": "2021-01-07T16:49:33+00:00"
5970 6026 },
5971 6027 {
5972 6028 "name": "symfony/polyfill-intl-grapheme",
5973   - "version": "v1.20.0",
  6029 + "version": "v1.22.0",
5974 6030 "source": {
5975 6031 "type": "git",
5976 6032 "url": "https://github.com/symfony/polyfill-intl-grapheme.git",
5977   - "reference": "c7cf3f858ec7d70b89559d6e6eb1f7c2517d479c"
  6033 + "reference": "267a9adeb8ecb8071040a740930e077cdfb987af"
5978 6034 },
5979 6035 "dist": {
5980 6036 "type": "zip",
5981   - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/c7cf3f858ec7d70b89559d6e6eb1f7c2517d479c",
5982   - "reference": "c7cf3f858ec7d70b89559d6e6eb1f7c2517d479c",
  6037 + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/267a9adeb8ecb8071040a740930e077cdfb987af",
  6038 + "reference": "267a9adeb8ecb8071040a740930e077cdfb987af",
5983 6039 "shasum": ""
5984 6040 },
5985 6041 "require": {
... ... @@ -5991,7 +6047,7 @@
5991 6047 "type": "library",
5992 6048 "extra": {
5993 6049 "branch-alias": {
5994   - "dev-main": "1.20-dev"
  6050 + "dev-main": "1.22-dev"
5995 6051 },
5996 6052 "thanks": {
5997 6053 "name": "symfony/polyfill",
... ... @@ -6031,7 +6087,7 @@
6031 6087 "shim"
6032 6088 ],
6033 6089 "support": {
6034   - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.20.0"
  6090 + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.22.0"
6035 6091 },
6036 6092 "funding": [
6037 6093 {
... ... @@ -6047,20 +6103,20 @@
6047 6103 "type": "tidelift"
6048 6104 }
6049 6105 ],
6050   - "time": "2020-10-23T14:02:19+00:00"
  6106 + "time": "2021-01-07T16:49:33+00:00"
6051 6107 },
6052 6108 {
6053 6109 "name": "symfony/polyfill-intl-idn",
6054   - "version": "v1.20.0",
  6110 + "version": "v1.22.0",
6055 6111 "source": {
6056 6112 "type": "git",
6057 6113 "url": "https://github.com/symfony/polyfill-intl-idn.git",
6058   - "reference": "3b75acd829741c768bc8b1f84eb33265e7cc5117"
  6114 + "reference": "0eb8293dbbcd6ef6bf81404c9ce7d95bcdf34f44"
6059 6115 },
6060 6116 "dist": {
6061 6117 "type": "zip",
6062   - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/3b75acd829741c768bc8b1f84eb33265e7cc5117",
6063   - "reference": "3b75acd829741c768bc8b1f84eb33265e7cc5117",
  6118 + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/0eb8293dbbcd6ef6bf81404c9ce7d95bcdf34f44",
  6119 + "reference": "0eb8293dbbcd6ef6bf81404c9ce7d95bcdf34f44",
6064 6120 "shasum": ""
6065 6121 },
6066 6122 "require": {
... ... @@ -6074,7 +6130,7 @@
6074 6130 "type": "library",
6075 6131 "extra": {
6076 6132 "branch-alias": {
6077   - "dev-main": "1.20-dev"
  6133 + "dev-main": "1.22-dev"
6078 6134 },
6079 6135 "thanks": {
6080 6136 "name": "symfony/polyfill",
... ... @@ -6118,7 +6174,7 @@
6118 6174 "shim"
6119 6175 ],
6120 6176 "support": {
6121   - "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.20.0"
  6177 + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.22.0"
6122 6178 },
6123 6179 "funding": [
6124 6180 {
... ... @@ -6134,20 +6190,20 @@
6134 6190 "type": "tidelift"
6135 6191 }
6136 6192 ],
6137   - "time": "2020-10-23T14:02:19+00:00"
  6193 + "time": "2021-01-07T16:49:33+00:00"
6138 6194 },
6139 6195 {
6140 6196 "name": "symfony/polyfill-intl-normalizer",
6141   - "version": "v1.20.0",
  6197 + "version": "v1.22.0",
6142 6198 "source": {
6143 6199 "type": "git",
6144 6200 "url": "https://github.com/symfony/polyfill-intl-normalizer.git",
6145   - "reference": "727d1096295d807c309fb01a851577302394c897"
  6201 + "reference": "6e971c891537eb617a00bb07a43d182a6915faba"
6146 6202 },
6147 6203 "dist": {
6148 6204 "type": "zip",
6149   - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/727d1096295d807c309fb01a851577302394c897",
6150   - "reference": "727d1096295d807c309fb01a851577302394c897",
  6205 + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/6e971c891537eb617a00bb07a43d182a6915faba",
  6206 + "reference": "6e971c891537eb617a00bb07a43d182a6915faba",
6151 6207 "shasum": ""
6152 6208 },
6153 6209 "require": {
... ... @@ -6159,7 +6215,7 @@
6159 6215 "type": "library",
6160 6216 "extra": {
6161 6217 "branch-alias": {
6162   - "dev-main": "1.20-dev"
  6218 + "dev-main": "1.22-dev"
6163 6219 },
6164 6220 "thanks": {
6165 6221 "name": "symfony/polyfill",
... ... @@ -6202,7 +6258,7 @@
6202 6258 "shim"
6203 6259 ],
6204 6260 "support": {
6205   - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.20.0"
  6261 + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.22.0"
6206 6262 },
6207 6263 "funding": [
6208 6264 {
... ... @@ -6218,20 +6274,20 @@
6218 6274 "type": "tidelift"
6219 6275 }
6220 6276 ],
6221   - "time": "2020-10-23T14:02:19+00:00"
  6277 + "time": "2021-01-07T17:09:11+00:00"
6222 6278 },
6223 6279 {
6224 6280 "name": "symfony/polyfill-mbstring",
6225   - "version": "v1.20.0",
  6281 + "version": "v1.22.0",
6226 6282 "source": {
6227 6283 "type": "git",
6228 6284 "url": "https://github.com/symfony/polyfill-mbstring.git",
6229   - "reference": "39d483bdf39be819deabf04ec872eb0b2410b531"
  6285 + "reference": "f377a3dd1fde44d37b9831d68dc8dea3ffd28e13"
6230 6286 },
6231 6287 "dist": {
6232 6288 "type": "zip",
6233   - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/39d483bdf39be819deabf04ec872eb0b2410b531",
6234   - "reference": "39d483bdf39be819deabf04ec872eb0b2410b531",
  6289 + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/f377a3dd1fde44d37b9831d68dc8dea3ffd28e13",
  6290 + "reference": "f377a3dd1fde44d37b9831d68dc8dea3ffd28e13",
6235 6291 "shasum": ""
6236 6292 },
6237 6293 "require": {
... ... @@ -6243,7 +6299,7 @@
6243 6299 "type": "library",
6244 6300 "extra": {
6245 6301 "branch-alias": {
6246   - "dev-main": "1.20-dev"
  6302 + "dev-main": "1.22-dev"
6247 6303 },
6248 6304 "thanks": {
6249 6305 "name": "symfony/polyfill",
... ... @@ -6282,7 +6338,7 @@
6282 6338 "shim"
6283 6339 ],
6284 6340 "support": {
6285   - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.20.0"
  6341 + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.22.0"
6286 6342 },
6287 6343 "funding": [
6288 6344 {
... ... @@ -6298,20 +6354,20 @@
6298 6354 "type": "tidelift"
6299 6355 }
6300 6356 ],
6301   - "time": "2020-10-23T14:02:19+00:00"
  6357 + "time": "2021-01-07T16:49:33+00:00"
6302 6358 },
6303 6359 {
6304 6360 "name": "symfony/polyfill-php72",
6305   - "version": "v1.20.0",
  6361 + "version": "v1.22.0",
6306 6362 "source": {
6307 6363 "type": "git",
6308 6364 "url": "https://github.com/symfony/polyfill-php72.git",
6309   - "reference": "cede45fcdfabdd6043b3592e83678e42ec69e930"
  6365 + "reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9"
6310 6366 },
6311 6367 "dist": {
6312 6368 "type": "zip",
6313   - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/cede45fcdfabdd6043b3592e83678e42ec69e930",
6314   - "reference": "cede45fcdfabdd6043b3592e83678e42ec69e930",
  6369 + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9",
  6370 + "reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9",
6315 6371 "shasum": ""
6316 6372 },
6317 6373 "require": {
... ... @@ -6320,7 +6376,7 @@
6320 6376 "type": "library",
6321 6377 "extra": {
6322 6378 "branch-alias": {
6323   - "dev-main": "1.20-dev"
  6379 + "dev-main": "1.22-dev"
6324 6380 },
6325 6381 "thanks": {
6326 6382 "name": "symfony/polyfill",
... ... @@ -6358,7 +6414,7 @@
6358 6414 "shim"
6359 6415 ],
6360 6416 "support": {
6361   - "source": "https://github.com/symfony/polyfill-php72/tree/v1.20.0"
  6417 + "source": "https://github.com/symfony/polyfill-php72/tree/v1.22.0"
6362 6418 },
6363 6419 "funding": [
6364 6420 {
... ... @@ -6374,20 +6430,20 @@
6374 6430 "type": "tidelift"
6375 6431 }
6376 6432 ],
6377   - "time": "2020-10-23T14:02:19+00:00"
  6433 + "time": "2021-01-07T16:49:33+00:00"
6378 6434 },
6379 6435 {
6380 6436 "name": "symfony/polyfill-php73",
6381   - "version": "v1.20.0",
  6437 + "version": "v1.22.0",
6382 6438 "source": {
6383 6439 "type": "git",
6384 6440 "url": "https://github.com/symfony/polyfill-php73.git",
6385   - "reference": "8ff431c517be11c78c48a39a66d37431e26a6bed"
  6441 + "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2"
6386 6442 },
6387 6443 "dist": {
6388 6444 "type": "zip",
6389   - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/8ff431c517be11c78c48a39a66d37431e26a6bed",
6390   - "reference": "8ff431c517be11c78c48a39a66d37431e26a6bed",
  6445 + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/a678b42e92f86eca04b7fa4c0f6f19d097fb69e2",
  6446 + "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2",
6391 6447 "shasum": ""
6392 6448 },
6393 6449 "require": {
... ... @@ -6396,7 +6452,7 @@
6396 6452 "type": "library",
6397 6453 "extra": {
6398 6454 "branch-alias": {
6399   - "dev-main": "1.20-dev"
  6455 + "dev-main": "1.22-dev"
6400 6456 },
6401 6457 "thanks": {
6402 6458 "name": "symfony/polyfill",
... ... @@ -6437,7 +6493,7 @@
6437 6493 "shim"
6438 6494 ],
6439 6495 "support": {
6440   - "source": "https://github.com/symfony/polyfill-php73/tree/v1.20.0"
  6496 + "source": "https://github.com/symfony/polyfill-php73/tree/v1.22.0"
6441 6497 },
6442 6498 "funding": [
6443 6499 {
... ... @@ -6453,20 +6509,20 @@
6453 6509 "type": "tidelift"
6454 6510 }
6455 6511 ],
6456   - "time": "2020-10-23T14:02:19+00:00"
  6512 + "time": "2021-01-07T16:49:33+00:00"
6457 6513 },
6458 6514 {
6459 6515 "name": "symfony/polyfill-php80",
6460   - "version": "v1.20.0",
  6516 + "version": "v1.22.0",
6461 6517 "source": {
6462 6518 "type": "git",
6463 6519 "url": "https://github.com/symfony/polyfill-php80.git",
6464   - "reference": "e70aa8b064c5b72d3df2abd5ab1e90464ad009de"
  6520 + "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91"
6465 6521 },
6466 6522 "dist": {
6467 6523 "type": "zip",
6468   - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/e70aa8b064c5b72d3df2abd5ab1e90464ad009de",
6469   - "reference": "e70aa8b064c5b72d3df2abd5ab1e90464ad009de",
  6524 + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dc3063ba22c2a1fd2f45ed856374d79114998f91",
  6525 + "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91",
6470 6526 "shasum": ""
6471 6527 },
6472 6528 "require": {
... ... @@ -6475,7 +6531,7 @@
6475 6531 "type": "library",
6476 6532 "extra": {
6477 6533 "branch-alias": {
6478   - "dev-main": "1.20-dev"
  6534 + "dev-main": "1.22-dev"
6479 6535 },
6480 6536 "thanks": {
6481 6537 "name": "symfony/polyfill",
... ... @@ -6520,7 +6576,7 @@
6520 6576 "shim"
6521 6577 ],
6522 6578 "support": {
6523   - "source": "https://github.com/symfony/polyfill-php80/tree/v1.20.0"
  6579 + "source": "https://github.com/symfony/polyfill-php80/tree/v1.22.0"
6524 6580 },
6525 6581 "funding": [
6526 6582 {
... ... @@ -6536,7 +6592,7 @@
6536 6592 "type": "tidelift"
6537 6593 }
6538 6594 ],
6539   - "time": "2020-10-23T14:02:19+00:00"
  6595 + "time": "2021-01-07T16:49:33+00:00"
6540 6596 },
6541 6597 {
6542 6598 "name": "symfony/process",
... ... @@ -7360,16 +7416,16 @@
7360 7416 },
7361 7417 {
7362 7418 "name": "vlucas/phpdotenv",
7363   - "version": "v5.2.0",
  7419 + "version": "v5.3.0",
7364 7420 "source": {
7365 7421 "type": "git",
7366 7422 "url": "https://github.com/vlucas/phpdotenv.git",
7367   - "reference": "fba64139db67123c7a57072e5f8d3db10d160b66"
  7423 + "reference": "b3eac5c7ac896e52deab4a99068e3f4ab12d9e56"
7368 7424 },
7369 7425 "dist": {
7370 7426 "type": "zip",
7371   - "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/fba64139db67123c7a57072e5f8d3db10d160b66",
7372   - "reference": "fba64139db67123c7a57072e5f8d3db10d160b66",
  7427 + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/b3eac5c7ac896e52deab4a99068e3f4ab12d9e56",
  7428 + "reference": "b3eac5c7ac896e52deab4a99068e3f4ab12d9e56",
7373 7429 "shasum": ""
7374 7430 },
7375 7431 "require": {
... ... @@ -7384,7 +7440,7 @@
7384 7440 "require-dev": {
7385 7441 "bamarni/composer-bin-plugin": "^1.4.1",
7386 7442 "ext-filter": "*",
7387   - "phpunit/phpunit": "^7.5.20 || ^8.5.2 || ^9.0"
  7443 + "phpunit/phpunit": "^7.5.20 || ^8.5.14 || ^9.5.1"
7388 7444 },
7389 7445 "suggest": {
7390 7446 "ext-filter": "Required to use the boolean validator."
... ... @@ -7392,7 +7448,7 @@
7392 7448 "type": "library",
7393 7449 "extra": {
7394 7450 "branch-alias": {
7395   - "dev-master": "5.2-dev"
  7451 + "dev-master": "5.3-dev"
7396 7452 }
7397 7453 },
7398 7454 "autoload": {
... ... @@ -7424,7 +7480,7 @@
7424 7480 ],
7425 7481 "support": {
7426 7482 "issues": "https://github.com/vlucas/phpdotenv/issues",
7427   - "source": "https://github.com/vlucas/phpdotenv/tree/v5.2.0"
  7483 + "source": "https://github.com/vlucas/phpdotenv/tree/v5.3.0"
7428 7484 },
7429 7485 "funding": [
7430 7486 {
... ... @@ -7436,7 +7492,7 @@
7436 7492 "type": "tidelift"
7437 7493 }
7438 7494 ],
7439   - "time": "2020-09-14T15:57:31+00:00"
  7495 + "time": "2021-01-20T15:23:13+00:00"
7440 7496 },
7441 7497 {
7442 7498 "name": "voku/portable-ascii",
... ... @@ -7631,16 +7687,16 @@
7631 7687 "packages-dev": [
7632 7688 {
7633 7689 "name": "barryvdh/laravel-debugbar",
7634   - "version": "v3.5.1",
  7690 + "version": "v3.5.2",
7635 7691 "source": {
7636 7692 "type": "git",
7637 7693 "url": "https://github.com/barryvdh/laravel-debugbar.git",
7638   - "reference": "233c10688f4c1a6e66ed2ef123038b1363d1bedc"
  7694 + "reference": "cae0a8d1cb89b0f0522f65e60465e16d738e069b"
7639 7695 },
7640 7696 "dist": {
7641 7697 "type": "zip",
7642   - "url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/233c10688f4c1a6e66ed2ef123038b1363d1bedc",
7643   - "reference": "233c10688f4c1a6e66ed2ef123038b1363d1bedc",
  7698 + "url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/cae0a8d1cb89b0f0522f65e60465e16d738e069b",
  7699 + "reference": "cae0a8d1cb89b0f0522f65e60465e16d738e069b",
7644 7700 "shasum": ""
7645 7701 },
7646 7702 "require": {
... ... @@ -7653,6 +7709,7 @@
7653 7709 "symfony/finder": "^4.3|^5"
7654 7710 },
7655 7711 "require-dev": {
  7712 + "mockery/mockery": "^1.3.3",
7656 7713 "orchestra/testbench-dusk": "^4|^5|^6",
7657 7714 "phpunit/phpunit": "^8.5|^9.0",
7658 7715 "squizlabs/php_codesniffer": "^3.5"
... ... @@ -7699,7 +7756,7 @@
7699 7756 ],
7700 7757 "support": {
7701 7758 "issues": "https://github.com/barryvdh/laravel-debugbar/issues",
7702   - "source": "https://github.com/barryvdh/laravel-debugbar/tree/v3.5.1"
  7759 + "source": "https://github.com/barryvdh/laravel-debugbar/tree/v3.5.2"
7703 7760 },
7704 7761 "funding": [
7705 7762 {
... ... @@ -7707,7 +7764,7 @@
7707 7764 "type": "github"
7708 7765 }
7709 7766 ],
7710   - "time": "2020-09-07T19:32:39+00:00"
  7767 + "time": "2021-01-06T14:21:44+00:00"
7711 7768 },
7712 7769 {
7713 7770 "name": "beyondcode/laravel-dump-server",
... ... @@ -8295,16 +8352,16 @@
8295 8352 },
8296 8353 {
8297 8354 "name": "friendsofphp/php-cs-fixer",
8298   - "version": "v2.17.3",
  8355 + "version": "v2.18.0",
8299 8356 "source": {
8300 8357 "type": "git",
8301 8358 "url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git",
8302   - "reference": "bd32f5dd72cdfc7b53f54077f980e144bfa2f595"
  8359 + "reference": "cbc5b50bfa2688a1afca20e5a8c71f058e9ccbef"
8303 8360 },
8304 8361 "dist": {
8305 8362 "type": "zip",
8306   - "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/bd32f5dd72cdfc7b53f54077f980e144bfa2f595",
8307   - "reference": "bd32f5dd72cdfc7b53f54077f980e144bfa2f595",
  8363 + "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/cbc5b50bfa2688a1afca20e5a8c71f058e9ccbef",
  8364 + "reference": "cbc5b50bfa2688a1afca20e5a8c71f058e9ccbef",
8308 8365 "shasum": ""
8309 8366 },
8310 8367 "require": {
... ... @@ -8326,7 +8383,6 @@
8326 8383 "symfony/stopwatch": "^3.0 || ^4.0 || ^5.0"
8327 8384 },
8328 8385 "require-dev": {
8329   - "johnkary/phpunit-speedtrap": "^1.1 || ^2.0 || ^3.0",
8330 8386 "justinrainbow/json-schema": "^5.0",
8331 8387 "keradus/cli-executor": "^1.4",
8332 8388 "mikey179/vfsstream": "^1.6",
... ... @@ -8335,11 +8391,11 @@
8335 8391 "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.2",
8336 8392 "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.2.1",
8337 8393 "phpspec/prophecy-phpunit": "^1.1 || ^2.0",
8338   - "phpunit/phpunit": "^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.13 || ^9.4.4 <9.5",
  8394 + "phpunit/phpunit": "^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.13 || ^9.5",
8339 8395 "phpunitgoodpractices/polyfill": "^1.5",
8340 8396 "phpunitgoodpractices/traits": "^1.9.1",
8341 8397 "sanmai/phpunit-legacy-adapter": "^6.4 || ^8.2.1",
8342   - "symfony/phpunit-bridge": "^5.1",
  8398 + "symfony/phpunit-bridge": "^5.2.1",
8343 8399 "symfony/yaml": "^3.0 || ^4.0 || ^5.0"
8344 8400 },
8345 8401 "suggest": {
... ... @@ -8387,7 +8443,7 @@
8387 8443 "description": "A tool to automatically fix PHP code style",
8388 8444 "support": {
8389 8445 "issues": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/issues",
8390   - "source": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/tree/v2.17.3"
  8446 + "source": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/tree/v2.18.0"
8391 8447 },
8392 8448 "funding": [
8393 8449 {
... ... @@ -8395,7 +8451,7 @@
8395 8451 "type": "github"
8396 8452 }
8397 8453 ],
8398   - "time": "2020-12-24T11:14:44+00:00"
  8454 + "time": "2021-01-18T03:31:06+00:00"
8399 8455 },
8400 8456 {
8401 8457 "name": "hamcrest/hamcrest-php",
... ... @@ -8450,16 +8506,16 @@
8450 8506 },
8451 8507 {
8452 8508 "name": "laravel/dusk",
8453   - "version": "v6.11.0",
  8509 + "version": "v6.11.1",
8454 8510 "source": {
8455 8511 "type": "git",
8456 8512 "url": "https://github.com/laravel/dusk.git",
8457   - "reference": "7e05b3ca4f17afcba528c4c5a2390a2dd9949b38"
  8513 + "reference": "2fb73c87b5805ced07e8ab4487b3c1ace0b65ae9"
8458 8514 },
8459 8515 "dist": {
8460 8516 "type": "zip",
8461   - "url": "https://api.github.com/repos/laravel/dusk/zipball/7e05b3ca4f17afcba528c4c5a2390a2dd9949b38",
8462   - "reference": "7e05b3ca4f17afcba528c4c5a2390a2dd9949b38",
  8517 + "url": "https://api.github.com/repos/laravel/dusk/zipball/2fb73c87b5805ced07e8ab4487b3c1ace0b65ae9",
  8518 + "reference": "2fb73c87b5805ced07e8ab4487b3c1ace0b65ae9",
8463 8519 "shasum": ""
8464 8520 },
8465 8521 "require": {
... ... @@ -8516,9 +8572,9 @@
8516 8572 ],
8517 8573 "support": {
8518 8574 "issues": "https://github.com/laravel/dusk/issues",
8519   - "source": "https://github.com/laravel/dusk/tree/v6.11.0"
  8575 + "source": "https://github.com/laravel/dusk/tree/v6.11.1"
8520 8576 },
8521   - "time": "2020-12-22T16:57:45+00:00"
  8577 + "time": "2021-01-19T14:58:07+00:00"
8522 8578 },
8523 8579 {
8524 8580 "name": "laravel/sail",
... ... @@ -8645,16 +8701,16 @@
8645 8701 },
8646 8702 {
8647 8703 "name": "maximebf/debugbar",
8648   - "version": "v1.16.4",
  8704 + "version": "v1.16.5",
8649 8705 "source": {
8650 8706 "type": "git",
8651 8707 "url": "https://github.com/maximebf/php-debugbar.git",
8652   - "reference": "c86c717e4bf3c6d98422da5c38bfa7b0f494b04c"
  8708 + "reference": "6d51ee9e94cff14412783785e79a4e7ef97b9d62"
8653 8709 },
8654 8710 "dist": {
8655 8711 "type": "zip",
8656   - "url": "https://api.github.com/repos/maximebf/php-debugbar/zipball/c86c717e4bf3c6d98422da5c38bfa7b0f494b04c",
8657   - "reference": "c86c717e4bf3c6d98422da5c38bfa7b0f494b04c",
  8712 + "url": "https://api.github.com/repos/maximebf/php-debugbar/zipball/6d51ee9e94cff14412783785e79a4e7ef97b9d62",
  8713 + "reference": "6d51ee9e94cff14412783785e79a4e7ef97b9d62",
8658 8714 "shasum": ""
8659 8715 },
8660 8716 "require": {
... ... @@ -8704,9 +8760,9 @@
8704 8760 ],
8705 8761 "support": {
8706 8762 "issues": "https://github.com/maximebf/php-debugbar/issues",
8707   - "source": "https://github.com/maximebf/php-debugbar/tree/v1.16.4"
  8763 + "source": "https://github.com/maximebf/php-debugbar/tree/v1.16.5"
8708 8764 },
8709   - "time": "2020-12-07T10:48:48+00:00"
  8765 + "time": "2020-12-07T11:07:24+00:00"
8710 8766 },
8711 8767 {
8712 8768 "name": "mockery/mockery",
... ... @@ -8840,16 +8896,16 @@
8840 8896 },
8841 8897 {
8842 8898 "name": "nunomaduro/collision",
8843   - "version": "v5.1.0",
  8899 + "version": "v5.2.0",
8844 8900 "source": {
8845 8901 "type": "git",
8846 8902 "url": "https://github.com/nunomaduro/collision.git",
8847   - "reference": "7c2b95589bf81e274e61e47f7672a1b2c3e06eaa"
  8903 + "reference": "aca954fd03414ba0dd85d7d8e42ba9b251893d1f"
8848 8904 },
8849 8905 "dist": {
8850 8906 "type": "zip",
8851   - "url": "https://api.github.com/repos/nunomaduro/collision/zipball/7c2b95589bf81e274e61e47f7672a1b2c3e06eaa",
8852   - "reference": "7c2b95589bf81e274e61e47f7672a1b2c3e06eaa",
  8907 + "url": "https://api.github.com/repos/nunomaduro/collision/zipball/aca954fd03414ba0dd85d7d8e42ba9b251893d1f",
  8908 + "reference": "aca954fd03414ba0dd85d7d8e42ba9b251893d1f",
8853 8909 "shasum": ""
8854 8910 },
8855 8911 "require": {
... ... @@ -8859,16 +8915,16 @@
8859 8915 "symfony/console": "^5.0"
8860 8916 },
8861 8917 "require-dev": {
8862   - "fideloper/proxy": "^4.4.0",
8863   - "friendsofphp/php-cs-fixer": "^2.16.4",
8864   - "fruitcake/laravel-cors": "^2.0.1",
8865   - "laravel/framework": "^8.0",
8866   - "laravel/tinker": "^2.4.1",
  8918 + "brianium/paratest": "^6.1",
  8919 + "fideloper/proxy": "^4.4.1",
  8920 + "friendsofphp/php-cs-fixer": "^2.17.3",
  8921 + "fruitcake/laravel-cors": "^2.0.3",
  8922 + "laravel/framework": "^9.0",
8867 8923 "nunomaduro/larastan": "^0.6.2",
8868 8924 "nunomaduro/mock-final-classes": "^1.0",
8869   - "orchestra/testbench": "^6.0",
8870   - "phpstan/phpstan": "^0.12.36",
8871   - "phpunit/phpunit": "^9.3.3"
  8925 + "orchestra/testbench": "^7.0",
  8926 + "phpstan/phpstan": "^0.12.64",
  8927 + "phpunit/phpunit": "^9.5.0"
8872 8928 },
8873 8929 "type": "library",
8874 8930 "extra": {
... ... @@ -8924,7 +8980,7 @@
8924 8980 "type": "patreon"
8925 8981 }
8926 8982 ],
8927   - "time": "2020-10-29T14:50:40+00:00"
  8983 + "time": "2021-01-13T10:00:08+00:00"
8928 8984 },
8929 8985 {
8930 8986 "name": "phar-io/manifest",
... ... @@ -9708,16 +9764,16 @@
9708 9764 },
9709 9765 {
9710 9766 "name": "phpunit/phpunit",
9711   - "version": "9.5.0",
  9767 + "version": "9.5.1",
9712 9768 "source": {
9713 9769 "type": "git",
9714 9770 "url": "https://github.com/sebastianbergmann/phpunit.git",
9715   - "reference": "8e16c225d57c3d6808014df6b1dd7598d0a5bbbe"
  9771 + "reference": "e7bdf4085de85a825f4424eae52c99a1cec2f360"
9716 9772 },
9717 9773 "dist": {
9718 9774 "type": "zip",
9719   - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/8e16c225d57c3d6808014df6b1dd7598d0a5bbbe",
9720   - "reference": "8e16c225d57c3d6808014df6b1dd7598d0a5bbbe",
  9775 + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/e7bdf4085de85a825f4424eae52c99a1cec2f360",
  9776 + "reference": "e7bdf4085de85a825f4424eae52c99a1cec2f360",
9721 9777 "shasum": ""
9722 9778 },
9723 9779 "require": {
... ... @@ -9795,7 +9851,7 @@
9795 9851 ],
9796 9852 "support": {
9797 9853 "issues": "https://github.com/sebastianbergmann/phpunit/issues",
9798   - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.0"
  9854 + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.1"
9799 9855 },
9800 9856 "funding": [
9801 9857 {
... ... @@ -9807,7 +9863,7 @@
9807 9863 "type": "github"
9808 9864 }
9809 9865 ],
9810   - "time": "2020-12-04T05:05:53+00:00"
  9866 + "time": "2021-01-17T07:42:25+00:00"
9811 9867 },
9812 9868 {
9813 9869 "name": "sebastian/cli-parser",
... ... @@ -11160,7 +11216,7 @@
11160 11216 "prefer-stable": true,
11161 11217 "prefer-lowest": false,
11162 11218 "platform": {
11163   - "php": "^7.3",
  11219 + "php": "^7.4",
11164 11220 "ext-gd": "*",
11165 11221 "ext-json": "*",
11166 11222 "ext-pdo": "*",
... ...
config/assets.php
... ... @@ -14,7 +14,7 @@ return [
14 14 |
15 15 */
16 16  
17   - 'version' => '0.0.71',
  17 + 'version' => '0.0.72',
18 18  
19 19 /*
20 20 |--------------------------------------------------------------------------
... ...
database/migrations/2021_01_04_173326_change_historical_note_to_text.php 0 → 100644
... ... @@ -0,0 +1,32 @@
  1 +<?php
  2 +
  3 +use Illuminate\Database\Migrations\Migration;
  4 +use Illuminate\Database\Schema\Blueprint;
  5 +use Illuminate\Support\Facades\Schema;
  6 +
  7 +class ChangeHistoricalNoteToText extends Migration
  8 +{
  9 + /**
  10 + * Run the migrations.
  11 + *
  12 + * @return void
  13 + */
  14 + public function up()
  15 + {
  16 + Schema::table('pmieducar.serie', function (Blueprint $table) {
  17 + $table->text('observacao_historico')->change();
  18 + });
  19 + }
  20 +
  21 + /**
  22 + * Reverse the migrations.
  23 + *
  24 + * @return void
  25 + */
  26 + public function down()
  27 + {
  28 + Schema::table('pmieducar.serie', function (Blueprint $table) {
  29 + $table->string('observacao_historico')->change();
  30 + });
  31 + }
  32 +}
... ...
docker-compose.yml
... ... @@ -32,7 +32,7 @@ services:
32 32  
33 33 postgres:
34 34 container_name: ieducar-postgres
35   - image: postgres:9.5
  35 + image: postgres:9.5-alpine
36 36 environment:
37 37 POSTGRES_DB: ieducar
38 38 POSTGRES_USER: ieducar
... ... @@ -44,7 +44,7 @@ services:
44 44  
45 45 redis:
46 46 container_name: ieducar-redis
47   - image: redis
  47 + image: redis:alpine
48 48 restart: always
49 49 ports:
50 50 - 6379
... ...
docker/nginx/Dockerfile
1   -FROM nginx
  1 +FROM nginx:alpine
2 2  
3 3 LABEL maintainer="Portabilis <contato@portabilis.com.br>"
4 4  
5   -RUN apt-get update -y
  5 +RUN apk update
6 6  
7 7 COPY default.conf /etc/nginx/conf.d/default.conf
8 8 COPY upstream.conf /etc/nginx/conf.d/upstream.conf
... ...
docker/php/Dockerfile
1   -FROM php:7.3-fpm
  1 +FROM php:7.4-fpm-alpine
2 2  
3 3 LABEL maintainer="Portabilis <contato@portabilis.com.br>"
4 4  
... ... @@ -12,33 +12,15 @@ ENV XDEBUG_REMOTE_PORT 9000
12 12 ENV XDEBUG_REMOTE_ENABLE 0
13 13 ENV XDEBUG_AUTOSTART 0
14 14  
15   -RUN apt-get update -y
16   -RUN apt-get install -y wget
17   -
18   -#
19   -# Adiciona o repositório do OpenJDK 8.
20   -#
21   -# https://packages.debian.org/sid/amd64/openjdk-8-jdk/download
22   -# https://github.com/balena-io-library/base-images/issues/273#issuecomment-349649205
23   -#
24   -RUN echo "deb http://ftp.us.debian.org/debian sid main" >> /etc/apt/sources.list
25   -
26   -#
27   -# Adiciona o repositório do Postgres 9.5 Client.
28   -#
29   -# https://www.postgresql.org/download/linux/debian/
30   -# https://stackoverflow.com/questions/50757647/e-gnupg-gnupg2-and-gnupg1-do-not-seem-to-be-installed-but-one-of-them-is-requ
31   -#
32   -RUN apt-get install -y gnupg2
33   -RUN echo "deb http://apt.postgresql.org/pub/repos/apt/ buster-pgdg main" >> /etc/apt/sources.list.d/pgdg.list
34   -RUN wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
35   -
36   -RUN apt-get update -y
  15 +RUN apk update
  16 +RUN apk add wget
  17 +
  18 +RUN apk add --no-cache --virtual .phpize_deps $PHPIZE_DEPS
37 19  
38 20 RUN pecl install xdebug
39 21 RUN docker-php-ext-enable xdebug
40 22  
41   -RUN apt-get install -y libpq-dev
  23 +RUN apk --no-cache add postgresql-dev
42 24 RUN docker-php-ext-install pgsql
43 25  
44 26 RUN docker-php-ext-install pdo
... ... @@ -50,21 +32,23 @@ RUN rm -rf /tmp/pear
50 32  
51 33 RUN docker-php-ext-install bcmath
52 34  
53   -RUN apt-get install -y unzip
  35 +RUN apk add unzip
54 36  
55   -RUN apt-get install -y libzip-dev
  37 +RUN apk add libzip-dev
56 38 RUN docker-php-ext-install zip
57 39  
58   -RUN apt-get remove -y libgcc-8-dev
59   -RUN apt-get install -o APT::Immediate-Configure=false -y libc6-dev
  40 +RUN apk add libc-dev
  41 +
  42 +RUN echo "@v3.4 http://nl.alpinelinux.org/alpine/v3.4/main" >> /etc/apk/repositories && \
  43 + apk update && \
  44 + apk add --no-cache "postgresql-client@v3.4>=9.5"
60 45  
61   -RUN mkdir -p /usr/share/man/man7
62   -RUN apt-get install -y postgresql-contrib-9.5
  46 +RUN apk add postgresql-client
63 47  
64   -RUN apt-get install -y libpng-dev
  48 +RUN apk add libpng-dev
65 49 RUN docker-php-ext-install gd
66 50  
67   -RUN apt-get install -y jq git
  51 +RUN apk add jq git
68 52  
69 53 RUN ln -s /var/www/ieducar/artisan /usr/local/bin/artisan
70 54  
... ... @@ -72,15 +56,13 @@ RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local
72 56  
73 57 COPY xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini
74 58  
75   -COPY php.ini /usr/local/etc/php/php.ini
76   -
77   -COPY pdflib.so /usr/local/lib/php/extensions/no-debug-non-zts-20180731/pdflib.so
78   -RUN echo "extension=/usr/local/lib/php/extensions/no-debug-non-zts-20180731/pdflib.so" > /usr/local/etc/php/conf.d/pdflib.ini
79   -
80 59 RUN docker-php-ext-install pcntl
81 60  
82   -RUN apt-get install openjdk-8-jdk -y
  61 +RUN apk add openjdk8
  62 +RUN apk add ttf-dejavu
83 63  
84   -RUN apt-get install npm -y
  64 +RUN apk add --update npm
85 65  
86 66 RUN composer self-update
  67 +
  68 +RUN apk del .phpize_deps
... ...
docker/php/pdflib.so
No preview for this file type
docker/php/php.ini
ieducar/intranet/educar_aluno_det.php
... ... @@ -473,7 +473,7 @@ class indice extends clsDetalhe
473 473 $this->addDetalhe(['Deficiências', $tabela]);
474 474 }
475 475  
476   - if ($registro['url_documento'] && $registro['url_documento'] != '') {
  476 + if (!empty($registro['url_documento']) && $registro['url_documento'] != '[]') {
477 477 $tabela = '<table border="0" width="300" cellpadding="3"><tr bgcolor="#ccdce6" align="center"><td>Documentos</td></tr>';
478 478 $cor = '#e9f0f8';
479 479  
... ... @@ -495,7 +495,7 @@ class indice extends clsDetalhe
495 495 $this->addDetalhe(['Documentos do aluno', $tabela]);
496 496 }
497 497  
498   - if ($registro['url_laudo_medico'] && $registro['url_laudo_medico'] != '') {
  498 + if (!empty($registro['url_laudo_medico']) && $registro['url_laudo_medico'] != '[]') {
499 499 $tabela = '<table border="0" width="300" cellpadding="3"><tr bgcolor="#ccdce6" align="center"><td>Laudo médico</td></tr>';
500 500  
501 501 $cor = '#D1DADF';
... ...
ieducar/intranet/educar_instituicao_cad.php
... ... @@ -3,15 +3,14 @@
3 3 use App\Menu;
4 4 use App\Models\State;
5 5  
6   -require_once 'include/clsBase.inc.php';
7   -require_once 'include/clsCadastro.inc.php';
8   -require_once 'include/clsBanco.inc.php';
9   -require_once 'include/pmieducar/geral.inc.php';
10   -require_once 'include/Geral.inc.php';
11   -require_once 'Portabilis/Date/Utils.php';
12   -require_once 'Portabilis/Currency/Utils.php';
13   -
14   -require_once 'Educacenso/Model/OrgaoRegionalDataMapper.php';
  6 +require_once __DIR__ . '/include/clsBase.inc.php';
  7 +require_once __DIR__ .'/include/clsCadastro.inc.php';
  8 +require_once __DIR__ .'/include/clsBanco.inc.php';
  9 +require_once __DIR__ .'/include/pmieducar/geral.inc.php';
  10 +require_once __DIR__ .'/include/Geral.inc.php';
  11 +require_once __DIR__ . '/../lib/Portabilis/Date/Utils.php';
  12 +require_once __DIR__ . '/../lib/Portabilis/Currency/Utils.php';
  13 +require_once __DIR__ . '/../modules/Educacenso/Model/OrgaoRegionalDataMapper.php';
15 14  
16 15 class clsIndexBase extends clsBase
17 16 {
... ... @@ -188,9 +187,30 @@ class indice extends clsCadastro
188 187 $this->campoCheck('obrigar_documento_pessoa', 'Exigir documento (RG, CPF ou Certidão de nascimento / casamento) no cadastro pessoa / aluno', $this->obrigar_documento_pessoa);
189 188  
190 189 $this->campoRotulo('datas', '<b>Datas</b>');
191   - $this->campoData('data_base_transferencia', 'Data máxima para deslocamento', Portabilis_Date_Utils::pgSQLToBr($this->data_base_transferencia), null, null, false);
192   - $this->campoData('data_base_remanejamento', 'Data máxima para troca de sala', Portabilis_Date_Utils::pgSQLToBr($this->data_base_remanejamento), null, null, false);
193   - $this->inputsHelper()->text(
  190 + $dataBaseDeslocamento = 'A ordenação/apresentação de alunos transferidos nos relatórios (ex.: Relação de alunos por turma) será baseada neste campo quando preenchido.';
  191 + $this->inputsHelper()->date(
  192 + 'data_base_transferencia',
  193 + [
  194 + 'label' => 'Data máxima para deslocamento',
  195 + 'required' => false,
  196 + 'hint' => $dataBaseDeslocamento,
  197 + 'placeholder' => 'dd/mm/yyyy',
  198 + 'value' => Portabilis_Date_Utils::pgSQLToBr($this->data_base_transferencia)
  199 + ]
  200 + );
  201 + $dataBaseRemanejamento = 'A ordenação/apresentação de alunos remanejados nas turmas, nos relatórios (ex.: Relação de alunos por turma), será baseada neste campo quando preenchido.';
  202 + $this->inputsHelper()->date(
  203 + 'data_base_remanejamento',
  204 + [
  205 + 'label' => 'Data máxima para troca de sala',
  206 + 'required' => false,
  207 + 'hint' => $dataBaseRemanejamento,
  208 + 'placeholder' => 'dd/mm/yyyy',
  209 + 'value' => Portabilis_Date_Utils::pgSQLToBr($this->data_base_remanejamento)
  210 + ]
  211 + );
  212 + $dataBase = 'Caso o campo seja preenchido, o sistema irá controlar distorção de idade/série e limitar inscrições por idade no Pré-matrícula com base na data informada.';
  213 + $this->inputsHelper()->dateDiaMes(
194 214 'data_base',
195 215 [
196 216 'label' => 'Data base para matrícula (dia/mês)',
... ... @@ -198,11 +218,23 @@ class indice extends clsCadastro
198 218 'max_length' => 5,
199 219 'placeholder' => 'dd/mm',
200 220 'required' => false,
201   - 'value' => Portabilis_Date_Utils::pgSQLToBr_ddmm($this->data_base_matricula)
  221 + 'value' => Portabilis_Date_Utils::pgSQLToBr_ddmm($this->data_base_matricula),
  222 + 'hint' => $dataBase
  223 + ]
  224 + );
  225 + $dataExpiracaoReservaVaga = 'Caso o campo seja preenchido, o sistema irá indeferir automaticamente as reservas em situação de espera após a data informada.';
  226 + $this->inputsHelper()->date(
  227 + 'data_expiracao_reserva_vaga',
  228 + [
  229 + 'label' => 'Data para indeferimento automático da reserva de vaga',
  230 + 'required' => false,
  231 + 'hint' => $dataExpiracaoReservaVaga,
  232 + 'placeholder' => 'dd/mm/yyyy',
  233 + 'value' => Portabilis_Date_Utils::pgSQLToBr($this->data_expiracao_reserva_vaga)
202 234 ]
203 235 );
204   - $this->campoData('data_expiracao_reserva_vaga', 'Data para indeferimento automático da reserva de vaga', Portabilis_Date_Utils::pgSQLToBr($this->data_expiracao_reserva_vaga), null, null, false);
205   - $this->inputsHelper()->text(
  236 + $dataFechamento = 'Caso o campo seja preenchido, o sistema irá bloquear a matrícula de novos alunos nas turmas após a data informada.';
  237 + $this->inputsHelper()->dateDiaMes(
206 238 'data_fechamento',
207 239 [
208 240 'label' => 'Data de fechamento das turmas para matrícula',
... ... @@ -210,14 +242,17 @@ class indice extends clsCadastro
210 242 'max_length' => 5,
211 243 'placeholder' => 'dd/mm',
212 244 'required' => false,
213   - 'value' => Portabilis_Date_Utils::pgSQLToBr_ddmm($this->data_fechamento)
  245 + 'value' => Portabilis_Date_Utils::pgSQLToBr_ddmm($this->data_fechamento),
  246 + 'hint' => $dataFechamento
214 247 ]
215 248 );
  249 + $dataEducacenso = 'Este campo deve ser preenchido com a data máxima das matrículas que devem ser enviadas para o Censo.';
216 250 $this->inputsHelper()->date(
217 251 'data_educacenso',
218 252 [
219 253 'label' => 'Data de referência do Educacenso',
220 254 'required' => false,
  255 + 'hint' => $dataEducacenso,
221 256 'placeholder' => 'dd/mm/yyyy',
222 257 'value' => $this->data_educacenso
223 258 ]
... ... @@ -227,13 +262,13 @@ class indice extends clsCadastro
227 262 $this->campoCheck('gerar_historico_transferencia', 'Gerar histórico de transferência ao transferir matrícula?', $this->gerar_historico_transferencia);
228 263 $this->campoCheck('controlar_posicao_historicos', 'Permitir controlar posicionamento dos históricos em seu respectivo documento', $this->controlar_posicao_historicos);
229 264 $this->campoCheck('restringir_historico_escolar', 'Restringir modificações de históricos escolares?', $this->restringir_historico_escolar, null, false, false, false, 'Com esta opção selecionada, somente será possível cadastrar/editar históricos escolares de alunos que pertençam a mesma escola do funcionário.');
230   - $this->campoCheck('permitir_carga_horaria', 'Não permitir definir C.H. por componente no histórico escolar', $this->permitir_carga_horaria, null, false, false, false, 'Caso a opção estiver habilitda, não será possivel adicionar carga horária na tabela de disciplinas do histórico do aluno.');
  265 + $this->campoCheck('permitir_carga_horaria', 'Não permitir definir C.H. por componente no histórico escolar', $this->permitir_carga_horaria, null, false, false, false, 'Caso a opção estiver habilitada, não será possivel adicionar carga horária na tabela de disciplinas do histórico do aluno.');
231 266  
232 267 $this->campoRotulo('reserva_vaga', '<b>Reserva de vaga</b>');
233 268 $this->multiplas_reserva_vaga = isset($this->cod_instituicao) ? dbBool($this->multiplas_reserva_vaga) : true;
234 269 $this->campoCheck('multiplas_reserva_vaga', 'Permitir múltiplas reservas de vagas para o mesmo candidato em escolas diferentes', $this->multiplas_reserva_vaga);
235 270 $this->campoCheck('reserva_integral_somente_com_renda', 'Permitir reserva de vaga para o turno integral somente quando a renda for informada', $this->reserva_integral_somente_com_renda);
236   - $this->campoCheck('exigir_dados_socioeconomicos', 'Exigir dados socioeconômico na reserva de vaga para turno integral', $this->exigir_dados_socioeconomicos);
  271 + $this->campoCheck('exigir_dados_socioeconomicos', 'Exigir dados socioeconômicos na reserva de vaga para turno integral', $this->exigir_dados_socioeconomicos);
237 272  
238 273 $this->campoRotulo('relatorios', '<b>Relatórios</b>');
239 274 $this->campoCheck('permissao_filtro_abandono_transferencia', 'Não permitir a apresentação de alunos com matrícula em abandono ou transferida na emissão do relatório de frequência', $this->permissao_filtro_abandono_transferencia);
... ... @@ -417,10 +452,10 @@ class indice extends clsCadastro
417 452  
418 453 $this->mensagem .= 'Edição efetuada com sucesso.<br>';
419 454 $this->simpleRedirect('educar_instituicao_lst.php');
  455 + } else {
  456 + $this->mensagem = 'Edição não realizada.<br>';
420 457 }
421 458  
422   - $this->mensagem = 'Edição não realizada.<br>';
423   -
424 459 return false;
425 460 }
426 461  
... ...
ieducar/intranet/educar_matricula_det.php
... ... @@ -216,12 +216,10 @@ class indice extends clsDetalhe
216 216 $this->addDetalhe(['Número Reserva Vaga', $registro['ref_cod_reserva_vaga']]);
217 217 }
218 218  
219   - $campoObs = false;
220   -
221 219 $situacao = App_Model_MatriculaSituacao::getSituacao($registro['aprovado']);
222 220 $this->addDetalhe(['Situação', $situacao]);
223 221  
224   - if ($registro[aprovado] == 4) {
  222 + if ($registro['aprovado'] == 4) {
225 223 $obj_transferencia = new clsPmieducarTransferenciaSolicitacao();
226 224  
227 225 $lst_transferencia = $obj_transferencia->lista(null, null, null, null, null, $registro['cod_matricula'], null, null, null, null, null, 1, null, null, $registro['ref_cod_aluno'], false);
... ... @@ -250,7 +248,7 @@ class indice extends clsDetalhe
250 248 $this->addDetalhe(['Observação', Portabilis_String_Utils::toLatin1($registro['observacao'])]);
251 249 }
252 250  
253   - if ($campoObs) {
  251 + if ($registro['aprovado'] == App_Model_MatriculaSituacao::ABANDONO) {
254 252 $tipoAbandono = new clsPmieducarAbandonoTipo($registro['ref_cod_abandono_tipo']);
255 253 $tipoAbandono = $tipoAbandono->detalhe();
256 254  
... ... @@ -260,7 +258,7 @@ class indice extends clsDetalhe
260 258 $this->addDetalhe(['Observação', $observacaoAbandono]);
261 259 }
262 260  
263   - if ($registro[aprovado] == App_Model_MatriculaSituacao::RECLASSIFICADO){
  261 + if ($registro['aprovado'] == App_Model_MatriculaSituacao::RECLASSIFICADO){
264 262 $this->addDetalhe(['Descrição', $this->getDescription($registro['descricao_reclassificacao'])]);
265 263 }
266 264  
... ...
ieducar/intranet/educar_transferencia_solicitacao_cad.php
... ... @@ -66,7 +66,7 @@ class indice extends clsCadastro
66 66  
67 67 public $municipio_escola_destino_externa;
68 68  
69   - public $ref_cod_escola_destino;
  69 + public $ref_cod_escola;
70 70  
71 71 public function Inicializar()
72 72 {
... ... @@ -102,6 +102,7 @@ class indice extends clsCadastro
102 102 }
103 103  
104 104 $this->Excluir();
  105 +
105 106 }
106 107  
107 108 $this->url_cancelar = "educar_matricula_det.php?cod_matricula={$this->ref_cod_matricula}";
... ... @@ -161,24 +162,13 @@ class indice extends clsCadastro
161 162 $det_matricula = $obj_matricula->detalhe();
162 163 $ref_cod_instituicao = $det_matricula['ref_cod_instituicao'];
163 164  
164   - $opcoes = ['' => 'Selecione'];
165   - $objTemp = new clsPmieducarEscola();
166   - $objTemp->_campo_order_by = 'nome';
167   - $lista = $objTemp->lista(null, null, null, $det_matricula['ref_cod_instituicao']);
168   -
169   - foreach ($lista as $escola) {
170   - $opcoes["{$escola['cod_escola']}"] = "{$escola['nome']}";
171   - }
172   -
173   - $opcoes[0] = 'OUTRA';
174   -
175   - $this->campoLista('ref_cod_escola_destino', 'Escola', $opcoes, null, '', false, 'Destino do aluno', '', false, false);
  165 + $this->inputsHelper()->dynamic(['instituicao'], ['required' => false]);
  166 + $this->inputsHelper()->dynamic(['escola'], ['label_hint' => 'Destino do aluno', 'required' => false]);
  167 + $this->inputsHelper()->checkbox('escola_em_outro_municipio', ['label' => 'Escola em outro municipio?', ]);
176 168 $this->campoTexto('escola_destino_externa', 'Nome da escola ', '', 30, 255, false, false, false, '');
177 169 $this->campoTexto('estado_escola_destino_externa', 'Estado da escola ', '', 20, 50, false, false, false, '');
178 170 $this->campoTexto('municipio_escola_destino_externa', 'Município da escola ', '', 20, 50, false, false, false, '');
179 171  
180   - $opcoes = ['' => 'Selecione'];
181   -
182 172 $objTemp = new clsPmieducarTransferenciaTipo();
183 173 $objTemp->setOrderby(' nm_tipo ASC ');
184 174 $lista = $objTemp->lista(null, null, null, null, null, null, null, null, null, null, $ref_cod_instituicao);
... ... @@ -267,7 +257,7 @@ class indice extends clsCadastro
267 257 }
268 258 clsPmieducarHistoricoEscolar::gerarHistoricoTransferencia($this->ref_cod_matricula, $this->pessoa_logada);
269 259  
270   - $obj = new clsPmieducarTransferenciaSolicitacao(null, $this->ref_cod_transferencia_tipo, null, $this->pessoa_logada, null, $this->ref_cod_matricula, $this->observacao, null, null, $this->ativo, $this->data_transferencia, $this->escola_destino_externa, $this->ref_cod_escola_destino, $this->estado_escola_destino_externa, $this->municipio_escola_destino_externa);
  260 + $obj = new clsPmieducarTransferenciaSolicitacao(null, $this->ref_cod_transferencia_tipo, null, $this->pessoa_logada, null, $this->ref_cod_matricula, $this->observacao, null, null, $this->ativo, $this->data_transferencia, $this->escola_destino_externa, $this->ref_cod_escola, $this->estado_escola_destino_externa, $this->municipio_escola_destino_externa);
271 261 if ($obj->existSolicitacaoTransferenciaAtiva()) {
272 262 $this->mensagem = 'Já existe uma solitação de transferência ativa.<br>';
273 263  
... ...
ieducar/intranet/include/clsCampos.inc.php
... ... @@ -329,6 +329,38 @@ class clsCampos extends Core_Controller_Page_Abstract
329 329 }
330 330 }
331 331  
  332 + public function campoDataDiaMes(
  333 + $nome,
  334 + $campo,
  335 + $valor,
  336 + $obrigatorio = false,
  337 + $descricao = '',
  338 + $duplo = false,
  339 + $acao = '',
  340 + $disabled = false,
  341 + $teste = null,
  342 + $dica = 'dd/mm'
  343 + ) {
  344 + $arr_componente = [
  345 + $duplo ? 'dataDupla' : 'data',
  346 + $this->__adicionando_tabela ? $nome : $campo,
  347 + false,
  348 + $valor,
  349 + 9,
  350 + 10,
  351 + $dica,
  352 + $descricao,
  353 + $acao,
  354 + $disabled,
  355 + ];
  356 +
  357 + if (!$this->__adicionando_tabela) {
  358 + $this->campos[$nome] = $arr_componente;
  359 + } else {
  360 + $this->__campos_tabela[] = $arr_componente;
  361 + }
  362 + }
  363 +
332 364 public function campoHora($nome, $campo, $valor, $obrigatorio = false, $descricao = '', $acao = '', $limitaHora = true, $desabilitado = false, $maxLength = 5)
333 365 {
334 366 $arr_componente = [
... ... @@ -1127,6 +1159,7 @@ class clsCampos extends Core_Controller_Page_Abstract
1127 1159 switch (strtolower($campo_[0])) {
1128 1160 case 'html':
1129 1161 $retorno .= $componente;
  1162 + // no break
1130 1163 case 'texto':
1131 1164 $retorno .= $this->getCampoTexto("{$nome}[{$key2}]", "{$nome}[{$key2}]", $valor[$key], $campo_[4], $campo_[5], $evento, $campo_[10], '', $class, $campo_[7]);
1132 1165 break;
... ... @@ -1241,9 +1274,8 @@ class clsCampos extends Core_Controller_Page_Abstract
1241 1274 }
1242 1275 if ($nome == 'html') {
1243 1276 $retorno .= $componente;
1244   - } else
1245   - // Separador: insere uma linha preta
1246   - if ($componente[0] == 'linha_preta') {
  1277 + } elseif // Separador: insere uma linha preta
  1278 + ($componente[0] == 'linha_preta') {
1247 1279 $retorno .= "<tr><td style='padding:0px;background-color:{$componente['cor']};' colspan='2' height='{$componente['altura']}'></td></tr>";
1248 1280 continue;
1249 1281 } elseif ($componente[0] == 'espaco') {
... ... @@ -1270,7 +1302,7 @@ class clsCampos extends Core_Controller_Page_Abstract
1270 1302  
1271 1303 $classe = $md ? 'formmdtd' : 'formlttd';
1272 1304  
1273   - if ($campo_tabela && false) {
  1305 + if ($campo_tabela && false) {
1274 1306 if ($componente[10] && ($componente[0] == 'textoDuploInv'
1275 1307 || $componente[0] == 'textoInv')) {
1276 1308 $name = " name='tr_{$componente[10]}' ";
... ... @@ -1674,19 +1706,19 @@ class clsCampos extends Core_Controller_Page_Abstract
1674 1706  
1675 1707 public function MakeFormat()
1676 1708 {
1677   - $ret = "
  1709 + $ret = '
1678 1710 function AdicionaItem(chave, item, nome_pai, submete)
1679 1711 {
1680 1712 var x = document.getElementById(nome_pai);
1681 1713  
1682   - opt = document.createElement('OPTION');
  1714 + opt = document.createElement(\'OPTION\');
1683 1715 opt.value = chave;
1684 1716 opt.selected = true;
1685 1717 opt.appendChild(document.createTextNode(item));
1686 1718  
1687 1719 x.appendChild(opt);
1688 1720 if (submete) {
1689   - ";
  1721 + ';
1690 1722  
1691 1723 if (isset($this->executa_submete)) {
1692 1724 $ret .= '
... ... @@ -1848,7 +1880,7 @@ class clsCampos extends Core_Controller_Page_Abstract
1848 1880 $valor = '',
1849 1881 $class,
1850 1882 $tamanhovisivel,
1851   - $tamanhomaximo,
  1883 + $tamanhomaximo,
1852 1884 $acao = '',
1853 1885 $descricao = ''
1854 1886 ) {
... ...
ieducar/intranet/scripts/jquery-maxlength/jquery.maxlength.css 0 → 100644
... ... @@ -0,0 +1,14 @@
  1 +/* Styles for Max Length plugin v2.0.1 */
  2 +.maxlength-feedback {
  3 + margin-left: 0.5em;
  4 + font-size: 75%;
  5 +}
  6 +.maxlength-full {
  7 + background-color: #fee;
  8 +}
  9 +.maxlength-overflow {
  10 + background-color: #fcc;
  11 +}
  12 +.maxlength-disabled {
  13 + opacity: 0.5;
  14 +}
0 15 \ No newline at end of file
... ...
ieducar/intranet/scripts/jquery-maxlength/jquery.maxlength.min.js 0 → 100644
... ... @@ -0,0 +1,6 @@
  1 +/* http://keith-wood.name/maxlength.html
  2 + Textarea Max Length for jQuery v2.0.1.
  3 + Written by Keith Wood (kwood{at}iinet.com.au) May 2009.
  4 + Licensed under the MIT (http://keith-wood.name/licence.html) license.
  5 + Please attribute the author if you use it. */
  6 +(function($){var h='maxlength';$.JQPlugin.createPlugin({name:h,defaultOptions:{max:200,truncate:true,showFeedback:true,feedbackTarget:null,onFull:null},regionalOptions:{'':{feedbackText:'{r} characters remaining ({m} maximum)',overflowText:'{o} characters too many ({m} maximum)'}},_getters:['curLength'],_feedbackClass:h+'-feedback',_fullClass:h+'-full',_overflowClass:h+'-overflow',_disabledClass:h+'-disabled',_instSettings:function(a,b){return{feedbackTarget:$([])}},_postAttach:function(c,d){c.on('keypress.'+d.name,function(a){if(!d.options.truncate){return true}var b=String.fromCharCode(a.charCode==undefined?a.keyCode:a.charCode);return(a.ctrlKey||a.metaKey||b=='\u0000'||$(this).val().length<d.options.max)}).on('keyup.'+d.name+' paste.'+d.name+' cut.'+d.name,function(e){if(e.type==='keyup'){$.maxlength._checkLength(c)}else{setTimeout(function(){$.maxlength._checkLength(c)},1)}})},_optionsChanged:function(a,b,c){$.extend(b.options,c);if(b.feedbackTarget.length>0){if(b.hadFeedbackTarget){b.feedbackTarget.empty().val('').removeClass(this._feedbackClass+' '+this._fullClass+' '+this._overflowClass)}else{b.feedbackTarget.remove()}b.feedbackTarget=$([])}if(b.options.showFeedback){b.hadFeedbackTarget=!!b.options.feedbackTarget;if($.isFunction(b.options.feedbackTarget)){b.feedbackTarget=b.options.feedbackTarget.apply(a[0],[])}else if(b.options.feedbackTarget){b.feedbackTarget=$(b.options.feedbackTarget)}else{b.feedbackTarget=$('<span></span>').insertAfter(a)}b.feedbackTarget.addClass(this._feedbackClass)}a.off('mouseover.'+b.name+' focus.'+b.name+'mouseout.'+b.name+' blur.'+b.name);if(b.options.showFeedback=='active'){a.on('mouseover.'+b.name,function(){b.feedbackTarget.css('visibility','visible')}).on('mouseout.'+b.name,function(){if(!b.focussed){b.feedbackTarget.css('visibility','hidden')}}).on('focus.'+b.name,function(){b.focussed=true;b.feedbackTarget.css('visibility','visible')}).on('blur.'+b.name,function(){b.focussed=false;b.feedbackTarget.css('visibility','hidden')});b.feedbackTarget.css('visibility','hidden')}this._checkLength(a)},curLength:function(a){var b=this._getInst(a);var c=a.val();var d=c.replace(/\r\n/g,'~~').replace(/\n/g,'~~').length;return{used:d,remaining:b.options.max-d}},_checkLength:function(a){var b=this._getInst(a);var c=a.val();var d=c.replace(/\r\n/g,'~~').replace(/\n/g,'~~').length;a.toggleClass(this._fullClass,d>=b.options.max).toggleClass(this._overflowClass,d>b.options.max);if(d>b.options.max&&b.options.truncate){var f=a.val().split(/\r\n|\n/);c='';var i=0;while(c.length<b.options.max&&i<f.length){c+=f[i].substring(0,b.options.max-c.length)+'\r\n';i++}a.val(c.substring(0,b.options.max));a[0].scrollTop=a[0].scrollHeight;d=b.options.max}b.feedbackTarget.toggleClass(this._fullClass,d>=b.options.max).toggleClass(this._overflowClass,d>b.options.max);var g=(d>b.options.max?b.options.overflowText:b.options.feedbackText).replace(/\{c\}/,d).replace(/\{m\}/,b.options.max).replace(/\{r\}/,b.options.max-d).replace(/\{o\}/,d-b.options.max);try{b.feedbackTarget.text(g)}catch(e){}try{b.feedbackTarget.val(g)}catch(e){}if(d>=b.options.max&&$.isFunction(b.options.onFull)){b.options.onFull.apply(a,[d>b.options.max])}},enable:function(a){a=$(a);if(!a.hasClass(this._getMarker())){return}var b=this._getInst(a);a.prop('disabled',false).removeClass(b.name+'-disabled');b.feedbackTarget.removeClass(b.name+'-disabled')},disable:function(a){a=$(a);if(!a.hasClass(this._getMarker())){return}var b=this._getInst(a);a.prop('disabled',true).addClass(b.name+'-disabled');b.feedbackTarget.addClass(b.name+'-disabled')},_preDestroy:function(a,b){if(b.feedbackTarget.length>0){if(b.hadFeedbackTarget){b.feedbackTarget.empty().val('').css('visibility','visible').removeClass(this._feedbackClass+' '+this._fullClass+' '+this._overflowClass)}else{b.feedbackTarget.remove()}}a.removeClass(this._fullClass+' '+this._overflowClass).off('.'+b.name)}})})(jQuery);
0 7 \ No newline at end of file
... ...
ieducar/intranet/scripts/jquery-maxlength/jquery.plugin.min.js 0 → 100644
... ... @@ -0,0 +1,4 @@
  1 +/** Abstract base class for collection plugins v1.0.1.
  2 + Written by Keith Wood (kbwood{at}iinet.com.au) December 2013.
  3 + Licensed under the MIT (http://keith-wood.name/licence.html) license. */
  4 +(function(){var j=false;window.JQClass=function(){};JQClass.classes={};JQClass.extend=function extender(f){var g=this.prototype;j=true;var h=new this();j=false;for(var i in f){h[i]=typeof f[i]=='function'&&typeof g[i]=='function'?(function(d,e){return function(){var b=this._super;this._super=function(a){return g[d].apply(this,a||[])};var c=e.apply(this,arguments);this._super=b;return c}})(i,f[i]):f[i]}function JQClass(){if(!j&&this._init){this._init.apply(this,arguments)}}JQClass.prototype=h;JQClass.prototype.constructor=JQClass;JQClass.extend=extender;return JQClass}})();(function($){JQClass.classes.JQPlugin=JQClass.extend({name:'plugin',defaultOptions:{},regionalOptions:{},_getters:[],_getMarker:function(){return'is-'+this.name},_init:function(){$.extend(this.defaultOptions,(this.regionalOptions&&this.regionalOptions[''])||{});var c=camelCase(this.name);$[c]=this;$.fn[c]=function(a){var b=Array.prototype.slice.call(arguments,1);if($[c]._isNotChained(a,b)){return $[c][a].apply($[c],[this[0]].concat(b))}return this.each(function(){if(typeof a==='string'){if(a[0]==='_'||!$[c][a]){throw'Unknown method: '+a;}$[c][a].apply($[c],[this].concat(b))}else{$[c]._attach(this,a)}})}},setDefaults:function(a){$.extend(this.defaultOptions,a||{})},_isNotChained:function(a,b){if(a==='option'&&(b.length===0||(b.length===1&&typeof b[0]==='string'))){return true}return $.inArray(a,this._getters)>-1},_attach:function(a,b){a=$(a);if(a.hasClass(this._getMarker())){return}a.addClass(this._getMarker());b=$.extend({},this.defaultOptions,this._getMetadata(a),b||{});var c=$.extend({name:this.name,elem:a,options:b},this._instSettings(a,b));a.data(this.name,c);this._postAttach(a,c);this.option(a,b)},_instSettings:function(a,b){return{}},_postAttach:function(a,b){},_getMetadata:function(d){try{var f=d.data(this.name.toLowerCase())||'';f=f.replace(/'/g,'"');f=f.replace(/([a-zA-Z0-9]+):/g,function(a,b,i){var c=f.substring(0,i).match(/"/g);return(!c||c.length%2===0?'"'+b+'":':b+':')});f=$.parseJSON('{'+f+'}');for(var g in f){var h=f[g];if(typeof h==='string'&&h.match(/^new Date\((.*)\)$/)){f[g]=eval(h)}}return f}catch(e){return{}}},_getInst:function(a){return $(a).data(this.name)||{}},option:function(a,b,c){a=$(a);var d=a.data(this.name);if(!b||(typeof b==='string'&&c==null)){var e=(d||{}).options;return(e&&b?e[b]:e)}if(!a.hasClass(this._getMarker())){return}var e=b||{};if(typeof b==='string'){e={};e[b]=c}this._optionsChanged(a,d,e);$.extend(d.options,e)},_optionsChanged:function(a,b,c){},destroy:function(a){a=$(a);if(!a.hasClass(this._getMarker())){return}this._preDestroy(a,this._getInst(a));a.removeData(this.name).removeClass(this._getMarker())},_preDestroy:function(a,b){}});function camelCase(c){return c.replace(/-([a-z])/g,function(a,b){return b.toUpperCase()})}$.JQPlugin={createPlugin:function(a,b){if(typeof a==='object'){b=a;a='JQPlugin'}a=camelCase(a);var c=camelCase(b.name);JQClass.classes[c]=JQClass.classes[a].extend(b);new JQClass.classes[c]()}}})(jQuery);
0 5 \ No newline at end of file
... ...
ieducar/lib/Portabilis/View/Helper/Input/DateDiaMes.php 0 → 100644
... ... @@ -0,0 +1,85 @@
  1 +<?php
  2 +
  3 +require_once __DIR__ . '/../../../../Portabilis/View/Helper/Input/Core.php';
  4 +require_once __DIR__ . '/../../../../Portabilis/Date/Utils.php';
  5 +
  6 +/**
  7 + * Class Portabilis_View_Helper_Input_DateDiaMes
  8 + */
  9 +class Portabilis_View_Helper_Input_DateDiaMes extends Portabilis_View_Helper_Input_Core
  10 +{
  11 + public function dateDiaMes($attrName, $options = [])
  12 + {
  13 + $defaultOptions = ['options' => [], 'objectName' => ''];
  14 +
  15 + $options = $this->mergeOptions($options, $defaultOptions);
  16 +
  17 + $spacer = !empty($options['objectName']) && !empty($attrName) ? '_' : '';
  18 +
  19 + $label = !empty($attrName) ? $attrName : $options['objectName'];
  20 + $label = str_replace('_id', '', $label);
  21 +
  22 + $defaultInputOptions = [
  23 + 'id' => $options['objectName'] . $spacer . $attrName,
  24 + 'label' => ucwords($label),
  25 + 'value' => null,
  26 + 'required' => true,
  27 + 'label_hint' => '',
  28 + 'inline' => false,
  29 + 'callback' => false,
  30 + 'disabled' => false,
  31 + 'size' => 5, // opção suportada pelo elemento, mas não pelo helper ieducar
  32 + 'hint' => 'dd/mm',
  33 + ];
  34 +
  35 + $inputOptions = $this->mergeOptions($options['options'], $defaultInputOptions);
  36 +
  37 + $isDbFormatted = strrpos($inputOptions['value'], '-') > -1;
  38 +
  39 + if ($isDbFormatted) {
  40 + $inputOptions['value'] = Portabilis_Date_Utils::pgSQLToBr($inputOptions['value']);
  41 + }
  42 +
  43 + call_user_func_array([$this->viewInstance, 'campoDataDiaMes'], $inputOptions);
  44 +
  45 + $this->fixupPlaceholder($inputOptions);
  46 + $this->fixupOptions($inputOptions);
  47 + }
  48 +
  49 + protected function fixupOptions($inputOptions)
  50 + {
  51 + $id = $inputOptions['id'];
  52 +
  53 + $sizeFixup = '$input.attr(\'size\', ' . $inputOptions['size'] . ');';
  54 + $disableFixup = $inputOptions['disabled'] ? '$input.attr(\'disabled\', \'disabled\');' : '';
  55 +
  56 + $script = '
  57 + var $input = $j(\'#' . $id . "');
  58 + $sizeFixup
  59 + $disableFixup
  60 +
  61 + \$input .change(function(){
  62 + if (this.value == '') {
  63 + return true;
  64 + }
  65 +
  66 + const data = this.value.split('/');
  67 + const year = new Date().getFullYear();
  68 +
  69 + const day = parseInt(data[0]);
  70 + const month = parseInt(data[1]);
  71 +
  72 + const newDate = new Date(year, (+month-1), day);
  73 +
  74 + const isValidDate = (Boolean(+newDate) && newDate.getDate() === day && (newDate.getMonth() + 1) === month);
  75 +
  76 + if (! isValidDate){
  77 + messageUtils.error('Informe data válida.', this);
  78 + this.value = '';
  79 + }
  80 + });
  81 + ";
  82 +
  83 + Portabilis_View_Helper_Application::embedJavascript($this->viewInstance, $script, $afterReady = true);
  84 + }
  85 +}
... ...
ieducar/lib/Portabilis/View/Helper/Input/TextArea.php
... ... @@ -33,5 +33,69 @@ class Portabilis_View_Helper_Input_TextArea extends Portabilis_View_Helper_Input
33 33  
34 34 call_user_func_array([$this->viewInstance, 'campoMemo'], $inputOptions);
35 35 $this->fixupPlaceholder($inputOptions);
  36 +
  37 + if ($inputOptions['max_length'] > 0) {
  38 +
  39 + $this->loadAssets();
  40 +
  41 + if(empty($inputOptions['max_length_plugin_options']['max'])){
  42 + $inputOptions['max_length_plugin_options']['max'] = $inputOptions['max_length'];
  43 + }
  44 +
  45 + $this->enableMaxLenthPluginJs($inputOptions['id'], $inputOptions['max_length_plugin_options']);
  46 + }
  47 + }
  48 +
  49 + /**
  50 + * Implementação do plugin jQuery Max Length
  51 + * Consultar a documentação para ter acesso a todos as opções de configuração do plugin.
  52 + * Passa no array ['max_length_plugin_options'] do options do elemento
  53 + *
  54 + * @docs http://keith-wood.name/maxlengthRef.html
  55 + */
  56 + protected function enableMaxLenthPluginJs($elementId, $options)
  57 + {
  58 + $this->css();
  59 + $this->js($elementId, $options);
  60 + }
  61 +
  62 + protected function loadAssets()
  63 + {
  64 + $jsFile = '/modules/Portabilis/Assets/Javascripts/Frontend/Inputs/TextArea.js';
  65 + Portabilis_View_Helper_Application::loadJavascript($this->viewInstance, $jsFile);
  66 + }
  67 +
  68 + protected function js($elementId, $options = [])
  69 + {
  70 +
  71 + $objectOptions = json_encode($options);
  72 +
  73 + $js = "
  74 + TextArea.init(\$j('#{$elementId}'), {$objectOptions});
  75 + ";
  76 +
  77 + Portabilis_View_Helper_Application::embedJavascript($this->viewInstance, $js, $afterReady = true);
  78 + }
  79 +
  80 + protected function css()
  81 + {
  82 + $css = "
  83 + .maxlength-feedback {
  84 + display: table;
  85 + margin: 0;
  86 + vertical-align: bottom;
  87 + position: relative;
  88 + left: 22.75em;
  89 + top: -4px;
  90 + width: 4em;
  91 + padding-right: 0.25em;
  92 + padding-left: 0.25em;
  93 + color: #fff;
  94 + background-color: #0ac336;
  95 + text-align: center;
  96 + border-radius: 3px;
  97 + }
  98 + ";
  99 + Portabilis_View_Helper_Application::embedStylesheet($this->viewInstance, $css);
36 100 }
37 101 }
... ...
ieducar/lib/Portabilis/View/Helper/Inputs.php
... ... @@ -96,6 +96,11 @@ class Portabilis_View_Helper_Inputs
96 96 $this->input('date', $attrName, $inputOptions, $helperOptions);
97 97 }
98 98  
  99 + public function dateDiaMes($attrName, $inputOptions = [], $helperOptions = [])
  100 + {
  101 + $this->input('dateDiaMes', $attrName, $inputOptions, $helperOptions);
  102 + }
  103 +
99 104 public function textArea($attrName, $inputOptions = [], $helperOptions = [])
100 105 {
101 106 $this->input('textArea', $attrName, $inputOptions, $helperOptions);
... ...
ieducar/modules/Avaliacao/Service/Boletim.php
... ... @@ -262,7 +262,19 @@ class Avaliacao_Service_Boletim implements CoreExt_Configurable
262 262 $matricula
263 263 ));
264 264  
265   - $this->_setComponentes(App_Model_IedFinder::getComponentesPorMatricula($codMatricula, $this->getComponenteDataMapper(), $this->getComponenteTurmaDataMapper(), $componenteCurricularId, $etapaAtual, null, $matricula));
  265 + $this->_setComponentes(
  266 + App_Model_IedFinder::getComponentesPorMatricula(
  267 + $codMatricula,
  268 + $this->getComponenteDataMapper(),
  269 + $this->getComponenteTurmaDataMapper(),
  270 + $componenteCurricularId,
  271 + $etapaAtual,
  272 + null,
  273 + $matricula,
  274 + true,
  275 + $this->getOption('ignorarDispensasParciais')
  276 + )
  277 + );
266 278  
267 279 $this->setOption('matriculaData', $matricula);
268 280 $this->setOption('aprovado', $matricula['aprovado']);
... ... @@ -2590,7 +2602,9 @@ class Avaliacao_Service_Boletim implements CoreExt_Configurable
2590 2602 null,
2591 2603 $this->getOption('etapaAtual'),
2592 2604 null,
2593   - $this->getOption('matriculaData')
  2605 + $this->getOption('matriculaData'),
  2606 + true,
  2607 + $this->getOption('ignorarDispensasParciais')
2594 2608 )
2595 2609 );
2596 2610 }
... ...
ieducar/modules/Avaliacao/Service/Boletim/Acessores.php
... ... @@ -22,7 +22,8 @@ trait Avaliacao_Service_Boletim_Acessores
22 22 protected $_options = [
23 23 'matricula' => null,
24 24 'etapas' => null,
25   - 'usuario' => null
  25 + 'usuario' => null,
  26 + 'ignorarDispensasParciais' => false,
26 27 ];
27 28  
28 29 /**
... ...
ieducar/modules/Cadastro/Assets/Javascripts/TransferenciaSolicitacao.js
1   -$j(function(){
2   - $campoEscolaDestinoExterna = $j('#escola_destino_externa');
3   - $campoEstadoEscolaDestinoExterna = $j('#estado_escola_destino_externa');
4   - $campoMunicipioEscolaDestinoExterna = $j('#municipio_escola_destino_externa');
5   - $campoEscolaDestinoSistema = $j('#ref_cod_escola_destino');
6   -
7   - $campoEscolaDestinoExterna.closest("tr").hide();
8   - $campoEstadoEscolaDestinoExterna.closest("tr").hide();
9   - $campoMunicipioEscolaDestinoExterna.closest("tr").hide();
10   - $campoEscolaDestinoSistema.val('');
11   -
12   - $campoEscolaDestinoSistema.on('change', onEscolaDestinoSistemaClick);
13   -
14   -
15   - function onEscolaDestinoSistemaClick(){
16   - if($j(this).val() == 0){
17   - $campoEscolaDestinoExterna.closest("tr").show();
18   - $campoEstadoEscolaDestinoExterna.closest("tr").show();
19   - $campoMunicipioEscolaDestinoExterna.closest("tr").show();
20   - }else{
21   - $campoEscolaDestinoExterna.closest("tr").hide();
22   - $campoEstadoEscolaDestinoExterna.closest("tr").hide();
23   - $campoEscolaDestinoExterna.closest("tr").hide();
24   - $campoMunicipioEscolaDestinoExterna.val("");
25   - $campoEstadoEscolaDestinoExterna.val("");
26   - $campoMunicipioEscolaDestinoExterna.val("");
27   - }
28   - }
29   -});
  1 +$j(document).ready(function () {
  2 + $campoEscolaDestinoExterna = $j('#escola_destino_externa');
  3 + $campoEstadoEscolaDestinoExterna = $j('#estado_escola_destino_externa');
  4 + $campoMunicipioEscolaDestinoExterna = $j('#municipio_escola_destino_externa');
  5 +
  6 + $campoEscolaDestinoExterna.closest("tr").hide();
  7 + $campoEstadoEscolaDestinoExterna.closest("tr").hide();
  8 + $campoMunicipioEscolaDestinoExterna.closest("tr").hide();
  9 +
  10 + let msg = '<b>Novidade</b>: O processo de transferência foi simplificado!<br/>' +
  11 + 'Agora você não precisa mais informar o tipo de transferência<br/>' +
  12 + 'que será utilizado. Basta preencher os campos obrigatórios, e<br/>' +
  13 + 'o aluno ficará com a situação de transferido automaticamente.';
  14 +
  15 + $j('<p>').addClass('right-top-notice notice')
  16 + .html(stringUtils.toUtf8(msg))
  17 + .appendTo($j('#tr_nm_aluno').closest('td'));
30 18  
31   -var msg = '<b>Novidade</b>: O processo de transferência foi simplificado!<br/>' +
32   - 'Agora você não precisa mais informar o tipo de transferência<br/>' +
33   - 'que será utilizado. Basta preencher os campos obrigatórios, e<br/>'+
34   - 'o aluno ficará com a situação de transferido automaticamente.';
  19 + $j('#ref_cod_instituicao').makeRequired();
  20 + $j('#ref_cod_escola').makeRequired();
  21 + $j('#escola_em_outro_municipio').change(mostraEscolaOutroMunicipio);
35 22  
36   -$j('<p>').addClass('right-top-notice notice')
37   - .html(stringUtils.toUtf8(msg))
38   - .appendTo($j('#tr_nm_aluno').closest('td'));
39 23 \ No newline at end of file
  24 + function mostraEscolaOutroMunicipio() {
  25 + if ($j(this).is(':checked')) {
  26 + $campoEscolaDestinoExterna.closest("tr").show();
  27 + $campoEstadoEscolaDestinoExterna.closest("tr").show();
  28 + $campoMunicipioEscolaDestinoExterna.closest("tr").show();
  29 + $j('#ref_cod_instituicao').closest("tr").hide();
  30 + $j('#ref_cod_escola').closest("tr").hide();
  31 + } else {
  32 + $campoEscolaDestinoExterna.closest("tr").hide();
  33 + $campoEstadoEscolaDestinoExterna.closest("tr").hide();
  34 + $campoMunicipioEscolaDestinoExterna.closest("tr").hide();
  35 + $j('#ref_cod_instituicao').closest("tr").show();
  36 + $j('#ref_cod_instituicao').makeRequired();
  37 + $j('#ref_cod_escola').closest("tr").show();
  38 + $j('#ref_cod_escola').makeRequired();
  39 + $campoEscolaDestinoExterna.val("");
  40 + $campoEstadoEscolaDestinoExterna.val("");
  41 + $campoMunicipioEscolaDestinoExterna.val("");
  42 + }
  43 + }
  44 +
  45 + let $submitButton = $j('#btn_enviar');
  46 +
  47 + $submitButton.removeAttr('onclick');
  48 + $submitButton.click(validaSubmit);
  49 +
  50 + function validaSubmit() {
  51 + if (!$j('#escola_em_outro_municipio').is(':checked')) {
  52 + if ($j('#ref_cod_instituicao').closest("select").val() === '') {
  53 + return alert('É necessário informar a instituição');
  54 + }
  55 + if ($j('#ref_cod_escola').closest("select").val() === '') {
  56 + return alert('É necessário informar a escola');
  57 + }
  58 + }
  59 + acao();
  60 + }
  61 +});
... ...
ieducar/modules/HistoricoEscolar/Views/ProcessamentoApiController.php
... ... @@ -1133,7 +1133,8 @@ class ProcessamentoApiController extends Core_Controller_Page_EditController
1133 1133 $this->service = new Avaliacao_Service_Boletim(
1134 1134 [
1135 1135 'matricula' => $matriculaId,
1136   - 'usuario' => $this->getSession()->id_pessoa
  1136 + 'usuario' => $this->getSession()->id_pessoa,
  1137 + 'ignorarDispensasParciais' => true,
1137 1138 ]
1138 1139 );
1139 1140  
... ...
ieducar/modules/Portabilis/Assets/Javascripts/Frontend/Inputs/TextArea.js 0 → 100644
... ... @@ -0,0 +1,18 @@
  1 +var TextArea = (function () {
  2 +
  3 + var _init = function (el, options) {
  4 +
  5 + let defaultOptions = {
  6 + feedbackText: '{c}/{m}',
  7 + max: 380
  8 + };
  9 +
  10 + Object.assign(defaultOptions, options);
  11 +
  12 + el.maxlength(defaultOptions);
  13 + };
  14 +
  15 + return {
  16 + init: _init
  17 + }
  18 +})();
0 19 \ No newline at end of file
... ...
package.json
... ... @@ -10,14 +10,14 @@
10 10 "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --config=node_modules/laravel-mix/setup/webpack.config.js"
11 11 },
12 12 "devDependencies": {
13   - "axios": "^0.18",
  13 + "axios": "^0.21.1",
14 14 "bootstrap": "^4.4.1",
15 15 "cross-env": "^5.1",
16 16 "jquery": "^3.5.0",
17   - "laravel-mix": "^4.0.7",
  17 + "laravel-mix": "^6.0.6",
18 18 "lodash": "^4.17.5",
19 19 "popper.js": "^1.16.1",
20   - "resolve-url-loader": "^2.3.1",
  20 + "resolve-url-loader": "^3.1.2",
21 21 "sass": "^1.26.3",
22 22 "sass-loader": "^7.1.0",
23 23 "vue": "^2.6.11",
... ...
public/install.php
... ... @@ -67,7 +67,7 @@ $host = $_SERVER[&#39;HTTP_HOST&#39;] ?? &#39;&#39;;
67 67 $dbCheck = false;
68 68  
69 69 if ($envExists) {
70   - Dotenv\Dotenv::create($rootDir)->load();
  70 + Dotenv\Dotenv::createImmutable($rootDir)->load();
71 71 $dbCheck = $installer->checkDatabaseConnection();
72 72 $isInstalled = $installer->isInstalled();
73 73 }
... ...
readme.md
... ... @@ -80,7 +80,7 @@ facilitar o desenvolvimento.
80 80  
81 81 #### Servidor
82 82  
83   -- [PHP](http://php.net/) versão 7.3 ou superior
  83 +- [PHP](http://php.net/) versão 7.4
84 84 - [Postgres](https://www.postgresql.org/) versão 9.5 (exata)
85 85 - [Nginx](https://www.nginx.com/)
86 86  
... ... @@ -242,6 +242,7 @@ e siga as instruções de instalação.
242 242  
243 243 #### Upgrade
244 244  
  245 +- [Upgrade para 2.5 da 2.4](https://github.com/portabilis/i-educar/wiki/Upgrade-para-2.5-da-2.4).
245 246 - [Upgrade para 2.4 da 2.3](https://github.com/portabilis/i-educar/wiki/Upgrade-para-2.4-da-2.3).
246 247 - [Upgrade para 2.3 da 2.2](https://github.com/portabilis/i-educar/wiki/Upgrade-para-2.3-da-2.2).
247 248 - [Upgrade para 2.2 da 2.1](https://github.com/portabilis/i-educar/wiki/Upgrade-para-2.2-da-2.1).
... ...
resources/views/layout/default.blade.php
... ... @@ -57,6 +57,7 @@
57 57 <link rel="stylesheet" type="text/css" href="https://unpkg.com/vue-multiselect@2.1.0/dist/vue-multiselect.min.css">
58 58 <link rel="stylesheet" type='text/css' href='{{ Asset::get('css/base.css') }}'>
59 59 <link rel="stylesheet" type="text/css" href='{{ Asset::get('/intranet/scripts/jquery/jquery-ui.min-1.9.2/css/custom/jquery-ui-1.9.2.custom.min.css') }}'>
  60 + <link rel="stylesheet" type="text/css" href='{{ Asset::get('/intranet/scripts/jquery-maxlength/jquery.maxlength.css') }}'>
60 61  
61 62 @stack('styles')
62 63  
... ... @@ -303,6 +304,8 @@
303 304 <script type="text/javascript" src="{{ Asset::get("/intranet/scripts/flash-messages.js") }}"></script>
304 305 <script type="text/javascript" src="{{ Asset::get("/js/app.js") }}"></script>
305 306 <script type="text/javascript" src="{{ Asset::get("/intranet/scripts/notifications.js") }}"></script>
  307 +<script type="text/javascript" src="{{ Asset::get("/intranet/scripts/jquery-maxlength/jquery.plugin.min.js") }}"></script>
  308 +<script type="text/javascript" src="{{ Asset::get("/intranet/scripts/jquery-maxlength/jquery.maxlength.min.js") }}"></script>
306 309 <script>
307 310 getNotifications();
308 311  
... ...
scripts/build
1   -#!/bin/bash
  1 +#!/bin/sh
2 2  
3 3 VERSION=`cat composer.json | jq -r '.version' | tr -d '[:space:]'`
4 4 BUILD_FOLDER=ieducar-${VERSION}
... ...