Skip to content
Snippets Groups Projects
Commit a5805938 authored by Allen Gilliland's avatar Allen Gilliland
Browse files

Merge pull request #1925 from metabase/enable-datepickers-on-mongo

Enable datepickers on mongo
parents aef69495 a4b9e8bb
Branches
Tags
No related merge requests found
......@@ -85,11 +85,7 @@ export default class FieldList extends Component {
}
renderItemExtra(item) {
let { field, tableMetadata, enableTimeGrouping } = this.props;
if (tableMetadata.db.engine === "mongo") {
enableTimeGrouping = false
}
let { field, enableTimeGrouping } = this.props;
return (
<div className="flex align-center">
......
......@@ -3,8 +3,7 @@ import React, { Component, PropTypes } from "react";
import Icon from "metabase/components/Icon.jsx";
import Query from "metabase/lib/query";
import { parseFieldTarget, parseFieldBucketing, formatBucketing } from "metabase/lib/query_time";
import { isDate } from "metabase/lib/schema_metadata";
import { parseFieldTarget } from "metabase/lib/query_time";
import { stripId } from "metabase/lib/formatting";
......@@ -26,9 +25,8 @@ export default class FieldName extends Component {
render() {
let targetTitle, fkTitle, fkIcon, bucketingTitle;
let { field, fieldOptions, tableMetadata } = this.props;
let { field, fieldOptions } = this.props;
let bucketing = parseFieldBucketing(field);
field = parseFieldTarget(field);
let fieldDef;
......@@ -49,11 +47,6 @@ export default class FieldName extends Component {
targetTitle = (<span>{fieldDef.display_name}</span>);
}
// Mongo doesn't support non-default time bucketing so don't show it
if (fieldDef && isDate(fieldDef) && tableMetadata.db.engine !== "mongo") {
bucketingTitle = ": " + formatBucketing(bucketing);
}
var titleElement;
if (fkTitle || targetTitle) {
titleElement = <span className="QueryOption">{fkTitle}{fkIcon}{targetTitle}{bucketingTitle}</span>;
......
......@@ -35,17 +35,6 @@ export default class DatePicker extends Component {
}
render() {
// MongoDB does not currently support relative date filters
if (this.props.tableMetadata.db.engine === "mongo") {
return (
<SpecificDatePicker
filter={this.props.filter}
onFilterChange={this.props.onFilterChange}
onOperatorChange={this.props.onOperatorChange}
/>
);
}
var operators = [
{ name: "relative", verboseName: "Relative date" },
{ name: "specific", verboseName: "Specific date" },
......
......@@ -304,7 +304,7 @@
java.math.BigInteger :BigIntegerField
java.sql.Date :DateField
java.sql.Timestamp :DateTimeField
java.util.Date :DateField
java.util.Date :DateTimeField
java.util.UUID :TextField
clojure.lang.PersistentArrayMap :DictionaryField
clojure.lang.PersistentHashMap :DictionaryField
......
......@@ -120,22 +120,22 @@
;; Test that Fields got synced correctly, and types are correct
(expect-when-testing-mongo
[[{:special_type :id, :base_type :IntegerField, :name "_id"}
{:special_type :name, :base_type :TextField, :name "name"}]
[{:special_type :id, :base_type :IntegerField, :name "_id"}
{:special_type nil, :base_type :DateField, :name "date"}
{:special_type :category, :base_type :IntegerField, :name "user_id"}
{:special_type nil, :base_type :IntegerField, :name "venue_id"}]
[{:special_type :id, :base_type :IntegerField, :name "_id"}
{:special_type nil, :base_type :DateField, :name "last_login"}
{:special_type :name, :base_type :TextField, :name "name"}
{:special_type :category, :base_type :TextField, :name "password"}]
[{:special_type :id, :base_type :IntegerField, :name "_id"}
{:special_type :category, :base_type :IntegerField, :name "category_id"}
{:special_type :latitude, :base_type :FloatField, :name "latitude"}
{:special_type :longitude, :base_type :FloatField, :name "longitude"}
{:special_type :name, :base_type :TextField, :name "name"}
{:special_type :category, :base_type :IntegerField, :name "price"}]]
[[{:special_type :id, :base_type :IntegerField, :name "_id"}
{:special_type :name, :base_type :TextField, :name "name"}]
[{:special_type :id, :base_type :IntegerField, :name "_id"}
{:special_type nil, :base_type :DateTimeField, :name "date"}
{:special_type :category, :base_type :IntegerField, :name "user_id"}
{:special_type nil, :base_type :IntegerField, :name "venue_id"}]
[{:special_type :id, :base_type :IntegerField, :name "_id"}
{:special_type nil, :base_type :DateTimeField, :name "last_login"}
{:special_type :name, :base_type :TextField, :name "name"}
{:special_type :category, :base_type :TextField, :name "password"}]
[{:special_type :id, :base_type :IntegerField, :name "_id"}
{:special_type :category, :base_type :IntegerField, :name "category_id"}
{:special_type :latitude, :base_type :FloatField, :name "latitude"}
{:special_type :longitude, :base_type :FloatField, :name "longitude"}
{:special_type :name, :base_type :TextField, :name "name"}
{:special_type :category, :base_type :IntegerField, :name "price"}]]
(for [nm table-names]
(sel :many :fields [Field :name :base_type :special_type], :active true, :table_id (:id (table-name->table nm))
(k/order :name))))
......@@ -47,10 +47,6 @@
:destroy-db! destroy-db!
:database->connection-details database->connection-details
:engine (constantly :mongo)
:expected-base-type->actual (fn [_ base-type]
(let [expected->actual {:DateTimeField :DateField}]
(or (expected->actual base-type)
base-type)))
:format-name (fn [_ table-or-field-name]
(if (= table-or-field-name "id") "_id"
table-or-field-name))}))
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment