GithubHelp home page GithubHelp logo

Comments (6)

arnaudbesnier avatar arnaudbesnier commented on July 20, 2024

hey @KudMath, thanks for the feedback, could you detail a way to reproduce the issue systematically?

from forest-express-mongoose.

KudMath avatar KudMath commented on July 20, 2024

Exemple of a field working:

const mongoose = require('mongoose')
const Liana = require('forest-express-mongoose')

const schema = mongoose.Schema({
  _id: mongoose.Schema.Types.ObjectId,
  email: String,
  emailValidation: Boolean,
  phone: String,
  admin: Boolean,
  lang: String,
  new_user: Boolean,
  createdAt: Date,
  updatedAt: Date,
  subscription: String,
  premium:{
    subscription: String,
    createdAt: Date,
    updatedAt: Date,
    stoppedAt: Date,
    additionalDesigns: Number
  },
  apiKey: [String],
  });

Liana.collection('Users',{
  fields:[{
    field: 'subscription',
    type: String,
    get: function(object){
      const subscription = (object.premium ? object.premium.subscription : 'none') || 'none'
      // console.log({subscription, premium: object.premium});
      return subscription
    }
  }]
})

module.exports = mongoose.model('Users', schema, 'Users');

while those do not :

const mongoose = require('mongoose')
const Liana = require('forest-express-mongoose')
const SupplierBaseProducts = require('../models/baseProducts.js')
const schema = mongoose.Schema({
  _id: mongoose.Schema.Types.ObjectId,
  createdAt: Date,
  updatedAt: Date,
  supplierBaseProductId:{
    type: mongoose.Schema.Types.ObjectId,
    ref: 'SupplierBaseProducts'
  },
  owner: {
    type: mongoose.Schema.Types.ObjectId,
    ref: 'Users'
  },
  productType: String,
  status: String,
  name: String,
  sellingPrice: Number,
  design_ids:[{
    id: {
      type: mongoose.Schema.Types.ObjectId,
      ref: 'Designs'
    },
    position: String
  }],
  shops:[{
    type: mongoose.Schema.Types.ObjectId,
    ref: 'Shops'
  }],
  pricing:{
    margin: Number,
    customizationPrice: Number
  },
})

Liana.collection('Products',{
  fields:[
    {
      field: 'sellingPrice',
      type: Number,
      get: function(object){
        // return SupplierBaseProducts.findOne({_id: object.supplierBaseProductId}).exec()
        // .then((bp)=>{
        //   const price = parseFloat(bp.unitPrice) + parseFloat(object.pricing.margin) + parseFloat(object.pricing.customizationPrice)
        //   console.log({price});
        //   return price
        // })
      }
    },
    {
      field: 'productType',
      type: String,
      get: function(object){
        return SupplierBaseProducts.findOne({_id: object.supplierBaseProductId}).exec()
        .then((bp)=>{
          // console.log({bp});
          const type = bp.subCategory.fr + ' ' +  (bp.category.fr.length > 1 ? 'Unisexe' : bp.category.fr[0])
          console.log({type})
          return type
        })
      }
    }
  ]
})

module.exports = mongoose.model('Products', schema, 'Products');

from forest-express-mongoose.

KudMath avatar KudMath commented on July 20, 2024

BTW the issue occurs regardless of wether I define my smartfield in a /forest/ .js file or directly in the model...

from forest-express-mongoose.

KudMath avatar KudMath commented on July 20, 2024

And I just discovered that some of those are displayed properly in summary view but not in detail view:
apr-04-2018 17-00-04

from forest-express-mongoose.

arnaudbesnier avatar arnaudbesnier commented on July 20, 2024

Hey @KudMath, you should definitely follow the documentation steps to configure the Smart Fields.
It looks like you're not doing it the classical way.

https://doc.forestadmin.com/developer-guide/express-mongoose.html#example-concatenate-first-and-last-names

Other point, the type of a Smart Fields expects a string value as mentioned in the documentation.

from forest-express-mongoose.

KudMath avatar KudMath commented on July 20, 2024

The problem was indeed the js types in my smartfield instead of using a string. Thank you!

from forest-express-mongoose.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.