def build_query( self ): """ prepares query for searching """ collection_id = self.request.POST.get( 'models' ) ct_obj = CollectionContentType() collection_name = ct_obj.find_one( {'_id':ObjectId( collection_id )} )['collection_name'] collection_obj = CollectionMapping( collection_name ) self.data_list = collection_obj.objects.filter(self.constraint_dict)
def build_query(self): """ prepares query for searching """ collection_id = self.request.POST.get('models') ct_obj = CollectionContentType() collection_name = ct_obj.find_one({'_id': ObjectId(collection_id) })['collection_name'] collection_obj = CollectionMapping(collection_name) self.data_list = collection_obj.objects.filter(self.constraint_dict)
def get_model_meta(model_id, field_type='search_fields'): """ takes model id as param and returns list of fields """ collection_obj = CollectionContentType() model_fields = [] col_data = collection_obj.find_one({'_id': ObjectId(model_id)}) print col_data for key, value in col_data['key_names'].items(): model_fields.append([key, key]) return (col_data['collection_name'], model_fields)
def get_model_meta( model_id, field_type = 'search_fields' ): """ takes model id as param and returns list of fields """ collection_obj = CollectionContentType() model_fields = [] col_data=collection_obj.find_one( {'_id':ObjectId( model_id )} ) print col_data for key,value in col_data['key_names'].items(): model_fields.append( [key,key] ) return (col_data['collection_name'],model_fields)
def create_content( self, json_dump ): json_list = list( json_dump ) col_obj = CollectionContentType() if not col_obj.find_one( { "collection_name":self.collection_name} ): col_obj.load_json( { "collection_name":self.collection_name, "key_names":{}, "user": ''} ) data_obj = col_obj.find_one( { "collection_name":self.collection_name} ) user = data_obj['user'] previous_keys = data_obj['key_names'] if not previous_keys:previous_keys=SortedDict() pre_keys = previous_keys.keys() keys_dict = SortedDict() for each in json_list: for i,key in enumerate(each.keys()): if key == 'user': user = each[key] elif key not in keys_dict.keys(): keys_dict[key] = i for new_key in keys_dict.keys(): if new_key in pre_keys: count = int( previous_keys[new_key] ) + int( keys_dict[new_key] ) previous_keys[new_key] = count else: previous_keys[new_key] = keys_dict[new_key] row_data = col_obj.find_one( { "collection_name":self.collection_name} ) row_data['key_names'] = previous_keys row_data['user'] = user col_obj.update( { "collection_name":self.collection_name} , {"$set":{'key_names':previous_keys, 'user': user}} )
def create_content(self, json_dump): json_list = list(json_dump) col_obj = CollectionContentType() if not col_obj.find_one({"collection_name": self.collection_name}): col_obj.load_json({ "collection_name": self.collection_name, "key_names": {}, "user": '' }) data_obj = col_obj.find_one({"collection_name": self.collection_name}) user = data_obj['user'] previous_keys = data_obj['key_names'] if not previous_keys: previous_keys = SortedDict() pre_keys = previous_keys.keys() keys_dict = SortedDict() for each in json_list: for i, key in enumerate(each.keys()): if key == 'user': user = each[key] elif key not in keys_dict.keys(): keys_dict[key] = i for new_key in keys_dict.keys(): if new_key in pre_keys: count = int(previous_keys[new_key]) + int(keys_dict[new_key]) previous_keys[new_key] = count else: previous_keys[new_key] = keys_dict[new_key] row_data = col_obj.find_one({"collection_name": self.collection_name}) row_data['key_names'] = previous_keys row_data['user'] = user col_obj.update({"collection_name": self.collection_name}, {"$set": { 'key_names': previous_keys, 'user': user }})
def get_app_models(self, user): """ gets list of apps present in your content type """ ct_list = [] for collection in CollectionContentType().find({'user': user}): ct_list.append((collection['_id'], collection['collection_name'])) return ct_list