def post(self, **data): """Creates dashboard """ if 'id' in data: return self.put(data['id'], **data) if data.get('author') is None: data['author'] = self.user else: data['author'] = fields.ObjectId(data['author']) dashboard = Dashboard.objects.create_by_user(self.user, **data) return dashboard
def create(self, user, channel_type, name): if channel_type.is_locked: raise ChannelTypeIsLocked('ChannelType:%s is locked' % channel_type.name) defaults = { 'mongo_collection': 'Post', 'sync_collection': 'EventType%s_sync' % fields.ObjectId(), 'channel_type_id': channel_type.id, # TODO: unify usage of platform/channel_type 'channel_type_name': channel_type.name, 'platform': channel_type.name, 'account_id': self.instance.id, } event_type = EventType.create_by_user(user, self.instance.id, name, **defaults) return event_type
def get_parameters(self): data = _get_request_data() params = {} for key, value in data.iteritems(): if hasattr(Gallery, key) and key in self.valid_parameters: field = getattr(Gallery, key) if isinstance(field, fields.ObjectIdField): value = fields.ObjectId(value) elif isinstance(field, fields.ListField) and isinstance( field.field, fields.ObjectIdField): value = map(fields.ObjectId, value) params[key] = value return params
def get_parameters(self): data = _get_request_data() params = { 'owner': self.user, # for storing } for key, value in data.iteritems(): if hasattr(Dashboard, key) and key in self.valid_parameters: field = getattr(Dashboard, key) if isinstance(field, fields.ObjectIdField): value = fields.ObjectId(value) elif isinstance(field, fields.ListField) and isinstance( field.field, fields.ObjectIdField): value = map(fields.ObjectId, value) params[key] = value return params
def get_parameters(self): data = _get_request_data() params = {} # since funnels are account specific and not user specific if request.method == 'POST': params['owner'] = self.user for key, value in data.iteritems(): if hasattr(Funnel, key) and key in self.valid_parameters: field = getattr(Funnel, key) if isinstance(field, fields.ObjectIdField): value = fields.ObjectId(value) elif isinstance(field, fields.ListField) and isinstance( field.field, fields.ObjectIdField): value = map(fields.ObjectId, value) params[key] = value return params
def test_update(self): data = dict( type_id = self.db_types_name2id['journeys'], title = 'journeys' ) resp = self._create(data) data = json.loads(resp.data) dashboard_id = data['data']['id'] updated_title = data['title'] = 'journeys optimization' # use self user for now as we don't have another user updated_shared_to = data['shared_to'] = [str(self.user.id)] resp = self.client.put('/dashboards/' + dashboard_id, data=json.dumps(data)) data = json.loads(resp.data) eq_(dashboard_id, data['data']['id']) eq_(updated_title, data['data']['title']) eq_(updated_shared_to, data['data']['shared_to']) eq_(updated_title, Dashboard.objects.get().title) eq_(fields.ObjectId(updated_shared_to[0]), Dashboard.objects.get().shared_to[0]) for each in ['id', 'title', 'widgets']: assert_in(each, data['data'])
def get_parameters(self): data = _get_request_data() params = {} account = parse_account(self.user, data) if account: params['account_id'] = account.id for param_name, param_value in data.iteritems(): if hasattr(self.model, param_name) and param_name in self.valid_parameters: field = getattr(self.model, param_name) if isinstance(field, fields.ObjectIdField): param_value = fields.ObjectId(param_value) elif isinstance(field, fields.ListField) and isinstance( field.field, fields.ObjectIdField): param_value = map(fields.ObjectId, param_value) params[param_name] = param_value if request.method == 'GET': params.update(get_paging_params(data)) return params