Random
This commit is contained in:
parent
f3551bb13e
commit
1fe98f434d
12
TODO.md
12
TODO.md
|
@ -172,6 +172,8 @@
|
||||||
|
|
||||||
* Webapp options and type compatibility
|
* Webapp options and type compatibility
|
||||||
|
|
||||||
|
* SaaS model splitted into SaaSUser and SaaSSite?
|
||||||
|
|
||||||
Multi-tenant WebApps
|
Multi-tenant WebApps
|
||||||
--------------------
|
--------------------
|
||||||
* SaaS - Those apps that can't use custom domain
|
* SaaS - Those apps that can't use custom domain
|
||||||
|
@ -179,5 +181,13 @@ Multi-tenant WebApps
|
||||||
|
|
||||||
* Howto upgrade webapp PHP version? <FilesMatch \.php$> SetHandler php54-cgi</FilesMatch> ? or create a new app
|
* Howto upgrade webapp PHP version? <FilesMatch \.php$> SetHandler php54-cgi</FilesMatch> ? or create a new app
|
||||||
|
|
||||||
|
|
||||||
* prevent @pangea.org email addresses on contacts
|
* prevent @pangea.org email addresses on contacts
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
* fcgid kill instead of apache reload?
|
||||||
|
|
||||||
|
|
||||||
|
* chomod user:group
|
||||||
|
* username maximum as group user in UNIX
|
||||||
|
|
|
@ -64,7 +64,7 @@ class SendEmail(object):
|
||||||
return render(request, self.template, self.context)
|
return render(request, self.template, self.context)
|
||||||
|
|
||||||
def get_queryset_emails(self):
|
def get_queryset_emails(self):
|
||||||
return self.queryset.value_list('email', flat=True)
|
return self.queryset.values_list('email', flat=True)
|
||||||
|
|
||||||
def confirm_email(self, request, **options):
|
def confirm_email(self, request, **options):
|
||||||
email_from = options['email_from']
|
email_from = options['email_from']
|
||||||
|
|
|
@ -61,30 +61,35 @@ def runiterator(command, display=False, error_codes=[0], silent=False, stdin='')
|
||||||
make_async(p.stdout)
|
make_async(p.stdout)
|
||||||
make_async(p.stderr)
|
make_async(p.stderr)
|
||||||
|
|
||||||
stdout = unicode()
|
|
||||||
stderr = unicode()
|
|
||||||
|
|
||||||
# Async reading of stdout and sterr
|
# Async reading of stdout and sterr
|
||||||
while True:
|
while True:
|
||||||
# Wait for data to become available
|
# TODO https://github.com/isagalaev/ijson/issues/15
|
||||||
select.select([p.stdout, p.stderr], [], [])
|
stdout = unicode()
|
||||||
|
sdterr = unicode()
|
||||||
|
# Get complete unicode chunks
|
||||||
|
while True:
|
||||||
|
select.select([p.stdout, p.stderr], [], [])
|
||||||
|
stdoutPiece = read_async(p.stdout)
|
||||||
|
stderrPiece = read_async(p.stderr)
|
||||||
|
try:
|
||||||
|
stdout += stdoutPiece.decode("utf8")
|
||||||
|
sdterr += stderrPiece.decode("utf8")
|
||||||
|
except UnicodeDecodeError:
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
break
|
||||||
|
|
||||||
# Try reading some data from each
|
if display and stdout:
|
||||||
stdoutPiece = read_async(p.stdout)
|
sys.stdout.write(stdout)
|
||||||
stderrPiece = read_async(p.stderr)
|
|
||||||
|
|
||||||
if display and stdoutPiece:
|
|
||||||
sys.stdout.write(stdoutPiece)
|
|
||||||
if display and stderrPiece:
|
if display and stderrPiece:
|
||||||
sys.stderr.write(stderrPiece)
|
sys.stderr.write(stderr)
|
||||||
|
|
||||||
return_code = p.poll()
|
state = _AttributeUnicode(stdout)
|
||||||
state = _AttributeUnicode(stdoutPiece.decode("utf8"))
|
state.stderr = sdterr
|
||||||
state.stderr = stderrPiece.decode("utf8")
|
state.return_code = p.poll()
|
||||||
state.return_code = return_code
|
|
||||||
yield state
|
yield state
|
||||||
|
|
||||||
if return_code != None:
|
if state.return_code != None:
|
||||||
p.stdout.close()
|
p.stdout.close()
|
||||||
p.stderr.close()
|
p.stderr.close()
|
||||||
raise StopIteration
|
raise StopIteration
|
||||||
|
|
Loading…
Reference in a new issue