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

Benjamin
a validé
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
a validé
# 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
a validé
# Upload File
uploaded_file = self.alfresco_upload(
partner=self.partner_id,
type=self.type,
periode=self.periode,
validite=self.validite,
filename=self.filename,

Benjamin
a validé
# 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.type,
'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
a validé
"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}