def post(self): source = self.load_source() redirect_url = '%s?%s' % (self.request.path, urllib.parse.urlencode({ 'source_key': source.key.urlsafe().decode(), })) add = self.request.get('add') delete = self.request.get('delete') if (add and delete) or (not add and not delete): self.abort(400, 'Either add or delete param (but not both) required') link = util.pretty_link(add or delete) if add: resolved = Source.resolve_profile_url(add) if resolved: if resolved in source.domain_urls: self.messages.add('%s already exists.' % link) else: source.domain_urls.append(resolved) domain = util.domain_from_link(resolved) source.domains.append(domain) source.put() self.messages.add('Added %s.' % link) else: self.messages.add( "%s doesn't look like your web site. Try again?" % link) else: assert delete try: source.domain_urls.remove(delete) except ValueError: self.abort( 400, "%s not found in %s's current web sites" % (delete, source.label())) domain = util.domain_from_link(delete) if domain not in set( util.domain_from_link(url) for url in source.domain_urls): source.domains.remove(domain) source.put() self.messages.add('Removed %s.' % link) self.redirect(redirect_url)
def edit_websites_post(): source = util.load_source() redirect_url = f'{request.path}?{urllib.parse.urlencode({"source_key": source.key.urlsafe().decode()})}' add = request.values.get('add') delete = request.values.get('delete') if (add and delete) or (not add and not delete): error('Either add or delete param (but not both) required') link = util.pretty_link(add or delete) if add: resolved = Source.resolve_profile_url(add) if resolved: if resolved in source.domain_urls: flash(f'{link} already exists.') else: source.domain_urls.append(resolved) domain = util.domain_from_link(resolved) source.domains.append(domain) source.put() flash(f'Added {link}.') else: flash(f"{link} doesn't look like your web site. Try again?") else: assert delete try: source.domain_urls.remove(delete) except ValueError: error( f"{delete} not found in {source.label()}'s current web sites") domain = util.domain_from_link(delete) if domain not in { util.domain_from_link(url) for url in source.domain_urls }: source.domains.remove(domain) source.put() flash(f'Removed {link}.') return redirect(redirect_url)
def post(self): source = self.load_source() redirect_url = '%s?%s' % (self.request.path, urllib.urlencode({ 'source_key': source.key.urlsafe(), })) add = self.request.get('add') delete = self.request.get('delete') if (add and delete) or (not add and not delete): self.abort(400, 'Either add or delete param (but not both) required') link = util.pretty_link(add or delete) if add: resolved = Source.resolve_profile_url(add) if resolved: if resolved in source.domain_urls: self.messages.add('%s already exists.' % link) else: source.domain_urls.append(resolved) domain = util.domain_from_link(resolved) source.domains.append(domain) source.put() self.messages.add('Added %s.' % link) else: self.messages.add("%s doesn't look like your web site. Try again?" % link) else: assert delete try: source.domain_urls.remove(delete) except ValueError: self.abort(400, "%s not found in %s's current web sites" % ( delete, source.label())) domain = util.domain_from_link(delete) if domain not in set(util.domain_from_link(url) for url in source.domain_urls): source.domains.remove(domain) source.put() self.messages.add('Removed %s.' % link) self.redirect(redirect_url)