Correction mineurs système de ticket & fix de l'erreur "!! CommandeNotfound"
This commit is contained in:
parent
dfec6b2418
commit
33fd07b842
16 changed files with 30 additions and 2868 deletions
|
|
@ -694,6 +694,7 @@ class TicketManagementView(discord.ui.View):
|
|||
"author_name": str(msg.author),
|
||||
"content": msg.content,
|
||||
"timestamp": msg.created_at.isoformat(),
|
||||
"attachments": [a.url for a in msg.attachments],
|
||||
"is_staff": self._is_staff_member(msg.author)
|
||||
})
|
||||
|
||||
|
|
@ -788,6 +789,8 @@ class TicketManagementView(discord.ui.View):
|
|||
return user.guild_permissions.administrator
|
||||
|
||||
def _is_staff_member(self, member) -> bool:
|
||||
if not isinstance(member, discord.Member):
|
||||
return False
|
||||
guild = member.guild
|
||||
for role_id in self.config.staff_roles:
|
||||
role = guild.get_role(int(role_id))
|
||||
|
|
@ -795,7 +798,6 @@ class TicketManagementView(discord.ui.View):
|
|||
return True
|
||||
return False
|
||||
|
||||
|
||||
class CloseTicketModal(discord.ui.Modal):
|
||||
"""Modal pour fermer un ticket"""
|
||||
|
||||
|
|
@ -894,6 +896,7 @@ class CloseTicketModal(discord.ui.Modal):
|
|||
"author_name": str(msg.author),
|
||||
"content": msg.content,
|
||||
"timestamp": msg.created_at.isoformat(),
|
||||
"attachments": [a.url for a in msg.attachments],
|
||||
"is_staff": self._is_staff_member(msg.author)
|
||||
})
|
||||
|
||||
|
|
@ -958,6 +961,16 @@ class CloseTicketModal(discord.ui.Modal):
|
|||
return True
|
||||
return user.guild_permissions.administrator
|
||||
|
||||
def _is_staff_member(self, member) -> bool:
|
||||
if not isinstance(member, discord.Member):
|
||||
return False
|
||||
guild = member.guild
|
||||
for role_id in self.config.staff_roles:
|
||||
role = guild.get_role(int(role_id))
|
||||
if role and role in member.roles:
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
class TicketSetupView(discord.ui.View):
|
||||
"""Panel de configuration complet du système de tickets"""
|
||||
|
|
|
|||
|
|
@ -216,6 +216,17 @@ class TicketData:
|
|||
@classmethod
|
||||
def from_dict(cls, data: Dict[str, Any]) -> 'TicketData':
|
||||
messages = [TicketMessage.from_dict(m) for m in data.get("messages", [])]
|
||||
|
||||
def safe_parse_date(date_str, default=None):
|
||||
if not date_str:
|
||||
return default
|
||||
try:
|
||||
if isinstance(date_str, str) and date_str.endswith("Z"):
|
||||
date_str = date_str[:-1] + "+00:00"
|
||||
return datetime.fromisoformat(date_str)
|
||||
except ValueError:
|
||||
return default
|
||||
|
||||
return cls(
|
||||
channel_id=data.get("channel_id", 0),
|
||||
guild_id=data.get("guild_id", 0),
|
||||
|
|
@ -223,8 +234,8 @@ class TicketData:
|
|||
category_id=data.get("category_id", ""),
|
||||
status=TicketStatus(data.get("status", "open")),
|
||||
priority=Priority(data.get("priority", "normal")),
|
||||
created_at=datetime.fromisoformat(data.get("created_at", datetime.now().isoformat())),
|
||||
closed_at=datetime.fromisoformat(data["closed_at"]) if data.get("closed_at") else None,
|
||||
created_at=safe_parse_date(data.get("created_at"), datetime.now()),
|
||||
closed_at=safe_parse_date(data.get("closed_at")),
|
||||
claimed_by=data.get("claimed_by"),
|
||||
messages=messages,
|
||||
reason=data.get("reason", ""),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue