dossiers: redirect to client side location if specified (#2135)
This commit is contained in:
parent
0c33f9fd63
commit
ac0cd45717
|
@ -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')
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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',
|
||||
|
|
Reference in New Issue