do not define queryset.delete(), the base implementation works
[matthijs/upstream/django-ldapdb.git] / ldapdb / models / query.py
index 8fe595f89da4b08d83a0517462349c1b662412d4..e84748c4ee00a35475d34e913e4824ed70a88cbe 100644 (file)
@@ -38,7 +38,7 @@ import ldap
 from django.db import connections
 from django.db.models.query import QuerySet as BaseQuerySet
 from django.db.models.query_utils import Q
 from django.db import connections
 from django.db.models.query import QuerySet as BaseQuerySet
 from django.db.models.query_utils import Q
-from django.db.models.sql import Query as BaseQuery
+from django.db.models.sql import Query
 from django.db.models.sql.where import WhereNode as BaseWhereNode, Constraint as BaseConstraint, AND, OR
 
 from ldapdb.backends.ldap import compiler
 from django.db.models.sql.where import WhereNode as BaseWhereNode, Constraint as BaseConstraint, AND, OR
 
 from ldapdb.backends.ldap import compiler
@@ -87,51 +87,9 @@ class WhereNode(BaseWhereNode):
             obj = Constraint(obj.alias, obj.col, obj.field)
         super(WhereNode, self).add((obj, lookup_type, value), connector)
 
             obj = Constraint(obj.alias, obj.col, obj.field)
         super(WhereNode, self).add((obj, lookup_type, value), connector)
 
-class Query(BaseQuery):
-    def get_count(self, using):
-        connection = connections[using]
-        try:
-            vals = connection.search_s(
-                self.model.base_dn,
-                self.model.search_scope,
-                filterstr=compiler.query_as_ldap(self),
-                attrlist=[],
-            )
-        except ldap.NO_SUCH_OBJECT:
-            return 0
-
-        number = len(vals)
-
-        # apply limit and offset
-        number = max(0, number - self.low_mark)
-        if self.high_mark is not None:
-            number = min(number, self.high_mark - self.low_mark)
-
-        return number
-
-    def has_results(self, using):
-        return self.get_count(using) != 0
-
 class QuerySet(BaseQuerySet):
     def __init__(self, model=None, query=None, using=None):
         if not query:
             query = Query(model, WhereNode)
         super(QuerySet, self).__init__(model=model, query=query, using=using)
 
 class QuerySet(BaseQuerySet):
     def __init__(self, model=None, query=None, using=None):
         if not query:
             query = Query(model, WhereNode)
         super(QuerySet, self).__init__(model=model, query=query, using=using)
 
-    def delete(self):
-        "Bulk deletion."
-        connection = connections[self.db]
-        try:
-            vals = connection.search_s(
-                self.model.base_dn,
-                self.model.search_scope,
-                filterstr=compiler.query_as_ldap(self.query),
-                attrlist=[],
-            )
-        except ldap.NO_SUCH_OBJECT:
-            return
-
-        # FIXME : there is probably a more efficient way to do this 
-        for dn, attrs in vals:
-            connection.delete_s(dn)
-