Newer
Older
# © 2019 Le Filament (<http://www.le-filament.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).

Benjamin
committed
import dateutil.parser
import pytz
class AddFileWizard(models.TransientModel):
""" Wizard d'ajout de fichier dans la GED
Récupère automatiquement depuis Alfresco les valeurs de periode,
type et validité ainsi que l'organisme associé
"""
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
_description = "Ajout de fichier dans Alfresco"
# Default functions
def _get_selection(self, value):
file_type = self.alfresco_list_type()[value]
select_type = []
for type in file_type:
select_type.append(
(type, type))
return select_type
@api.model
def _get_type(self):
return self._get_selection('type')
@api.model
def _get_periode(self):
return self._get_selection('periode')
@api.model
def _get_validite(self):
return self._get_selection('validite')
@api.model
def _default_partner_id(self):
return self.env.context.get('active_id')
type = fields.Selection(selection=_get_type, string='Type')
periode = fields.Selection(selection=_get_periode, string='Période')
validite = fields.Selection(selection=_get_validite, string='Validité')
file = fields.Binary('Fichier')
filename = fields.Char('Nom')
partner_id = fields.Many2one(
comodel_name='res.partner',
string='Organisme',
default=_default_partner_id,)
@api.multi
def add_file(self):
""" Ajoute un fichier sur la GED Alfresco
@return: fonction get_partner_files() de res.partner
"""

Benjamin
committed
# Get Mimetype
content_type = mimetypes.guess_type(self.filename)
if content_type[0]:
content_type = content_type[0]
else:
content_type = guess_mimetype(self.file)

Benjamin
committed
# Upload File
uploaded_file = self.alfresco_upload(
partner=self.partner_id,
type=self.type,
periode=self.periode,
validite=self.validite,
filename=self.filename,

Benjamin
committed
# Add new file in transient model for view
uid = self.env.user.id
alfresco_obj = self.env["alfresco.partner.files"]
alfresco_obj.create({
'name': self.periode if self.periode != 'Autre' else self.filename,

Benjamin
committed
'type': self.type,
'file_id': uploaded_file,
'user_id': uid,
'periode': self.periode,
'validite': self.validite,
'last_modification': fields.Datetime.now(),
'partner_id': self.partner_id.id,
})
# Reload view

Benjamin
committed
"type": "ir.actions.act_window",
"name": "Fichiers liés",
"res_model": "alfresco.partner.files",
"views": [[False, "tree"]],
"search_view_id": self.env.ref(
"cgscop_alfresco.alfresco_partner_files_search").id,
'context': {'search_default_group_periode': True}