[TikiWiki-commits] [Git][tikiwiki/tiki][29.x] [ENH] Tabular imports option: ability to skip validation - useful when Tikies...

"Victor Emanouilov \(@kroky\) via TikiWiki-cvs" <[email protected]>
Newsgroups gmane.comp.cms.tiki.cvs
Message-ID <68f0a6328baf3_2caeda5f811267@gitlab-sidekiq-low-urgency-cpu-bound-v2-56f86b7d78-n76rw.mail>

Victor Emanouilov pushed to branch 29.x at Tiki Wiki CMS Groupware / Tiki


Commits:
eb766de1 by Victor Emanouilov at 2025-10-16T11:00:44+03:00
[ENH] Tabular imports option: ability to skip validation - useful when Tikies sync via API and validation actually hinders the sync

- - - - -


5 changed files:

- lib/core/Services/Tracker/TabularController.php
- lib/core/Tracker/Tabular/Manager.php
- lib/core/Tracker/Tabular/Schema.php
- lib/core/Tracker/Tabular/Writer/TrackerWriter.php
- templates/tabular/edit.tpl


Changes:

=====================================
lib/core/Services/Tracker/TabularController.php
=====================================
@@ -965,6 +965,7 @@ class Services_Tracker_TabularController
                 'import_transaction' => 0,
                 'bulk_import' => 0,
                 'skip_unmodified' => 0,
+                'skip_validation' => 0,
                 'upload_max_filesize' => $uploadMaxFileSize
             ],
         ];


=====================================
lib/core/Tracker/Tabular/Manager.php
=====================================
@@ -50,6 +50,7 @@ class Manager
                 'import_transaction' => 0,
                 'bulk_import' => 0,
                 'skip_unmodified' => 0,
+                'skip_validation' => 0,
                 'encoding' => '',
                 'format' => '',
                 'mapping' => '',
@@ -74,6 +75,7 @@ class Manager
                 'import_transaction' => (int)! empty($config['import_transaction']),
                 'bulk_import' => (int)! empty($config['bulk_import']),
                 'skip_unmodified' => (int)! empty($config['skip_unmodified']),
+                'skip_validation' => (int)! empty($config['skip_validation']),
                 'encoding' => $config['encoding'] ?? '',
                 'format' => $config['format'] ?? '',
                 'mapping' => $config['mapping'] ?? '',


=====================================
lib/core/Tracker/Tabular/Schema.php
=====================================
@@ -93,6 +93,7 @@ class Schema
             'import_transaction' => 0,
             'bulk_import' => 0,
             'skip_unmodified' => 0,
+            'skip_validation' => 0,
             'encoding' => '',
             'format' => '',
         ], $config);
@@ -130,6 +131,11 @@ class Schema
         return $this->config['skip_unmodified'];
     }
 
+    public function isSkipValidation()
+    {
+        return $this->config['skip_validation'];
+    }
+
     public function getEncoding()
     {
         return $this->config['encoding'] ?? '';


=====================================
lib/core/Tracker/Tabular/Writer/TrackerWriter.php
=====================================
@@ -38,7 +38,7 @@ class TrackerWriter
                     'itemId' => false,
                     'fields' => [],
                     'skip_sync' => $source instanceof \Tracker\Tabular\Source\ODBCSource,
-                    'validate' => $source instanceof \Tracker\Tabular\Source\ODBCSource ? false : true, // ODBC sync needs saving no matter of validation errors
+                    'validate' => ($source instanceof \Tracker\Tabular\Source\ODBCSource || $schema->isSkipValidation()) ? false : true, // ODBC sync needs saving no matter of validation errors
                 ];
 
                 foreach ($columns as $column) {
@@ -113,6 +113,9 @@ class TrackerWriter
                     }
                 }
                 $ids[] = $info['itemId'];
+                if ($schema->isSkipValidation()) {
+                    return [];
+                }
                 return array_map(
                     function ($error) use ($line) {
                         return tr('Line %0:', $line + 1) . ' ' . $error;


=====================================
templates/tabular/edit.tpl
=====================================
@@ -667,6 +667,13 @@
                             {icon name=information}
                         </a>
                     </div>
+                    <div class="form-check">
+                        <input type="checkbox" class="form-check-input" name="config[skip_validation]" value="1" {if $config['skip_validation']} checked {/if}>
+                        <label class="form-check-label">{tr}Skip Validation{/tr}</label>
+                        <a class="tikihelp text-info" title="{tr}Skip Validation:{/tr} {tr}Tracker items that are created during import won't be validated against their rules like mandatory field checks. Use with caution.{/tr}">
+                            {icon name=information}
+                        </a>
+                    </div>
                 </div>
                 <div class="col-sm-5">
                     <div class="form-check">



View it on GitLab: https://gitlab.com/tikiwiki/tiki/-/commit/eb766de1ff07ad65ac3aaed047e2c0f388dcdac0

-- 
View it on GitLab: https://gitlab.com/tikiwiki/tiki/-/commit/eb766de1ff07ad65ac3aaed047e2c0f388dcdac0
You're receiving this email because of your account on gitlab.com.

_______________________________________________
TikiWiki-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tikiwiki-cvs
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.