Revision 487 (by ahitrov, 2015/04/09 20:57:11) Отдельный счетчик для кастомных таблиц
package SQL::DocumentTable;

use strict;
use base 'SQL::ProtoTable';

sub db_table
{
	return 'documents';
}

sub available_filters {
	my @available_filters = qw(	
					_class_filter
					_status_filter
					_in_id_filter
					_id_filter
					_name_filter
					_class_excludes_filter
					_sfilter_filter
					_datetime_filter
					_date_equal_filter
					_date_filter
				 	_previous_days_filter
					_prev_to_filter
					_next_to_filter
					_s_filter

					_excludes_filter
					_link_filter
				);
	return \@available_filters; 
}

# ----------------------------------------------------------------------------
# �������� ������ � ��������, ������ ��� ������� �����!
# ��� ����� �������� - ���������� ��� ���� ����������.
#
#   attr - ������������ ��������, �������� ��������;
#   type - ��� ���������, ��������� ��� ������������;
#   rusname - ������� ��������, ����� �� ��������� ��� �����������;
#   hidden - ����� 1, ����� 
#   readonly - ������������� ��� ������ ������ ��� ��������� � ����������
#   db_field - ���� � �������
#   default  - �������� �� ��������� (���� ������ ����� ��� ��������)
# ----------------------------------------------------------------------------
sub required_properties
{
	my $self = shift;
	my $id_sequence = $self->db_id_sequence();
	return (
		{							# ������������� ���������, �������� �� ���� �����...
			'attr'		=> 'id',
			'type'		=> 'integer',
			'rusname'	=> '������������� ���������',
			'hidden'	=> 1,
			'readonly'	=> 1,
			'auto'		=> 1,
			'db_field'	=> 'id',
			'db_type'	=> 'integer',
			'db_opts'	=> "not null default nextval('public.$id_sequence'::text)",
		},
		{							# ����� ���������...
			'attr'		=> 'class',
			'type'		=> 'string',
			'rusname'	=> '����� ���������',
			'column'	=> 3,
			'hidden'	=> 1,
			'readonly'	=> 1,
			'db_field'	=> 'class',
			'db_type'	=> 'varchar(48)',
			'db_opts'	=> 'not null',
		},
		{							# ��� ���������...
			'attr'		=> 'name',
			'type'		=> 'string',
			'rusname'	=> '��������',
			'column'	=> 2,
			'db_field'	=> 'name',
			'db_type'	=> 'varchar(255)',
		},
		{							# ����� �������� ���������, ��������� ����...
			'attr'		=> 'ctime',
			'type'		=> 'datetime',
			'rusname'	=> '����� ��������',
			'readonly'	=> 1,
			'auto'		=> 1,
			'hidden'	=> 1,
			'db_field'	=> 'ctime',
			'db_type'	=> 'timestamp',
			'db_opts'	=> 'not null default now()',
			'default'	=> 'CURRENT_TIMESTAMP',
		},
		{							# ����� ����������� ���������, ��������� ����...
			'attr'		=> 'mtime',
			'type'		=> 'datetime',
			'rusname'	=> '����� �����������',
			'hidden'	=> 1,
			'auto'		=> 1,
			'db_field'	=> 'mtime',
			'db_type'	=> 'timestamp',
			'db_opts'	=> 'not null default now()',
			'default'	=> 'CURRENT_TIMESTAMP',
		},
		{							# ���� � ����� ���������...
			'attr'		=> 'dtime',
			'type'		=> 'datetime', 
			'rusname'	=> '���� � ����� ���������<sup style="color:#888;">&nbsp;1)</sup>',
			'column'	=> 1,
			'db_field'	=> 'dtime',
			'db_type'	=> 'timestamp',
			'db_opts'	=> 'not null default now()',
			'default'	=> 'CURRENT_TIMESTAMP',
		},
		{							# ������ ������, �������������� ����������� �������...
			'attr'		=> 'sections',
			'type'		=> 'sections_list',
			'rusname'       => '������',
			'hidden'	=> 1,
			'db_field'	=> 'sections',
			'db_type'	=> 'integer[]',
		},
		{							# ���� ���� ������� �������� ����������...
			'attr'		=> 'status',
			'type'		=> 'status',
			'rusname'	=> '������',
			'db_field'	=> 'status',
			'db_type'       => 'integer',
		},
	);
}

1;