Server : Apache System : Linux iad1-shared-b8-43 6.6.49-grsec-jammy+ #10 SMP Thu Sep 12 23:23:08 UTC 2024 x86_64 User : dh_edsupp ( 6597262) PHP Version : 8.2.26 Disable Function : NONE Directory : /lib/python3/dist-packages/trac/wiki/__pycache__/ |
Upload File : |
o �k�`�( � @ s\ d dl T d dlmZ d dlmZmZmZmZ d dlm Z d dl mZmZ G dd� de �ZdS ) � )�*)�Resource)�datetime_now�from_utimestamp� to_utimestamp�utc)�_)� WikiSystem�validate_page_namec @ sv e Zd ZdZejZedd� �Zddd�Zddd�Z d d � Z edd� �Zdd d�Zddd�Z dd� Zdd� Zdd� ZdS )�WikiPagez)Represents a wiki page (new or existing).c C s t | j| j| j�S �N)r �realm�name�_resource_version��self� r �1/usr/lib/python3/dist-packages/trac/wiki/model.py�resource s zWikiPage.resourceNc C s� || _ |rzt|�}W n ty d}Y nw t|t�r=|}|j}|du r=|jdur=zt|j�}W n ty< d}Y nw || _|| _|rL| � ||� nd| _d | _ | _| _d| _ d| _| j | _| j| _dS )a; Create a new page object or retrieves an existing page. :param env: an `Environment` object. :param name: the page name or a `Resource` object. :param version: the page version. The value takes precedence over the `Resource` version when both are specified. Nr � )�env�int� ValueError� isinstancer �id�versionr r �_fetch�text�comment�author�time�readonly�old_text�old_readonly)r r r r r r r r �__init__# s4 � �zWikiPage.__init__c C s� |d ur d}|t |�f}nd}|f}| j�||�D ]&\}}}}}} t |�| _|| _t|�| _|| _|| _| r:t | �nd| _ d S d| _d | _ | _| _d | _d| _ d S )NzqSELECT version, time, author, text, comment, readonly FROM wiki WHERE name=%s AND version=%sz�SELECT version, time, author, text, comment, readonly FROM wiki WHERE name=%s ORDER BY version DESC LIMIT 1r r ) r r �db_queryr r r r r r r! ) r r r �sql�argsr r r r r! r r r r M s$ � zWikiPage._fetchc C s2 | j d u r | j }nd| j | jf }d| jj|f S )Nz%s@%sz<%s %r>)r r � __class__�__name__)r r r r r �__repr__e s zWikiPage.__repr__c C s | j dkS )Nr )r r r r r �<lambda>l s zWikiPage.<lambda>c C s( | j s ttd���| jj�W}|du r#|d| jf� | jj�d| j� n|d| j|f� | jj�d|| j� |du s>|| jkrE| � | jd� | j s]t | j�`ddlm } |�| j| j| j� W d � n1 sgw Y | j st | j�jD ]}|�| � qudS t | j�jD ]}t|d �r�|�| � q�dS ) z.Delete one or all versions of a page. zCannot delete non-existent pageNzDELETE FROM wiki WHERE name=%szDeleted page %sz-DELETE FROM wiki WHERE name=%s and version=%szDeleted version %d of page %sr �� Attachment�wiki_page_version_deleted)�exists� TracErrorr r �db_transactionr �log�infor r r �pages�trac.attachmentr- � delete_allr �change_listeners�wiki_page_deleted�hasattrr. )r r �dbr- �listenerr r r �deleten s: �� ��� ��zWikiPage.deleteFc C s� t | j�sttd| jd���| j| jk}|s"| j| jkr"ttd���|p'tt �}| j j�J}|r\|rB| jdkrB|d| j| j| jf� n#| jd7 _|d| j| jt |�|| j|| jf� n |d| j| jf� | jdkrot| j �`W d � n1 syw Y || _|| _|| _t| j �jD ]-}| j �|�� | jdkr�|�| � n |�| | j|||� W d � n1 s�w Y q�| j| _| j| _d S ) zSave a new version of a page.�!Invalid Wiki page name '%(name)s'�r zPage not modifiedr zf UPDATE wiki SET text=%s WHERE name=%s AND version=%s � z�INSERT INTO wiki (name,version,time,author,text,comment,readonly) VALUES (%s,%s,%s,%s,%s,%s,%s) z)UPDATE wiki SET readonly=%s WHERE name=%sN)r r r0 r r r"