3
(h                 @   sl   d dl mZ d dlmZ d dlmZ d dlmZ G dd dejZ	G dd dej
Zeeed	d
d ZdS )    )models)cache)receiver)	post_savec               @   s   e Zd ZdZdd ZdS )ModuleManagerzBase module state maanger.c             C   s>   t jd}|s6dd | j jddD }t jd|d	 ||kS )
z-By default, all modules considered installed.zmaterial.modules.installedc             S   s   g | ]
}|j qS  )label).0modr   r   E/tmp/pip-install-q3hcpn_q/django-material/material/frontend/models.py
<listcomp>   s    z+ModuleManager.installed.<locals>.<listcomp>T)	installed<      i  iQ )r   getZget_querysetfilterset)selfmoduleZinstalled_cacher   r   r   r   
   s
    
zModuleManager.installedN)__name__
__module____qualname____doc__r   r   r   r   r   r      s   r   c               @   s2   e Zd ZdZej ZejddZe	 Z
dd ZdS )Modulez,Keep module installed state in the database.T)defaultc             C   s   | j S )N)r   )r   r   r   r   __str__   s    zModule.__str__N)r   r   r   r   r   Z	SlugFieldr   ZBooleanFieldr   r   Zobjectsr   r   r   r   r   r      s
   r   )senderc             K   s   t jd d S )Nzmaterial.modules.installed)r   delete)r   kwargsr   r   r   _clean_installed_cache   s    r   N)Z	django.dbr   Zdjango.core.cacher   Zdjango.dispatchr   Zdjango.db.models.signalsr   Managerr   ZModelr   r   r   r   r   r   <module>   s   