Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
I
intranet-csv-import
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
project-open
intranet-csv-import
Commits
f8848943
Commit
f8848943
authored
Mar 17, 2015
by
jago
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
- CSV Import:
Fixed and improved project import functionality
parent
2bb0ca0b
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
18 additions
and
11 deletions
+18
-11
intranet-csv-import-procs.tcl
tcl/intranet-csv-import-procs.tcl
+1
-1
import-2.tcl
www/import-2.tcl
+11
-4
import-im_project.tcl
www/import-im_project.tcl
+6
-6
No files found.
tcl/intranet-csv-import-procs.tcl
View file @
f8848943
...
...
@@ -336,7 +336,7 @@ ad_proc -public im_csv_import_guess_parser {
im_project - im_timesheet_task - im_ticket
{
switch
$field
_name
{
parent_nrs
{
return
[
list
"hard_coded"
""
""
]
}
customer_name
{
return
[
list
"hard_coded"
""
""
]
}
customer_name
{
return
[
list
"hard_coded"
""
"
company_id
"
]
}
project_status
{
return
[
list
"hard_coded"
""
"project_status_id"
]
}
project_type
{
return
[
list
"hard_coded"
""
"project_type_id"
]
}
on_track_status
{
return
[
list
"hard_coded"
""
"on_track_status_id"
]
}
...
...
www/import-2.tcl
View file @
f8848943
...
...
@@ -49,8 +49,6 @@ if {"" == $return_url} {
}
}
# strip off the C:\directories... crud and just get the file name
if
!
[
regexp
{([
^//
\\
]
+
)
$
}
$upload
_file match filename
]
{
# couldn't find a match
...
...
@@ -146,7 +144,16 @@ foreach header_name $headers {
set val
[
lindex
[
set
$row
_name
]
$cnt
]
if
{
""
!=
$val
}
{
lappend parser_sample_values
$val
}
}
set defs
[
im_csv_import_guess_parser -object_type
$object
_type -field_name
$header
_name -sample_values
$parser
_sample_values
]
# Guess the object's field to which to map.
set object_field_best_guess
[
im_csv_import_guess_map -object_type
$object
_type -field_name
$header
_name -sample_values
$parser
_sample_values
]
ns_log Notice
"import-2: otype=
$object
_type, field_name=
$header
_name => field=
$object
_field_best_guess"
set guess_parser_field_name
$header
_name
if
{
""
!=
$object
_field_best_guess
}
{
set guess_parser_field_name
$object
_field_best_guess
}
# Guess the parser how to convert the field values
set defs
[
im_csv_import_guess_parser -object_type
$object
_type -field_name
$guess
_parser_field_name -sample_values
$parser
_sample_values
]
ns_log Notice
"import-2: otype=
$object
_type, field_name=
$header
_name => parser=
$defs
"
set default_parser
[
lindex
$defs
0
]
set default_parser_args
[
lindex
$defs
1
]
...
...
@@ -155,7 +162,7 @@ foreach header_name $headers {
set args
"<input type=text name=parser_args.
$cnt
value=
\"
$default
_parser_args
\"
>
\n
"
# Mapping - Map to which object field?
set default_map
[
im_csv_import_guess_map -object_type
$object
_type -field_name
$header
_name -sample_values
$parser
_sample_values
]
set default_map
$object
_field_best_guess
if
{
""
!=
$override
_map
}
{
set default_map
$override
_map
}
set map
[
im_select map.$cnt
$object
_type_pairs
$default
_map
]
...
...
www/import-im_project.tcl
View file @
f8848943
...
...
@@ -21,6 +21,8 @@ ad_page_contract {
parser_args:array
}
# ad_return_complaint 1 "<pre>\n\n[array get column
]
\n\n
[
array
get map
]
\n\n
[
array
get parser
]
\n\n
[
array
get parser_args
]
\n\n
</pre>
"
# ---------------------------------------------------------------------
# Default & Security
# ---------------------------------------------------------------------
...
...
@@ -76,6 +78,7 @@ foreach k [array names map] {
lappend mapped_vars "
'$map
(
$k
)
'
"
}
set dynfield_sql "
select distinct
aa.attribute_name,
...
...
@@ -168,7 +171,7 @@ foreach csv_line_fields $values_list_of_lists {
set sort_order ""
foreach attribute_name
$attribute
_names {
set
$attribute
_name
""
set
$attribute
_name
""
}
# -------------------------------------------------------
...
...
@@ -314,11 +317,8 @@ foreach csv_line_fields $values_list_of_lists {
set company_id
$customer
_id
if {"" ==
$customer
_id } {
if
{
$ns
_write_p
}
{
ns_write
"<li><font color=red>Error: Didn't find customer for '
$customer
_name'.<br>
Every projects needs a valid customer. Please correct the CSV file.</font>
\n
"
}
continue
set customer_id
[
im_company_internal
]
if {
$ns
_write_p} { ns_write "
<li><font color=brown>Warning: Didn't find customer_name='$customer_name', using 'internal' customer</font>
\n
" }
}
set project_lead_id
[
im_id_from_user_name
$project
_manager
]
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment