def save(self): # TODO: remove and create more intelligently, not to f**k up the proxy-form of the delegating ## create diff ## remove old proxies for this delegate proxies = Proxy.objects.filter(delegating=self.user, delegates=self.delegate, isdefault=False) for proxy in proxies: if proxy.delegates.filter(pk=self.delegate.pk).exists(): # this proxy contains the delegate --> disable this proxy and create a new one without this delegate # check if this proxy will be empty after removing delegate if proxy.delegates.count() == 1: # don't save new proxy because it would be empty proxy.disable() else: newproxy = proxy.disable_and_get_mutable_copy() newproxy.delegates.remove(self.delegate) # create a single new proxy for this delegate newproxy = Proxy(delegating=self.user, isdefault=False) newproxy.save() newproxy.delegates.add(self.delegate) if 'profile_proxy_tags' in self.data.keys(): for tag in self.data.getlist('profile_proxy_tags'): tag_object = Tag.objects.get(pk=tag) newproxy.tags.add(tag_object) newproxy.save() return
def setUp(self): numusers = 20 self.users = [] for i in xrange(numusers): u = CustomUser(username=u"U%d" % i) u.save() self.users.append(u) numtags = 10 self.tags = [] for i in xrange(numtags): t = Tag(name=u"T%d" % i) t.save() self.tags.append(t) tupples = [ (0, [], [1, 2, 3, 4], True), (1, [], [2, 3, 4], True), (2, [], [1, 3, 4], True), (3, [], [5, 6], True), (4, [], [7, 8], True), (5, [], [9], True), (7, [], [10], True), ] self.proxies = [] for tupple in tupples: p = Proxy(delegating=self.users[tupple[0]], isdefault=tupple[3]) p.save() for t in tupple[1]: p.tags.add(self.tags[t]) for d in tupple[2]: p.delegates.add(self.users[d]) p.save() self.proxies.append(p) doc = FullDocument() doc.save() diff = Diff(fulldocument=doc) diff.save() self.proposal = AmendmentProposal(title="Test", diff=diff, motivation="Motivation") self.proposal.save()
def save(self): # TODO: remove and create more intelligently, not to f**k up the proxy-form of the delegating ## create diff ## remove old proxies for this delegate proxies = Proxy.objects.filter(delegating=self.user, delegates=self.delegate, isdefault=False) for proxy in proxies: proxy.delegates.remove(self.delegate) if not proxy.delegates.exists(): proxy.delete() # create a single new proxy for this delegate newproxy = Proxy(delegating=self.user, isdefault=False) newproxy.save() newproxy.delegates.add(self.delegate) if 'profile_proxy_tags' in self.data.keys(): for tag in self.data.getlist('profile_proxy_tags'): tag_object = Tag.objects.get(pk=tag) newproxy.tags.add(tag_object) newproxy.save() return