Przeglądaj źródła

fix: allow to import time field (#17677)

version-14
Shariq Ansari 2 lat temu
committed by GitHub
rodzic
commit
c478673367
Nie znaleziono w bazie danych klucza dla tego podpisu ID klucza GPG: 4AEE18F83AFDEB23
2 zmienionych plików z 19 dodań i 6 usunięć
  1. +14
    -6
      frappe/core/doctype/data_import/importer.py
  2. +5
    -0
      frappe/utils/data.py

+ 14
- 6
frappe/core/doctype/data_import/importer.py Wyświetl plik

@@ -6,7 +6,7 @@ import json
import os
import re
import timeit
from datetime import date, datetime
from datetime import date, datetime, time

import frappe
from frappe import _
@@ -937,11 +937,13 @@ class Column:
"""

def guess_date_format(d):
if isinstance(d, (datetime, date)):
if isinstance(d, (datetime, date, time)):
if self.df.fieldtype == "Date":
return "%Y-%m-%d"
if self.df.fieldtype == "Datetime":
return "%Y-%m-%d %H:%M:%S"
if self.df.fieldtype == "Time":
return "%H:%M:%S"
if isinstance(d, str):
return frappe.utils.guess_date_format(d)

@@ -994,16 +996,22 @@ class Column:
}
)
elif self.df.fieldtype in ("Date", "Time", "Datetime"):
# guess date format
# guess date/time format
self.date_format = self.guess_date_format_for_column()
if not self.date_format:
self.date_format = "%Y-%m-%d"
if self.df.fieldtype == "Time":
self.date_format = "%H:%M:%S"
format = "HH:mm:ss"
else:
self.date_format = "%Y-%m-%d"
format = "yyyy-mm-dd"

self.warnings.append(
{
"col": self.column_number,
"message": _(
"Date format could not be determined from the values in this column. Defaulting to yyyy-mm-dd."
),
"{0} format could not be determined from the values in this column. Defaulting to {1}."
).format(self.df.fieldtype, format),
"type": "info",
}
)


+ 5
- 0
frappe/utils/data.py Wyświetl plik

@@ -2024,6 +2024,11 @@ def guess_date_format(date_string: str) -> str:
if date_format:
return date_format

# check if time format can be guessed
time_format = _get_time_format(date_string)
if time_format:
return time_format

# date_string doesnt look like date, it can have a time part too
# split the date string into date and time parts
if " " in date_string:


Ładowanie…
Anuluj
Zapisz