예제 #1
0
    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)
예제 #2
0
    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)
예제 #3
0
    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)
예제 #4
0
    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)
예제 #5
0
    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}} )
예제 #6
0
    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
                       }})
예제 #7
0
 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