dossiers: redirect to client side location if specified (#2135)

This commit is contained in:
Frédéric Péters 2012-12-27 13:36:17 +01:00
parent 0c33f9fd63
commit ac0cd45717
3 changed files with 21 additions and 4 deletions

View File

@ -440,6 +440,15 @@ class PatientRecord(ServiceLinkedAbstractModel, PatientContact):
os.makedirs(subdir_fullpath)
return fullpath
def get_client_side_directory(self, service):
directory = self.get_ondisk_directory(service)
if not directory:
return None
if not settings.CLIENT_SIDE_PATIENT_FILES_BASE_DIRECTORY:
return None
return os.path.join(settings.CLIENT_SIDE_PATIENT_FILES_BASE_DIRECTORY,
directory[len(settings.PATIENT_FILES_BASE_DIRECTORY)+1:])
def set_state(self, status, author, date_selected=None, comment=None):
if not author:
raise Exception('Missing author to set state')

View File

@ -582,9 +582,14 @@ class GenerateRtfFormView(cbv.FormView):
vars['AD%d' % (11+i)] = line
make_doc_from_template(from_path, to_path, vars)
response = HttpResponse(mimetype='text/rtf')
response['Content-Disposition'] = 'attachment; filename="%s"' % dest_filename
response.write(file(to_path).read())
return response
client_dir = patient.get_client_side_directory(self.service.name)
if not client_dir:
response = HttpResponse(mimetype='text/rtf')
response['Content-Disposition'] = 'attachment; filename="%s"' % dest_filename
response.write(file(to_path).read())
return response
else:
client_filepath = os.path.join(client_dir, dest_filename)
return HttpResponseRedirect('file://' + client_filepath)
generate_rtf_form = GenerateRtfFormView.as_view()

View File

@ -240,6 +240,9 @@ LOGIN_REDIRECT_URL = '/'
# Base directory for generated patient files
PATIENT_FILES_BASE_DIRECTORY = None
# Client side base directory for generated patient files
CLIENT_SIDE_PATIENT_FILES_BASE_DIRECTORY = None
# Patient subdirectories
PATIENT_SUBDIRECTORIES = (
u'Assistante sociale',