<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.avobjects.com/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://wiki.avobjects.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ivan</id>
		<title>AVObjects Knowledge Base - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.avobjects.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ivan"/>
		<link rel="alternate" type="text/html" href="http://wiki.avobjects.com/Special:Contributions/Ivan"/>
		<updated>2026-04-27T13:50:22Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.18.2</generator>

	<entry>
		<id>http://wiki.avobjects.com/Types_of_Licenses</id>
		<title>Types of Licenses</title>
		<link rel="alternate" type="text/html" href="http://wiki.avobjects.com/Types_of_Licenses"/>
				<updated>2010-01-02T10:06:06Z</updated>
		
		<summary type="html">&lt;p&gt;Ivan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview of Licensing Terms==&lt;br /&gt;
&lt;br /&gt;
There are two primary types of licenses:&lt;br /&gt;
&lt;br /&gt;
#The '''Single Developer''' or '''Team''' license. This license grants the Licensee with the right to use the Product (for example, [[Multimedia SDK]]) by either one developer (Single Developer License) or 1-4 developers (Team License). There is no limitation on the number of executable applications, and no limitation on the number of deployed or redistributed copies. So, for the Single Developer license, one developer at a time can work with the SDK, but you can redistribute copies of the application(s) you develop with the SDK unlimited and royalty-free. In case you have a Team license, up to 4 developers can work with the SDK at the same time.&lt;br /&gt;
#The '''Single Application''' license. This license grants the Licensee with the right to use the Product to develop one executable application. The number of developers, depployments or redistributed copies is not limited. To understand better what can be considered as one executable application, please read a more detailed faq post [[What Is a Single Application|here]].&lt;br /&gt;
&lt;br /&gt;
For better understanding here's a comparison table.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
!Single Developer License&lt;br /&gt;
!Team License&lt;br /&gt;
!Single Application License&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Number of developers and/or development computers&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| Unlimited&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Number of test computers&lt;br /&gt;
| Unlimited&lt;br /&gt;
| Unlimited&lt;br /&gt;
| Unlimited&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Number of applications&lt;br /&gt;
| Unlimited&lt;br /&gt;
| Unlimited&lt;br /&gt;
| 1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Deployment or redistribution&lt;br /&gt;
| Unlimited&lt;br /&gt;
| Unlimited&lt;br /&gt;
| Unlimited&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Updates &amp;amp; Support===&lt;br /&gt;
&lt;br /&gt;
We supply a 1 year subscription for updates and support with both the Single Developer/Team and Single Application licenses. The price of subsciption renewal is 50% the full list price of the Product at the moment of renewal. Renewing the subscription is optional but the 50% discount is valid for only 6 months after subscription expiration.&lt;br /&gt;
&lt;br /&gt;
===Delivery===&lt;br /&gt;
&lt;br /&gt;
After purchasing the license you will receive a set of license files and activation instructions. Delivery is made via email.&lt;br /&gt;
&lt;br /&gt;
Before the license keys can be delivered we ask the customer to provide at least two email contacts. The first (technical contact) will be used to deliver the license files and, in the future, will periodically receive email notifications about new releases of the licensed product (including information about bug fixes and new features). The Licensee agrees that at least one email address will be provided and will be receiving such mailings in order for MediaLooks to make sure the Licensee is informed about the Product's changes. 7 days before and upon subscription expiration we will send a note to this contact informing about the option to renew the subscription.&lt;br /&gt;
&lt;br /&gt;
The second contact will only be used to inform about subscription expiration.&lt;br /&gt;
&lt;br /&gt;
Both email contact, however, may be occasionally used to provide the customer with information about new and related products.&lt;br /&gt;
&lt;br /&gt;
Upon delivery of the license keys the Licensee's email address (or several addresses) will be associated with his license and periodical mailings with information about new releases (including) will be made.&lt;br /&gt;
&lt;br /&gt;
==Common Questions==&lt;br /&gt;
&lt;br /&gt;
''Does the Single Developer License mean that only one person in our company can use the SDK at the same time and that there is no restriction for the applications that are created and redistributed?''&lt;br /&gt;
&lt;br /&gt;
Yes, that is correct in case you purchase a Single Developer License. In case you purchase a Team license, up to 4 developers can work with the SDK at the same time. And нes, there is no restriction to the number of applications that you develop with the SDK, and you can redistribute them royalty-free.&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
[[Category:Licensing FAQ]]&lt;/div&gt;</summary>
		<author><name>Ivan</name></author>	</entry>

	<entry>
		<id>http://wiki.avobjects.com/Types_of_Licenses</id>
		<title>Types of Licenses</title>
		<link rel="alternate" type="text/html" href="http://wiki.avobjects.com/Types_of_Licenses"/>
				<updated>2010-01-02T10:05:32Z</updated>
		
		<summary type="html">&lt;p&gt;Ivan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview of Licensing Terms==&lt;br /&gt;
&lt;br /&gt;
There are two primary types of licenses:&lt;br /&gt;
&lt;br /&gt;
#The '''Single Developer''' or '''Team''' license. This license grants the Licensee with the right to use the Product (for example, [[Multimedia SDK]]) by either one developer (Single Developer License) or 1-4 developers (Team License). There is no limitation on the number of executable applications, and no limitation on the number of deployed or redistributed copies. So, for the Single Developer license, one developer at a time can work with the SDK, but you can redistribute copies of the application(s) you develop with the SDK unlimited and royalty-free. In case you have a Team license, up to 4 developers can work with the SDK at the same time.&lt;br /&gt;
&lt;br /&gt;
#The '''Single Application''' license. This license grants the Licensee with the right to use the Product to develop one executable application. The number of developers, depployments or redistributed copies is not limited. To understand better what can be considered as one executable application, please read a more detailed faq post [[What Is a Single Application|here]].&lt;br /&gt;
&lt;br /&gt;
For better understanding here's a comparison table.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
!Single Developer License&lt;br /&gt;
!Team License&lt;br /&gt;
!Single Application License&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Number of developers and/or development computers&lt;br /&gt;
| 1&lt;br /&gt;
| 4&lt;br /&gt;
| Unlimited&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Number of test computers&lt;br /&gt;
| Unlimited&lt;br /&gt;
| Unlimited&lt;br /&gt;
| Unlimited&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Number of applications&lt;br /&gt;
| Unlimited&lt;br /&gt;
| Unlimited&lt;br /&gt;
| 1&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Deployment or redistribution&lt;br /&gt;
| Unlimited&lt;br /&gt;
| Unlimited&lt;br /&gt;
| Unlimited&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Updates &amp;amp; Support===&lt;br /&gt;
&lt;br /&gt;
We supply a 1 year subscription for updates and support with both the Single Developer/Team and Single Application licenses. The price of subsciption renewal is 50% the full list price of the Product at the moment of renewal. Renewing the subscription is optional but the 50% discount is valid for only 6 months after subscription expiration.&lt;br /&gt;
&lt;br /&gt;
===Delivery===&lt;br /&gt;
&lt;br /&gt;
After purchasing the license you will receive a set of license files and activation instructions. Delivery is made via email.&lt;br /&gt;
&lt;br /&gt;
Before the license keys can be delivered we ask the customer to provide at least two email contacts. The first (technical contact) will be used to deliver the license files and, in the future, will periodically receive email notifications about new releases of the licensed product (including information about bug fixes and new features). The Licensee agrees that at least one email address will be provided and will be receiving such mailings in order for MediaLooks to make sure the Licensee is informed about the Product's changes. 7 days before and upon subscription expiration we will send a note to this contact informing about the option to renew the subscription.&lt;br /&gt;
&lt;br /&gt;
The second contact will only be used to inform about subscription expiration.&lt;br /&gt;
&lt;br /&gt;
Both email contact, however, may be occasionally used to provide the customer with information about new and related products.&lt;br /&gt;
&lt;br /&gt;
Upon delivery of the license keys the Licensee's email address (or several addresses) will be associated with his license and periodical mailings with information about new releases (including) will be made.&lt;br /&gt;
&lt;br /&gt;
==Common Questions==&lt;br /&gt;
&lt;br /&gt;
''Does the Single Developer License mean that only one person in our company can use the SDK at the same time and that there is no restriction for the applications that are created and redistributed?''&lt;br /&gt;
&lt;br /&gt;
Yes, that is correct in case you purchase a Single Developer License. In case you purchase a Team license, up to 4 developers can work with the SDK at the same time. And нes, there is no restriction to the number of applications that you develop with the SDK, and you can redistribute them royalty-free.&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
[[Category:Licensing FAQ]]&lt;/div&gt;</summary>
		<author><name>Ivan</name></author>	</entry>

	<entry>
		<id>http://wiki.avobjects.com/Dev:Serge_Tasks</id>
		<title>Dev:Serge Tasks</title>
		<link rel="alternate" type="text/html" href="http://wiki.avobjects.com/Dev:Serge_Tasks"/>
				<updated>2009-12-17T16:53:32Z</updated>
		
		<summary type="html">&lt;p&gt;Ivan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Done==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==ToDo==&lt;br /&gt;
&lt;br /&gt;
* Там где отображается количество тикетов в менюшках (в главном меню и там где навигация по типам кейсов) сделать отображение в виде total/unread.&lt;br /&gt;
основная цифра, видимая всегда, считается в app/controllers/application.rb (count_my_messages()), а выводится в app/views/layouts/_head.html.erb&lt;br /&gt;
остальные циферки (по &amp;quot;папкам&amp;quot;) считаются в app/controllers/messages_controller.rb (там дергается код из messages_helper), а выводятся при помощи app/views/messages/_folders.html.erb&lt;br /&gt;
&lt;br /&gt;
* В списке лицензий на странице кейса помечать триальные лицензии как Evaluation license и все строчку подкрашивать каким-нибудь красным цветом.&lt;br /&gt;
красным там ща красятся просроченные&lt;br /&gt;
рисуется это здесь: app/views/messages/_licenses.html.erb&lt;br /&gt;
триальность лицензии определяется по наличию expiration_date - если есть, значит триал&lt;br /&gt;
&lt;br /&gt;
* Добавить возможность Edit recipients в любом состоянии кейса, просто как отдельную опцию.&lt;br /&gt;
это надо делать по аналогии с edit recipients при отправке сообщения, код последнего можно посмотреть тут:&lt;br /&gt;
app/views/messages/_reply.html.erb (вывод формы, вверху там про доп. получателей)&lt;br /&gt;
app/controllers/messages_controller.rb (обработка Additional recipients в update_reply(), с 270й по 282ю строку)&lt;br /&gt;
&lt;br /&gt;
* Во [http://rm.medialooks.com/messages/all_cases/in%20progress вьюшках списков кейсов] добавить еще одну дату в поле Date. Текущая дата - это дата последнего сообщения от кастомера или кастомеру. Нужно вывести еще одну - дату любого обновления кейса. Насколько я понимаю, именно по этой дате происходит сейчас сортировка кейсов.&lt;br /&gt;
сейчас при любом изменении треда меняется updated_at первого поста (он служит парентом для всех сообщений треда)&lt;br /&gt;
код для этого тут: app/views/models/message.rb (before_create :update_parents_updated_at)&lt;br /&gt;
при выводе списка кейсов сортировка идет именно по updated_at главного сообщения&lt;br /&gt;
т.е. что бы ее вывести - надо просто вывести message.updated_at.strftime(...) или make_rel_date(message.updated_at)&lt;br /&gt;
make_rel_date - код для преобразования дат изменения в 'yesterday/today/N days ago' и соотв-й подкраски&lt;br /&gt;
находится в app/helpers/messages_helper.rb&lt;br /&gt;
там же находится make_rel_date_from_last_change(), который сейчас и выводит столбец Date &lt;br /&gt;
&lt;br /&gt;
* Добавить возможность удалять вручную контакт. При этом должны быть удалены все его кейсы.&lt;br /&gt;
&lt;br /&gt;
* Добавить возможность посылать камент кастомеру без асайна тикета себе. При этом (видимо) нельзя менять статус кейса.&lt;br /&gt;
&lt;br /&gt;
* Добавить фолоу-ап письмо после даунлоада.&lt;br /&gt;
&lt;br /&gt;
* Переработать структуру контакта. Будет описано позже.&lt;br /&gt;
&lt;br /&gt;
* Инструмент для авто-подбора кастомера в ин-се ассаоцииации контакта с кастомером.&lt;br /&gt;
&lt;br /&gt;
* Тул для мониторинга кейсов др. юзеров.&lt;br /&gt;
&lt;br /&gt;
* [postponed] Переделать отправку мыла с формы на Sales на Gmail SMTP.&lt;br /&gt;
&lt;br /&gt;
* [postponed] Перед отправкой ответа на кейс добавить возможность выбрать между двух опций After case is updated by customer: 1) assign this case to me и 2) set to new status.&lt;/div&gt;</summary>
		<author><name>Ivan</name></author>	</entry>

	<entry>
		<id>http://wiki.avobjects.com/Dev:RM/LMS_Tasks</id>
		<title>Dev:RM/LMS Tasks</title>
		<link rel="alternate" type="text/html" href="http://wiki.avobjects.com/Dev:RM/LMS_Tasks"/>
				<updated>2009-12-10T15:30:58Z</updated>
		
		<summary type="html">&lt;p&gt;Ivan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See also:&lt;br /&gt;
&lt;br /&gt;
* [[Dev:Tasks To Complete Before We Can Papustico!]]&lt;br /&gt;
* [[CMS Tasks]]&lt;br /&gt;
* [[Dev:Communication System]]&lt;br /&gt;
* [[Dev: Support System Roles]]&lt;br /&gt;
* [[Dev: RM User Rights]]&lt;br /&gt;
* [[Dev: RM Licensing Feature Update]]&lt;br /&gt;
* [[Dev: Serge Tasks]]&lt;br /&gt;
&lt;br /&gt;
==RM/LMS Tasks==&lt;br /&gt;
&lt;br /&gt;
==DONE==&lt;br /&gt;
* [bug] Откуда-то взялся кейс in progress без асайна - [http://rm.medialooks.com/messages/show/1586].&lt;br /&gt;
'''забить, он старый'''&lt;br /&gt;
&lt;br /&gt;
* [bug] При паттписке-атписке из кейса выскакивает явоскрпитовый диалог с цифрами (например, 68).&lt;br /&gt;
&lt;br /&gt;
* [bug] Чичас после нажатия на Send emails в [http://rm.medialooks.com/distributives/show/39 релизах] в гуйне ничо не происходит. Т.е. кажецо что ты промахнулсо и хочецо нажать кнопку исчо раз. Хотя на самом деле все срабатывает (письма шлюцо) и если со страницы уйти то из [http://rm.medialooks.com/distributives списка] этот продукт исчезнет.&lt;br /&gt;
'''происходит, но долго'''&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] При создании или редактировании лицензии. Убрать галку &amp;quot;Send license files&amp;quot; и добавить просто новую кнопку &amp;quot;Save and Send License Files&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] Добавть ссылочку Re-send License Files прямо рядом с Edit License. Update переименовать в Renew. Пункты меню расположить так: Renew License | Edit License | Re-send License Files | Delete License.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] Ссылочку Add License поместить над списком лицензий и назвать Add New License.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] Notes в свойствах лицензии нужно выводить красным.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/messages/new_cases/SM] Для всех вариантов отображения списка кейсов. В табличке со списком выводить также статус (In progess, waiting, etc.) - предпоследней колонкой.&lt;br /&gt;
&lt;br /&gt;
* [note] Добавить бряк после номера версии в тексте релилз ноутс который вставляется в subscribe.&lt;br /&gt;
&lt;br /&gt;
* [note] Для license_file.rhtml нужно новое условие - триальная лицензия или нет. Т.к. текст в этом случае другой.&lt;br /&gt;
'''оно там есть, просто называецо нетривиально: &amp;lt;% if @expiration_date %&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/] Писать дату рядом с номером версии на главной странице.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer] В списке кастомеров выводить еще и company таг (первой колонкой).&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/control] Не нужна такая длинная простыня изменений на странице рестарт апдейт RM. А когда она делает рестарт хотелось бы какой-нить индикации.&lt;br /&gt;
'''с индикацией сложности, давай пока это повисит'''&lt;br /&gt;
&lt;br /&gt;
* Када дуплицируецо кейс нада в логе выводить ссылку на дочерний кейс. Ссылка на родительский кейс сейчас есть, а вот наоборот - &lt;br /&gt;
'''сделал'''&lt;br /&gt;
&lt;br /&gt;
нету. Кроме этого, хорошо бы в обоих случаях (родитель и дочко) выводить вверху что-то вроде This case has parent cases:&amp;lt;br&amp;gt;* Subject или This case has child cases...&lt;br /&gt;
'''с этим сложности. ща это помечается в логе, который может сожержать все что угодно'''&lt;br /&gt;
&lt;br /&gt;
* Добавить тайтлы к страницам RM. Там должно быть все очевидно. Ну типа если это кейс то его сабжект, если это кастомер то название кастомера, если юзер то имя юзера. Остальное - по названию менюшек (Product, Customers, etc.).&lt;br /&gt;
&lt;br /&gt;
* Для мейловых кейсов убрать квоту втыкаемую в окошки эдитов (сейчас она втыкается как в интернал, так и во внешний камент). Из интернал вообще убрать. Для экстернал - убрать из едита но прикручивать к письму при отправке.&lt;br /&gt;
&lt;br /&gt;
* [bug] При создании лицензии когда делаешь триальную неправильно рассчитывается плюс один месяц.&lt;br /&gt;
'''fixed'''&lt;br /&gt;
&lt;br /&gt;
* Квота по-прежнему выткается в интернал камент.&lt;br /&gt;
'''только когда окошко с интернал камментом открыто. нажимаешь там внизу cancel и опять квота в окно ответа идет. это фича'''&lt;br /&gt;
&lt;br /&gt;
* В случае когда кастомер [http://rm.medialooks.com/messages/show/13168 ссылается на другой кейс] нужно придумать как в него попадать из вьюхи просмотра кейса в RM.&lt;br /&gt;
'''сделал так, что все юзерские ссылки на кейсы автоматом переписываются на админские. у клиента при этом не переписываются, т.е. только при отображении для вас'''&lt;br /&gt;
&lt;br /&gt;
* [bug] Берем (предположительно) любой кейс. Пускай это будет кастомер у которого 2 или более контактов и пускай на текущий момент у кейса только один партисипант. Добавляем сообщение и при этом добавляем еще одного участника (ставим галочку). Сообщение добавляется, теперь у кейса два участника, все ОК. Теперь делаем интернал камент (не важно с асайном или без) - дополнительные участники пропадают. Баг повторяется в случае если участников добавлять через email.&lt;br /&gt;
'''fixed'''&lt;br /&gt;
&lt;br /&gt;
==TODO==&lt;br /&gt;
&lt;br /&gt;
===Current===&lt;br /&gt;
&lt;br /&gt;
* Почему-то у всех ощущение что наши письма стали чаще попадать в спам. Надо проверить как у нас шлюцо письма. Мошт в хидерах чота не так?&lt;br /&gt;
'''примеры с хидерами накидай плиз с rm_monitor'''&lt;br /&gt;
&lt;br /&gt;
* Нерпальное оформление квот (не распознаюцо гмейлом). Отладицо под него.&lt;br /&gt;
'''какое? Я там немного поменял квотинг, проверь сейчас плиз'''&lt;br /&gt;
&lt;br /&gt;
* Этот [http://rm.medialooks.com/messages/show/26560 кейс] как я понимаю теперь болтается вне всяких очередей?&lt;br /&gt;
'''похоже на то. ты просто сделал create mail case и все?'''&lt;br /&gt;
&lt;br /&gt;
* Проблемы с доступам к кейсам нескольких юзеров. Надо обсудить. Исходный кейс вот [http://rm.medialooks.com/messages/show/28265 тут].&lt;br /&gt;
'''да, нужны пояснения чо как было'''&lt;br /&gt;
&lt;br /&gt;
* Никак не могу придумать что делать с [http://rm.medialooks.com/messages/show/16519 такими] кейсами.&lt;br /&gt;
'''в смысле с обсуждениями в даунлоад кейсе?'''&lt;br /&gt;
&lt;br /&gt;
* Поисследуй плиз можно ли как-то засунуть батовские почтовые базы в Gmail. Например, есть [http://www.gmail-backup.com/ такая штука.]&lt;br /&gt;
'''базы - это контакты или письма?'''&lt;br /&gt;
&lt;br /&gt;
* Копии в кейсах.&lt;br /&gt;
* [[Dev:CRM Tasks]]&lt;br /&gt;
* Как аттачить прайс лист к письмам таким образом чтобы каждый раз заново не заливать? Мне кажется проще всего залить прайс как продукт. Тогда и подписка нужных людей на него сразу заработает. Вопрос - как заимплементить механизм аттачинга удобный?&lt;br /&gt;
&lt;br /&gt;
===Mail Cases with Screwed Up Formatting===&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/messages/show/26572]&lt;br /&gt;
'''fixed'''&lt;br /&gt;
&lt;br /&gt;
===To Think About===&lt;br /&gt;
&lt;br /&gt;
* Как сделать FTP с per customer паролями?&lt;br /&gt;
* Как добавить features и подписку кастомеров на них?&lt;br /&gt;
* Что делать с контактами когда у двух людей одинаковый email? Пример - mbcradio.&lt;br /&gt;
&lt;br /&gt;
===Important CRM/Email-Related Fixes===&lt;br /&gt;
&lt;br /&gt;
* Сделать возможность CC на кейс.&lt;br /&gt;
&lt;br /&gt;
* Сделать фичу слежения за кейсами.&lt;br /&gt;
&lt;br /&gt;
* Мердждинг кейсов.&lt;br /&gt;
&lt;br /&gt;
===Bugs, Fixes, Questions===&lt;br /&gt;
&lt;br /&gt;
* Нужно проверить что это не глюки у нас (такое кол-во закачек) и залочить чувака [http://rm.medialooks.com/messages/show/1700].&lt;br /&gt;
&lt;br /&gt;
* [unconfirmed] При наличии customer с некоторым email не срабатывает подписка этого email на любой продукт. Запрет должен срабатывать только в случае если лицензия есть именно на этот продукт (возможно, тут надо еще добавить логику про наследованные продукты).&lt;br /&gt;
&lt;br /&gt;
* [Bug] Не работает напоминалка проля в даунлоадах.&lt;br /&gt;
&lt;br /&gt;
* Сбрасывается инфо при вводе уже зареганого email.&lt;br /&gt;
&lt;br /&gt;
* Красные буквы при вводе adsf@medialooks.com.&lt;br /&gt;
&lt;br /&gt;
* Не обрабатываются ошибки типа wrong password в даунлоадз.&lt;br /&gt;
&lt;br /&gt;
* В моей опере никогда не начинаются даунлоады автоматом.&lt;br /&gt;
&lt;br /&gt;
===RM Access Rights===&lt;br /&gt;
&lt;br /&gt;
* Сейчас если зайти на главную под пользовтелем cthomson@medialooks.com (Reseller/Sales Manager) то у него нет столбца Customers. Нужно добавить и выводить там соответственно только доступных ему кастомеров.&lt;br /&gt;
&lt;br /&gt;
===Подписки===&lt;br /&gt;
&lt;br /&gt;
* Подписка Update Discount Expiration. Ввести для лицензий которые expired только после 01.12.2009. Т.е. письма по этой подписке должны начать ходить примерно с 01.05.2010.&lt;br /&gt;
&lt;br /&gt;
* Новая подписка license_expred_followup - которая будет запускацо спустя 4 месяца после истечения подписки. Там написано что через 2 месяца закончицо скидка 50% на продление лицензии. (Кстати идея - может давать доп. скидку за продление в течение месяца после истечения паттписки - типа 65%?)&lt;br /&gt;
&lt;br /&gt;
===Backups to Amazon S3===&lt;br /&gt;
&lt;br /&gt;
Давай будем наш бэкапный файл закачивать на амазон раз в неделю. Я сделал там аккаунт.&lt;br /&gt;
&lt;br /&gt;
===Tasks===&lt;br /&gt;
&lt;br /&gt;
* [Отложено] New email setup. Нужно засетапить новый домен medialooks-team.com. Мы будем его использовать для следующего - чтобы слать и принимать почту с двух общих адресов - &amp;lt;sales@medialooks-team.com&amp;gt; и &amp;lt;dev@medialooks-team.com&amp;gt;. Почему-то очень многие закачики тупо не получают наши письма. Если это не поможет то нам придется переходить на полностью web-based общение с кастомерами.&lt;br /&gt;
&lt;br /&gt;
* Разобрацо в чем проблема с настройкой goals в гугле.&lt;br /&gt;
&lt;br /&gt;
* Добавить в шаблоны писем (шаблон рассылки нового релиза, 2 шаблона license expired) возможность вставлять &amp;quot;License update link&amp;quot; в случае если такая ссылка указана в свойствах продукта (типа IF License update link exists - вставить следующее). Прислать мне файло шаблонов на редактирование (могу сам залезть но надо настроить тада SVN твой).&lt;br /&gt;
&lt;br /&gt;
* Сделать урлы в свойствах кастомера кликабл.&lt;br /&gt;
&lt;br /&gt;
* Cross-promotion subscriptions.&lt;br /&gt;
&lt;br /&gt;
* Если переименовать продукт, то перестает работать общая ссылка на даунлоад и по-версионные ссылки.&lt;br /&gt;
&lt;br /&gt;
* Contact as System Item (see task description).&lt;br /&gt;
&lt;br /&gt;
* Search (see task description).&lt;br /&gt;
&lt;br /&gt;
* Сортировка по тагам во вьюхе кастомеров. Статистика по тагам.&lt;br /&gt;
&lt;br /&gt;
* Добавить вывод количества лицензионных подписок в графу &amp;quot;Site Subscribers&amp;quot;. Графу переименовать в &amp;quot;Subscribers (Interested/Licensed)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* Общие рассылки. Научиться делать рассылки по всем клиентам. Это должна быть отдельная подписка.&lt;br /&gt;
&lt;br /&gt;
* Персонализированный учет закачек. Мы хотим про каждого клиента знать скачивает он новые версии или нет. В письме, которое он получает при выходе новой версии, можно делать уникальный урл, чтобы система знала нажал он или нет. Второй подход - это использовать куки на тот случай, если клиент скачивает с сайта.&lt;br /&gt;
&lt;br /&gt;
* Статистика закачек. Научицо разделять новые (приходящие с рекламы или из поиска) и повторные (наши кастомеры качают новые версии) закачки.&lt;br /&gt;
&lt;br /&gt;
* Подумать. Если есть идеи как интегрировать с Google Analytics (GA)  AdWords (AW) - было бы клева. Например вытаскивать из GA данные о посещениях конкретной страницы и сравнивать их с данными по закачкам.&lt;br /&gt;
&lt;br /&gt;
* Проблема с возможностью создать продукт у которого все версии - беты. И тогда не работает общая ссылка.&lt;br /&gt;
&lt;br /&gt;
* Проблема с RSS-фидом блога (у меня почему-то аутлук пытаецо запустицо).&lt;br /&gt;
&lt;br /&gt;
* Research on online license document generation. Существует ли какой-нить вебовский генератор PDF?&lt;br /&gt;
&lt;br /&gt;
* Создавать в Google Blog Search и Google Alerts фиды по тегам клиента, подсасывать их и демонстрировать мышап на странице клиента. :)))&lt;br /&gt;
&lt;br /&gt;
* Исследовать возможность автоматически создавать для каждого контакта в RM аккаунт в вике, принадлежащий определенной группе.&lt;br /&gt;
&lt;br /&gt;
* Убивать разделительные знаки в поле contacts (елси это телефон). Нужно для того чтобы можно было искать по номеру телефона в почтовой базе.&lt;br /&gt;
&lt;br /&gt;
* Сортировка по дате последнего релиза вот [http://rm.medialooks.com/distributives тут].&lt;br /&gt;
&lt;br /&gt;
* В RM надо сделать напоминалки для нас об истечении лицензий у кастомеров. (Чтобы пинать/напоминать руками.)&lt;br /&gt;
&lt;br /&gt;
* Поиск кастомеров и контактов по странам в RM.&lt;br /&gt;
&lt;br /&gt;
* Дать возможность редактировать meeting results.&lt;br /&gt;
&lt;br /&gt;
* Доработать функционал реселлеров. Например, чтобы про кастомера было видно что он привязан к некоторому реселлеру ([http://rm.medialooks.com/customer/show/364 пример]).&lt;br /&gt;
&lt;br /&gt;
* Придумать что-нибудь с аттачами. Добавить их в темплейт или как-то иначе автоматизировать. Не забыть про то что он обновляется (автоматизировать?) - может как отдельный продукт его или в этом роде... Нужно уметь видеть версию прайса кот. была отправлена.&lt;br /&gt;
&lt;br /&gt;
* Ручная блокировка аккунта. Выдавать сообщение &amp;quot;Your account has been suspended. Please contact MediaLooks in order to unlock your account.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Выводить количество кастомерских кейсов в скобкаъ на странице кастомера.&lt;br /&gt;
&lt;br /&gt;
* Выводить едишен лицензии в ее свойствах на стр. кастомера.&lt;br /&gt;
&lt;br /&gt;
* Надо различать даунлоады по продуктам (например QT DS и QT Plugin).&lt;br /&gt;
&lt;br /&gt;
* Вот в [http://rm.medialooks.com/product/licenses/22 этой] вьюхе выводить сначала триальные, потом expired лицензии. Триальные лицензии нужно помечать каким-то визуальным образом.&lt;br /&gt;
&lt;br /&gt;
* Тайтлы страниц в RM. Расписать подробнее что где нужно.&lt;br /&gt;
&lt;br /&gt;
* Выводить где-то отдельно триальные лицензии, чтобы можно было пинать кастомеров по ним.&lt;br /&gt;
&lt;br /&gt;
* Нужен способ задать реселлера со страницы кастомера. И нужно на странице кастомера это видеть.&lt;br /&gt;
&lt;br /&gt;
* Сделать опции go to case by number в обоих интерфейсах RM.&lt;br /&gt;
&lt;br /&gt;
* Логгировать даунлоады и выводить в кейсах последнюю скачанную пользователем версии.&lt;br /&gt;
&lt;br /&gt;
* Когда дискуссия идет в теме даунлоад - новые даунлоады ее обновляют что неудобно.&lt;br /&gt;
&lt;br /&gt;
* Идея. Вести две простыни release notes. Одна что вписал девелопер. Другую - что отправлено кастомерам.&lt;br /&gt;
&lt;br /&gt;
* Добавить список аттачей к письму про апдейт кейса.&lt;br /&gt;
&lt;br /&gt;
* Некоторым заказчикам нужно дать возможность заливать на FTP с паролем.&lt;br /&gt;
&lt;br /&gt;
* Надо бы разрешить just comment to customer без реасайна кейса.&lt;br /&gt;
&lt;br /&gt;
* Продумать логику один контакт - две конторы. Пример videoassistech. У него разные адреса для разных случаев.&lt;br /&gt;
&lt;br /&gt;
* Нужно разработать функцию CC case. Там выбираешь N людей кот. кейс как бы идет копией до тех пор пока они не нажпут dismiss.&lt;br /&gt;
&lt;br /&gt;
* [17:40:21] Vsevolod V. Burkutsky: ещё одна мысль - что-бы тикеты от одинаковых чуваков типа как в дереве лежали&lt;br /&gt;
&lt;br /&gt;
* Добавить опцию резолвинга кейса после отправки internal comment, без посылки кастомеру чего-либо.&lt;br /&gt;
&lt;br /&gt;
* Добавить опцию зиповать лиц. файлы при отправке.&lt;br /&gt;
&lt;br /&gt;
* Автоматизировать пиналки, кот. занимается Ольга.&lt;br /&gt;
&lt;br /&gt;
* Сделать независимыми RM и даунлоады. Если лежит RM не должны лежать даунлоады. Хз чо как сделать.&lt;br /&gt;
&lt;br /&gt;
* Галка would you like us to send you an email a few days prior to the expiration of your evaluation license?&lt;br /&gt;
&lt;br /&gt;
===Это потом===&lt;br /&gt;
&lt;br /&gt;
* Переделать форму контактов на сайте. Добавить возможность указать второй email. Отдельные поля под скайп, телефон.&lt;br /&gt;
&lt;br /&gt;
* Подписка royalties.&lt;br /&gt;
&lt;br /&gt;
===[Отложено] Communication Monitor===&lt;br /&gt;
&lt;br /&gt;
Сперва обсудить: может сразу делать web-based ticketing system?&lt;br /&gt;
&lt;br /&gt;
Коммуникация - это в данном случае одно из трех:&lt;br /&gt;
&lt;br /&gt;
1) Кастомер заполнил контактную форму на сайте. Насколько я знаю, в этом случае все данные попадают в базу и там храняцо (если трафик платный то [http://www.medialooks.com/admin/block_admin/53 сюда] лучше не нажимать).&lt;br /&gt;
&lt;br /&gt;
2) На один из двух адресов - &amp;lt;sales@medialooks-team.com&amp;gt; и &amp;lt;dev@medialooks-team.com&amp;gt; получено письмо от кастомера.&lt;br /&gt;
&lt;br /&gt;
3) Мы послали кастомеру письмо с одного из двух адресов (во всех случаях мы ставим BCC на адрес, с которого пишем).&lt;br /&gt;
&lt;br /&gt;
В RM нужно реализовать три списка:&lt;br /&gt;
&lt;br /&gt;
1) Список коммуникаций типа (1), на которые не было ответа с одного из двух адресов в течение N часов. &lt;br /&gt;
&lt;br /&gt;
2) Список коммуникаций типа (2), на которые не было ответа с одного из двух адресов в течение M часов. &lt;br /&gt;
&lt;br /&gt;
3) Список коммуникаций типа (3), в случае если от кастомера не было ответа в течение D рабочих дней.&lt;br /&gt;
&lt;br /&gt;
В обоих случаях выводить в таблице всю инфо, которая есть на данный email - телефон, скайп, ссылка на кастомеров, у которых в контактах числицо такой email (см. также &amp;quot;Contact as System Item&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
N, M и D нужно дать возможность конфигурить через гуй RM.&lt;br /&gt;
&lt;br /&gt;
В первом приближении выводить тела писем не нужно. Но в будуем мне кажется мы все равно к этому придем. Поэтому хранить можно уже начинать.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Customer download tracking===&lt;br /&gt;
&lt;br /&gt;
* Индивидуальные даунлоад ссылки для отслеживания какой подписчик нажал на сцылку.&lt;br /&gt;
* Отписка или оповещение администратора о подписчиках который не нажимают на ссылки (признак того что не получают письма или не читают их - но при этом по какой-то причине не отписываются).&lt;br /&gt;
&lt;br /&gt;
===Наследование/объединение продуктов===&lt;br /&gt;
&lt;br /&gt;
Необходимо поддержать два следующих сценария:&lt;br /&gt;
&lt;br /&gt;
1) Существует продукт DirectShow Filter Pack - он включает в себя большой набор DirectShow фильтров. Каждый фильтр релизится по своему графику (т.е. без графика) - поэтому отдельного download для него не существует. Т.е. продукт в данном случае это просто такая лицензия, т.е. совокупность цены и набора компонентов. В RM возможность создавать такие лицензии должна быть реализована в виде продукта в общем списке - просто у него будут какие-то дополнительные свойства как-то &amp;quot;включать в себя такие-то продукты&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Соответственно, при создании лицензии на такой продукт нужно сделать так чтобы:&lt;br /&gt;
&lt;br /&gt;
* Контакты кастомера могли быть подписаны на релизы (updates) по каждому из продуктов отдельно. По-умолчанию - создается подписка на все входящие в пакет продукты. Отписаться от каждого из продуктов в отдельности можно через сцылку на отписку из письма или это можно сделать через редактирование свойств лицензии.&lt;br /&gt;
&lt;br /&gt;
* Контакты кастомера не были дубликатно подписаны на эти же самые продукты через другие механизмы RM.&lt;br /&gt;
&lt;br /&gt;
* Подписка License Expired в данном случае остается одна - только на общий продукт. Но в случае, если подписка истекла, то при рассылке Release Updates в тело письма вставляется соотв. сообщение (т.к. это сейчас сделано для обычных лицензий).&lt;br /&gt;
&lt;br /&gt;
* В случае если для продукты DirectShow Filter Pack - RM конечно же имеет право наложить в штаны но после этого должен немедленно собрацо и вести себя так как будто он точно знает что нужно делать - а именно вести себя так как будто DirectShow Filter Pack это самый обычный продукт (т.е. появитсо в Distributives и дать возможность сделать рассылку). Т.е. обычная рассылка Release Updates для продукта такого типа тоже создаецо.&lt;br /&gt;
&lt;br /&gt;
2) Существуют продукты DeckLink SDK, Playout SDK и Multimedia SDK, для которых мы решили в целях упрощения использовать общий даунлоад. В данном случае все остается как есть - т.е. лицензии создаются именно под эти продукты, отдельно ведется статистика подписок, лицензий и закачек - но используется только один download.&lt;br /&gt;
&lt;br /&gt;
Например, мы говорим что DeckLink SDK и Playout SDK - оба используют download Multimedia SDK. Разработчик закачивает новый релиз именно для Multimedia SDK. Этот новый релиз появляется в разделе Distributives. Я его модерю, нажимаю сделать рассылку - и, как и раньше, выходят три блока писем - для DeckLink SDK, Playout SDk и Multimedia SDK.&lt;br /&gt;
&lt;br /&gt;
Особенность: ссылка во всех письмах теперь называется multimedia sdk. Делать редиректы и переименования - не надо (иначе клиенты будут говорить я скачал Playout SDK а мне ставится Multimedia SDK).&lt;br /&gt;
&lt;br /&gt;
===Industry-Based Subscriptions===&lt;br /&gt;
&lt;br /&gt;
Добавить возможность создавать рассылки по индустриям. В целом все аналогично тому как сейчас работают подписки на новые релизы. Можно подписывать контакты руками. А при рассылке заодно рассылать тем, кто является клиентом какого-либо продукта и тоже записан в эту индустрию.&lt;br /&gt;
&lt;br /&gt;
Возможно, когда у нас появятся разные способы делать рассылки, придется придумывать способы не слать дважды по одному и тому же поводу. Например, заводить для рассылки какой-нибудь ID.&lt;br /&gt;
&lt;br /&gt;
===Contact as System Item===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать контакты как самостоятельную сущность.&lt;br /&gt;
&lt;br /&gt;
Контакт представляет из себя имя (текстовое поле например &amp;quot;Andrew Okunev) и ассоциированный c ним набор полей:&lt;br /&gt;
&lt;br /&gt;
* email name (используется в подстановках в письмах; если пусто, используется &amp;quot;customer&amp;quot;)&lt;br /&gt;
* email (любое количество)&lt;br /&gt;
* skype (любое количество)&lt;br /&gt;
* телефон (любое количество)&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать отображение и редактирование свойств для любого из контактов. Например:&lt;br /&gt;
&lt;br /&gt;
* Когда добавлен в систему&lt;br /&gt;
* С какими компаниями (Customers) ассоциирован.&lt;br /&gt;
* С какими лицензиями ассоциирован.&lt;br /&gt;
* На какие подписки подписан.&lt;br /&gt;
&lt;br /&gt;
Все это нужно реализовать в одной вьюхе. Редактирование доступно только администратору системы.&lt;br /&gt;
&lt;br /&gt;
Примечания:&lt;br /&gt;
&lt;br /&gt;
* В системе должны отсутствовать дубликаты по email. Дубликаты по имени допустимы (т.е. когда одинаковое имя но разный email), но должна быть возможность их соединить (т.е. превратить в один контакт с двумя email). Реализовать это можно через отдельную вьюху, доступную администратору.&lt;br /&gt;
&lt;br /&gt;
* Если у контакта больше одного email, то любой из них может использоваться для авторизации.&lt;br /&gt;
&lt;br /&gt;
* Новый контакт (как сущность) создается при любом добавлении контакта в систему (например, при создании подписки через модуль subscribers.&lt;br /&gt;
&lt;br /&gt;
===Universal Uploads===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать возможность закачивать в RM абстрактные (не привязанные к какому-либо продукту) файлы. При этом каждому такому файлу должен быть по-умолчанию присвоен срок жизни - 30 дней. После чего файл автоматически удаляется. Файлы можно защищать паролем, который требуется для скачки.&lt;br /&gt;
&lt;br /&gt;
Каждый файл привязан к какому-либо юзеру. Только у этого пользователя (или у администратора) есть возможность добавлять к своему аккаунту файлы или удалять их. Каждую закачку можно удалить или обновить файл в ней.&lt;br /&gt;
&lt;br /&gt;
Соответственно, необходимо создать две новых вьюхи:&lt;br /&gt;
&lt;br /&gt;
1) Вьюха создания закачки. Опции: текстедит срок жизни (по-умолчанию вбито 30), чекбокс защитить паролем, путь к файлу.&lt;br /&gt;
&lt;br /&gt;
2) Вьюха список закачек данного юзера. Отображать: имя файла, количество скачек, оставшийся срок жизни, дата закачки. Имя файла является ссылкой на данный файл (вида rm.medialooks.com/...).&lt;br /&gt;
&lt;br /&gt;
В меню каждого юзера должно быть что-то вроде &amp;quot;My Uploads&amp;quot;, которая ведет на вьюху (2).&lt;br /&gt;
&lt;br /&gt;
===Customer Access===&lt;br /&gt;
&lt;br /&gt;
Нужно научицо давать кастомерам доступ к аплоадам. Для этого нужно реализовать в RM еще одну роль - &amp;quot;Customer&amp;quot;. Роль &amp;quot;User&amp;quot; нужно переименовать в &amp;quot;Developer&amp;quot;. Каждый контакт, добавленный в систему, должен получать соотв. статус и автоматически сгенеренный пароль. Никаких писем при заведении пользователей пока автоматически рассылать не надо. Однако, при первой попытке зайти в систему, кастомер должен по почте получить свой пароль. Залогинившись, он имеет доступ только к своим аплоадам (в будущем добавим еще подписки и лицензии).&lt;br /&gt;
&lt;br /&gt;
===Search===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать поиск в системе. Форма поиска - одна на все случаи. Она должна размещаться на всех страницах системы.&lt;br /&gt;
&lt;br /&gt;
По каким полям искать:&lt;br /&gt;
&lt;br /&gt;
* По контактам.&lt;br /&gt;
* По названию клиента.&lt;br /&gt;
* По тегу клиента.&lt;br /&gt;
&lt;br /&gt;
'''Пример.''' Если в поле поиска ввден запрос:&lt;br /&gt;
&lt;br /&gt;
Andrew A. Okunev &amp;lt;dev@medialooks.com&amp;gt; (MediaLooks)&lt;br /&gt;
&lt;br /&gt;
- то сперва нужно произвести поиск отдельно по &amp;quot;Osman Yel&amp;quot;, &amp;quot;dev@medialooks.com&amp;quot; и &amp;quot;MediaLooks&amp;quot;. Эти результаты вывести в первую очередь.&lt;br /&gt;
&lt;br /&gt;
Во-вторую - выделить из поисковой строки название домена и отрезать от него домен первого уровня. Т.е. в нашем примере искать по строке &amp;quot;medialooks&amp;quot;. Эти результаты вывести во вторую очередь.&lt;br /&gt;
&lt;br /&gt;
Кроме этого, естественно должен работать поиск в том случае если исходный запрос это &amp;quot;dev@medialooks.com&amp;quot; или просто &amp;quot;medialooks&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===LinkedIn Integration===&lt;br /&gt;
&lt;br /&gt;
Зачем? Любая система управления контактами страдает одним недостатком - ей неоткуда узнать о том, что у кого-то поменялся email или телефон.&lt;br /&gt;
&lt;br /&gt;
Предполагается что пользователи LinkedIn (за исключением [http://www.linkedin.com/pub/2/26b/926 некоторых] поддерживают свой профиль в актуальном состоянии. В частности, следят за тем, чтобы в профиле был актуальный email.&lt;br /&gt;
&lt;br /&gt;
В результате хочется получить поддержку следующих сценариев:&lt;br /&gt;
&lt;br /&gt;
* Узнавать об изменениях в контактной информации наших клиентов.&lt;br /&gt;
* Приглашать в нашу сеть клиентов, которые уже используют LinkedIn.&lt;br /&gt;
* Приглашать в LinkedIn тех клиентов, которые его пока не используют.&lt;br /&gt;
* Если клиент для общение с нами использует один email, а для LinkedIn - другой, - то нам нужно узнать этот email и использовать его как запасной/альтернативный.&lt;br /&gt;
&lt;br /&gt;
Для начала думаю следует просто проверить, позволяет ли API делать следующее:&lt;br /&gt;
&lt;br /&gt;
* Авторизоваться в системе под каким-то реальным логином (например, подо мной).&lt;br /&gt;
* Поискать пользователей по email.&lt;br /&gt;
* Получить email любого из моих контактов.&lt;br /&gt;
* Послать конкретному пользователю инвайт, иметь возможность указать кастомный текст для инвайта.&lt;br /&gt;
* Пригласить нового пользователя через email, то же самое с кастомным текстом.&lt;br /&gt;
&lt;br /&gt;
Задача неактуальна поскольку как я понял от LinkedIn нужно сначала получить одобрение на использование API:&lt;br /&gt;
&lt;br /&gt;
* http://www.linkedin.com/static?key=developers_apis&lt;br /&gt;
&lt;br /&gt;
==Done Tasks==&lt;br /&gt;
&lt;br /&gt;
* [[LMS/CMS Tasks: Done]]&lt;br /&gt;
&lt;br /&gt;
[[Category: Tasks]]&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Ivan</name></author>	</entry>

	<entry>
		<id>http://wiki.avobjects.com/Dev:RM/LMS_Tasks</id>
		<title>Dev:RM/LMS Tasks</title>
		<link rel="alternate" type="text/html" href="http://wiki.avobjects.com/Dev:RM/LMS_Tasks"/>
				<updated>2009-12-10T15:25:02Z</updated>
		
		<summary type="html">&lt;p&gt;Ivan: /* Current */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See also:&lt;br /&gt;
&lt;br /&gt;
* [[Dev:Tasks To Complete Before We Can Papustico!]]&lt;br /&gt;
* [[CMS Tasks]]&lt;br /&gt;
* [[Dev:Communication System]]&lt;br /&gt;
* [[Dev: Support System Roles]]&lt;br /&gt;
* [[Dev: RM User Rights]]&lt;br /&gt;
* [[Dev: RM Licensing Feature Update]]&lt;br /&gt;
* [[Dev: Serge Tasks]]&lt;br /&gt;
&lt;br /&gt;
==RM/LMS Tasks==&lt;br /&gt;
&lt;br /&gt;
==DONE==&lt;br /&gt;
* [bug] Откуда-то взялся кейс in progress без асайна - [http://rm.medialooks.com/messages/show/1586].&lt;br /&gt;
'''забить, он старый'''&lt;br /&gt;
&lt;br /&gt;
* [bug] При паттписке-атписке из кейса выскакивает явоскрпитовый диалог с цифрами (например, 68).&lt;br /&gt;
&lt;br /&gt;
* [bug] Чичас после нажатия на Send emails в [http://rm.medialooks.com/distributives/show/39 релизах] в гуйне ничо не происходит. Т.е. кажецо что ты промахнулсо и хочецо нажать кнопку исчо раз. Хотя на самом деле все срабатывает (письма шлюцо) и если со страницы уйти то из [http://rm.medialooks.com/distributives списка] этот продукт исчезнет.&lt;br /&gt;
'''происходит, но долго'''&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] При создании или редактировании лицензии. Убрать галку &amp;quot;Send license files&amp;quot; и добавить просто новую кнопку &amp;quot;Save and Send License Files&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] Добавть ссылочку Re-send License Files прямо рядом с Edit License. Update переименовать в Renew. Пункты меню расположить так: Renew License | Edit License | Re-send License Files | Delete License.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] Ссылочку Add License поместить над списком лицензий и назвать Add New License.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] Notes в свойствах лицензии нужно выводить красным.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/messages/new_cases/SM] Для всех вариантов отображения списка кейсов. В табличке со списком выводить также статус (In progess, waiting, etc.) - предпоследней колонкой.&lt;br /&gt;
&lt;br /&gt;
* [note] Добавить бряк после номера версии в тексте релилз ноутс который вставляется в subscribe.&lt;br /&gt;
&lt;br /&gt;
* [note] Для license_file.rhtml нужно новое условие - триальная лицензия или нет. Т.к. текст в этом случае другой.&lt;br /&gt;
'''оно там есть, просто называецо нетривиально: &amp;lt;% if @expiration_date %&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/] Писать дату рядом с номером версии на главной странице.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer] В списке кастомеров выводить еще и company таг (первой колонкой).&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/control] Не нужна такая длинная простыня изменений на странице рестарт апдейт RM. А когда она делает рестарт хотелось бы какой-нить индикации.&lt;br /&gt;
'''с индикацией сложности, давай пока это повисит'''&lt;br /&gt;
&lt;br /&gt;
* Када дуплицируецо кейс нада в логе выводить ссылку на дочерний кейс. Ссылка на родительский кейс сейчас есть, а вот наоборот - &lt;br /&gt;
'''сделал'''&lt;br /&gt;
&lt;br /&gt;
нету. Кроме этого, хорошо бы в обоих случаях (родитель и дочко) выводить вверху что-то вроде This case has parent cases:&amp;lt;br&amp;gt;* Subject или This case has child cases...&lt;br /&gt;
'''с этим сложности. ща это помечается в логе, который может сожержать все что угодно'''&lt;br /&gt;
&lt;br /&gt;
* Добавить тайтлы к страницам RM. Там должно быть все очевидно. Ну типа если это кейс то его сабжект, если это кастомер то название кастомера, если юзер то имя юзера. Остальное - по названию менюшек (Product, Customers, etc.).&lt;br /&gt;
&lt;br /&gt;
* Для мейловых кейсов убрать квоту втыкаемую в окошки эдитов (сейчас она втыкается как в интернал, так и во внешний камент). Из интернал вообще убрать. Для экстернал - убрать из едита но прикручивать к письму при отправке.&lt;br /&gt;
&lt;br /&gt;
* [bug] При создании лицензии когда делаешь триальную неправильно рассчитывается плюс один месяц.&lt;br /&gt;
'''fixed'''&lt;br /&gt;
&lt;br /&gt;
* Квота по-прежнему выткается в интернал камент.&lt;br /&gt;
'''только когда окошко с интернал камментом открыто. нажимаешь там внизу cancel и опять квота в окно ответа идет. это фича'''&lt;br /&gt;
&lt;br /&gt;
* В случае когда кастомер [http://rm.medialooks.com/messages/show/13168 ссылается на другой кейс] нужно придумать как в него попадать из вьюхи просмотра кейса в RM.&lt;br /&gt;
'''сделал так, что все юзерские ссылки на кейсы автоматом переписываются на админские. у клиента при этом не переписываются, т.е. только при отображении для вас'''&lt;br /&gt;
&lt;br /&gt;
* [bug] Берем (предположительно) любой кейс. Пускай это будет кастомер у которого 2 или более контактов и пускай на текущий момент у кейса только один партисипант. Добавляем сообщение и при этом добавляем еще одного участника (ставим галочку). Сообщение добавляется, теперь у кейса два участника, все ОК. Теперь делаем интернал камент (не важно с асайном или без) - дополнительные участники пропадают. Баг повторяется в случае если участников добавлять через email.&lt;br /&gt;
'''fixed'''&lt;br /&gt;
&lt;br /&gt;
==TODO==&lt;br /&gt;
&lt;br /&gt;
===Current===&lt;br /&gt;
&lt;br /&gt;
* Почему-то у всех ощущение что наши письма стали чаще попадать в спам. Надо проверить как у нас шлюцо письма. Мошт в хидерах чота не так?&lt;br /&gt;
'''примеры с хидерами накидай плиз с rm_monitor'''&lt;br /&gt;
&lt;br /&gt;
* Нерпальное оформление квот (не распознаюцо гмейлом). Отладицо под него.&lt;br /&gt;
'''какое?'''&lt;br /&gt;
&lt;br /&gt;
* Этот [http://rm.medialooks.com/messages/show/26560 кейс] как я понимаю теперь болтается вне всяких очередей?&lt;br /&gt;
'''похоже на то. ты просто сделал create mail case и все?'''&lt;br /&gt;
&lt;br /&gt;
* Проблемы с доступам к кейсам нескольких юзеров. Надо обсудить. Исходный кейс вот [http://rm.medialooks.com/messages/show/28265 тут].&lt;br /&gt;
'''да, нужны пояснения чо как было'''&lt;br /&gt;
&lt;br /&gt;
* Никак не могу придумать что делать с [http://rm.medialooks.com/messages/show/16519 такими] кейсами.&lt;br /&gt;
'''в смысле с обсуждениями в даунлоад кейсе?'''&lt;br /&gt;
&lt;br /&gt;
* Поисследуй плиз можно ли как-то засунуть батовские почтовые базы в Gmail. Например, есть [http://www.gmail-backup.com/ такая штука.]&lt;br /&gt;
'''базы - это контакты или письма?'''&lt;br /&gt;
&lt;br /&gt;
* Копии в кейсах.&lt;br /&gt;
* [[Dev:CRM Tasks]]&lt;br /&gt;
* Как аттачить прайс лист к письмам таким образом чтобы каждый раз заново не заливать? Мне кажется проще всего залить прайс как продукт. Тогда и подписка нужных людей на него сразу заработает. Вопрос - как заимплементить механизм аттачинга удобный?&lt;br /&gt;
&lt;br /&gt;
===Mail Cases with Screwed Up Formatting===&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/messages/show/26572]&lt;br /&gt;
&lt;br /&gt;
===To Think About===&lt;br /&gt;
&lt;br /&gt;
* Как сделать FTP с per customer паролями?&lt;br /&gt;
* Как добавить features и подписку кастомеров на них?&lt;br /&gt;
* Что делать с контактами когда у двух людей одинаковый email? Пример - mbcradio.&lt;br /&gt;
&lt;br /&gt;
===Important CRM/Email-Related Fixes===&lt;br /&gt;
&lt;br /&gt;
* Сделать возможность CC на кейс.&lt;br /&gt;
&lt;br /&gt;
* Сделать фичу слежения за кейсами.&lt;br /&gt;
&lt;br /&gt;
* Мердждинг кейсов.&lt;br /&gt;
&lt;br /&gt;
===Bugs, Fixes, Questions===&lt;br /&gt;
&lt;br /&gt;
* Нужно проверить что это не глюки у нас (такое кол-во закачек) и залочить чувака [http://rm.medialooks.com/messages/show/1700].&lt;br /&gt;
&lt;br /&gt;
* [unconfirmed] При наличии customer с некоторым email не срабатывает подписка этого email на любой продукт. Запрет должен срабатывать только в случае если лицензия есть именно на этот продукт (возможно, тут надо еще добавить логику про наследованные продукты).&lt;br /&gt;
&lt;br /&gt;
* [Bug] Не работает напоминалка проля в даунлоадах.&lt;br /&gt;
&lt;br /&gt;
* Сбрасывается инфо при вводе уже зареганого email.&lt;br /&gt;
&lt;br /&gt;
* Красные буквы при вводе adsf@medialooks.com.&lt;br /&gt;
&lt;br /&gt;
* Не обрабатываются ошибки типа wrong password в даунлоадз.&lt;br /&gt;
&lt;br /&gt;
* В моей опере никогда не начинаются даунлоады автоматом.&lt;br /&gt;
&lt;br /&gt;
===RM Access Rights===&lt;br /&gt;
&lt;br /&gt;
* Сейчас если зайти на главную под пользовтелем cthomson@medialooks.com (Reseller/Sales Manager) то у него нет столбца Customers. Нужно добавить и выводить там соответственно только доступных ему кастомеров.&lt;br /&gt;
&lt;br /&gt;
===Подписки===&lt;br /&gt;
&lt;br /&gt;
* Подписка Update Discount Expiration. Ввести для лицензий которые expired только после 01.12.2009. Т.е. письма по этой подписке должны начать ходить примерно с 01.05.2010.&lt;br /&gt;
&lt;br /&gt;
* Новая подписка license_expred_followup - которая будет запускацо спустя 4 месяца после истечения подписки. Там написано что через 2 месяца закончицо скидка 50% на продление лицензии. (Кстати идея - может давать доп. скидку за продление в течение месяца после истечения паттписки - типа 65%?)&lt;br /&gt;
&lt;br /&gt;
===Backups to Amazon S3===&lt;br /&gt;
&lt;br /&gt;
Давай будем наш бэкапный файл закачивать на амазон раз в неделю. Я сделал там аккаунт.&lt;br /&gt;
&lt;br /&gt;
===Tasks===&lt;br /&gt;
&lt;br /&gt;
* [Отложено] New email setup. Нужно засетапить новый домен medialooks-team.com. Мы будем его использовать для следующего - чтобы слать и принимать почту с двух общих адресов - &amp;lt;sales@medialooks-team.com&amp;gt; и &amp;lt;dev@medialooks-team.com&amp;gt;. Почему-то очень многие закачики тупо не получают наши письма. Если это не поможет то нам придется переходить на полностью web-based общение с кастомерами.&lt;br /&gt;
&lt;br /&gt;
* Разобрацо в чем проблема с настройкой goals в гугле.&lt;br /&gt;
&lt;br /&gt;
* Добавить в шаблоны писем (шаблон рассылки нового релиза, 2 шаблона license expired) возможность вставлять &amp;quot;License update link&amp;quot; в случае если такая ссылка указана в свойствах продукта (типа IF License update link exists - вставить следующее). Прислать мне файло шаблонов на редактирование (могу сам залезть но надо настроить тада SVN твой).&lt;br /&gt;
&lt;br /&gt;
* Сделать урлы в свойствах кастомера кликабл.&lt;br /&gt;
&lt;br /&gt;
* Cross-promotion subscriptions.&lt;br /&gt;
&lt;br /&gt;
* Если переименовать продукт, то перестает работать общая ссылка на даунлоад и по-версионные ссылки.&lt;br /&gt;
&lt;br /&gt;
* Contact as System Item (see task description).&lt;br /&gt;
&lt;br /&gt;
* Search (see task description).&lt;br /&gt;
&lt;br /&gt;
* Сортировка по тагам во вьюхе кастомеров. Статистика по тагам.&lt;br /&gt;
&lt;br /&gt;
* Добавить вывод количества лицензионных подписок в графу &amp;quot;Site Subscribers&amp;quot;. Графу переименовать в &amp;quot;Subscribers (Interested/Licensed)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* Общие рассылки. Научиться делать рассылки по всем клиентам. Это должна быть отдельная подписка.&lt;br /&gt;
&lt;br /&gt;
* Персонализированный учет закачек. Мы хотим про каждого клиента знать скачивает он новые версии или нет. В письме, которое он получает при выходе новой версии, можно делать уникальный урл, чтобы система знала нажал он или нет. Второй подход - это использовать куки на тот случай, если клиент скачивает с сайта.&lt;br /&gt;
&lt;br /&gt;
* Статистика закачек. Научицо разделять новые (приходящие с рекламы или из поиска) и повторные (наши кастомеры качают новые версии) закачки.&lt;br /&gt;
&lt;br /&gt;
* Подумать. Если есть идеи как интегрировать с Google Analytics (GA)  AdWords (AW) - было бы клева. Например вытаскивать из GA данные о посещениях конкретной страницы и сравнивать их с данными по закачкам.&lt;br /&gt;
&lt;br /&gt;
* Проблема с возможностью создать продукт у которого все версии - беты. И тогда не работает общая ссылка.&lt;br /&gt;
&lt;br /&gt;
* Проблема с RSS-фидом блога (у меня почему-то аутлук пытаецо запустицо).&lt;br /&gt;
&lt;br /&gt;
* Research on online license document generation. Существует ли какой-нить вебовский генератор PDF?&lt;br /&gt;
&lt;br /&gt;
* Создавать в Google Blog Search и Google Alerts фиды по тегам клиента, подсасывать их и демонстрировать мышап на странице клиента. :)))&lt;br /&gt;
&lt;br /&gt;
* Исследовать возможность автоматически создавать для каждого контакта в RM аккаунт в вике, принадлежащий определенной группе.&lt;br /&gt;
&lt;br /&gt;
* Убивать разделительные знаки в поле contacts (елси это телефон). Нужно для того чтобы можно было искать по номеру телефона в почтовой базе.&lt;br /&gt;
&lt;br /&gt;
* Сортировка по дате последнего релиза вот [http://rm.medialooks.com/distributives тут].&lt;br /&gt;
&lt;br /&gt;
* В RM надо сделать напоминалки для нас об истечении лицензий у кастомеров. (Чтобы пинать/напоминать руками.)&lt;br /&gt;
&lt;br /&gt;
* Поиск кастомеров и контактов по странам в RM.&lt;br /&gt;
&lt;br /&gt;
* Дать возможность редактировать meeting results.&lt;br /&gt;
&lt;br /&gt;
* Доработать функционал реселлеров. Например, чтобы про кастомера было видно что он привязан к некоторому реселлеру ([http://rm.medialooks.com/customer/show/364 пример]).&lt;br /&gt;
&lt;br /&gt;
* Придумать что-нибудь с аттачами. Добавить их в темплейт или как-то иначе автоматизировать. Не забыть про то что он обновляется (автоматизировать?) - может как отдельный продукт его или в этом роде... Нужно уметь видеть версию прайса кот. была отправлена.&lt;br /&gt;
&lt;br /&gt;
* Ручная блокировка аккунта. Выдавать сообщение &amp;quot;Your account has been suspended. Please contact MediaLooks in order to unlock your account.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Выводить количество кастомерских кейсов в скобкаъ на странице кастомера.&lt;br /&gt;
&lt;br /&gt;
* Выводить едишен лицензии в ее свойствах на стр. кастомера.&lt;br /&gt;
&lt;br /&gt;
* Надо различать даунлоады по продуктам (например QT DS и QT Plugin).&lt;br /&gt;
&lt;br /&gt;
* Вот в [http://rm.medialooks.com/product/licenses/22 этой] вьюхе выводить сначала триальные, потом expired лицензии. Триальные лицензии нужно помечать каким-то визуальным образом.&lt;br /&gt;
&lt;br /&gt;
* Тайтлы страниц в RM. Расписать подробнее что где нужно.&lt;br /&gt;
&lt;br /&gt;
* Выводить где-то отдельно триальные лицензии, чтобы можно было пинать кастомеров по ним.&lt;br /&gt;
&lt;br /&gt;
* Нужен способ задать реселлера со страницы кастомера. И нужно на странице кастомера это видеть.&lt;br /&gt;
&lt;br /&gt;
* Сделать опции go to case by number в обоих интерфейсах RM.&lt;br /&gt;
&lt;br /&gt;
* Логгировать даунлоады и выводить в кейсах последнюю скачанную пользователем версии.&lt;br /&gt;
&lt;br /&gt;
* Когда дискуссия идет в теме даунлоад - новые даунлоады ее обновляют что неудобно.&lt;br /&gt;
&lt;br /&gt;
* Идея. Вести две простыни release notes. Одна что вписал девелопер. Другую - что отправлено кастомерам.&lt;br /&gt;
&lt;br /&gt;
* Добавить список аттачей к письму про апдейт кейса.&lt;br /&gt;
&lt;br /&gt;
* Некоторым заказчикам нужно дать возможность заливать на FTP с паролем.&lt;br /&gt;
&lt;br /&gt;
* Надо бы разрешить just comment to customer без реасайна кейса.&lt;br /&gt;
&lt;br /&gt;
* Продумать логику один контакт - две конторы. Пример videoassistech. У него разные адреса для разных случаев.&lt;br /&gt;
&lt;br /&gt;
* Нужно разработать функцию CC case. Там выбираешь N людей кот. кейс как бы идет копией до тех пор пока они не нажпут dismiss.&lt;br /&gt;
&lt;br /&gt;
* [17:40:21] Vsevolod V. Burkutsky: ещё одна мысль - что-бы тикеты от одинаковых чуваков типа как в дереве лежали&lt;br /&gt;
&lt;br /&gt;
* Добавить опцию резолвинга кейса после отправки internal comment, без посылки кастомеру чего-либо.&lt;br /&gt;
&lt;br /&gt;
* Добавить опцию зиповать лиц. файлы при отправке.&lt;br /&gt;
&lt;br /&gt;
* Автоматизировать пиналки, кот. занимается Ольга.&lt;br /&gt;
&lt;br /&gt;
* Сделать независимыми RM и даунлоады. Если лежит RM не должны лежать даунлоады. Хз чо как сделать.&lt;br /&gt;
&lt;br /&gt;
* Галка would you like us to send you an email a few days prior to the expiration of your evaluation license?&lt;br /&gt;
&lt;br /&gt;
===Это потом===&lt;br /&gt;
&lt;br /&gt;
* Переделать форму контактов на сайте. Добавить возможность указать второй email. Отдельные поля под скайп, телефон.&lt;br /&gt;
&lt;br /&gt;
* Подписка royalties.&lt;br /&gt;
&lt;br /&gt;
===[Отложено] Communication Monitor===&lt;br /&gt;
&lt;br /&gt;
Сперва обсудить: может сразу делать web-based ticketing system?&lt;br /&gt;
&lt;br /&gt;
Коммуникация - это в данном случае одно из трех:&lt;br /&gt;
&lt;br /&gt;
1) Кастомер заполнил контактную форму на сайте. Насколько я знаю, в этом случае все данные попадают в базу и там храняцо (если трафик платный то [http://www.medialooks.com/admin/block_admin/53 сюда] лучше не нажимать).&lt;br /&gt;
&lt;br /&gt;
2) На один из двух адресов - &amp;lt;sales@medialooks-team.com&amp;gt; и &amp;lt;dev@medialooks-team.com&amp;gt; получено письмо от кастомера.&lt;br /&gt;
&lt;br /&gt;
3) Мы послали кастомеру письмо с одного из двух адресов (во всех случаях мы ставим BCC на адрес, с которого пишем).&lt;br /&gt;
&lt;br /&gt;
В RM нужно реализовать три списка:&lt;br /&gt;
&lt;br /&gt;
1) Список коммуникаций типа (1), на которые не было ответа с одного из двух адресов в течение N часов. &lt;br /&gt;
&lt;br /&gt;
2) Список коммуникаций типа (2), на которые не было ответа с одного из двух адресов в течение M часов. &lt;br /&gt;
&lt;br /&gt;
3) Список коммуникаций типа (3), в случае если от кастомера не было ответа в течение D рабочих дней.&lt;br /&gt;
&lt;br /&gt;
В обоих случаях выводить в таблице всю инфо, которая есть на данный email - телефон, скайп, ссылка на кастомеров, у которых в контактах числицо такой email (см. также &amp;quot;Contact as System Item&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
N, M и D нужно дать возможность конфигурить через гуй RM.&lt;br /&gt;
&lt;br /&gt;
В первом приближении выводить тела писем не нужно. Но в будуем мне кажется мы все равно к этому придем. Поэтому хранить можно уже начинать.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Customer download tracking===&lt;br /&gt;
&lt;br /&gt;
* Индивидуальные даунлоад ссылки для отслеживания какой подписчик нажал на сцылку.&lt;br /&gt;
* Отписка или оповещение администратора о подписчиках который не нажимают на ссылки (признак того что не получают письма или не читают их - но при этом по какой-то причине не отписываются).&lt;br /&gt;
&lt;br /&gt;
===Наследование/объединение продуктов===&lt;br /&gt;
&lt;br /&gt;
Необходимо поддержать два следующих сценария:&lt;br /&gt;
&lt;br /&gt;
1) Существует продукт DirectShow Filter Pack - он включает в себя большой набор DirectShow фильтров. Каждый фильтр релизится по своему графику (т.е. без графика) - поэтому отдельного download для него не существует. Т.е. продукт в данном случае это просто такая лицензия, т.е. совокупность цены и набора компонентов. В RM возможность создавать такие лицензии должна быть реализована в виде продукта в общем списке - просто у него будут какие-то дополнительные свойства как-то &amp;quot;включать в себя такие-то продукты&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Соответственно, при создании лицензии на такой продукт нужно сделать так чтобы:&lt;br /&gt;
&lt;br /&gt;
* Контакты кастомера могли быть подписаны на релизы (updates) по каждому из продуктов отдельно. По-умолчанию - создается подписка на все входящие в пакет продукты. Отписаться от каждого из продуктов в отдельности можно через сцылку на отписку из письма или это можно сделать через редактирование свойств лицензии.&lt;br /&gt;
&lt;br /&gt;
* Контакты кастомера не были дубликатно подписаны на эти же самые продукты через другие механизмы RM.&lt;br /&gt;
&lt;br /&gt;
* Подписка License Expired в данном случае остается одна - только на общий продукт. Но в случае, если подписка истекла, то при рассылке Release Updates в тело письма вставляется соотв. сообщение (т.к. это сейчас сделано для обычных лицензий).&lt;br /&gt;
&lt;br /&gt;
* В случае если для продукты DirectShow Filter Pack - RM конечно же имеет право наложить в штаны но после этого должен немедленно собрацо и вести себя так как будто он точно знает что нужно делать - а именно вести себя так как будто DirectShow Filter Pack это самый обычный продукт (т.е. появитсо в Distributives и дать возможность сделать рассылку). Т.е. обычная рассылка Release Updates для продукта такого типа тоже создаецо.&lt;br /&gt;
&lt;br /&gt;
2) Существуют продукты DeckLink SDK, Playout SDK и Multimedia SDK, для которых мы решили в целях упрощения использовать общий даунлоад. В данном случае все остается как есть - т.е. лицензии создаются именно под эти продукты, отдельно ведется статистика подписок, лицензий и закачек - но используется только один download.&lt;br /&gt;
&lt;br /&gt;
Например, мы говорим что DeckLink SDK и Playout SDK - оба используют download Multimedia SDK. Разработчик закачивает новый релиз именно для Multimedia SDK. Этот новый релиз появляется в разделе Distributives. Я его модерю, нажимаю сделать рассылку - и, как и раньше, выходят три блока писем - для DeckLink SDK, Playout SDk и Multimedia SDK.&lt;br /&gt;
&lt;br /&gt;
Особенность: ссылка во всех письмах теперь называется multimedia sdk. Делать редиректы и переименования - не надо (иначе клиенты будут говорить я скачал Playout SDK а мне ставится Multimedia SDK).&lt;br /&gt;
&lt;br /&gt;
===Industry-Based Subscriptions===&lt;br /&gt;
&lt;br /&gt;
Добавить возможность создавать рассылки по индустриям. В целом все аналогично тому как сейчас работают подписки на новые релизы. Можно подписывать контакты руками. А при рассылке заодно рассылать тем, кто является клиентом какого-либо продукта и тоже записан в эту индустрию.&lt;br /&gt;
&lt;br /&gt;
Возможно, когда у нас появятся разные способы делать рассылки, придется придумывать способы не слать дважды по одному и тому же поводу. Например, заводить для рассылки какой-нибудь ID.&lt;br /&gt;
&lt;br /&gt;
===Contact as System Item===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать контакты как самостоятельную сущность.&lt;br /&gt;
&lt;br /&gt;
Контакт представляет из себя имя (текстовое поле например &amp;quot;Andrew Okunev) и ассоциированный c ним набор полей:&lt;br /&gt;
&lt;br /&gt;
* email name (используется в подстановках в письмах; если пусто, используется &amp;quot;customer&amp;quot;)&lt;br /&gt;
* email (любое количество)&lt;br /&gt;
* skype (любое количество)&lt;br /&gt;
* телефон (любое количество)&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать отображение и редактирование свойств для любого из контактов. Например:&lt;br /&gt;
&lt;br /&gt;
* Когда добавлен в систему&lt;br /&gt;
* С какими компаниями (Customers) ассоциирован.&lt;br /&gt;
* С какими лицензиями ассоциирован.&lt;br /&gt;
* На какие подписки подписан.&lt;br /&gt;
&lt;br /&gt;
Все это нужно реализовать в одной вьюхе. Редактирование доступно только администратору системы.&lt;br /&gt;
&lt;br /&gt;
Примечания:&lt;br /&gt;
&lt;br /&gt;
* В системе должны отсутствовать дубликаты по email. Дубликаты по имени допустимы (т.е. когда одинаковое имя но разный email), но должна быть возможность их соединить (т.е. превратить в один контакт с двумя email). Реализовать это можно через отдельную вьюху, доступную администратору.&lt;br /&gt;
&lt;br /&gt;
* Если у контакта больше одного email, то любой из них может использоваться для авторизации.&lt;br /&gt;
&lt;br /&gt;
* Новый контакт (как сущность) создается при любом добавлении контакта в систему (например, при создании подписки через модуль subscribers.&lt;br /&gt;
&lt;br /&gt;
===Universal Uploads===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать возможность закачивать в RM абстрактные (не привязанные к какому-либо продукту) файлы. При этом каждому такому файлу должен быть по-умолчанию присвоен срок жизни - 30 дней. После чего файл автоматически удаляется. Файлы можно защищать паролем, который требуется для скачки.&lt;br /&gt;
&lt;br /&gt;
Каждый файл привязан к какому-либо юзеру. Только у этого пользователя (или у администратора) есть возможность добавлять к своему аккаунту файлы или удалять их. Каждую закачку можно удалить или обновить файл в ней.&lt;br /&gt;
&lt;br /&gt;
Соответственно, необходимо создать две новых вьюхи:&lt;br /&gt;
&lt;br /&gt;
1) Вьюха создания закачки. Опции: текстедит срок жизни (по-умолчанию вбито 30), чекбокс защитить паролем, путь к файлу.&lt;br /&gt;
&lt;br /&gt;
2) Вьюха список закачек данного юзера. Отображать: имя файла, количество скачек, оставшийся срок жизни, дата закачки. Имя файла является ссылкой на данный файл (вида rm.medialooks.com/...).&lt;br /&gt;
&lt;br /&gt;
В меню каждого юзера должно быть что-то вроде &amp;quot;My Uploads&amp;quot;, которая ведет на вьюху (2).&lt;br /&gt;
&lt;br /&gt;
===Customer Access===&lt;br /&gt;
&lt;br /&gt;
Нужно научицо давать кастомерам доступ к аплоадам. Для этого нужно реализовать в RM еще одну роль - &amp;quot;Customer&amp;quot;. Роль &amp;quot;User&amp;quot; нужно переименовать в &amp;quot;Developer&amp;quot;. Каждый контакт, добавленный в систему, должен получать соотв. статус и автоматически сгенеренный пароль. Никаких писем при заведении пользователей пока автоматически рассылать не надо. Однако, при первой попытке зайти в систему, кастомер должен по почте получить свой пароль. Залогинившись, он имеет доступ только к своим аплоадам (в будущем добавим еще подписки и лицензии).&lt;br /&gt;
&lt;br /&gt;
===Search===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать поиск в системе. Форма поиска - одна на все случаи. Она должна размещаться на всех страницах системы.&lt;br /&gt;
&lt;br /&gt;
По каким полям искать:&lt;br /&gt;
&lt;br /&gt;
* По контактам.&lt;br /&gt;
* По названию клиента.&lt;br /&gt;
* По тегу клиента.&lt;br /&gt;
&lt;br /&gt;
'''Пример.''' Если в поле поиска ввден запрос:&lt;br /&gt;
&lt;br /&gt;
Andrew A. Okunev &amp;lt;dev@medialooks.com&amp;gt; (MediaLooks)&lt;br /&gt;
&lt;br /&gt;
- то сперва нужно произвести поиск отдельно по &amp;quot;Osman Yel&amp;quot;, &amp;quot;dev@medialooks.com&amp;quot; и &amp;quot;MediaLooks&amp;quot;. Эти результаты вывести в первую очередь.&lt;br /&gt;
&lt;br /&gt;
Во-вторую - выделить из поисковой строки название домена и отрезать от него домен первого уровня. Т.е. в нашем примере искать по строке &amp;quot;medialooks&amp;quot;. Эти результаты вывести во вторую очередь.&lt;br /&gt;
&lt;br /&gt;
Кроме этого, естественно должен работать поиск в том случае если исходный запрос это &amp;quot;dev@medialooks.com&amp;quot; или просто &amp;quot;medialooks&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===LinkedIn Integration===&lt;br /&gt;
&lt;br /&gt;
Зачем? Любая система управления контактами страдает одним недостатком - ей неоткуда узнать о том, что у кого-то поменялся email или телефон.&lt;br /&gt;
&lt;br /&gt;
Предполагается что пользователи LinkedIn (за исключением [http://www.linkedin.com/pub/2/26b/926 некоторых] поддерживают свой профиль в актуальном состоянии. В частности, следят за тем, чтобы в профиле был актуальный email.&lt;br /&gt;
&lt;br /&gt;
В результате хочется получить поддержку следующих сценариев:&lt;br /&gt;
&lt;br /&gt;
* Узнавать об изменениях в контактной информации наших клиентов.&lt;br /&gt;
* Приглашать в нашу сеть клиентов, которые уже используют LinkedIn.&lt;br /&gt;
* Приглашать в LinkedIn тех клиентов, которые его пока не используют.&lt;br /&gt;
* Если клиент для общение с нами использует один email, а для LinkedIn - другой, - то нам нужно узнать этот email и использовать его как запасной/альтернативный.&lt;br /&gt;
&lt;br /&gt;
Для начала думаю следует просто проверить, позволяет ли API делать следующее:&lt;br /&gt;
&lt;br /&gt;
* Авторизоваться в системе под каким-то реальным логином (например, подо мной).&lt;br /&gt;
* Поискать пользователей по email.&lt;br /&gt;
* Получить email любого из моих контактов.&lt;br /&gt;
* Послать конкретному пользователю инвайт, иметь возможность указать кастомный текст для инвайта.&lt;br /&gt;
* Пригласить нового пользователя через email, то же самое с кастомным текстом.&lt;br /&gt;
&lt;br /&gt;
Задача неактуальна поскольку как я понял от LinkedIn нужно сначала получить одобрение на использование API:&lt;br /&gt;
&lt;br /&gt;
* http://www.linkedin.com/static?key=developers_apis&lt;br /&gt;
&lt;br /&gt;
==Done Tasks==&lt;br /&gt;
&lt;br /&gt;
* [[LMS/CMS Tasks: Done]]&lt;br /&gt;
&lt;br /&gt;
[[Category: Tasks]]&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Ivan</name></author>	</entry>

	<entry>
		<id>http://wiki.avobjects.com/Dev:RM/LMS_Tasks</id>
		<title>Dev:RM/LMS Tasks</title>
		<link rel="alternate" type="text/html" href="http://wiki.avobjects.com/Dev:RM/LMS_Tasks"/>
				<updated>2009-12-10T15:22:00Z</updated>
		
		<summary type="html">&lt;p&gt;Ivan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See also:&lt;br /&gt;
&lt;br /&gt;
* [[Dev:Tasks To Complete Before We Can Papustico!]]&lt;br /&gt;
* [[CMS Tasks]]&lt;br /&gt;
* [[Dev:Communication System]]&lt;br /&gt;
* [[Dev: Support System Roles]]&lt;br /&gt;
* [[Dev: RM User Rights]]&lt;br /&gt;
* [[Dev: RM Licensing Feature Update]]&lt;br /&gt;
* [[Dev: Serge Tasks]]&lt;br /&gt;
&lt;br /&gt;
==RM/LMS Tasks==&lt;br /&gt;
&lt;br /&gt;
==DONE==&lt;br /&gt;
* [bug] Откуда-то взялся кейс in progress без асайна - [http://rm.medialooks.com/messages/show/1586].&lt;br /&gt;
'''забить, он старый'''&lt;br /&gt;
&lt;br /&gt;
* [bug] При паттписке-атписке из кейса выскакивает явоскрпитовый диалог с цифрами (например, 68).&lt;br /&gt;
&lt;br /&gt;
* [bug] Чичас после нажатия на Send emails в [http://rm.medialooks.com/distributives/show/39 релизах] в гуйне ничо не происходит. Т.е. кажецо что ты промахнулсо и хочецо нажать кнопку исчо раз. Хотя на самом деле все срабатывает (письма шлюцо) и если со страницы уйти то из [http://rm.medialooks.com/distributives списка] этот продукт исчезнет.&lt;br /&gt;
'''происходит, но долго'''&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] При создании или редактировании лицензии. Убрать галку &amp;quot;Send license files&amp;quot; и добавить просто новую кнопку &amp;quot;Save and Send License Files&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] Добавть ссылочку Re-send License Files прямо рядом с Edit License. Update переименовать в Renew. Пункты меню расположить так: Renew License | Edit License | Re-send License Files | Delete License.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] Ссылочку Add License поместить над списком лицензий и назвать Add New License.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] Notes в свойствах лицензии нужно выводить красным.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/messages/new_cases/SM] Для всех вариантов отображения списка кейсов. В табличке со списком выводить также статус (In progess, waiting, etc.) - предпоследней колонкой.&lt;br /&gt;
&lt;br /&gt;
* [note] Добавить бряк после номера версии в тексте релилз ноутс который вставляется в subscribe.&lt;br /&gt;
&lt;br /&gt;
* [note] Для license_file.rhtml нужно новое условие - триальная лицензия или нет. Т.к. текст в этом случае другой.&lt;br /&gt;
'''оно там есть, просто называецо нетривиально: &amp;lt;% if @expiration_date %&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/] Писать дату рядом с номером версии на главной странице.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer] В списке кастомеров выводить еще и company таг (первой колонкой).&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/control] Не нужна такая длинная простыня изменений на странице рестарт апдейт RM. А когда она делает рестарт хотелось бы какой-нить индикации.&lt;br /&gt;
'''с индикацией сложности, давай пока это повисит'''&lt;br /&gt;
&lt;br /&gt;
* Када дуплицируецо кейс нада в логе выводить ссылку на дочерний кейс. Ссылка на родительский кейс сейчас есть, а вот наоборот - &lt;br /&gt;
'''сделал'''&lt;br /&gt;
&lt;br /&gt;
нету. Кроме этого, хорошо бы в обоих случаях (родитель и дочко) выводить вверху что-то вроде This case has parent cases:&amp;lt;br&amp;gt;* Subject или This case has child cases...&lt;br /&gt;
'''с этим сложности. ща это помечается в логе, который может сожержать все что угодно'''&lt;br /&gt;
&lt;br /&gt;
* Добавить тайтлы к страницам RM. Там должно быть все очевидно. Ну типа если это кейс то его сабжект, если это кастомер то название кастомера, если юзер то имя юзера. Остальное - по названию менюшек (Product, Customers, etc.).&lt;br /&gt;
&lt;br /&gt;
* Для мейловых кейсов убрать квоту втыкаемую в окошки эдитов (сейчас она втыкается как в интернал, так и во внешний камент). Из интернал вообще убрать. Для экстернал - убрать из едита но прикручивать к письму при отправке.&lt;br /&gt;
&lt;br /&gt;
* [bug] При создании лицензии когда делаешь триальную неправильно рассчитывается плюс один месяц.&lt;br /&gt;
'''fixed'''&lt;br /&gt;
&lt;br /&gt;
* Квота по-прежнему выткается в интернал камент.&lt;br /&gt;
'''только когда окошко с интернал камментом открыто. нажимаешь там внизу cancel и опять квота в окно ответа идет. это фича'''&lt;br /&gt;
&lt;br /&gt;
* В случае когда кастомер [http://rm.medialooks.com/messages/show/13168 ссылается на другой кейс] нужно придумать как в него попадать из вьюхи просмотра кейса в RM.&lt;br /&gt;
'''сделал так, что все юзерские ссылки на кейсы автоматом переписываются на админские. у клиента при этом не переписываются, т.е. только при отображении для вас'''&lt;br /&gt;
&lt;br /&gt;
* [bug] Берем (предположительно) любой кейс. Пускай это будет кастомер у которого 2 или более контактов и пускай на текущий момент у кейса только один партисипант. Добавляем сообщение и при этом добавляем еще одного участника (ставим галочку). Сообщение добавляется, теперь у кейса два участника, все ОК. Теперь делаем интернал камент (не важно с асайном или без) - дополнительные участники пропадают. Баг повторяется в случае если участников добавлять через email.&lt;br /&gt;
'''fixed'''&lt;br /&gt;
&lt;br /&gt;
==TODO==&lt;br /&gt;
&lt;br /&gt;
===Current===&lt;br /&gt;
&lt;br /&gt;
* Почему-то у всех ощущение что наши письма стали чаще попадать в спам. Надо проверить как у нас шлюцо письма. Мошт в хидерах чота не так?&lt;br /&gt;
'''примеры с хидерами накидай плиз с rm_monitor'''&lt;br /&gt;
&lt;br /&gt;
* Нерпальное оформление квот (не распознаюцо гмейлом). Отладицо под него.&lt;br /&gt;
'''какое?'''&lt;br /&gt;
&lt;br /&gt;
* Этот [http://rm.medialooks.com/messages/show/26560 кейс] как я понимаю теперь болтается вне всяких очередей?&lt;br /&gt;
'''похоже на то. ты просто сделал create mail case и все?'''&lt;br /&gt;
&lt;br /&gt;
* Проблемы с доступам к кейсам нескольких юзеров. Надо обсудить. Исходный кейс вот [http://rm.medialooks.com/messages/show/28265 тут].&lt;br /&gt;
'''да, нужны пояснения чо как было'''&lt;br /&gt;
&lt;br /&gt;
* Копии в кейсах.&lt;br /&gt;
* [[Dev:CRM Tasks]]&lt;br /&gt;
* Как аттачить прайс лист к письмам таким образом чтобы каждый раз заново не заливать? Мне кажется проще всего залить прайс как продукт. Тогда и подписка нужных людей на него сразу заработает. Вопрос - как заимплементить механизм аттачинга удобный?&lt;br /&gt;
* Никак не могу придумать что делать с [http://rm.medialooks.com/messages/show/16519 такими] кейсами.&lt;br /&gt;
* Поисследуй плиз можно ли как-то засунуть батовские почтовые базы в Gmail. Например, есть [http://www.gmail-backup.com/ такая штука.]&lt;br /&gt;
&lt;br /&gt;
===Mail Cases with Screwed Up Formatting===&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/messages/show/26572]&lt;br /&gt;
&lt;br /&gt;
===To Think About===&lt;br /&gt;
&lt;br /&gt;
* Как сделать FTP с per customer паролями?&lt;br /&gt;
* Как добавить features и подписку кастомеров на них?&lt;br /&gt;
* Что делать с контактами когда у двух людей одинаковый email? Пример - mbcradio.&lt;br /&gt;
&lt;br /&gt;
===Important CRM/Email-Related Fixes===&lt;br /&gt;
&lt;br /&gt;
* Сделать возможность CC на кейс.&lt;br /&gt;
&lt;br /&gt;
* Сделать фичу слежения за кейсами.&lt;br /&gt;
&lt;br /&gt;
* Мердждинг кейсов.&lt;br /&gt;
&lt;br /&gt;
===Bugs, Fixes, Questions===&lt;br /&gt;
&lt;br /&gt;
* Нужно проверить что это не глюки у нас (такое кол-во закачек) и залочить чувака [http://rm.medialooks.com/messages/show/1700].&lt;br /&gt;
&lt;br /&gt;
* [unconfirmed] При наличии customer с некоторым email не срабатывает подписка этого email на любой продукт. Запрет должен срабатывать только в случае если лицензия есть именно на этот продукт (возможно, тут надо еще добавить логику про наследованные продукты).&lt;br /&gt;
&lt;br /&gt;
* [Bug] Не работает напоминалка проля в даунлоадах.&lt;br /&gt;
&lt;br /&gt;
* Сбрасывается инфо при вводе уже зареганого email.&lt;br /&gt;
&lt;br /&gt;
* Красные буквы при вводе adsf@medialooks.com.&lt;br /&gt;
&lt;br /&gt;
* Не обрабатываются ошибки типа wrong password в даунлоадз.&lt;br /&gt;
&lt;br /&gt;
* В моей опере никогда не начинаются даунлоады автоматом.&lt;br /&gt;
&lt;br /&gt;
===RM Access Rights===&lt;br /&gt;
&lt;br /&gt;
* Сейчас если зайти на главную под пользовтелем cthomson@medialooks.com (Reseller/Sales Manager) то у него нет столбца Customers. Нужно добавить и выводить там соответственно только доступных ему кастомеров.&lt;br /&gt;
&lt;br /&gt;
===Подписки===&lt;br /&gt;
&lt;br /&gt;
* Подписка Update Discount Expiration. Ввести для лицензий которые expired только после 01.12.2009. Т.е. письма по этой подписке должны начать ходить примерно с 01.05.2010.&lt;br /&gt;
&lt;br /&gt;
* Новая подписка license_expred_followup - которая будет запускацо спустя 4 месяца после истечения подписки. Там написано что через 2 месяца закончицо скидка 50% на продление лицензии. (Кстати идея - может давать доп. скидку за продление в течение месяца после истечения паттписки - типа 65%?)&lt;br /&gt;
&lt;br /&gt;
===Backups to Amazon S3===&lt;br /&gt;
&lt;br /&gt;
Давай будем наш бэкапный файл закачивать на амазон раз в неделю. Я сделал там аккаунт.&lt;br /&gt;
&lt;br /&gt;
===Tasks===&lt;br /&gt;
&lt;br /&gt;
* [Отложено] New email setup. Нужно засетапить новый домен medialooks-team.com. Мы будем его использовать для следующего - чтобы слать и принимать почту с двух общих адресов - &amp;lt;sales@medialooks-team.com&amp;gt; и &amp;lt;dev@medialooks-team.com&amp;gt;. Почему-то очень многие закачики тупо не получают наши письма. Если это не поможет то нам придется переходить на полностью web-based общение с кастомерами.&lt;br /&gt;
&lt;br /&gt;
* Разобрацо в чем проблема с настройкой goals в гугле.&lt;br /&gt;
&lt;br /&gt;
* Добавить в шаблоны писем (шаблон рассылки нового релиза, 2 шаблона license expired) возможность вставлять &amp;quot;License update link&amp;quot; в случае если такая ссылка указана в свойствах продукта (типа IF License update link exists - вставить следующее). Прислать мне файло шаблонов на редактирование (могу сам залезть но надо настроить тада SVN твой).&lt;br /&gt;
&lt;br /&gt;
* Сделать урлы в свойствах кастомера кликабл.&lt;br /&gt;
&lt;br /&gt;
* Cross-promotion subscriptions.&lt;br /&gt;
&lt;br /&gt;
* Если переименовать продукт, то перестает работать общая ссылка на даунлоад и по-версионные ссылки.&lt;br /&gt;
&lt;br /&gt;
* Contact as System Item (see task description).&lt;br /&gt;
&lt;br /&gt;
* Search (see task description).&lt;br /&gt;
&lt;br /&gt;
* Сортировка по тагам во вьюхе кастомеров. Статистика по тагам.&lt;br /&gt;
&lt;br /&gt;
* Добавить вывод количества лицензионных подписок в графу &amp;quot;Site Subscribers&amp;quot;. Графу переименовать в &amp;quot;Subscribers (Interested/Licensed)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* Общие рассылки. Научиться делать рассылки по всем клиентам. Это должна быть отдельная подписка.&lt;br /&gt;
&lt;br /&gt;
* Персонализированный учет закачек. Мы хотим про каждого клиента знать скачивает он новые версии или нет. В письме, которое он получает при выходе новой версии, можно делать уникальный урл, чтобы система знала нажал он или нет. Второй подход - это использовать куки на тот случай, если клиент скачивает с сайта.&lt;br /&gt;
&lt;br /&gt;
* Статистика закачек. Научицо разделять новые (приходящие с рекламы или из поиска) и повторные (наши кастомеры качают новые версии) закачки.&lt;br /&gt;
&lt;br /&gt;
* Подумать. Если есть идеи как интегрировать с Google Analytics (GA)  AdWords (AW) - было бы клева. Например вытаскивать из GA данные о посещениях конкретной страницы и сравнивать их с данными по закачкам.&lt;br /&gt;
&lt;br /&gt;
* Проблема с возможностью создать продукт у которого все версии - беты. И тогда не работает общая ссылка.&lt;br /&gt;
&lt;br /&gt;
* Проблема с RSS-фидом блога (у меня почему-то аутлук пытаецо запустицо).&lt;br /&gt;
&lt;br /&gt;
* Research on online license document generation. Существует ли какой-нить вебовский генератор PDF?&lt;br /&gt;
&lt;br /&gt;
* Создавать в Google Blog Search и Google Alerts фиды по тегам клиента, подсасывать их и демонстрировать мышап на странице клиента. :)))&lt;br /&gt;
&lt;br /&gt;
* Исследовать возможность автоматически создавать для каждого контакта в RM аккаунт в вике, принадлежащий определенной группе.&lt;br /&gt;
&lt;br /&gt;
* Убивать разделительные знаки в поле contacts (елси это телефон). Нужно для того чтобы можно было искать по номеру телефона в почтовой базе.&lt;br /&gt;
&lt;br /&gt;
* Сортировка по дате последнего релиза вот [http://rm.medialooks.com/distributives тут].&lt;br /&gt;
&lt;br /&gt;
* В RM надо сделать напоминалки для нас об истечении лицензий у кастомеров. (Чтобы пинать/напоминать руками.)&lt;br /&gt;
&lt;br /&gt;
* Поиск кастомеров и контактов по странам в RM.&lt;br /&gt;
&lt;br /&gt;
* Дать возможность редактировать meeting results.&lt;br /&gt;
&lt;br /&gt;
* Доработать функционал реселлеров. Например, чтобы про кастомера было видно что он привязан к некоторому реселлеру ([http://rm.medialooks.com/customer/show/364 пример]).&lt;br /&gt;
&lt;br /&gt;
* Придумать что-нибудь с аттачами. Добавить их в темплейт или как-то иначе автоматизировать. Не забыть про то что он обновляется (автоматизировать?) - может как отдельный продукт его или в этом роде... Нужно уметь видеть версию прайса кот. была отправлена.&lt;br /&gt;
&lt;br /&gt;
* Ручная блокировка аккунта. Выдавать сообщение &amp;quot;Your account has been suspended. Please contact MediaLooks in order to unlock your account.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Выводить количество кастомерских кейсов в скобкаъ на странице кастомера.&lt;br /&gt;
&lt;br /&gt;
* Выводить едишен лицензии в ее свойствах на стр. кастомера.&lt;br /&gt;
&lt;br /&gt;
* Надо различать даунлоады по продуктам (например QT DS и QT Plugin).&lt;br /&gt;
&lt;br /&gt;
* Вот в [http://rm.medialooks.com/product/licenses/22 этой] вьюхе выводить сначала триальные, потом expired лицензии. Триальные лицензии нужно помечать каким-то визуальным образом.&lt;br /&gt;
&lt;br /&gt;
* Тайтлы страниц в RM. Расписать подробнее что где нужно.&lt;br /&gt;
&lt;br /&gt;
* Выводить где-то отдельно триальные лицензии, чтобы можно было пинать кастомеров по ним.&lt;br /&gt;
&lt;br /&gt;
* Нужен способ задать реселлера со страницы кастомера. И нужно на странице кастомера это видеть.&lt;br /&gt;
&lt;br /&gt;
* Сделать опции go to case by number в обоих интерфейсах RM.&lt;br /&gt;
&lt;br /&gt;
* Логгировать даунлоады и выводить в кейсах последнюю скачанную пользователем версии.&lt;br /&gt;
&lt;br /&gt;
* Когда дискуссия идет в теме даунлоад - новые даунлоады ее обновляют что неудобно.&lt;br /&gt;
&lt;br /&gt;
* Идея. Вести две простыни release notes. Одна что вписал девелопер. Другую - что отправлено кастомерам.&lt;br /&gt;
&lt;br /&gt;
* Добавить список аттачей к письму про апдейт кейса.&lt;br /&gt;
&lt;br /&gt;
* Некоторым заказчикам нужно дать возможность заливать на FTP с паролем.&lt;br /&gt;
&lt;br /&gt;
* Надо бы разрешить just comment to customer без реасайна кейса.&lt;br /&gt;
&lt;br /&gt;
* Продумать логику один контакт - две конторы. Пример videoassistech. У него разные адреса для разных случаев.&lt;br /&gt;
&lt;br /&gt;
* Нужно разработать функцию CC case. Там выбираешь N людей кот. кейс как бы идет копией до тех пор пока они не нажпут dismiss.&lt;br /&gt;
&lt;br /&gt;
* [17:40:21] Vsevolod V. Burkutsky: ещё одна мысль - что-бы тикеты от одинаковых чуваков типа как в дереве лежали&lt;br /&gt;
&lt;br /&gt;
* Добавить опцию резолвинга кейса после отправки internal comment, без посылки кастомеру чего-либо.&lt;br /&gt;
&lt;br /&gt;
* Добавить опцию зиповать лиц. файлы при отправке.&lt;br /&gt;
&lt;br /&gt;
* Автоматизировать пиналки, кот. занимается Ольга.&lt;br /&gt;
&lt;br /&gt;
* Сделать независимыми RM и даунлоады. Если лежит RM не должны лежать даунлоады. Хз чо как сделать.&lt;br /&gt;
&lt;br /&gt;
* Галка would you like us to send you an email a few days prior to the expiration of your evaluation license?&lt;br /&gt;
&lt;br /&gt;
===Это потом===&lt;br /&gt;
&lt;br /&gt;
* Переделать форму контактов на сайте. Добавить возможность указать второй email. Отдельные поля под скайп, телефон.&lt;br /&gt;
&lt;br /&gt;
* Подписка royalties.&lt;br /&gt;
&lt;br /&gt;
===[Отложено] Communication Monitor===&lt;br /&gt;
&lt;br /&gt;
Сперва обсудить: может сразу делать web-based ticketing system?&lt;br /&gt;
&lt;br /&gt;
Коммуникация - это в данном случае одно из трех:&lt;br /&gt;
&lt;br /&gt;
1) Кастомер заполнил контактную форму на сайте. Насколько я знаю, в этом случае все данные попадают в базу и там храняцо (если трафик платный то [http://www.medialooks.com/admin/block_admin/53 сюда] лучше не нажимать).&lt;br /&gt;
&lt;br /&gt;
2) На один из двух адресов - &amp;lt;sales@medialooks-team.com&amp;gt; и &amp;lt;dev@medialooks-team.com&amp;gt; получено письмо от кастомера.&lt;br /&gt;
&lt;br /&gt;
3) Мы послали кастомеру письмо с одного из двух адресов (во всех случаях мы ставим BCC на адрес, с которого пишем).&lt;br /&gt;
&lt;br /&gt;
В RM нужно реализовать три списка:&lt;br /&gt;
&lt;br /&gt;
1) Список коммуникаций типа (1), на которые не было ответа с одного из двух адресов в течение N часов. &lt;br /&gt;
&lt;br /&gt;
2) Список коммуникаций типа (2), на которые не было ответа с одного из двух адресов в течение M часов. &lt;br /&gt;
&lt;br /&gt;
3) Список коммуникаций типа (3), в случае если от кастомера не было ответа в течение D рабочих дней.&lt;br /&gt;
&lt;br /&gt;
В обоих случаях выводить в таблице всю инфо, которая есть на данный email - телефон, скайп, ссылка на кастомеров, у которых в контактах числицо такой email (см. также &amp;quot;Contact as System Item&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
N, M и D нужно дать возможность конфигурить через гуй RM.&lt;br /&gt;
&lt;br /&gt;
В первом приближении выводить тела писем не нужно. Но в будуем мне кажется мы все равно к этому придем. Поэтому хранить можно уже начинать.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Customer download tracking===&lt;br /&gt;
&lt;br /&gt;
* Индивидуальные даунлоад ссылки для отслеживания какой подписчик нажал на сцылку.&lt;br /&gt;
* Отписка или оповещение администратора о подписчиках который не нажимают на ссылки (признак того что не получают письма или не читают их - но при этом по какой-то причине не отписываются).&lt;br /&gt;
&lt;br /&gt;
===Наследование/объединение продуктов===&lt;br /&gt;
&lt;br /&gt;
Необходимо поддержать два следующих сценария:&lt;br /&gt;
&lt;br /&gt;
1) Существует продукт DirectShow Filter Pack - он включает в себя большой набор DirectShow фильтров. Каждый фильтр релизится по своему графику (т.е. без графика) - поэтому отдельного download для него не существует. Т.е. продукт в данном случае это просто такая лицензия, т.е. совокупность цены и набора компонентов. В RM возможность создавать такие лицензии должна быть реализована в виде продукта в общем списке - просто у него будут какие-то дополнительные свойства как-то &amp;quot;включать в себя такие-то продукты&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Соответственно, при создании лицензии на такой продукт нужно сделать так чтобы:&lt;br /&gt;
&lt;br /&gt;
* Контакты кастомера могли быть подписаны на релизы (updates) по каждому из продуктов отдельно. По-умолчанию - создается подписка на все входящие в пакет продукты. Отписаться от каждого из продуктов в отдельности можно через сцылку на отписку из письма или это можно сделать через редактирование свойств лицензии.&lt;br /&gt;
&lt;br /&gt;
* Контакты кастомера не были дубликатно подписаны на эти же самые продукты через другие механизмы RM.&lt;br /&gt;
&lt;br /&gt;
* Подписка License Expired в данном случае остается одна - только на общий продукт. Но в случае, если подписка истекла, то при рассылке Release Updates в тело письма вставляется соотв. сообщение (т.к. это сейчас сделано для обычных лицензий).&lt;br /&gt;
&lt;br /&gt;
* В случае если для продукты DirectShow Filter Pack - RM конечно же имеет право наложить в штаны но после этого должен немедленно собрацо и вести себя так как будто он точно знает что нужно делать - а именно вести себя так как будто DirectShow Filter Pack это самый обычный продукт (т.е. появитсо в Distributives и дать возможность сделать рассылку). Т.е. обычная рассылка Release Updates для продукта такого типа тоже создаецо.&lt;br /&gt;
&lt;br /&gt;
2) Существуют продукты DeckLink SDK, Playout SDK и Multimedia SDK, для которых мы решили в целях упрощения использовать общий даунлоад. В данном случае все остается как есть - т.е. лицензии создаются именно под эти продукты, отдельно ведется статистика подписок, лицензий и закачек - но используется только один download.&lt;br /&gt;
&lt;br /&gt;
Например, мы говорим что DeckLink SDK и Playout SDK - оба используют download Multimedia SDK. Разработчик закачивает новый релиз именно для Multimedia SDK. Этот новый релиз появляется в разделе Distributives. Я его модерю, нажимаю сделать рассылку - и, как и раньше, выходят три блока писем - для DeckLink SDK, Playout SDk и Multimedia SDK.&lt;br /&gt;
&lt;br /&gt;
Особенность: ссылка во всех письмах теперь называется multimedia sdk. Делать редиректы и переименования - не надо (иначе клиенты будут говорить я скачал Playout SDK а мне ставится Multimedia SDK).&lt;br /&gt;
&lt;br /&gt;
===Industry-Based Subscriptions===&lt;br /&gt;
&lt;br /&gt;
Добавить возможность создавать рассылки по индустриям. В целом все аналогично тому как сейчас работают подписки на новые релизы. Можно подписывать контакты руками. А при рассылке заодно рассылать тем, кто является клиентом какого-либо продукта и тоже записан в эту индустрию.&lt;br /&gt;
&lt;br /&gt;
Возможно, когда у нас появятся разные способы делать рассылки, придется придумывать способы не слать дважды по одному и тому же поводу. Например, заводить для рассылки какой-нибудь ID.&lt;br /&gt;
&lt;br /&gt;
===Contact as System Item===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать контакты как самостоятельную сущность.&lt;br /&gt;
&lt;br /&gt;
Контакт представляет из себя имя (текстовое поле например &amp;quot;Andrew Okunev) и ассоциированный c ним набор полей:&lt;br /&gt;
&lt;br /&gt;
* email name (используется в подстановках в письмах; если пусто, используется &amp;quot;customer&amp;quot;)&lt;br /&gt;
* email (любое количество)&lt;br /&gt;
* skype (любое количество)&lt;br /&gt;
* телефон (любое количество)&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать отображение и редактирование свойств для любого из контактов. Например:&lt;br /&gt;
&lt;br /&gt;
* Когда добавлен в систему&lt;br /&gt;
* С какими компаниями (Customers) ассоциирован.&lt;br /&gt;
* С какими лицензиями ассоциирован.&lt;br /&gt;
* На какие подписки подписан.&lt;br /&gt;
&lt;br /&gt;
Все это нужно реализовать в одной вьюхе. Редактирование доступно только администратору системы.&lt;br /&gt;
&lt;br /&gt;
Примечания:&lt;br /&gt;
&lt;br /&gt;
* В системе должны отсутствовать дубликаты по email. Дубликаты по имени допустимы (т.е. когда одинаковое имя но разный email), но должна быть возможность их соединить (т.е. превратить в один контакт с двумя email). Реализовать это можно через отдельную вьюху, доступную администратору.&lt;br /&gt;
&lt;br /&gt;
* Если у контакта больше одного email, то любой из них может использоваться для авторизации.&lt;br /&gt;
&lt;br /&gt;
* Новый контакт (как сущность) создается при любом добавлении контакта в систему (например, при создании подписки через модуль subscribers.&lt;br /&gt;
&lt;br /&gt;
===Universal Uploads===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать возможность закачивать в RM абстрактные (не привязанные к какому-либо продукту) файлы. При этом каждому такому файлу должен быть по-умолчанию присвоен срок жизни - 30 дней. После чего файл автоматически удаляется. Файлы можно защищать паролем, который требуется для скачки.&lt;br /&gt;
&lt;br /&gt;
Каждый файл привязан к какому-либо юзеру. Только у этого пользователя (или у администратора) есть возможность добавлять к своему аккаунту файлы или удалять их. Каждую закачку можно удалить или обновить файл в ней.&lt;br /&gt;
&lt;br /&gt;
Соответственно, необходимо создать две новых вьюхи:&lt;br /&gt;
&lt;br /&gt;
1) Вьюха создания закачки. Опции: текстедит срок жизни (по-умолчанию вбито 30), чекбокс защитить паролем, путь к файлу.&lt;br /&gt;
&lt;br /&gt;
2) Вьюха список закачек данного юзера. Отображать: имя файла, количество скачек, оставшийся срок жизни, дата закачки. Имя файла является ссылкой на данный файл (вида rm.medialooks.com/...).&lt;br /&gt;
&lt;br /&gt;
В меню каждого юзера должно быть что-то вроде &amp;quot;My Uploads&amp;quot;, которая ведет на вьюху (2).&lt;br /&gt;
&lt;br /&gt;
===Customer Access===&lt;br /&gt;
&lt;br /&gt;
Нужно научицо давать кастомерам доступ к аплоадам. Для этого нужно реализовать в RM еще одну роль - &amp;quot;Customer&amp;quot;. Роль &amp;quot;User&amp;quot; нужно переименовать в &amp;quot;Developer&amp;quot;. Каждый контакт, добавленный в систему, должен получать соотв. статус и автоматически сгенеренный пароль. Никаких писем при заведении пользователей пока автоматически рассылать не надо. Однако, при первой попытке зайти в систему, кастомер должен по почте получить свой пароль. Залогинившись, он имеет доступ только к своим аплоадам (в будущем добавим еще подписки и лицензии).&lt;br /&gt;
&lt;br /&gt;
===Search===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать поиск в системе. Форма поиска - одна на все случаи. Она должна размещаться на всех страницах системы.&lt;br /&gt;
&lt;br /&gt;
По каким полям искать:&lt;br /&gt;
&lt;br /&gt;
* По контактам.&lt;br /&gt;
* По названию клиента.&lt;br /&gt;
* По тегу клиента.&lt;br /&gt;
&lt;br /&gt;
'''Пример.''' Если в поле поиска ввден запрос:&lt;br /&gt;
&lt;br /&gt;
Andrew A. Okunev &amp;lt;dev@medialooks.com&amp;gt; (MediaLooks)&lt;br /&gt;
&lt;br /&gt;
- то сперва нужно произвести поиск отдельно по &amp;quot;Osman Yel&amp;quot;, &amp;quot;dev@medialooks.com&amp;quot; и &amp;quot;MediaLooks&amp;quot;. Эти результаты вывести в первую очередь.&lt;br /&gt;
&lt;br /&gt;
Во-вторую - выделить из поисковой строки название домена и отрезать от него домен первого уровня. Т.е. в нашем примере искать по строке &amp;quot;medialooks&amp;quot;. Эти результаты вывести во вторую очередь.&lt;br /&gt;
&lt;br /&gt;
Кроме этого, естественно должен работать поиск в том случае если исходный запрос это &amp;quot;dev@medialooks.com&amp;quot; или просто &amp;quot;medialooks&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===LinkedIn Integration===&lt;br /&gt;
&lt;br /&gt;
Зачем? Любая система управления контактами страдает одним недостатком - ей неоткуда узнать о том, что у кого-то поменялся email или телефон.&lt;br /&gt;
&lt;br /&gt;
Предполагается что пользователи LinkedIn (за исключением [http://www.linkedin.com/pub/2/26b/926 некоторых] поддерживают свой профиль в актуальном состоянии. В частности, следят за тем, чтобы в профиле был актуальный email.&lt;br /&gt;
&lt;br /&gt;
В результате хочется получить поддержку следующих сценариев:&lt;br /&gt;
&lt;br /&gt;
* Узнавать об изменениях в контактной информации наших клиентов.&lt;br /&gt;
* Приглашать в нашу сеть клиентов, которые уже используют LinkedIn.&lt;br /&gt;
* Приглашать в LinkedIn тех клиентов, которые его пока не используют.&lt;br /&gt;
* Если клиент для общение с нами использует один email, а для LinkedIn - другой, - то нам нужно узнать этот email и использовать его как запасной/альтернативный.&lt;br /&gt;
&lt;br /&gt;
Для начала думаю следует просто проверить, позволяет ли API делать следующее:&lt;br /&gt;
&lt;br /&gt;
* Авторизоваться в системе под каким-то реальным логином (например, подо мной).&lt;br /&gt;
* Поискать пользователей по email.&lt;br /&gt;
* Получить email любого из моих контактов.&lt;br /&gt;
* Послать конкретному пользователю инвайт, иметь возможность указать кастомный текст для инвайта.&lt;br /&gt;
* Пригласить нового пользователя через email, то же самое с кастомным текстом.&lt;br /&gt;
&lt;br /&gt;
Задача неактуальна поскольку как я понял от LinkedIn нужно сначала получить одобрение на использование API:&lt;br /&gt;
&lt;br /&gt;
* http://www.linkedin.com/static?key=developers_apis&lt;br /&gt;
&lt;br /&gt;
==Done Tasks==&lt;br /&gt;
&lt;br /&gt;
* [[LMS/CMS Tasks: Done]]&lt;br /&gt;
&lt;br /&gt;
[[Category: Tasks]]&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Ivan</name></author>	</entry>

	<entry>
		<id>http://wiki.avobjects.com/Dev:RM/LMS_Tasks</id>
		<title>Dev:RM/LMS Tasks</title>
		<link rel="alternate" type="text/html" href="http://wiki.avobjects.com/Dev:RM/LMS_Tasks"/>
				<updated>2009-12-10T15:21:00Z</updated>
		
		<summary type="html">&lt;p&gt;Ivan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See also:&lt;br /&gt;
&lt;br /&gt;
* [[Dev:Tasks To Complete Before We Can Papustico!]]&lt;br /&gt;
* [[CMS Tasks]]&lt;br /&gt;
* [[Dev:Communication System]]&lt;br /&gt;
* [[Dev: Support System Roles]]&lt;br /&gt;
* [[Dev: RM User Rights]]&lt;br /&gt;
* [[Dev: RM Licensing Feature Update]]&lt;br /&gt;
* [[Dev: Serge Tasks]]&lt;br /&gt;
&lt;br /&gt;
==RM/LMS Tasks==&lt;br /&gt;
&lt;br /&gt;
==DONE==&lt;br /&gt;
* [bug] Откуда-то взялся кейс in progress без асайна - [http://rm.medialooks.com/messages/show/1586].&lt;br /&gt;
'''забить, он старый'''&lt;br /&gt;
&lt;br /&gt;
* [bug] При паттписке-атписке из кейса выскакивает явоскрпитовый диалог с цифрами (например, 68).&lt;br /&gt;
&lt;br /&gt;
* [bug] Чичас после нажатия на Send emails в [http://rm.medialooks.com/distributives/show/39 релизах] в гуйне ничо не происходит. Т.е. кажецо что ты промахнулсо и хочецо нажать кнопку исчо раз. Хотя на самом деле все срабатывает (письма шлюцо) и если со страницы уйти то из [http://rm.medialooks.com/distributives списка] этот продукт исчезнет.&lt;br /&gt;
'''происходит, но долго'''&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] При создании или редактировании лицензии. Убрать галку &amp;quot;Send license files&amp;quot; и добавить просто новую кнопку &amp;quot;Save and Send License Files&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] Добавть ссылочку Re-send License Files прямо рядом с Edit License. Update переименовать в Renew. Пункты меню расположить так: Renew License | Edit License | Re-send License Files | Delete License.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] Ссылочку Add License поместить над списком лицензий и назвать Add New License.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] Notes в свойствах лицензии нужно выводить красным.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/messages/new_cases/SM] Для всех вариантов отображения списка кейсов. В табличке со списком выводить также статус (In progess, waiting, etc.) - предпоследней колонкой.&lt;br /&gt;
&lt;br /&gt;
* [note] Добавить бряк после номера версии в тексте релилз ноутс который вставляется в subscribe.&lt;br /&gt;
&lt;br /&gt;
* [note] Для license_file.rhtml нужно новое условие - триальная лицензия или нет. Т.к. текст в этом случае другой.&lt;br /&gt;
'''оно там есть, просто называецо нетривиально: &amp;lt;% if @expiration_date %&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/] Писать дату рядом с номером версии на главной странице.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer] В списке кастомеров выводить еще и company таг (первой колонкой).&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/control] Не нужна такая длинная простыня изменений на странице рестарт апдейт RM. А когда она делает рестарт хотелось бы какой-нить индикации.&lt;br /&gt;
'''с индикацией сложности, давай пока это повисит'''&lt;br /&gt;
&lt;br /&gt;
* Када дуплицируецо кейс нада в логе выводить ссылку на дочерний кейс. Ссылка на родительский кейс сейчас есть, а вот наоборот - &lt;br /&gt;
'''сделал'''&lt;br /&gt;
&lt;br /&gt;
нету. Кроме этого, хорошо бы в обоих случаях (родитель и дочко) выводить вверху что-то вроде This case has parent cases:&amp;lt;br&amp;gt;* Subject или This case has child cases...&lt;br /&gt;
'''с этим сложности. ща это помечается в логе, который может сожержать все что угодно'''&lt;br /&gt;
&lt;br /&gt;
* Добавить тайтлы к страницам RM. Там должно быть все очевидно. Ну типа если это кейс то его сабжект, если это кастомер то название кастомера, если юзер то имя юзера. Остальное - по названию менюшек (Product, Customers, etc.).&lt;br /&gt;
&lt;br /&gt;
* Для мейловых кейсов убрать квоту втыкаемую в окошки эдитов (сейчас она втыкается как в интернал, так и во внешний камент). Из интернал вообще убрать. Для экстернал - убрать из едита но прикручивать к письму при отправке.&lt;br /&gt;
&lt;br /&gt;
* [bug] При создании лицензии когда делаешь триальную неправильно рассчитывается плюс один месяц.&lt;br /&gt;
'''fixed'''&lt;br /&gt;
&lt;br /&gt;
* Квота по-прежнему выткается в интернал камент.&lt;br /&gt;
'''только когда окошко с интернал камментом открыто. нажимаешь там внизу cancel и опять квота в окно ответа идет. это фича'''&lt;br /&gt;
&lt;br /&gt;
* [bug] Берем (предположительно) любой кейс. Пускай это будет кастомер у которого 2 или более контактов и пускай на текущий момент у кейса только один партисипант. Добавляем сообщение и при этом добавляем еще одного участника (ставим галочку). Сообщение добавляется, теперь у кейса два участника, все ОК. Теперь делаем интернал камент (не важно с асайном или без) - дополнительные участники пропадают. Баг повторяется в случае если участников добавлять через email.&lt;br /&gt;
'''fixed'''&lt;br /&gt;
&lt;br /&gt;
==TODO==&lt;br /&gt;
&lt;br /&gt;
===Current===&lt;br /&gt;
&lt;br /&gt;
* Почему-то у всех ощущение что наши письма стали чаще попадать в спам. Надо проверить как у нас шлюцо письма. Мошт в хидерах чота не так?&lt;br /&gt;
'''примеры с хидерами накидай плиз с rm_monitor'''&lt;br /&gt;
&lt;br /&gt;
* Нерпальное оформление квот (не распознаюцо гмейлом). Отладицо под него.&lt;br /&gt;
'''какое?'''&lt;br /&gt;
&lt;br /&gt;
* Этот [http://rm.medialooks.com/messages/show/26560 кейс] как я понимаю теперь болтается вне всяких очередей?&lt;br /&gt;
'''похоже на то. ты просто сделал create mail case и все?'''&lt;br /&gt;
&lt;br /&gt;
* В случае когда кастомер [http://rm.medialooks.com/messages/show/13168 ссылается на другой кейс] нужно придумать как в него попадать из вьюхи просмотра кейса в RM.&lt;br /&gt;
'''сделал так, что все юзерские ссылки на кейсы автоматом переписываются на админские. у клиента при этом не переписываются, т.е. только при отображении для вас'''&lt;br /&gt;
&lt;br /&gt;
* Проблемы с доступам к кейсам нескольких юзеров. Надо обсудить. Исходный кейс вот [http://rm.medialooks.com/messages/show/28265 тут].&lt;br /&gt;
'''да, нужны пояснения чо как было'''&lt;br /&gt;
&lt;br /&gt;
* Копии в кейсах.&lt;br /&gt;
* [[Dev:CRM Tasks]]&lt;br /&gt;
* Как аттачить прайс лист к письмам таким образом чтобы каждый раз заново не заливать? Мне кажется проще всего залить прайс как продукт. Тогда и подписка нужных людей на него сразу заработает. Вопрос - как заимплементить механизм аттачинга удобный?&lt;br /&gt;
* Никак не могу придумать что делать с [http://rm.medialooks.com/messages/show/16519 такими] кейсами.&lt;br /&gt;
* Поисследуй плиз можно ли как-то засунуть батовские почтовые базы в Gmail. Например, есть [http://www.gmail-backup.com/ такая штука.]&lt;br /&gt;
&lt;br /&gt;
===Mail Cases with Screwed Up Formatting===&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/messages/show/26572]&lt;br /&gt;
&lt;br /&gt;
===To Think About===&lt;br /&gt;
&lt;br /&gt;
* Как сделать FTP с per customer паролями?&lt;br /&gt;
* Как добавить features и подписку кастомеров на них?&lt;br /&gt;
* Что делать с контактами когда у двух людей одинаковый email? Пример - mbcradio.&lt;br /&gt;
&lt;br /&gt;
===Important CRM/Email-Related Fixes===&lt;br /&gt;
&lt;br /&gt;
* Сделать возможность CC на кейс.&lt;br /&gt;
&lt;br /&gt;
* Сделать фичу слежения за кейсами.&lt;br /&gt;
&lt;br /&gt;
* Мердждинг кейсов.&lt;br /&gt;
&lt;br /&gt;
===Bugs, Fixes, Questions===&lt;br /&gt;
&lt;br /&gt;
* Нужно проверить что это не глюки у нас (такое кол-во закачек) и залочить чувака [http://rm.medialooks.com/messages/show/1700].&lt;br /&gt;
&lt;br /&gt;
* [unconfirmed] При наличии customer с некоторым email не срабатывает подписка этого email на любой продукт. Запрет должен срабатывать только в случае если лицензия есть именно на этот продукт (возможно, тут надо еще добавить логику про наследованные продукты).&lt;br /&gt;
&lt;br /&gt;
* [Bug] Не работает напоминалка проля в даунлоадах.&lt;br /&gt;
&lt;br /&gt;
* Сбрасывается инфо при вводе уже зареганого email.&lt;br /&gt;
&lt;br /&gt;
* Красные буквы при вводе adsf@medialooks.com.&lt;br /&gt;
&lt;br /&gt;
* Не обрабатываются ошибки типа wrong password в даунлоадз.&lt;br /&gt;
&lt;br /&gt;
* В моей опере никогда не начинаются даунлоады автоматом.&lt;br /&gt;
&lt;br /&gt;
===RM Access Rights===&lt;br /&gt;
&lt;br /&gt;
* Сейчас если зайти на главную под пользовтелем cthomson@medialooks.com (Reseller/Sales Manager) то у него нет столбца Customers. Нужно добавить и выводить там соответственно только доступных ему кастомеров.&lt;br /&gt;
&lt;br /&gt;
===Подписки===&lt;br /&gt;
&lt;br /&gt;
* Подписка Update Discount Expiration. Ввести для лицензий которые expired только после 01.12.2009. Т.е. письма по этой подписке должны начать ходить примерно с 01.05.2010.&lt;br /&gt;
&lt;br /&gt;
* Новая подписка license_expred_followup - которая будет запускацо спустя 4 месяца после истечения подписки. Там написано что через 2 месяца закончицо скидка 50% на продление лицензии. (Кстати идея - может давать доп. скидку за продление в течение месяца после истечения паттписки - типа 65%?)&lt;br /&gt;
&lt;br /&gt;
===Backups to Amazon S3===&lt;br /&gt;
&lt;br /&gt;
Давай будем наш бэкапный файл закачивать на амазон раз в неделю. Я сделал там аккаунт.&lt;br /&gt;
&lt;br /&gt;
===Tasks===&lt;br /&gt;
&lt;br /&gt;
* [Отложено] New email setup. Нужно засетапить новый домен medialooks-team.com. Мы будем его использовать для следующего - чтобы слать и принимать почту с двух общих адресов - &amp;lt;sales@medialooks-team.com&amp;gt; и &amp;lt;dev@medialooks-team.com&amp;gt;. Почему-то очень многие закачики тупо не получают наши письма. Если это не поможет то нам придется переходить на полностью web-based общение с кастомерами.&lt;br /&gt;
&lt;br /&gt;
* Разобрацо в чем проблема с настройкой goals в гугле.&lt;br /&gt;
&lt;br /&gt;
* Добавить в шаблоны писем (шаблон рассылки нового релиза, 2 шаблона license expired) возможность вставлять &amp;quot;License update link&amp;quot; в случае если такая ссылка указана в свойствах продукта (типа IF License update link exists - вставить следующее). Прислать мне файло шаблонов на редактирование (могу сам залезть но надо настроить тада SVN твой).&lt;br /&gt;
&lt;br /&gt;
* Сделать урлы в свойствах кастомера кликабл.&lt;br /&gt;
&lt;br /&gt;
* Cross-promotion subscriptions.&lt;br /&gt;
&lt;br /&gt;
* Если переименовать продукт, то перестает работать общая ссылка на даунлоад и по-версионные ссылки.&lt;br /&gt;
&lt;br /&gt;
* Contact as System Item (see task description).&lt;br /&gt;
&lt;br /&gt;
* Search (see task description).&lt;br /&gt;
&lt;br /&gt;
* Сортировка по тагам во вьюхе кастомеров. Статистика по тагам.&lt;br /&gt;
&lt;br /&gt;
* Добавить вывод количества лицензионных подписок в графу &amp;quot;Site Subscribers&amp;quot;. Графу переименовать в &amp;quot;Subscribers (Interested/Licensed)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* Общие рассылки. Научиться делать рассылки по всем клиентам. Это должна быть отдельная подписка.&lt;br /&gt;
&lt;br /&gt;
* Персонализированный учет закачек. Мы хотим про каждого клиента знать скачивает он новые версии или нет. В письме, которое он получает при выходе новой версии, можно делать уникальный урл, чтобы система знала нажал он или нет. Второй подход - это использовать куки на тот случай, если клиент скачивает с сайта.&lt;br /&gt;
&lt;br /&gt;
* Статистика закачек. Научицо разделять новые (приходящие с рекламы или из поиска) и повторные (наши кастомеры качают новые версии) закачки.&lt;br /&gt;
&lt;br /&gt;
* Подумать. Если есть идеи как интегрировать с Google Analytics (GA)  AdWords (AW) - было бы клева. Например вытаскивать из GA данные о посещениях конкретной страницы и сравнивать их с данными по закачкам.&lt;br /&gt;
&lt;br /&gt;
* Проблема с возможностью создать продукт у которого все версии - беты. И тогда не работает общая ссылка.&lt;br /&gt;
&lt;br /&gt;
* Проблема с RSS-фидом блога (у меня почему-то аутлук пытаецо запустицо).&lt;br /&gt;
&lt;br /&gt;
* Research on online license document generation. Существует ли какой-нить вебовский генератор PDF?&lt;br /&gt;
&lt;br /&gt;
* Создавать в Google Blog Search и Google Alerts фиды по тегам клиента, подсасывать их и демонстрировать мышап на странице клиента. :)))&lt;br /&gt;
&lt;br /&gt;
* Исследовать возможность автоматически создавать для каждого контакта в RM аккаунт в вике, принадлежащий определенной группе.&lt;br /&gt;
&lt;br /&gt;
* Убивать разделительные знаки в поле contacts (елси это телефон). Нужно для того чтобы можно было искать по номеру телефона в почтовой базе.&lt;br /&gt;
&lt;br /&gt;
* Сортировка по дате последнего релиза вот [http://rm.medialooks.com/distributives тут].&lt;br /&gt;
&lt;br /&gt;
* В RM надо сделать напоминалки для нас об истечении лицензий у кастомеров. (Чтобы пинать/напоминать руками.)&lt;br /&gt;
&lt;br /&gt;
* Поиск кастомеров и контактов по странам в RM.&lt;br /&gt;
&lt;br /&gt;
* Дать возможность редактировать meeting results.&lt;br /&gt;
&lt;br /&gt;
* Доработать функционал реселлеров. Например, чтобы про кастомера было видно что он привязан к некоторому реселлеру ([http://rm.medialooks.com/customer/show/364 пример]).&lt;br /&gt;
&lt;br /&gt;
* Придумать что-нибудь с аттачами. Добавить их в темплейт или как-то иначе автоматизировать. Не забыть про то что он обновляется (автоматизировать?) - может как отдельный продукт его или в этом роде... Нужно уметь видеть версию прайса кот. была отправлена.&lt;br /&gt;
&lt;br /&gt;
* Ручная блокировка аккунта. Выдавать сообщение &amp;quot;Your account has been suspended. Please contact MediaLooks in order to unlock your account.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Выводить количество кастомерских кейсов в скобкаъ на странице кастомера.&lt;br /&gt;
&lt;br /&gt;
* Выводить едишен лицензии в ее свойствах на стр. кастомера.&lt;br /&gt;
&lt;br /&gt;
* Надо различать даунлоады по продуктам (например QT DS и QT Plugin).&lt;br /&gt;
&lt;br /&gt;
* Вот в [http://rm.medialooks.com/product/licenses/22 этой] вьюхе выводить сначала триальные, потом expired лицензии. Триальные лицензии нужно помечать каким-то визуальным образом.&lt;br /&gt;
&lt;br /&gt;
* Тайтлы страниц в RM. Расписать подробнее что где нужно.&lt;br /&gt;
&lt;br /&gt;
* Выводить где-то отдельно триальные лицензии, чтобы можно было пинать кастомеров по ним.&lt;br /&gt;
&lt;br /&gt;
* Нужен способ задать реселлера со страницы кастомера. И нужно на странице кастомера это видеть.&lt;br /&gt;
&lt;br /&gt;
* Сделать опции go to case by number в обоих интерфейсах RM.&lt;br /&gt;
&lt;br /&gt;
* Логгировать даунлоады и выводить в кейсах последнюю скачанную пользователем версии.&lt;br /&gt;
&lt;br /&gt;
* Когда дискуссия идет в теме даунлоад - новые даунлоады ее обновляют что неудобно.&lt;br /&gt;
&lt;br /&gt;
* Идея. Вести две простыни release notes. Одна что вписал девелопер. Другую - что отправлено кастомерам.&lt;br /&gt;
&lt;br /&gt;
* Добавить список аттачей к письму про апдейт кейса.&lt;br /&gt;
&lt;br /&gt;
* Некоторым заказчикам нужно дать возможность заливать на FTP с паролем.&lt;br /&gt;
&lt;br /&gt;
* Надо бы разрешить just comment to customer без реасайна кейса.&lt;br /&gt;
&lt;br /&gt;
* Продумать логику один контакт - две конторы. Пример videoassistech. У него разные адреса для разных случаев.&lt;br /&gt;
&lt;br /&gt;
* Нужно разработать функцию CC case. Там выбираешь N людей кот. кейс как бы идет копией до тех пор пока они не нажпут dismiss.&lt;br /&gt;
&lt;br /&gt;
* [17:40:21] Vsevolod V. Burkutsky: ещё одна мысль - что-бы тикеты от одинаковых чуваков типа как в дереве лежали&lt;br /&gt;
&lt;br /&gt;
* Добавить опцию резолвинга кейса после отправки internal comment, без посылки кастомеру чего-либо.&lt;br /&gt;
&lt;br /&gt;
* Добавить опцию зиповать лиц. файлы при отправке.&lt;br /&gt;
&lt;br /&gt;
* Автоматизировать пиналки, кот. занимается Ольга.&lt;br /&gt;
&lt;br /&gt;
* Сделать независимыми RM и даунлоады. Если лежит RM не должны лежать даунлоады. Хз чо как сделать.&lt;br /&gt;
&lt;br /&gt;
* Галка would you like us to send you an email a few days prior to the expiration of your evaluation license?&lt;br /&gt;
&lt;br /&gt;
===Это потом===&lt;br /&gt;
&lt;br /&gt;
* Переделать форму контактов на сайте. Добавить возможность указать второй email. Отдельные поля под скайп, телефон.&lt;br /&gt;
&lt;br /&gt;
* Подписка royalties.&lt;br /&gt;
&lt;br /&gt;
===[Отложено] Communication Monitor===&lt;br /&gt;
&lt;br /&gt;
Сперва обсудить: может сразу делать web-based ticketing system?&lt;br /&gt;
&lt;br /&gt;
Коммуникация - это в данном случае одно из трех:&lt;br /&gt;
&lt;br /&gt;
1) Кастомер заполнил контактную форму на сайте. Насколько я знаю, в этом случае все данные попадают в базу и там храняцо (если трафик платный то [http://www.medialooks.com/admin/block_admin/53 сюда] лучше не нажимать).&lt;br /&gt;
&lt;br /&gt;
2) На один из двух адресов - &amp;lt;sales@medialooks-team.com&amp;gt; и &amp;lt;dev@medialooks-team.com&amp;gt; получено письмо от кастомера.&lt;br /&gt;
&lt;br /&gt;
3) Мы послали кастомеру письмо с одного из двух адресов (во всех случаях мы ставим BCC на адрес, с которого пишем).&lt;br /&gt;
&lt;br /&gt;
В RM нужно реализовать три списка:&lt;br /&gt;
&lt;br /&gt;
1) Список коммуникаций типа (1), на которые не было ответа с одного из двух адресов в течение N часов. &lt;br /&gt;
&lt;br /&gt;
2) Список коммуникаций типа (2), на которые не было ответа с одного из двух адресов в течение M часов. &lt;br /&gt;
&lt;br /&gt;
3) Список коммуникаций типа (3), в случае если от кастомера не было ответа в течение D рабочих дней.&lt;br /&gt;
&lt;br /&gt;
В обоих случаях выводить в таблице всю инфо, которая есть на данный email - телефон, скайп, ссылка на кастомеров, у которых в контактах числицо такой email (см. также &amp;quot;Contact as System Item&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
N, M и D нужно дать возможность конфигурить через гуй RM.&lt;br /&gt;
&lt;br /&gt;
В первом приближении выводить тела писем не нужно. Но в будуем мне кажется мы все равно к этому придем. Поэтому хранить можно уже начинать.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Customer download tracking===&lt;br /&gt;
&lt;br /&gt;
* Индивидуальные даунлоад ссылки для отслеживания какой подписчик нажал на сцылку.&lt;br /&gt;
* Отписка или оповещение администратора о подписчиках который не нажимают на ссылки (признак того что не получают письма или не читают их - но при этом по какой-то причине не отписываются).&lt;br /&gt;
&lt;br /&gt;
===Наследование/объединение продуктов===&lt;br /&gt;
&lt;br /&gt;
Необходимо поддержать два следующих сценария:&lt;br /&gt;
&lt;br /&gt;
1) Существует продукт DirectShow Filter Pack - он включает в себя большой набор DirectShow фильтров. Каждый фильтр релизится по своему графику (т.е. без графика) - поэтому отдельного download для него не существует. Т.е. продукт в данном случае это просто такая лицензия, т.е. совокупность цены и набора компонентов. В RM возможность создавать такие лицензии должна быть реализована в виде продукта в общем списке - просто у него будут какие-то дополнительные свойства как-то &amp;quot;включать в себя такие-то продукты&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Соответственно, при создании лицензии на такой продукт нужно сделать так чтобы:&lt;br /&gt;
&lt;br /&gt;
* Контакты кастомера могли быть подписаны на релизы (updates) по каждому из продуктов отдельно. По-умолчанию - создается подписка на все входящие в пакет продукты. Отписаться от каждого из продуктов в отдельности можно через сцылку на отписку из письма или это можно сделать через редактирование свойств лицензии.&lt;br /&gt;
&lt;br /&gt;
* Контакты кастомера не были дубликатно подписаны на эти же самые продукты через другие механизмы RM.&lt;br /&gt;
&lt;br /&gt;
* Подписка License Expired в данном случае остается одна - только на общий продукт. Но в случае, если подписка истекла, то при рассылке Release Updates в тело письма вставляется соотв. сообщение (т.к. это сейчас сделано для обычных лицензий).&lt;br /&gt;
&lt;br /&gt;
* В случае если для продукты DirectShow Filter Pack - RM конечно же имеет право наложить в штаны но после этого должен немедленно собрацо и вести себя так как будто он точно знает что нужно делать - а именно вести себя так как будто DirectShow Filter Pack это самый обычный продукт (т.е. появитсо в Distributives и дать возможность сделать рассылку). Т.е. обычная рассылка Release Updates для продукта такого типа тоже создаецо.&lt;br /&gt;
&lt;br /&gt;
2) Существуют продукты DeckLink SDK, Playout SDK и Multimedia SDK, для которых мы решили в целях упрощения использовать общий даунлоад. В данном случае все остается как есть - т.е. лицензии создаются именно под эти продукты, отдельно ведется статистика подписок, лицензий и закачек - но используется только один download.&lt;br /&gt;
&lt;br /&gt;
Например, мы говорим что DeckLink SDK и Playout SDK - оба используют download Multimedia SDK. Разработчик закачивает новый релиз именно для Multimedia SDK. Этот новый релиз появляется в разделе Distributives. Я его модерю, нажимаю сделать рассылку - и, как и раньше, выходят три блока писем - для DeckLink SDK, Playout SDk и Multimedia SDK.&lt;br /&gt;
&lt;br /&gt;
Особенность: ссылка во всех письмах теперь называется multimedia sdk. Делать редиректы и переименования - не надо (иначе клиенты будут говорить я скачал Playout SDK а мне ставится Multimedia SDK).&lt;br /&gt;
&lt;br /&gt;
===Industry-Based Subscriptions===&lt;br /&gt;
&lt;br /&gt;
Добавить возможность создавать рассылки по индустриям. В целом все аналогично тому как сейчас работают подписки на новые релизы. Можно подписывать контакты руками. А при рассылке заодно рассылать тем, кто является клиентом какого-либо продукта и тоже записан в эту индустрию.&lt;br /&gt;
&lt;br /&gt;
Возможно, когда у нас появятся разные способы делать рассылки, придется придумывать способы не слать дважды по одному и тому же поводу. Например, заводить для рассылки какой-нибудь ID.&lt;br /&gt;
&lt;br /&gt;
===Contact as System Item===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать контакты как самостоятельную сущность.&lt;br /&gt;
&lt;br /&gt;
Контакт представляет из себя имя (текстовое поле например &amp;quot;Andrew Okunev) и ассоциированный c ним набор полей:&lt;br /&gt;
&lt;br /&gt;
* email name (используется в подстановках в письмах; если пусто, используется &amp;quot;customer&amp;quot;)&lt;br /&gt;
* email (любое количество)&lt;br /&gt;
* skype (любое количество)&lt;br /&gt;
* телефон (любое количество)&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать отображение и редактирование свойств для любого из контактов. Например:&lt;br /&gt;
&lt;br /&gt;
* Когда добавлен в систему&lt;br /&gt;
* С какими компаниями (Customers) ассоциирован.&lt;br /&gt;
* С какими лицензиями ассоциирован.&lt;br /&gt;
* На какие подписки подписан.&lt;br /&gt;
&lt;br /&gt;
Все это нужно реализовать в одной вьюхе. Редактирование доступно только администратору системы.&lt;br /&gt;
&lt;br /&gt;
Примечания:&lt;br /&gt;
&lt;br /&gt;
* В системе должны отсутствовать дубликаты по email. Дубликаты по имени допустимы (т.е. когда одинаковое имя но разный email), но должна быть возможность их соединить (т.е. превратить в один контакт с двумя email). Реализовать это можно через отдельную вьюху, доступную администратору.&lt;br /&gt;
&lt;br /&gt;
* Если у контакта больше одного email, то любой из них может использоваться для авторизации.&lt;br /&gt;
&lt;br /&gt;
* Новый контакт (как сущность) создается при любом добавлении контакта в систему (например, при создании подписки через модуль subscribers.&lt;br /&gt;
&lt;br /&gt;
===Universal Uploads===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать возможность закачивать в RM абстрактные (не привязанные к какому-либо продукту) файлы. При этом каждому такому файлу должен быть по-умолчанию присвоен срок жизни - 30 дней. После чего файл автоматически удаляется. Файлы можно защищать паролем, который требуется для скачки.&lt;br /&gt;
&lt;br /&gt;
Каждый файл привязан к какому-либо юзеру. Только у этого пользователя (или у администратора) есть возможность добавлять к своему аккаунту файлы или удалять их. Каждую закачку можно удалить или обновить файл в ней.&lt;br /&gt;
&lt;br /&gt;
Соответственно, необходимо создать две новых вьюхи:&lt;br /&gt;
&lt;br /&gt;
1) Вьюха создания закачки. Опции: текстедит срок жизни (по-умолчанию вбито 30), чекбокс защитить паролем, путь к файлу.&lt;br /&gt;
&lt;br /&gt;
2) Вьюха список закачек данного юзера. Отображать: имя файла, количество скачек, оставшийся срок жизни, дата закачки. Имя файла является ссылкой на данный файл (вида rm.medialooks.com/...).&lt;br /&gt;
&lt;br /&gt;
В меню каждого юзера должно быть что-то вроде &amp;quot;My Uploads&amp;quot;, которая ведет на вьюху (2).&lt;br /&gt;
&lt;br /&gt;
===Customer Access===&lt;br /&gt;
&lt;br /&gt;
Нужно научицо давать кастомерам доступ к аплоадам. Для этого нужно реализовать в RM еще одну роль - &amp;quot;Customer&amp;quot;. Роль &amp;quot;User&amp;quot; нужно переименовать в &amp;quot;Developer&amp;quot;. Каждый контакт, добавленный в систему, должен получать соотв. статус и автоматически сгенеренный пароль. Никаких писем при заведении пользователей пока автоматически рассылать не надо. Однако, при первой попытке зайти в систему, кастомер должен по почте получить свой пароль. Залогинившись, он имеет доступ только к своим аплоадам (в будущем добавим еще подписки и лицензии).&lt;br /&gt;
&lt;br /&gt;
===Search===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать поиск в системе. Форма поиска - одна на все случаи. Она должна размещаться на всех страницах системы.&lt;br /&gt;
&lt;br /&gt;
По каким полям искать:&lt;br /&gt;
&lt;br /&gt;
* По контактам.&lt;br /&gt;
* По названию клиента.&lt;br /&gt;
* По тегу клиента.&lt;br /&gt;
&lt;br /&gt;
'''Пример.''' Если в поле поиска ввден запрос:&lt;br /&gt;
&lt;br /&gt;
Andrew A. Okunev &amp;lt;dev@medialooks.com&amp;gt; (MediaLooks)&lt;br /&gt;
&lt;br /&gt;
- то сперва нужно произвести поиск отдельно по &amp;quot;Osman Yel&amp;quot;, &amp;quot;dev@medialooks.com&amp;quot; и &amp;quot;MediaLooks&amp;quot;. Эти результаты вывести в первую очередь.&lt;br /&gt;
&lt;br /&gt;
Во-вторую - выделить из поисковой строки название домена и отрезать от него домен первого уровня. Т.е. в нашем примере искать по строке &amp;quot;medialooks&amp;quot;. Эти результаты вывести во вторую очередь.&lt;br /&gt;
&lt;br /&gt;
Кроме этого, естественно должен работать поиск в том случае если исходный запрос это &amp;quot;dev@medialooks.com&amp;quot; или просто &amp;quot;medialooks&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===LinkedIn Integration===&lt;br /&gt;
&lt;br /&gt;
Зачем? Любая система управления контактами страдает одним недостатком - ей неоткуда узнать о том, что у кого-то поменялся email или телефон.&lt;br /&gt;
&lt;br /&gt;
Предполагается что пользователи LinkedIn (за исключением [http://www.linkedin.com/pub/2/26b/926 некоторых] поддерживают свой профиль в актуальном состоянии. В частности, следят за тем, чтобы в профиле был актуальный email.&lt;br /&gt;
&lt;br /&gt;
В результате хочется получить поддержку следующих сценариев:&lt;br /&gt;
&lt;br /&gt;
* Узнавать об изменениях в контактной информации наших клиентов.&lt;br /&gt;
* Приглашать в нашу сеть клиентов, которые уже используют LinkedIn.&lt;br /&gt;
* Приглашать в LinkedIn тех клиентов, которые его пока не используют.&lt;br /&gt;
* Если клиент для общение с нами использует один email, а для LinkedIn - другой, - то нам нужно узнать этот email и использовать его как запасной/альтернативный.&lt;br /&gt;
&lt;br /&gt;
Для начала думаю следует просто проверить, позволяет ли API делать следующее:&lt;br /&gt;
&lt;br /&gt;
* Авторизоваться в системе под каким-то реальным логином (например, подо мной).&lt;br /&gt;
* Поискать пользователей по email.&lt;br /&gt;
* Получить email любого из моих контактов.&lt;br /&gt;
* Послать конкретному пользователю инвайт, иметь возможность указать кастомный текст для инвайта.&lt;br /&gt;
* Пригласить нового пользователя через email, то же самое с кастомным текстом.&lt;br /&gt;
&lt;br /&gt;
Задача неактуальна поскольку как я понял от LinkedIn нужно сначала получить одобрение на использование API:&lt;br /&gt;
&lt;br /&gt;
* http://www.linkedin.com/static?key=developers_apis&lt;br /&gt;
&lt;br /&gt;
==Done Tasks==&lt;br /&gt;
&lt;br /&gt;
* [[LMS/CMS Tasks: Done]]&lt;br /&gt;
&lt;br /&gt;
[[Category: Tasks]]&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Ivan</name></author>	</entry>

	<entry>
		<id>http://wiki.avobjects.com/Dev:RM/LMS_Tasks</id>
		<title>Dev:RM/LMS Tasks</title>
		<link rel="alternate" type="text/html" href="http://wiki.avobjects.com/Dev:RM/LMS_Tasks"/>
				<updated>2009-12-10T15:13:21Z</updated>
		
		<summary type="html">&lt;p&gt;Ivan: /* Current */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See also:&lt;br /&gt;
&lt;br /&gt;
* [[Dev:Tasks To Complete Before We Can Papustico!]]&lt;br /&gt;
* [[CMS Tasks]]&lt;br /&gt;
* [[Dev:Communication System]]&lt;br /&gt;
* [[Dev: Support System Roles]]&lt;br /&gt;
* [[Dev: RM User Rights]]&lt;br /&gt;
* [[Dev: RM Licensing Feature Update]]&lt;br /&gt;
* [[Dev: Serge Tasks]]&lt;br /&gt;
&lt;br /&gt;
==RM/LMS Tasks==&lt;br /&gt;
&lt;br /&gt;
==DONE==&lt;br /&gt;
* [bug] Откуда-то взялся кейс in progress без асайна - [http://rm.medialooks.com/messages/show/1586].&lt;br /&gt;
'''забить, он старый'''&lt;br /&gt;
&lt;br /&gt;
* [bug] При паттписке-атписке из кейса выскакивает явоскрпитовый диалог с цифрами (например, 68).&lt;br /&gt;
&lt;br /&gt;
* [bug] Чичас после нажатия на Send emails в [http://rm.medialooks.com/distributives/show/39 релизах] в гуйне ничо не происходит. Т.е. кажецо что ты промахнулсо и хочецо нажать кнопку исчо раз. Хотя на самом деле все срабатывает (письма шлюцо) и если со страницы уйти то из [http://rm.medialooks.com/distributives списка] этот продукт исчезнет.&lt;br /&gt;
'''происходит, но долго'''&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] При создании или редактировании лицензии. Убрать галку &amp;quot;Send license files&amp;quot; и добавить просто новую кнопку &amp;quot;Save and Send License Files&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] Добавть ссылочку Re-send License Files прямо рядом с Edit License. Update переименовать в Renew. Пункты меню расположить так: Renew License | Edit License | Re-send License Files | Delete License.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] Ссылочку Add License поместить над списком лицензий и назвать Add New License.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] Notes в свойствах лицензии нужно выводить красным.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/messages/new_cases/SM] Для всех вариантов отображения списка кейсов. В табличке со списком выводить также статус (In progess, waiting, etc.) - предпоследней колонкой.&lt;br /&gt;
&lt;br /&gt;
* [note] Добавить бряк после номера версии в тексте релилз ноутс который вставляется в subscribe.&lt;br /&gt;
&lt;br /&gt;
* [note] Для license_file.rhtml нужно новое условие - триальная лицензия или нет. Т.к. текст в этом случае другой.&lt;br /&gt;
'''оно там есть, просто называецо нетривиально: &amp;lt;% if @expiration_date %&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/] Писать дату рядом с номером версии на главной странице.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer] В списке кастомеров выводить еще и company таг (первой колонкой).&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/control] Не нужна такая длинная простыня изменений на странице рестарт апдейт RM. А когда она делает рестарт хотелось бы какой-нить индикации.&lt;br /&gt;
'''с индикацией сложности, давай пока это повисит'''&lt;br /&gt;
&lt;br /&gt;
* Када дуплицируецо кейс нада в логе выводить ссылку на дочерний кейс. Ссылка на родительский кейс сейчас есть, а вот наоборот - &lt;br /&gt;
'''сделал'''&lt;br /&gt;
&lt;br /&gt;
нету. Кроме этого, хорошо бы в обоих случаях (родитель и дочко) выводить вверху что-то вроде This case has parent cases:&amp;lt;br&amp;gt;* Subject или This case has child cases...&lt;br /&gt;
'''с этим сложности. ща это помечается в логе, который может сожержать все что угодно'''&lt;br /&gt;
&lt;br /&gt;
* Добавить тайтлы к страницам RM. Там должно быть все очевидно. Ну типа если это кейс то его сабжект, если это кастомер то название кастомера, если юзер то имя юзера. Остальное - по названию менюшек (Product, Customers, etc.).&lt;br /&gt;
&lt;br /&gt;
* Для мейловых кейсов убрать квоту втыкаемую в окошки эдитов (сейчас она втыкается как в интернал, так и во внешний камент). Из интернал вообще убрать. Для экстернал - убрать из едита но прикручивать к письму при отправке.&lt;br /&gt;
&lt;br /&gt;
* [bug] При создании лицензии когда делаешь триальную неправильно рассчитывается плюс один месяц.&lt;br /&gt;
'''fixed'''&lt;br /&gt;
&lt;br /&gt;
* Квота по-прежнему выткается в интернал камент.&lt;br /&gt;
'''только когда окошко с интернл камментом открыто. нажимаешь там внизу cancel и опять квота в окно ответа идет. это фича'''&lt;br /&gt;
&lt;br /&gt;
==TODO==&lt;br /&gt;
&lt;br /&gt;
===Current===&lt;br /&gt;
&lt;br /&gt;
* Почему-то у всех ощущение что наши письма стали чаще попадать в спам. Надо проверить как у нас шлюцо письма. Мошт в хидерах чота не так?&lt;br /&gt;
'''примеры с хидерами накидай плиз с rm_monitor'''&lt;br /&gt;
&lt;br /&gt;
* Нерпальное оформление квот (не распознаюцо гмейлом). Отладицо под него.&lt;br /&gt;
'''какое?'''&lt;br /&gt;
&lt;br /&gt;
* Этот [http://rm.medialooks.com/messages/show/26560 кейс] как я понимаю теперь болтается вне всяких очередей?&lt;br /&gt;
'''похоже на то. ты просто сделал create mail case и все?'''&lt;br /&gt;
&lt;br /&gt;
* В случае когда кастомер [http://rm.medialooks.com/messages/show/13168 ссылается на другой кейс] нужно придумать как в него попадать из вьюхи просмотра кейса в RM.&lt;br /&gt;
'''сделал так, что все юзерские ссылки на кейсы автоматом переписываются на админские. у клиента при этом не переписываются, т.е. только при отображении для вас'''&lt;br /&gt;
&lt;br /&gt;
* Проблемы с доступам к кейсам нескольких юзеров. Надо обсудить. Исходный кейс вот [http://rm.medialooks.com/messages/show/28265 тут].&lt;br /&gt;
'''да, нужны пояснения чо как было'''&lt;br /&gt;
&lt;br /&gt;
* Копии в кейсах.&lt;br /&gt;
&lt;br /&gt;
* [bug] Берем (предположительно) любой кейс. Пускай это будет кастомер у которого 2 или более контактов и пускай на текущий момент у кейса только один партисипант. Добавляем сообщение и при этом добавляем еще одного участника (ставим галочку). Сообщение добавляется, теперь у кейса два участника, все ОК. Теперь делаем интернал камент (не важно с асайном или без) - дополнительные участники пропадают. Баг повторяется в случае если участников добавлять через email.&lt;br /&gt;
* [[Dev:CRM Tasks]]&lt;br /&gt;
* Как аттачить прайс лист к письмам таким образом чтобы каждый раз заново не заливать? Мне кажется проще всего залить прайс как продукт. Тогда и подписка нужных людей на него сразу заработает. Вопрос - как заимплементить механизм аттачинга удобный?&lt;br /&gt;
* Никак не могу придумать что делать с [http://rm.medialooks.com/messages/show/16519 такими] кейсами.&lt;br /&gt;
* Поисследуй плиз можно ли как-то засунуть батовские почтовые базы в Gmail. Например, есть [http://www.gmail-backup.com/ такая штука.]&lt;br /&gt;
&lt;br /&gt;
===Mail Cases with Screwed Up Formatting===&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/messages/show/26572]&lt;br /&gt;
&lt;br /&gt;
===To Think About===&lt;br /&gt;
&lt;br /&gt;
* Как сделать FTP с per customer паролями?&lt;br /&gt;
* Как добавить features и подписку кастомеров на них?&lt;br /&gt;
* Что делать с контактами когда у двух людей одинаковый email? Пример - mbcradio.&lt;br /&gt;
&lt;br /&gt;
===Important CRM/Email-Related Fixes===&lt;br /&gt;
&lt;br /&gt;
* Сделать возможность CC на кейс.&lt;br /&gt;
&lt;br /&gt;
* Сделать фичу слежения за кейсами.&lt;br /&gt;
&lt;br /&gt;
* Мердждинг кейсов.&lt;br /&gt;
&lt;br /&gt;
===Bugs, Fixes, Questions===&lt;br /&gt;
&lt;br /&gt;
* Нужно проверить что это не глюки у нас (такое кол-во закачек) и залочить чувака [http://rm.medialooks.com/messages/show/1700].&lt;br /&gt;
&lt;br /&gt;
* [unconfirmed] При наличии customer с некоторым email не срабатывает подписка этого email на любой продукт. Запрет должен срабатывать только в случае если лицензия есть именно на этот продукт (возможно, тут надо еще добавить логику про наследованные продукты).&lt;br /&gt;
&lt;br /&gt;
* [Bug] Не работает напоминалка проля в даунлоадах.&lt;br /&gt;
&lt;br /&gt;
* Сбрасывается инфо при вводе уже зареганого email.&lt;br /&gt;
&lt;br /&gt;
* Красные буквы при вводе adsf@medialooks.com.&lt;br /&gt;
&lt;br /&gt;
* Не обрабатываются ошибки типа wrong password в даунлоадз.&lt;br /&gt;
&lt;br /&gt;
* В моей опере никогда не начинаются даунлоады автоматом.&lt;br /&gt;
&lt;br /&gt;
===RM Access Rights===&lt;br /&gt;
&lt;br /&gt;
* Сейчас если зайти на главную под пользовтелем cthomson@medialooks.com (Reseller/Sales Manager) то у него нет столбца Customers. Нужно добавить и выводить там соответственно только доступных ему кастомеров.&lt;br /&gt;
&lt;br /&gt;
===Подписки===&lt;br /&gt;
&lt;br /&gt;
* Подписка Update Discount Expiration. Ввести для лицензий которые expired только после 01.12.2009. Т.е. письма по этой подписке должны начать ходить примерно с 01.05.2010.&lt;br /&gt;
&lt;br /&gt;
* Новая подписка license_expred_followup - которая будет запускацо спустя 4 месяца после истечения подписки. Там написано что через 2 месяца закончицо скидка 50% на продление лицензии. (Кстати идея - может давать доп. скидку за продление в течение месяца после истечения паттписки - типа 65%?)&lt;br /&gt;
&lt;br /&gt;
===Backups to Amazon S3===&lt;br /&gt;
&lt;br /&gt;
Давай будем наш бэкапный файл закачивать на амазон раз в неделю. Я сделал там аккаунт.&lt;br /&gt;
&lt;br /&gt;
===Tasks===&lt;br /&gt;
&lt;br /&gt;
* [Отложено] New email setup. Нужно засетапить новый домен medialooks-team.com. Мы будем его использовать для следующего - чтобы слать и принимать почту с двух общих адресов - &amp;lt;sales@medialooks-team.com&amp;gt; и &amp;lt;dev@medialooks-team.com&amp;gt;. Почему-то очень многие закачики тупо не получают наши письма. Если это не поможет то нам придется переходить на полностью web-based общение с кастомерами.&lt;br /&gt;
&lt;br /&gt;
* Разобрацо в чем проблема с настройкой goals в гугле.&lt;br /&gt;
&lt;br /&gt;
* Добавить в шаблоны писем (шаблон рассылки нового релиза, 2 шаблона license expired) возможность вставлять &amp;quot;License update link&amp;quot; в случае если такая ссылка указана в свойствах продукта (типа IF License update link exists - вставить следующее). Прислать мне файло шаблонов на редактирование (могу сам залезть но надо настроить тада SVN твой).&lt;br /&gt;
&lt;br /&gt;
* Сделать урлы в свойствах кастомера кликабл.&lt;br /&gt;
&lt;br /&gt;
* Cross-promotion subscriptions.&lt;br /&gt;
&lt;br /&gt;
* Если переименовать продукт, то перестает работать общая ссылка на даунлоад и по-версионные ссылки.&lt;br /&gt;
&lt;br /&gt;
* Contact as System Item (see task description).&lt;br /&gt;
&lt;br /&gt;
* Search (see task description).&lt;br /&gt;
&lt;br /&gt;
* Сортировка по тагам во вьюхе кастомеров. Статистика по тагам.&lt;br /&gt;
&lt;br /&gt;
* Добавить вывод количества лицензионных подписок в графу &amp;quot;Site Subscribers&amp;quot;. Графу переименовать в &amp;quot;Subscribers (Interested/Licensed)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* Общие рассылки. Научиться делать рассылки по всем клиентам. Это должна быть отдельная подписка.&lt;br /&gt;
&lt;br /&gt;
* Персонализированный учет закачек. Мы хотим про каждого клиента знать скачивает он новые версии или нет. В письме, которое он получает при выходе новой версии, можно делать уникальный урл, чтобы система знала нажал он или нет. Второй подход - это использовать куки на тот случай, если клиент скачивает с сайта.&lt;br /&gt;
&lt;br /&gt;
* Статистика закачек. Научицо разделять новые (приходящие с рекламы или из поиска) и повторные (наши кастомеры качают новые версии) закачки.&lt;br /&gt;
&lt;br /&gt;
* Подумать. Если есть идеи как интегрировать с Google Analytics (GA)  AdWords (AW) - было бы клева. Например вытаскивать из GA данные о посещениях конкретной страницы и сравнивать их с данными по закачкам.&lt;br /&gt;
&lt;br /&gt;
* Проблема с возможностью создать продукт у которого все версии - беты. И тогда не работает общая ссылка.&lt;br /&gt;
&lt;br /&gt;
* Проблема с RSS-фидом блога (у меня почему-то аутлук пытаецо запустицо).&lt;br /&gt;
&lt;br /&gt;
* Research on online license document generation. Существует ли какой-нить вебовский генератор PDF?&lt;br /&gt;
&lt;br /&gt;
* Создавать в Google Blog Search и Google Alerts фиды по тегам клиента, подсасывать их и демонстрировать мышап на странице клиента. :)))&lt;br /&gt;
&lt;br /&gt;
* Исследовать возможность автоматически создавать для каждого контакта в RM аккаунт в вике, принадлежащий определенной группе.&lt;br /&gt;
&lt;br /&gt;
* Убивать разделительные знаки в поле contacts (елси это телефон). Нужно для того чтобы можно было искать по номеру телефона в почтовой базе.&lt;br /&gt;
&lt;br /&gt;
* Сортировка по дате последнего релиза вот [http://rm.medialooks.com/distributives тут].&lt;br /&gt;
&lt;br /&gt;
* В RM надо сделать напоминалки для нас об истечении лицензий у кастомеров. (Чтобы пинать/напоминать руками.)&lt;br /&gt;
&lt;br /&gt;
* Поиск кастомеров и контактов по странам в RM.&lt;br /&gt;
&lt;br /&gt;
* Дать возможность редактировать meeting results.&lt;br /&gt;
&lt;br /&gt;
* Доработать функционал реселлеров. Например, чтобы про кастомера было видно что он привязан к некоторому реселлеру ([http://rm.medialooks.com/customer/show/364 пример]).&lt;br /&gt;
&lt;br /&gt;
* Придумать что-нибудь с аттачами. Добавить их в темплейт или как-то иначе автоматизировать. Не забыть про то что он обновляется (автоматизировать?) - может как отдельный продукт его или в этом роде... Нужно уметь видеть версию прайса кот. была отправлена.&lt;br /&gt;
&lt;br /&gt;
* Ручная блокировка аккунта. Выдавать сообщение &amp;quot;Your account has been suspended. Please contact MediaLooks in order to unlock your account.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Выводить количество кастомерских кейсов в скобкаъ на странице кастомера.&lt;br /&gt;
&lt;br /&gt;
* Выводить едишен лицензии в ее свойствах на стр. кастомера.&lt;br /&gt;
&lt;br /&gt;
* Надо различать даунлоады по продуктам (например QT DS и QT Plugin).&lt;br /&gt;
&lt;br /&gt;
* Вот в [http://rm.medialooks.com/product/licenses/22 этой] вьюхе выводить сначала триальные, потом expired лицензии. Триальные лицензии нужно помечать каким-то визуальным образом.&lt;br /&gt;
&lt;br /&gt;
* Тайтлы страниц в RM. Расписать подробнее что где нужно.&lt;br /&gt;
&lt;br /&gt;
* Выводить где-то отдельно триальные лицензии, чтобы можно было пинать кастомеров по ним.&lt;br /&gt;
&lt;br /&gt;
* Нужен способ задать реселлера со страницы кастомера. И нужно на странице кастомера это видеть.&lt;br /&gt;
&lt;br /&gt;
* Сделать опции go to case by number в обоих интерфейсах RM.&lt;br /&gt;
&lt;br /&gt;
* Логгировать даунлоады и выводить в кейсах последнюю скачанную пользователем версии.&lt;br /&gt;
&lt;br /&gt;
* Когда дискуссия идет в теме даунлоад - новые даунлоады ее обновляют что неудобно.&lt;br /&gt;
&lt;br /&gt;
* Идея. Вести две простыни release notes. Одна что вписал девелопер. Другую - что отправлено кастомерам.&lt;br /&gt;
&lt;br /&gt;
* Добавить список аттачей к письму про апдейт кейса.&lt;br /&gt;
&lt;br /&gt;
* Некоторым заказчикам нужно дать возможность заливать на FTP с паролем.&lt;br /&gt;
&lt;br /&gt;
* Надо бы разрешить just comment to customer без реасайна кейса.&lt;br /&gt;
&lt;br /&gt;
* Продумать логику один контакт - две конторы. Пример videoassistech. У него разные адреса для разных случаев.&lt;br /&gt;
&lt;br /&gt;
* Нужно разработать функцию CC case. Там выбираешь N людей кот. кейс как бы идет копией до тех пор пока они не нажпут dismiss.&lt;br /&gt;
&lt;br /&gt;
* [17:40:21] Vsevolod V. Burkutsky: ещё одна мысль - что-бы тикеты от одинаковых чуваков типа как в дереве лежали&lt;br /&gt;
&lt;br /&gt;
* Добавить опцию резолвинга кейса после отправки internal comment, без посылки кастомеру чего-либо.&lt;br /&gt;
&lt;br /&gt;
* Добавить опцию зиповать лиц. файлы при отправке.&lt;br /&gt;
&lt;br /&gt;
* Автоматизировать пиналки, кот. занимается Ольга.&lt;br /&gt;
&lt;br /&gt;
* Сделать независимыми RM и даунлоады. Если лежит RM не должны лежать даунлоады. Хз чо как сделать.&lt;br /&gt;
&lt;br /&gt;
* Галка would you like us to send you an email a few days prior to the expiration of your evaluation license?&lt;br /&gt;
&lt;br /&gt;
===Это потом===&lt;br /&gt;
&lt;br /&gt;
* Переделать форму контактов на сайте. Добавить возможность указать второй email. Отдельные поля под скайп, телефон.&lt;br /&gt;
&lt;br /&gt;
* Подписка royalties.&lt;br /&gt;
&lt;br /&gt;
===[Отложено] Communication Monitor===&lt;br /&gt;
&lt;br /&gt;
Сперва обсудить: может сразу делать web-based ticketing system?&lt;br /&gt;
&lt;br /&gt;
Коммуникация - это в данном случае одно из трех:&lt;br /&gt;
&lt;br /&gt;
1) Кастомер заполнил контактную форму на сайте. Насколько я знаю, в этом случае все данные попадают в базу и там храняцо (если трафик платный то [http://www.medialooks.com/admin/block_admin/53 сюда] лучше не нажимать).&lt;br /&gt;
&lt;br /&gt;
2) На один из двух адресов - &amp;lt;sales@medialooks-team.com&amp;gt; и &amp;lt;dev@medialooks-team.com&amp;gt; получено письмо от кастомера.&lt;br /&gt;
&lt;br /&gt;
3) Мы послали кастомеру письмо с одного из двух адресов (во всех случаях мы ставим BCC на адрес, с которого пишем).&lt;br /&gt;
&lt;br /&gt;
В RM нужно реализовать три списка:&lt;br /&gt;
&lt;br /&gt;
1) Список коммуникаций типа (1), на которые не было ответа с одного из двух адресов в течение N часов. &lt;br /&gt;
&lt;br /&gt;
2) Список коммуникаций типа (2), на которые не было ответа с одного из двух адресов в течение M часов. &lt;br /&gt;
&lt;br /&gt;
3) Список коммуникаций типа (3), в случае если от кастомера не было ответа в течение D рабочих дней.&lt;br /&gt;
&lt;br /&gt;
В обоих случаях выводить в таблице всю инфо, которая есть на данный email - телефон, скайп, ссылка на кастомеров, у которых в контактах числицо такой email (см. также &amp;quot;Contact as System Item&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
N, M и D нужно дать возможность конфигурить через гуй RM.&lt;br /&gt;
&lt;br /&gt;
В первом приближении выводить тела писем не нужно. Но в будуем мне кажется мы все равно к этому придем. Поэтому хранить можно уже начинать.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Customer download tracking===&lt;br /&gt;
&lt;br /&gt;
* Индивидуальные даунлоад ссылки для отслеживания какой подписчик нажал на сцылку.&lt;br /&gt;
* Отписка или оповещение администратора о подписчиках который не нажимают на ссылки (признак того что не получают письма или не читают их - но при этом по какой-то причине не отписываются).&lt;br /&gt;
&lt;br /&gt;
===Наследование/объединение продуктов===&lt;br /&gt;
&lt;br /&gt;
Необходимо поддержать два следующих сценария:&lt;br /&gt;
&lt;br /&gt;
1) Существует продукт DirectShow Filter Pack - он включает в себя большой набор DirectShow фильтров. Каждый фильтр релизится по своему графику (т.е. без графика) - поэтому отдельного download для него не существует. Т.е. продукт в данном случае это просто такая лицензия, т.е. совокупность цены и набора компонентов. В RM возможность создавать такие лицензии должна быть реализована в виде продукта в общем списке - просто у него будут какие-то дополнительные свойства как-то &amp;quot;включать в себя такие-то продукты&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Соответственно, при создании лицензии на такой продукт нужно сделать так чтобы:&lt;br /&gt;
&lt;br /&gt;
* Контакты кастомера могли быть подписаны на релизы (updates) по каждому из продуктов отдельно. По-умолчанию - создается подписка на все входящие в пакет продукты. Отписаться от каждого из продуктов в отдельности можно через сцылку на отписку из письма или это можно сделать через редактирование свойств лицензии.&lt;br /&gt;
&lt;br /&gt;
* Контакты кастомера не были дубликатно подписаны на эти же самые продукты через другие механизмы RM.&lt;br /&gt;
&lt;br /&gt;
* Подписка License Expired в данном случае остается одна - только на общий продукт. Но в случае, если подписка истекла, то при рассылке Release Updates в тело письма вставляется соотв. сообщение (т.к. это сейчас сделано для обычных лицензий).&lt;br /&gt;
&lt;br /&gt;
* В случае если для продукты DirectShow Filter Pack - RM конечно же имеет право наложить в штаны но после этого должен немедленно собрацо и вести себя так как будто он точно знает что нужно делать - а именно вести себя так как будто DirectShow Filter Pack это самый обычный продукт (т.е. появитсо в Distributives и дать возможность сделать рассылку). Т.е. обычная рассылка Release Updates для продукта такого типа тоже создаецо.&lt;br /&gt;
&lt;br /&gt;
2) Существуют продукты DeckLink SDK, Playout SDK и Multimedia SDK, для которых мы решили в целях упрощения использовать общий даунлоад. В данном случае все остается как есть - т.е. лицензии создаются именно под эти продукты, отдельно ведется статистика подписок, лицензий и закачек - но используется только один download.&lt;br /&gt;
&lt;br /&gt;
Например, мы говорим что DeckLink SDK и Playout SDK - оба используют download Multimedia SDK. Разработчик закачивает новый релиз именно для Multimedia SDK. Этот новый релиз появляется в разделе Distributives. Я его модерю, нажимаю сделать рассылку - и, как и раньше, выходят три блока писем - для DeckLink SDK, Playout SDk и Multimedia SDK.&lt;br /&gt;
&lt;br /&gt;
Особенность: ссылка во всех письмах теперь называется multimedia sdk. Делать редиректы и переименования - не надо (иначе клиенты будут говорить я скачал Playout SDK а мне ставится Multimedia SDK).&lt;br /&gt;
&lt;br /&gt;
===Industry-Based Subscriptions===&lt;br /&gt;
&lt;br /&gt;
Добавить возможность создавать рассылки по индустриям. В целом все аналогично тому как сейчас работают подписки на новые релизы. Можно подписывать контакты руками. А при рассылке заодно рассылать тем, кто является клиентом какого-либо продукта и тоже записан в эту индустрию.&lt;br /&gt;
&lt;br /&gt;
Возможно, когда у нас появятся разные способы делать рассылки, придется придумывать способы не слать дважды по одному и тому же поводу. Например, заводить для рассылки какой-нибудь ID.&lt;br /&gt;
&lt;br /&gt;
===Contact as System Item===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать контакты как самостоятельную сущность.&lt;br /&gt;
&lt;br /&gt;
Контакт представляет из себя имя (текстовое поле например &amp;quot;Andrew Okunev) и ассоциированный c ним набор полей:&lt;br /&gt;
&lt;br /&gt;
* email name (используется в подстановках в письмах; если пусто, используется &amp;quot;customer&amp;quot;)&lt;br /&gt;
* email (любое количество)&lt;br /&gt;
* skype (любое количество)&lt;br /&gt;
* телефон (любое количество)&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать отображение и редактирование свойств для любого из контактов. Например:&lt;br /&gt;
&lt;br /&gt;
* Когда добавлен в систему&lt;br /&gt;
* С какими компаниями (Customers) ассоциирован.&lt;br /&gt;
* С какими лицензиями ассоциирован.&lt;br /&gt;
* На какие подписки подписан.&lt;br /&gt;
&lt;br /&gt;
Все это нужно реализовать в одной вьюхе. Редактирование доступно только администратору системы.&lt;br /&gt;
&lt;br /&gt;
Примечания:&lt;br /&gt;
&lt;br /&gt;
* В системе должны отсутствовать дубликаты по email. Дубликаты по имени допустимы (т.е. когда одинаковое имя но разный email), но должна быть возможность их соединить (т.е. превратить в один контакт с двумя email). Реализовать это можно через отдельную вьюху, доступную администратору.&lt;br /&gt;
&lt;br /&gt;
* Если у контакта больше одного email, то любой из них может использоваться для авторизации.&lt;br /&gt;
&lt;br /&gt;
* Новый контакт (как сущность) создается при любом добавлении контакта в систему (например, при создании подписки через модуль subscribers.&lt;br /&gt;
&lt;br /&gt;
===Universal Uploads===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать возможность закачивать в RM абстрактные (не привязанные к какому-либо продукту) файлы. При этом каждому такому файлу должен быть по-умолчанию присвоен срок жизни - 30 дней. После чего файл автоматически удаляется. Файлы можно защищать паролем, который требуется для скачки.&lt;br /&gt;
&lt;br /&gt;
Каждый файл привязан к какому-либо юзеру. Только у этого пользователя (или у администратора) есть возможность добавлять к своему аккаунту файлы или удалять их. Каждую закачку можно удалить или обновить файл в ней.&lt;br /&gt;
&lt;br /&gt;
Соответственно, необходимо создать две новых вьюхи:&lt;br /&gt;
&lt;br /&gt;
1) Вьюха создания закачки. Опции: текстедит срок жизни (по-умолчанию вбито 30), чекбокс защитить паролем, путь к файлу.&lt;br /&gt;
&lt;br /&gt;
2) Вьюха список закачек данного юзера. Отображать: имя файла, количество скачек, оставшийся срок жизни, дата закачки. Имя файла является ссылкой на данный файл (вида rm.medialooks.com/...).&lt;br /&gt;
&lt;br /&gt;
В меню каждого юзера должно быть что-то вроде &amp;quot;My Uploads&amp;quot;, которая ведет на вьюху (2).&lt;br /&gt;
&lt;br /&gt;
===Customer Access===&lt;br /&gt;
&lt;br /&gt;
Нужно научицо давать кастомерам доступ к аплоадам. Для этого нужно реализовать в RM еще одну роль - &amp;quot;Customer&amp;quot;. Роль &amp;quot;User&amp;quot; нужно переименовать в &amp;quot;Developer&amp;quot;. Каждый контакт, добавленный в систему, должен получать соотв. статус и автоматически сгенеренный пароль. Никаких писем при заведении пользователей пока автоматически рассылать не надо. Однако, при первой попытке зайти в систему, кастомер должен по почте получить свой пароль. Залогинившись, он имеет доступ только к своим аплоадам (в будущем добавим еще подписки и лицензии).&lt;br /&gt;
&lt;br /&gt;
===Search===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать поиск в системе. Форма поиска - одна на все случаи. Она должна размещаться на всех страницах системы.&lt;br /&gt;
&lt;br /&gt;
По каким полям искать:&lt;br /&gt;
&lt;br /&gt;
* По контактам.&lt;br /&gt;
* По названию клиента.&lt;br /&gt;
* По тегу клиента.&lt;br /&gt;
&lt;br /&gt;
'''Пример.''' Если в поле поиска ввден запрос:&lt;br /&gt;
&lt;br /&gt;
Andrew A. Okunev &amp;lt;dev@medialooks.com&amp;gt; (MediaLooks)&lt;br /&gt;
&lt;br /&gt;
- то сперва нужно произвести поиск отдельно по &amp;quot;Osman Yel&amp;quot;, &amp;quot;dev@medialooks.com&amp;quot; и &amp;quot;MediaLooks&amp;quot;. Эти результаты вывести в первую очередь.&lt;br /&gt;
&lt;br /&gt;
Во-вторую - выделить из поисковой строки название домена и отрезать от него домен первого уровня. Т.е. в нашем примере искать по строке &amp;quot;medialooks&amp;quot;. Эти результаты вывести во вторую очередь.&lt;br /&gt;
&lt;br /&gt;
Кроме этого, естественно должен работать поиск в том случае если исходный запрос это &amp;quot;dev@medialooks.com&amp;quot; или просто &amp;quot;medialooks&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===LinkedIn Integration===&lt;br /&gt;
&lt;br /&gt;
Зачем? Любая система управления контактами страдает одним недостатком - ей неоткуда узнать о том, что у кого-то поменялся email или телефон.&lt;br /&gt;
&lt;br /&gt;
Предполагается что пользователи LinkedIn (за исключением [http://www.linkedin.com/pub/2/26b/926 некоторых] поддерживают свой профиль в актуальном состоянии. В частности, следят за тем, чтобы в профиле был актуальный email.&lt;br /&gt;
&lt;br /&gt;
В результате хочется получить поддержку следующих сценариев:&lt;br /&gt;
&lt;br /&gt;
* Узнавать об изменениях в контактной информации наших клиентов.&lt;br /&gt;
* Приглашать в нашу сеть клиентов, которые уже используют LinkedIn.&lt;br /&gt;
* Приглашать в LinkedIn тех клиентов, которые его пока не используют.&lt;br /&gt;
* Если клиент для общение с нами использует один email, а для LinkedIn - другой, - то нам нужно узнать этот email и использовать его как запасной/альтернативный.&lt;br /&gt;
&lt;br /&gt;
Для начала думаю следует просто проверить, позволяет ли API делать следующее:&lt;br /&gt;
&lt;br /&gt;
* Авторизоваться в системе под каким-то реальным логином (например, подо мной).&lt;br /&gt;
* Поискать пользователей по email.&lt;br /&gt;
* Получить email любого из моих контактов.&lt;br /&gt;
* Послать конкретному пользователю инвайт, иметь возможность указать кастомный текст для инвайта.&lt;br /&gt;
* Пригласить нового пользователя через email, то же самое с кастомным текстом.&lt;br /&gt;
&lt;br /&gt;
Задача неактуальна поскольку как я понял от LinkedIn нужно сначала получить одобрение на использование API:&lt;br /&gt;
&lt;br /&gt;
* http://www.linkedin.com/static?key=developers_apis&lt;br /&gt;
&lt;br /&gt;
==Done Tasks==&lt;br /&gt;
&lt;br /&gt;
* [[LMS/CMS Tasks: Done]]&lt;br /&gt;
&lt;br /&gt;
[[Category: Tasks]]&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Ivan</name></author>	</entry>

	<entry>
		<id>http://wiki.avobjects.com/Dev:RM/LMS_Tasks</id>
		<title>Dev:RM/LMS Tasks</title>
		<link rel="alternate" type="text/html" href="http://wiki.avobjects.com/Dev:RM/LMS_Tasks"/>
				<updated>2009-12-10T14:49:32Z</updated>
		
		<summary type="html">&lt;p&gt;Ivan: /* Current */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See also:&lt;br /&gt;
&lt;br /&gt;
* [[Dev:Tasks To Complete Before We Can Papustico!]]&lt;br /&gt;
* [[CMS Tasks]]&lt;br /&gt;
* [[Dev:Communication System]]&lt;br /&gt;
* [[Dev: Support System Roles]]&lt;br /&gt;
* [[Dev: RM User Rights]]&lt;br /&gt;
* [[Dev: RM Licensing Feature Update]]&lt;br /&gt;
* [[Dev: Serge Tasks]]&lt;br /&gt;
&lt;br /&gt;
==RM/LMS Tasks==&lt;br /&gt;
&lt;br /&gt;
==DONE==&lt;br /&gt;
* [bug] Откуда-то взялся кейс in progress без асайна - [http://rm.medialooks.com/messages/show/1586].&lt;br /&gt;
'''забить, он старый'''&lt;br /&gt;
&lt;br /&gt;
* [bug] При паттписке-атписке из кейса выскакивает явоскрпитовый диалог с цифрами (например, 68).&lt;br /&gt;
&lt;br /&gt;
* [bug] Чичас после нажатия на Send emails в [http://rm.medialooks.com/distributives/show/39 релизах] в гуйне ничо не происходит. Т.е. кажецо что ты промахнулсо и хочецо нажать кнопку исчо раз. Хотя на самом деле все срабатывает (письма шлюцо) и если со страницы уйти то из [http://rm.medialooks.com/distributives списка] этот продукт исчезнет.&lt;br /&gt;
'''происходит, но долго'''&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] При создании или редактировании лицензии. Убрать галку &amp;quot;Send license files&amp;quot; и добавить просто новую кнопку &amp;quot;Save and Send License Files&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] Добавть ссылочку Re-send License Files прямо рядом с Edit License. Update переименовать в Renew. Пункты меню расположить так: Renew License | Edit License | Re-send License Files | Delete License.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] Ссылочку Add License поместить над списком лицензий и назвать Add New License.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] Notes в свойствах лицензии нужно выводить красным.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/messages/new_cases/SM] Для всех вариантов отображения списка кейсов. В табличке со списком выводить также статус (In progess, waiting, etc.) - предпоследней колонкой.&lt;br /&gt;
&lt;br /&gt;
* [note] Добавить бряк после номера версии в тексте релилз ноутс который вставляется в subscribe.&lt;br /&gt;
&lt;br /&gt;
* [note] Для license_file.rhtml нужно новое условие - триальная лицензия или нет. Т.к. текст в этом случае другой.&lt;br /&gt;
'''оно там есть, просто называецо нетривиально: &amp;lt;% if @expiration_date %&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/] Писать дату рядом с номером версии на главной странице.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer] В списке кастомеров выводить еще и company таг (первой колонкой).&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/control] Не нужна такая длинная простыня изменений на странице рестарт апдейт RM. А когда она делает рестарт хотелось бы какой-нить индикации.&lt;br /&gt;
'''с индикацией сложности, давай пока это повисит'''&lt;br /&gt;
&lt;br /&gt;
* Када дуплицируецо кейс нада в логе выводить ссылку на дочерний кейс. Ссылка на родительский кейс сейчас есть, а вот наоборот - &lt;br /&gt;
'''сделал'''&lt;br /&gt;
&lt;br /&gt;
нету. Кроме этого, хорошо бы в обоих случаях (родитель и дочко) выводить вверху что-то вроде This case has parent cases:&amp;lt;br&amp;gt;* Subject или This case has child cases...&lt;br /&gt;
'''с этим сложности. ща это помечается в логе, который может сожержать все что угодно'''&lt;br /&gt;
&lt;br /&gt;
* Добавить тайтлы к страницам RM. Там должно быть все очевидно. Ну типа если это кейс то его сабжект, если это кастомер то название кастомера, если юзер то имя юзера. Остальное - по названию менюшек (Product, Customers, etc.).&lt;br /&gt;
&lt;br /&gt;
* Для мейловых кейсов убрать квоту втыкаемую в окошки эдитов (сейчас она втыкается как в интернал, так и во внешний камент). Из интернал вообще убрать. Для экстернал - убрать из едита но прикручивать к письму при отправке.&lt;br /&gt;
&lt;br /&gt;
* [bug] При создании лицензии когда делаешь триальную неправильно рассчитывается плюс один месяц.&lt;br /&gt;
'''fixed'''&lt;br /&gt;
&lt;br /&gt;
* Квота по-прежнему выткается в интернал камент.&lt;br /&gt;
'''только когда окошко с интернл камментом открыто. нажимаешь там внизу cancel и опять квота в окно ответа идет. это фича'''&lt;br /&gt;
&lt;br /&gt;
==TODO==&lt;br /&gt;
&lt;br /&gt;
===Current===&lt;br /&gt;
&lt;br /&gt;
* Почему-то у всех ощущение что наши письма стали чаще попадать в спам. Надо проверить как у нас шлюцо письма. Мошт в хидерах чота не так?&lt;br /&gt;
'''примеры с хидерами накидай плиз с rm_monitor'''&lt;br /&gt;
&lt;br /&gt;
* Нерпальное оформление квот (не распознаюцо гмейлом). Отладицо под него.&lt;br /&gt;
'''какое?'''&lt;br /&gt;
&lt;br /&gt;
* Этот [http://rm.medialooks.com/messages/show/26560 кейс] как я понимаю теперь болтается вне всяких очередей?&lt;br /&gt;
'''похоже на то. ты просто сделал create mail case и все?'''&lt;br /&gt;
&lt;br /&gt;
* В случае когда кастомер [http://rm.medialooks.com/messages/show/13168 ссылается на другой кейс] нужно придумать как в него попадать из вьюхи просмотра кейса в RM.&lt;br /&gt;
'''могу предложить все юзерские ссылки на кейсы автоматом переписывать на админские. у клиента при этом не переписывать, т.е. только при отображении для вас'''&lt;br /&gt;
&lt;br /&gt;
* Копии в кейсах.&lt;br /&gt;
&lt;br /&gt;
* [bug] Берем (предположительно) любой кейс. Пускай это будет кастомер у которого 2 или более контактов и пускай на текущий момент у кейса только один партисипант. Добавляем сообщение и при этом добавляем еще одного участника (ставим галочку). Сообщение добавляется, теперь у кейса два участника, все ОК. Теперь делаем интернал камент (не важно с асайном или без) - дополнительные участники пропадают. Баг повторяется в случае если участников добавлять через email.&lt;br /&gt;
&lt;br /&gt;
* Проблемы с доступам к кейсам нескольких юзеров. Надо обсудить. Исходный кейс вот [http://rm.medialooks.com/messages/show/28265 тут].&lt;br /&gt;
&lt;br /&gt;
* [[Dev:CRM Tasks]]&lt;br /&gt;
* Как аттачить прайс лист к письмам таким образом чтобы каждый раз заново не заливать? Мне кажется проще всего залить прайс как продукт. Тогда и подписка нужных людей на него сразу заработает. Вопрос - как заимплементить механизм аттачинга удобный?&lt;br /&gt;
* Никак не могу придумать что делать с [http://rm.medialooks.com/messages/show/16519 такими] кейсами.&lt;br /&gt;
* Поисследуй плиз можно ли как-то засунуть батовские почтовые базы в Gmail. Например, есть [http://www.gmail-backup.com/ такая штука.]&lt;br /&gt;
&lt;br /&gt;
===Mail Cases with Screwed Up Formatting===&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/messages/show/26572]&lt;br /&gt;
&lt;br /&gt;
===To Think About===&lt;br /&gt;
&lt;br /&gt;
* Как сделать FTP с per customer паролями?&lt;br /&gt;
* Как добавить features и подписку кастомеров на них?&lt;br /&gt;
* Что делать с контактами когда у двух людей одинаковый email? Пример - mbcradio.&lt;br /&gt;
&lt;br /&gt;
===Important CRM/Email-Related Fixes===&lt;br /&gt;
&lt;br /&gt;
* Сделать возможность CC на кейс.&lt;br /&gt;
&lt;br /&gt;
* Сделать фичу слежения за кейсами.&lt;br /&gt;
&lt;br /&gt;
* Мердждинг кейсов.&lt;br /&gt;
&lt;br /&gt;
===Bugs, Fixes, Questions===&lt;br /&gt;
&lt;br /&gt;
* Нужно проверить что это не глюки у нас (такое кол-во закачек) и залочить чувака [http://rm.medialooks.com/messages/show/1700].&lt;br /&gt;
&lt;br /&gt;
* [unconfirmed] При наличии customer с некоторым email не срабатывает подписка этого email на любой продукт. Запрет должен срабатывать только в случае если лицензия есть именно на этот продукт (возможно, тут надо еще добавить логику про наследованные продукты).&lt;br /&gt;
&lt;br /&gt;
* [Bug] Не работает напоминалка проля в даунлоадах.&lt;br /&gt;
&lt;br /&gt;
* Сбрасывается инфо при вводе уже зареганого email.&lt;br /&gt;
&lt;br /&gt;
* Красные буквы при вводе adsf@medialooks.com.&lt;br /&gt;
&lt;br /&gt;
* Не обрабатываются ошибки типа wrong password в даунлоадз.&lt;br /&gt;
&lt;br /&gt;
* В моей опере никогда не начинаются даунлоады автоматом.&lt;br /&gt;
&lt;br /&gt;
===RM Access Rights===&lt;br /&gt;
&lt;br /&gt;
* Сейчас если зайти на главную под пользовтелем cthomson@medialooks.com (Reseller/Sales Manager) то у него нет столбца Customers. Нужно добавить и выводить там соответственно только доступных ему кастомеров.&lt;br /&gt;
&lt;br /&gt;
===Подписки===&lt;br /&gt;
&lt;br /&gt;
* Подписка Update Discount Expiration. Ввести для лицензий которые expired только после 01.12.2009. Т.е. письма по этой подписке должны начать ходить примерно с 01.05.2010.&lt;br /&gt;
&lt;br /&gt;
* Новая подписка license_expred_followup - которая будет запускацо спустя 4 месяца после истечения подписки. Там написано что через 2 месяца закончицо скидка 50% на продление лицензии. (Кстати идея - может давать доп. скидку за продление в течение месяца после истечения паттписки - типа 65%?)&lt;br /&gt;
&lt;br /&gt;
===Backups to Amazon S3===&lt;br /&gt;
&lt;br /&gt;
Давай будем наш бэкапный файл закачивать на амазон раз в неделю. Я сделал там аккаунт.&lt;br /&gt;
&lt;br /&gt;
===Tasks===&lt;br /&gt;
&lt;br /&gt;
* [Отложено] New email setup. Нужно засетапить новый домен medialooks-team.com. Мы будем его использовать для следующего - чтобы слать и принимать почту с двух общих адресов - &amp;lt;sales@medialooks-team.com&amp;gt; и &amp;lt;dev@medialooks-team.com&amp;gt;. Почему-то очень многие закачики тупо не получают наши письма. Если это не поможет то нам придется переходить на полностью web-based общение с кастомерами.&lt;br /&gt;
&lt;br /&gt;
* Разобрацо в чем проблема с настройкой goals в гугле.&lt;br /&gt;
&lt;br /&gt;
* Добавить в шаблоны писем (шаблон рассылки нового релиза, 2 шаблона license expired) возможность вставлять &amp;quot;License update link&amp;quot; в случае если такая ссылка указана в свойствах продукта (типа IF License update link exists - вставить следующее). Прислать мне файло шаблонов на редактирование (могу сам залезть но надо настроить тада SVN твой).&lt;br /&gt;
&lt;br /&gt;
* Сделать урлы в свойствах кастомера кликабл.&lt;br /&gt;
&lt;br /&gt;
* Cross-promotion subscriptions.&lt;br /&gt;
&lt;br /&gt;
* Если переименовать продукт, то перестает работать общая ссылка на даунлоад и по-версионные ссылки.&lt;br /&gt;
&lt;br /&gt;
* Contact as System Item (see task description).&lt;br /&gt;
&lt;br /&gt;
* Search (see task description).&lt;br /&gt;
&lt;br /&gt;
* Сортировка по тагам во вьюхе кастомеров. Статистика по тагам.&lt;br /&gt;
&lt;br /&gt;
* Добавить вывод количества лицензионных подписок в графу &amp;quot;Site Subscribers&amp;quot;. Графу переименовать в &amp;quot;Subscribers (Interested/Licensed)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* Общие рассылки. Научиться делать рассылки по всем клиентам. Это должна быть отдельная подписка.&lt;br /&gt;
&lt;br /&gt;
* Персонализированный учет закачек. Мы хотим про каждого клиента знать скачивает он новые версии или нет. В письме, которое он получает при выходе новой версии, можно делать уникальный урл, чтобы система знала нажал он или нет. Второй подход - это использовать куки на тот случай, если клиент скачивает с сайта.&lt;br /&gt;
&lt;br /&gt;
* Статистика закачек. Научицо разделять новые (приходящие с рекламы или из поиска) и повторные (наши кастомеры качают новые версии) закачки.&lt;br /&gt;
&lt;br /&gt;
* Подумать. Если есть идеи как интегрировать с Google Analytics (GA)  AdWords (AW) - было бы клева. Например вытаскивать из GA данные о посещениях конкретной страницы и сравнивать их с данными по закачкам.&lt;br /&gt;
&lt;br /&gt;
* Проблема с возможностью создать продукт у которого все версии - беты. И тогда не работает общая ссылка.&lt;br /&gt;
&lt;br /&gt;
* Проблема с RSS-фидом блога (у меня почему-то аутлук пытаецо запустицо).&lt;br /&gt;
&lt;br /&gt;
* Research on online license document generation. Существует ли какой-нить вебовский генератор PDF?&lt;br /&gt;
&lt;br /&gt;
* Создавать в Google Blog Search и Google Alerts фиды по тегам клиента, подсасывать их и демонстрировать мышап на странице клиента. :)))&lt;br /&gt;
&lt;br /&gt;
* Исследовать возможность автоматически создавать для каждого контакта в RM аккаунт в вике, принадлежащий определенной группе.&lt;br /&gt;
&lt;br /&gt;
* Убивать разделительные знаки в поле contacts (елси это телефон). Нужно для того чтобы можно было искать по номеру телефона в почтовой базе.&lt;br /&gt;
&lt;br /&gt;
* Сортировка по дате последнего релиза вот [http://rm.medialooks.com/distributives тут].&lt;br /&gt;
&lt;br /&gt;
* В RM надо сделать напоминалки для нас об истечении лицензий у кастомеров. (Чтобы пинать/напоминать руками.)&lt;br /&gt;
&lt;br /&gt;
* Поиск кастомеров и контактов по странам в RM.&lt;br /&gt;
&lt;br /&gt;
* Дать возможность редактировать meeting results.&lt;br /&gt;
&lt;br /&gt;
* Доработать функционал реселлеров. Например, чтобы про кастомера было видно что он привязан к некоторому реселлеру ([http://rm.medialooks.com/customer/show/364 пример]).&lt;br /&gt;
&lt;br /&gt;
* Придумать что-нибудь с аттачами. Добавить их в темплейт или как-то иначе автоматизировать. Не забыть про то что он обновляется (автоматизировать?) - может как отдельный продукт его или в этом роде... Нужно уметь видеть версию прайса кот. была отправлена.&lt;br /&gt;
&lt;br /&gt;
* Ручная блокировка аккунта. Выдавать сообщение &amp;quot;Your account has been suspended. Please contact MediaLooks in order to unlock your account.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Выводить количество кастомерских кейсов в скобкаъ на странице кастомера.&lt;br /&gt;
&lt;br /&gt;
* Выводить едишен лицензии в ее свойствах на стр. кастомера.&lt;br /&gt;
&lt;br /&gt;
* Надо различать даунлоады по продуктам (например QT DS и QT Plugin).&lt;br /&gt;
&lt;br /&gt;
* Вот в [http://rm.medialooks.com/product/licenses/22 этой] вьюхе выводить сначала триальные, потом expired лицензии. Триальные лицензии нужно помечать каким-то визуальным образом.&lt;br /&gt;
&lt;br /&gt;
* Тайтлы страниц в RM. Расписать подробнее что где нужно.&lt;br /&gt;
&lt;br /&gt;
* Выводить где-то отдельно триальные лицензии, чтобы можно было пинать кастомеров по ним.&lt;br /&gt;
&lt;br /&gt;
* Нужен способ задать реселлера со страницы кастомера. И нужно на странице кастомера это видеть.&lt;br /&gt;
&lt;br /&gt;
* Сделать опции go to case by number в обоих интерфейсах RM.&lt;br /&gt;
&lt;br /&gt;
* Логгировать даунлоады и выводить в кейсах последнюю скачанную пользователем версии.&lt;br /&gt;
&lt;br /&gt;
* Когда дискуссия идет в теме даунлоад - новые даунлоады ее обновляют что неудобно.&lt;br /&gt;
&lt;br /&gt;
* Идея. Вести две простыни release notes. Одна что вписал девелопер. Другую - что отправлено кастомерам.&lt;br /&gt;
&lt;br /&gt;
* Добавить список аттачей к письму про апдейт кейса.&lt;br /&gt;
&lt;br /&gt;
* Некоторым заказчикам нужно дать возможность заливать на FTP с паролем.&lt;br /&gt;
&lt;br /&gt;
* Надо бы разрешить just comment to customer без реасайна кейса.&lt;br /&gt;
&lt;br /&gt;
* Продумать логику один контакт - две конторы. Пример videoassistech. У него разные адреса для разных случаев.&lt;br /&gt;
&lt;br /&gt;
* Нужно разработать функцию CC case. Там выбираешь N людей кот. кейс как бы идет копией до тех пор пока они не нажпут dismiss.&lt;br /&gt;
&lt;br /&gt;
* [17:40:21] Vsevolod V. Burkutsky: ещё одна мысль - что-бы тикеты от одинаковых чуваков типа как в дереве лежали&lt;br /&gt;
&lt;br /&gt;
* Добавить опцию резолвинга кейса после отправки internal comment, без посылки кастомеру чего-либо.&lt;br /&gt;
&lt;br /&gt;
* Добавить опцию зиповать лиц. файлы при отправке.&lt;br /&gt;
&lt;br /&gt;
* Автоматизировать пиналки, кот. занимается Ольга.&lt;br /&gt;
&lt;br /&gt;
* Сделать независимыми RM и даунлоады. Если лежит RM не должны лежать даунлоады. Хз чо как сделать.&lt;br /&gt;
&lt;br /&gt;
* Галка would you like us to send you an email a few days prior to the expiration of your evaluation license?&lt;br /&gt;
&lt;br /&gt;
===Это потом===&lt;br /&gt;
&lt;br /&gt;
* Переделать форму контактов на сайте. Добавить возможность указать второй email. Отдельные поля под скайп, телефон.&lt;br /&gt;
&lt;br /&gt;
* Подписка royalties.&lt;br /&gt;
&lt;br /&gt;
===[Отложено] Communication Monitor===&lt;br /&gt;
&lt;br /&gt;
Сперва обсудить: может сразу делать web-based ticketing system?&lt;br /&gt;
&lt;br /&gt;
Коммуникация - это в данном случае одно из трех:&lt;br /&gt;
&lt;br /&gt;
1) Кастомер заполнил контактную форму на сайте. Насколько я знаю, в этом случае все данные попадают в базу и там храняцо (если трафик платный то [http://www.medialooks.com/admin/block_admin/53 сюда] лучше не нажимать).&lt;br /&gt;
&lt;br /&gt;
2) На один из двух адресов - &amp;lt;sales@medialooks-team.com&amp;gt; и &amp;lt;dev@medialooks-team.com&amp;gt; получено письмо от кастомера.&lt;br /&gt;
&lt;br /&gt;
3) Мы послали кастомеру письмо с одного из двух адресов (во всех случаях мы ставим BCC на адрес, с которого пишем).&lt;br /&gt;
&lt;br /&gt;
В RM нужно реализовать три списка:&lt;br /&gt;
&lt;br /&gt;
1) Список коммуникаций типа (1), на которые не было ответа с одного из двух адресов в течение N часов. &lt;br /&gt;
&lt;br /&gt;
2) Список коммуникаций типа (2), на которые не было ответа с одного из двух адресов в течение M часов. &lt;br /&gt;
&lt;br /&gt;
3) Список коммуникаций типа (3), в случае если от кастомера не было ответа в течение D рабочих дней.&lt;br /&gt;
&lt;br /&gt;
В обоих случаях выводить в таблице всю инфо, которая есть на данный email - телефон, скайп, ссылка на кастомеров, у которых в контактах числицо такой email (см. также &amp;quot;Contact as System Item&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
N, M и D нужно дать возможность конфигурить через гуй RM.&lt;br /&gt;
&lt;br /&gt;
В первом приближении выводить тела писем не нужно. Но в будуем мне кажется мы все равно к этому придем. Поэтому хранить можно уже начинать.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Customer download tracking===&lt;br /&gt;
&lt;br /&gt;
* Индивидуальные даунлоад ссылки для отслеживания какой подписчик нажал на сцылку.&lt;br /&gt;
* Отписка или оповещение администратора о подписчиках который не нажимают на ссылки (признак того что не получают письма или не читают их - но при этом по какой-то причине не отписываются).&lt;br /&gt;
&lt;br /&gt;
===Наследование/объединение продуктов===&lt;br /&gt;
&lt;br /&gt;
Необходимо поддержать два следующих сценария:&lt;br /&gt;
&lt;br /&gt;
1) Существует продукт DirectShow Filter Pack - он включает в себя большой набор DirectShow фильтров. Каждый фильтр релизится по своему графику (т.е. без графика) - поэтому отдельного download для него не существует. Т.е. продукт в данном случае это просто такая лицензия, т.е. совокупность цены и набора компонентов. В RM возможность создавать такие лицензии должна быть реализована в виде продукта в общем списке - просто у него будут какие-то дополнительные свойства как-то &amp;quot;включать в себя такие-то продукты&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Соответственно, при создании лицензии на такой продукт нужно сделать так чтобы:&lt;br /&gt;
&lt;br /&gt;
* Контакты кастомера могли быть подписаны на релизы (updates) по каждому из продуктов отдельно. По-умолчанию - создается подписка на все входящие в пакет продукты. Отписаться от каждого из продуктов в отдельности можно через сцылку на отписку из письма или это можно сделать через редактирование свойств лицензии.&lt;br /&gt;
&lt;br /&gt;
* Контакты кастомера не были дубликатно подписаны на эти же самые продукты через другие механизмы RM.&lt;br /&gt;
&lt;br /&gt;
* Подписка License Expired в данном случае остается одна - только на общий продукт. Но в случае, если подписка истекла, то при рассылке Release Updates в тело письма вставляется соотв. сообщение (т.к. это сейчас сделано для обычных лицензий).&lt;br /&gt;
&lt;br /&gt;
* В случае если для продукты DirectShow Filter Pack - RM конечно же имеет право наложить в штаны но после этого должен немедленно собрацо и вести себя так как будто он точно знает что нужно делать - а именно вести себя так как будто DirectShow Filter Pack это самый обычный продукт (т.е. появитсо в Distributives и дать возможность сделать рассылку). Т.е. обычная рассылка Release Updates для продукта такого типа тоже создаецо.&lt;br /&gt;
&lt;br /&gt;
2) Существуют продукты DeckLink SDK, Playout SDK и Multimedia SDK, для которых мы решили в целях упрощения использовать общий даунлоад. В данном случае все остается как есть - т.е. лицензии создаются именно под эти продукты, отдельно ведется статистика подписок, лицензий и закачек - но используется только один download.&lt;br /&gt;
&lt;br /&gt;
Например, мы говорим что DeckLink SDK и Playout SDK - оба используют download Multimedia SDK. Разработчик закачивает новый релиз именно для Multimedia SDK. Этот новый релиз появляется в разделе Distributives. Я его модерю, нажимаю сделать рассылку - и, как и раньше, выходят три блока писем - для DeckLink SDK, Playout SDk и Multimedia SDK.&lt;br /&gt;
&lt;br /&gt;
Особенность: ссылка во всех письмах теперь называется multimedia sdk. Делать редиректы и переименования - не надо (иначе клиенты будут говорить я скачал Playout SDK а мне ставится Multimedia SDK).&lt;br /&gt;
&lt;br /&gt;
===Industry-Based Subscriptions===&lt;br /&gt;
&lt;br /&gt;
Добавить возможность создавать рассылки по индустриям. В целом все аналогично тому как сейчас работают подписки на новые релизы. Можно подписывать контакты руками. А при рассылке заодно рассылать тем, кто является клиентом какого-либо продукта и тоже записан в эту индустрию.&lt;br /&gt;
&lt;br /&gt;
Возможно, когда у нас появятся разные способы делать рассылки, придется придумывать способы не слать дважды по одному и тому же поводу. Например, заводить для рассылки какой-нибудь ID.&lt;br /&gt;
&lt;br /&gt;
===Contact as System Item===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать контакты как самостоятельную сущность.&lt;br /&gt;
&lt;br /&gt;
Контакт представляет из себя имя (текстовое поле например &amp;quot;Andrew Okunev) и ассоциированный c ним набор полей:&lt;br /&gt;
&lt;br /&gt;
* email name (используется в подстановках в письмах; если пусто, используется &amp;quot;customer&amp;quot;)&lt;br /&gt;
* email (любое количество)&lt;br /&gt;
* skype (любое количество)&lt;br /&gt;
* телефон (любое количество)&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать отображение и редактирование свойств для любого из контактов. Например:&lt;br /&gt;
&lt;br /&gt;
* Когда добавлен в систему&lt;br /&gt;
* С какими компаниями (Customers) ассоциирован.&lt;br /&gt;
* С какими лицензиями ассоциирован.&lt;br /&gt;
* На какие подписки подписан.&lt;br /&gt;
&lt;br /&gt;
Все это нужно реализовать в одной вьюхе. Редактирование доступно только администратору системы.&lt;br /&gt;
&lt;br /&gt;
Примечания:&lt;br /&gt;
&lt;br /&gt;
* В системе должны отсутствовать дубликаты по email. Дубликаты по имени допустимы (т.е. когда одинаковое имя но разный email), но должна быть возможность их соединить (т.е. превратить в один контакт с двумя email). Реализовать это можно через отдельную вьюху, доступную администратору.&lt;br /&gt;
&lt;br /&gt;
* Если у контакта больше одного email, то любой из них может использоваться для авторизации.&lt;br /&gt;
&lt;br /&gt;
* Новый контакт (как сущность) создается при любом добавлении контакта в систему (например, при создании подписки через модуль subscribers.&lt;br /&gt;
&lt;br /&gt;
===Universal Uploads===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать возможность закачивать в RM абстрактные (не привязанные к какому-либо продукту) файлы. При этом каждому такому файлу должен быть по-умолчанию присвоен срок жизни - 30 дней. После чего файл автоматически удаляется. Файлы можно защищать паролем, который требуется для скачки.&lt;br /&gt;
&lt;br /&gt;
Каждый файл привязан к какому-либо юзеру. Только у этого пользователя (или у администратора) есть возможность добавлять к своему аккаунту файлы или удалять их. Каждую закачку можно удалить или обновить файл в ней.&lt;br /&gt;
&lt;br /&gt;
Соответственно, необходимо создать две новых вьюхи:&lt;br /&gt;
&lt;br /&gt;
1) Вьюха создания закачки. Опции: текстедит срок жизни (по-умолчанию вбито 30), чекбокс защитить паролем, путь к файлу.&lt;br /&gt;
&lt;br /&gt;
2) Вьюха список закачек данного юзера. Отображать: имя файла, количество скачек, оставшийся срок жизни, дата закачки. Имя файла является ссылкой на данный файл (вида rm.medialooks.com/...).&lt;br /&gt;
&lt;br /&gt;
В меню каждого юзера должно быть что-то вроде &amp;quot;My Uploads&amp;quot;, которая ведет на вьюху (2).&lt;br /&gt;
&lt;br /&gt;
===Customer Access===&lt;br /&gt;
&lt;br /&gt;
Нужно научицо давать кастомерам доступ к аплоадам. Для этого нужно реализовать в RM еще одну роль - &amp;quot;Customer&amp;quot;. Роль &amp;quot;User&amp;quot; нужно переименовать в &amp;quot;Developer&amp;quot;. Каждый контакт, добавленный в систему, должен получать соотв. статус и автоматически сгенеренный пароль. Никаких писем при заведении пользователей пока автоматически рассылать не надо. Однако, при первой попытке зайти в систему, кастомер должен по почте получить свой пароль. Залогинившись, он имеет доступ только к своим аплоадам (в будущем добавим еще подписки и лицензии).&lt;br /&gt;
&lt;br /&gt;
===Search===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать поиск в системе. Форма поиска - одна на все случаи. Она должна размещаться на всех страницах системы.&lt;br /&gt;
&lt;br /&gt;
По каким полям искать:&lt;br /&gt;
&lt;br /&gt;
* По контактам.&lt;br /&gt;
* По названию клиента.&lt;br /&gt;
* По тегу клиента.&lt;br /&gt;
&lt;br /&gt;
'''Пример.''' Если в поле поиска ввден запрос:&lt;br /&gt;
&lt;br /&gt;
Andrew A. Okunev &amp;lt;dev@medialooks.com&amp;gt; (MediaLooks)&lt;br /&gt;
&lt;br /&gt;
- то сперва нужно произвести поиск отдельно по &amp;quot;Osman Yel&amp;quot;, &amp;quot;dev@medialooks.com&amp;quot; и &amp;quot;MediaLooks&amp;quot;. Эти результаты вывести в первую очередь.&lt;br /&gt;
&lt;br /&gt;
Во-вторую - выделить из поисковой строки название домена и отрезать от него домен первого уровня. Т.е. в нашем примере искать по строке &amp;quot;medialooks&amp;quot;. Эти результаты вывести во вторую очередь.&lt;br /&gt;
&lt;br /&gt;
Кроме этого, естественно должен работать поиск в том случае если исходный запрос это &amp;quot;dev@medialooks.com&amp;quot; или просто &amp;quot;medialooks&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===LinkedIn Integration===&lt;br /&gt;
&lt;br /&gt;
Зачем? Любая система управления контактами страдает одним недостатком - ей неоткуда узнать о том, что у кого-то поменялся email или телефон.&lt;br /&gt;
&lt;br /&gt;
Предполагается что пользователи LinkedIn (за исключением [http://www.linkedin.com/pub/2/26b/926 некоторых] поддерживают свой профиль в актуальном состоянии. В частности, следят за тем, чтобы в профиле был актуальный email.&lt;br /&gt;
&lt;br /&gt;
В результате хочется получить поддержку следующих сценариев:&lt;br /&gt;
&lt;br /&gt;
* Узнавать об изменениях в контактной информации наших клиентов.&lt;br /&gt;
* Приглашать в нашу сеть клиентов, которые уже используют LinkedIn.&lt;br /&gt;
* Приглашать в LinkedIn тех клиентов, которые его пока не используют.&lt;br /&gt;
* Если клиент для общение с нами использует один email, а для LinkedIn - другой, - то нам нужно узнать этот email и использовать его как запасной/альтернативный.&lt;br /&gt;
&lt;br /&gt;
Для начала думаю следует просто проверить, позволяет ли API делать следующее:&lt;br /&gt;
&lt;br /&gt;
* Авторизоваться в системе под каким-то реальным логином (например, подо мной).&lt;br /&gt;
* Поискать пользователей по email.&lt;br /&gt;
* Получить email любого из моих контактов.&lt;br /&gt;
* Послать конкретному пользователю инвайт, иметь возможность указать кастомный текст для инвайта.&lt;br /&gt;
* Пригласить нового пользователя через email, то же самое с кастомным текстом.&lt;br /&gt;
&lt;br /&gt;
Задача неактуальна поскольку как я понял от LinkedIn нужно сначала получить одобрение на использование API:&lt;br /&gt;
&lt;br /&gt;
* http://www.linkedin.com/static?key=developers_apis&lt;br /&gt;
&lt;br /&gt;
==Done Tasks==&lt;br /&gt;
&lt;br /&gt;
* [[LMS/CMS Tasks: Done]]&lt;br /&gt;
&lt;br /&gt;
[[Category: Tasks]]&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Ivan</name></author>	</entry>

	<entry>
		<id>http://wiki.avobjects.com/Dev:RM/LMS_Tasks</id>
		<title>Dev:RM/LMS Tasks</title>
		<link rel="alternate" type="text/html" href="http://wiki.avobjects.com/Dev:RM/LMS_Tasks"/>
				<updated>2009-12-10T14:45:39Z</updated>
		
		<summary type="html">&lt;p&gt;Ivan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See also:&lt;br /&gt;
&lt;br /&gt;
* [[Dev:Tasks To Complete Before We Can Papustico!]]&lt;br /&gt;
* [[CMS Tasks]]&lt;br /&gt;
* [[Dev:Communication System]]&lt;br /&gt;
* [[Dev: Support System Roles]]&lt;br /&gt;
* [[Dev: RM User Rights]]&lt;br /&gt;
* [[Dev: RM Licensing Feature Update]]&lt;br /&gt;
* [[Dev: Serge Tasks]]&lt;br /&gt;
&lt;br /&gt;
==RM/LMS Tasks==&lt;br /&gt;
&lt;br /&gt;
==DONE==&lt;br /&gt;
* [bug] Откуда-то взялся кейс in progress без асайна - [http://rm.medialooks.com/messages/show/1586].&lt;br /&gt;
'''забить, он старый'''&lt;br /&gt;
&lt;br /&gt;
* [bug] При паттписке-атписке из кейса выскакивает явоскрпитовый диалог с цифрами (например, 68).&lt;br /&gt;
&lt;br /&gt;
* [bug] Чичас после нажатия на Send emails в [http://rm.medialooks.com/distributives/show/39 релизах] в гуйне ничо не происходит. Т.е. кажецо что ты промахнулсо и хочецо нажать кнопку исчо раз. Хотя на самом деле все срабатывает (письма шлюцо) и если со страницы уйти то из [http://rm.medialooks.com/distributives списка] этот продукт исчезнет.&lt;br /&gt;
'''происходит, но долго'''&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] При создании или редактировании лицензии. Убрать галку &amp;quot;Send license files&amp;quot; и добавить просто новую кнопку &amp;quot;Save and Send License Files&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] Добавть ссылочку Re-send License Files прямо рядом с Edit License. Update переименовать в Renew. Пункты меню расположить так: Renew License | Edit License | Re-send License Files | Delete License.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] Ссылочку Add License поместить над списком лицензий и назвать Add New License.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] Notes в свойствах лицензии нужно выводить красным.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/messages/new_cases/SM] Для всех вариантов отображения списка кейсов. В табличке со списком выводить также статус (In progess, waiting, etc.) - предпоследней колонкой.&lt;br /&gt;
&lt;br /&gt;
* [note] Добавить бряк после номера версии в тексте релилз ноутс который вставляется в subscribe.&lt;br /&gt;
&lt;br /&gt;
* [note] Для license_file.rhtml нужно новое условие - триальная лицензия или нет. Т.к. текст в этом случае другой.&lt;br /&gt;
'''оно там есть, просто называецо нетривиально: &amp;lt;% if @expiration_date %&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/] Писать дату рядом с номером версии на главной странице.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer] В списке кастомеров выводить еще и company таг (первой колонкой).&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/control] Не нужна такая длинная простыня изменений на странице рестарт апдейт RM. А когда она делает рестарт хотелось бы какой-нить индикации.&lt;br /&gt;
'''с индикацией сложности, давай пока это повисит'''&lt;br /&gt;
&lt;br /&gt;
* Када дуплицируецо кейс нада в логе выводить ссылку на дочерний кейс. Ссылка на родительский кейс сейчас есть, а вот наоборот - &lt;br /&gt;
'''сделал'''&lt;br /&gt;
&lt;br /&gt;
нету. Кроме этого, хорошо бы в обоих случаях (родитель и дочко) выводить вверху что-то вроде This case has parent cases:&amp;lt;br&amp;gt;* Subject или This case has child cases...&lt;br /&gt;
'''с этим сложности. ща это помечается в логе, который может сожержать все что угодно'''&lt;br /&gt;
&lt;br /&gt;
* Добавить тайтлы к страницам RM. Там должно быть все очевидно. Ну типа если это кейс то его сабжект, если это кастомер то название кастомера, если юзер то имя юзера. Остальное - по названию менюшек (Product, Customers, etc.).&lt;br /&gt;
&lt;br /&gt;
* Для мейловых кейсов убрать квоту втыкаемую в окошки эдитов (сейчас она втыкается как в интернал, так и во внешний камент). Из интернал вообще убрать. Для экстернал - убрать из едита но прикручивать к письму при отправке.&lt;br /&gt;
&lt;br /&gt;
* [bug] При создании лицензии когда делаешь триальную неправильно рассчитывается плюс один месяц.&lt;br /&gt;
'''fixed'''&lt;br /&gt;
&lt;br /&gt;
* Квота по-прежнему выткается в интернал камент.&lt;br /&gt;
'''только когда окошко с интернл камментом открыто. нажимаешь там внизу cancel и опять квота в окно ответа идет. это фича'''&lt;br /&gt;
&lt;br /&gt;
==TODO==&lt;br /&gt;
&lt;br /&gt;
===Current===&lt;br /&gt;
&lt;br /&gt;
* Почему-то у всех ощущение что наши письма стали чаще попадать в спам. Надо проверить как у нас шлюцо письма. Мошт в хидерах чота не так?&lt;br /&gt;
'''примеры с хидерами накидай плиз с rm_monitor'''&lt;br /&gt;
&lt;br /&gt;
* Нерпальное оформление квот (не распознаюцо гмейлом). Отладицо под него.&lt;br /&gt;
'''какое?'''&lt;br /&gt;
&lt;br /&gt;
* Этот [http://rm.medialooks.com/messages/show/26560 кейс] как я понимаю теперь болтается вне всяких очередей?&lt;br /&gt;
'''похоже на то. ты просто сделал create mail case и все?'''&lt;br /&gt;
&lt;br /&gt;
* Копии в кейсах.&lt;br /&gt;
&lt;br /&gt;
* [bug] Берем (предположительно) любой кейс. Пускай это будет кастомер у которого 2 или более контактов и пускай на текущий момент у кейса только один партисипант. Добавляем сообщение и при этом добавляем еще одного участника (ставим галочку). Сообщение добавляется, теперь у кейса два участника, все ОК. Теперь делаем интернал камент (не важно с асайном или без) - дополнительные участники пропадают. Баг повторяется в случае если участников добавлять через email.&lt;br /&gt;
&lt;br /&gt;
* Проблемы с доступам к кейсам нескольких юзеров. Надо обсудить. Исходный кейс вот [http://rm.medialooks.com/messages/show/28265 тут].&lt;br /&gt;
&lt;br /&gt;
* [[Dev:CRM Tasks]]&lt;br /&gt;
* В случае когда кастомер [http://rm.medialooks.com/messages/show/13168 ссылается на другой кейс] нужно придумать как в него попадать из вьюхи просмотра кейса в RM.&lt;br /&gt;
* Как аттачить прайс лист к письмам таким образом чтобы каждый раз заново не заливать? Мне кажется проще всего залить прайс как продукт. Тогда и подписка нужных людей на него сразу заработает. Вопрос - как заимплементить механизм аттачинга удобный?&lt;br /&gt;
* Никак не могу придумать что делать с [http://rm.medialooks.com/messages/show/16519 такими] кейсами.&lt;br /&gt;
* Поисследуй плиз можно ли как-то засунуть батовские почтовые базы в Gmail. Например, есть [http://www.gmail-backup.com/ такая штука.]&lt;br /&gt;
&lt;br /&gt;
===Mail Cases with Screwed Up Formatting===&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/messages/show/26572]&lt;br /&gt;
&lt;br /&gt;
===To Think About===&lt;br /&gt;
&lt;br /&gt;
* Как сделать FTP с per customer паролями?&lt;br /&gt;
* Как добавить features и подписку кастомеров на них?&lt;br /&gt;
* Что делать с контактами когда у двух людей одинаковый email? Пример - mbcradio.&lt;br /&gt;
&lt;br /&gt;
===Important CRM/Email-Related Fixes===&lt;br /&gt;
&lt;br /&gt;
* Сделать возможность CC на кейс.&lt;br /&gt;
&lt;br /&gt;
* Сделать фичу слежения за кейсами.&lt;br /&gt;
&lt;br /&gt;
* Мердждинг кейсов.&lt;br /&gt;
&lt;br /&gt;
===Bugs, Fixes, Questions===&lt;br /&gt;
&lt;br /&gt;
* Нужно проверить что это не глюки у нас (такое кол-во закачек) и залочить чувака [http://rm.medialooks.com/messages/show/1700].&lt;br /&gt;
&lt;br /&gt;
* [unconfirmed] При наличии customer с некоторым email не срабатывает подписка этого email на любой продукт. Запрет должен срабатывать только в случае если лицензия есть именно на этот продукт (возможно, тут надо еще добавить логику про наследованные продукты).&lt;br /&gt;
&lt;br /&gt;
* [Bug] Не работает напоминалка проля в даунлоадах.&lt;br /&gt;
&lt;br /&gt;
* Сбрасывается инфо при вводе уже зареганого email.&lt;br /&gt;
&lt;br /&gt;
* Красные буквы при вводе adsf@medialooks.com.&lt;br /&gt;
&lt;br /&gt;
* Не обрабатываются ошибки типа wrong password в даунлоадз.&lt;br /&gt;
&lt;br /&gt;
* В моей опере никогда не начинаются даунлоады автоматом.&lt;br /&gt;
&lt;br /&gt;
===RM Access Rights===&lt;br /&gt;
&lt;br /&gt;
* Сейчас если зайти на главную под пользовтелем cthomson@medialooks.com (Reseller/Sales Manager) то у него нет столбца Customers. Нужно добавить и выводить там соответственно только доступных ему кастомеров.&lt;br /&gt;
&lt;br /&gt;
===Подписки===&lt;br /&gt;
&lt;br /&gt;
* Подписка Update Discount Expiration. Ввести для лицензий которые expired только после 01.12.2009. Т.е. письма по этой подписке должны начать ходить примерно с 01.05.2010.&lt;br /&gt;
&lt;br /&gt;
* Новая подписка license_expred_followup - которая будет запускацо спустя 4 месяца после истечения подписки. Там написано что через 2 месяца закончицо скидка 50% на продление лицензии. (Кстати идея - может давать доп. скидку за продление в течение месяца после истечения паттписки - типа 65%?)&lt;br /&gt;
&lt;br /&gt;
===Backups to Amazon S3===&lt;br /&gt;
&lt;br /&gt;
Давай будем наш бэкапный файл закачивать на амазон раз в неделю. Я сделал там аккаунт.&lt;br /&gt;
&lt;br /&gt;
===Tasks===&lt;br /&gt;
&lt;br /&gt;
* [Отложено] New email setup. Нужно засетапить новый домен medialooks-team.com. Мы будем его использовать для следующего - чтобы слать и принимать почту с двух общих адресов - &amp;lt;sales@medialooks-team.com&amp;gt; и &amp;lt;dev@medialooks-team.com&amp;gt;. Почему-то очень многие закачики тупо не получают наши письма. Если это не поможет то нам придется переходить на полностью web-based общение с кастомерами.&lt;br /&gt;
&lt;br /&gt;
* Разобрацо в чем проблема с настройкой goals в гугле.&lt;br /&gt;
&lt;br /&gt;
* Добавить в шаблоны писем (шаблон рассылки нового релиза, 2 шаблона license expired) возможность вставлять &amp;quot;License update link&amp;quot; в случае если такая ссылка указана в свойствах продукта (типа IF License update link exists - вставить следующее). Прислать мне файло шаблонов на редактирование (могу сам залезть но надо настроить тада SVN твой).&lt;br /&gt;
&lt;br /&gt;
* Сделать урлы в свойствах кастомера кликабл.&lt;br /&gt;
&lt;br /&gt;
* Cross-promotion subscriptions.&lt;br /&gt;
&lt;br /&gt;
* Если переименовать продукт, то перестает работать общая ссылка на даунлоад и по-версионные ссылки.&lt;br /&gt;
&lt;br /&gt;
* Contact as System Item (see task description).&lt;br /&gt;
&lt;br /&gt;
* Search (see task description).&lt;br /&gt;
&lt;br /&gt;
* Сортировка по тагам во вьюхе кастомеров. Статистика по тагам.&lt;br /&gt;
&lt;br /&gt;
* Добавить вывод количества лицензионных подписок в графу &amp;quot;Site Subscribers&amp;quot;. Графу переименовать в &amp;quot;Subscribers (Interested/Licensed)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* Общие рассылки. Научиться делать рассылки по всем клиентам. Это должна быть отдельная подписка.&lt;br /&gt;
&lt;br /&gt;
* Персонализированный учет закачек. Мы хотим про каждого клиента знать скачивает он новые версии или нет. В письме, которое он получает при выходе новой версии, можно делать уникальный урл, чтобы система знала нажал он или нет. Второй подход - это использовать куки на тот случай, если клиент скачивает с сайта.&lt;br /&gt;
&lt;br /&gt;
* Статистика закачек. Научицо разделять новые (приходящие с рекламы или из поиска) и повторные (наши кастомеры качают новые версии) закачки.&lt;br /&gt;
&lt;br /&gt;
* Подумать. Если есть идеи как интегрировать с Google Analytics (GA)  AdWords (AW) - было бы клева. Например вытаскивать из GA данные о посещениях конкретной страницы и сравнивать их с данными по закачкам.&lt;br /&gt;
&lt;br /&gt;
* Проблема с возможностью создать продукт у которого все версии - беты. И тогда не работает общая ссылка.&lt;br /&gt;
&lt;br /&gt;
* Проблема с RSS-фидом блога (у меня почему-то аутлук пытаецо запустицо).&lt;br /&gt;
&lt;br /&gt;
* Research on online license document generation. Существует ли какой-нить вебовский генератор PDF?&lt;br /&gt;
&lt;br /&gt;
* Создавать в Google Blog Search и Google Alerts фиды по тегам клиента, подсасывать их и демонстрировать мышап на странице клиента. :)))&lt;br /&gt;
&lt;br /&gt;
* Исследовать возможность автоматически создавать для каждого контакта в RM аккаунт в вике, принадлежащий определенной группе.&lt;br /&gt;
&lt;br /&gt;
* Убивать разделительные знаки в поле contacts (елси это телефон). Нужно для того чтобы можно было искать по номеру телефона в почтовой базе.&lt;br /&gt;
&lt;br /&gt;
* Сортировка по дате последнего релиза вот [http://rm.medialooks.com/distributives тут].&lt;br /&gt;
&lt;br /&gt;
* В RM надо сделать напоминалки для нас об истечении лицензий у кастомеров. (Чтобы пинать/напоминать руками.)&lt;br /&gt;
&lt;br /&gt;
* Поиск кастомеров и контактов по странам в RM.&lt;br /&gt;
&lt;br /&gt;
* Дать возможность редактировать meeting results.&lt;br /&gt;
&lt;br /&gt;
* Доработать функционал реселлеров. Например, чтобы про кастомера было видно что он привязан к некоторому реселлеру ([http://rm.medialooks.com/customer/show/364 пример]).&lt;br /&gt;
&lt;br /&gt;
* Придумать что-нибудь с аттачами. Добавить их в темплейт или как-то иначе автоматизировать. Не забыть про то что он обновляется (автоматизировать?) - может как отдельный продукт его или в этом роде... Нужно уметь видеть версию прайса кот. была отправлена.&lt;br /&gt;
&lt;br /&gt;
* Ручная блокировка аккунта. Выдавать сообщение &amp;quot;Your account has been suspended. Please contact MediaLooks in order to unlock your account.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Выводить количество кастомерских кейсов в скобкаъ на странице кастомера.&lt;br /&gt;
&lt;br /&gt;
* Выводить едишен лицензии в ее свойствах на стр. кастомера.&lt;br /&gt;
&lt;br /&gt;
* Надо различать даунлоады по продуктам (например QT DS и QT Plugin).&lt;br /&gt;
&lt;br /&gt;
* Вот в [http://rm.medialooks.com/product/licenses/22 этой] вьюхе выводить сначала триальные, потом expired лицензии. Триальные лицензии нужно помечать каким-то визуальным образом.&lt;br /&gt;
&lt;br /&gt;
* Тайтлы страниц в RM. Расписать подробнее что где нужно.&lt;br /&gt;
&lt;br /&gt;
* Выводить где-то отдельно триальные лицензии, чтобы можно было пинать кастомеров по ним.&lt;br /&gt;
&lt;br /&gt;
* Нужен способ задать реселлера со страницы кастомера. И нужно на странице кастомера это видеть.&lt;br /&gt;
&lt;br /&gt;
* Сделать опции go to case by number в обоих интерфейсах RM.&lt;br /&gt;
&lt;br /&gt;
* Логгировать даунлоады и выводить в кейсах последнюю скачанную пользователем версии.&lt;br /&gt;
&lt;br /&gt;
* Когда дискуссия идет в теме даунлоад - новые даунлоады ее обновляют что неудобно.&lt;br /&gt;
&lt;br /&gt;
* Идея. Вести две простыни release notes. Одна что вписал девелопер. Другую - что отправлено кастомерам.&lt;br /&gt;
&lt;br /&gt;
* Добавить список аттачей к письму про апдейт кейса.&lt;br /&gt;
&lt;br /&gt;
* Некоторым заказчикам нужно дать возможность заливать на FTP с паролем.&lt;br /&gt;
&lt;br /&gt;
* Надо бы разрешить just comment to customer без реасайна кейса.&lt;br /&gt;
&lt;br /&gt;
* Продумать логику один контакт - две конторы. Пример videoassistech. У него разные адреса для разных случаев.&lt;br /&gt;
&lt;br /&gt;
* Нужно разработать функцию CC case. Там выбираешь N людей кот. кейс как бы идет копией до тех пор пока они не нажпут dismiss.&lt;br /&gt;
&lt;br /&gt;
* [17:40:21] Vsevolod V. Burkutsky: ещё одна мысль - что-бы тикеты от одинаковых чуваков типа как в дереве лежали&lt;br /&gt;
&lt;br /&gt;
* Добавить опцию резолвинга кейса после отправки internal comment, без посылки кастомеру чего-либо.&lt;br /&gt;
&lt;br /&gt;
* Добавить опцию зиповать лиц. файлы при отправке.&lt;br /&gt;
&lt;br /&gt;
* Автоматизировать пиналки, кот. занимается Ольга.&lt;br /&gt;
&lt;br /&gt;
* Сделать независимыми RM и даунлоады. Если лежит RM не должны лежать даунлоады. Хз чо как сделать.&lt;br /&gt;
&lt;br /&gt;
* Галка would you like us to send you an email a few days prior to the expiration of your evaluation license?&lt;br /&gt;
&lt;br /&gt;
===Это потом===&lt;br /&gt;
&lt;br /&gt;
* Переделать форму контактов на сайте. Добавить возможность указать второй email. Отдельные поля под скайп, телефон.&lt;br /&gt;
&lt;br /&gt;
* Подписка royalties.&lt;br /&gt;
&lt;br /&gt;
===[Отложено] Communication Monitor===&lt;br /&gt;
&lt;br /&gt;
Сперва обсудить: может сразу делать web-based ticketing system?&lt;br /&gt;
&lt;br /&gt;
Коммуникация - это в данном случае одно из трех:&lt;br /&gt;
&lt;br /&gt;
1) Кастомер заполнил контактную форму на сайте. Насколько я знаю, в этом случае все данные попадают в базу и там храняцо (если трафик платный то [http://www.medialooks.com/admin/block_admin/53 сюда] лучше не нажимать).&lt;br /&gt;
&lt;br /&gt;
2) На один из двух адресов - &amp;lt;sales@medialooks-team.com&amp;gt; и &amp;lt;dev@medialooks-team.com&amp;gt; получено письмо от кастомера.&lt;br /&gt;
&lt;br /&gt;
3) Мы послали кастомеру письмо с одного из двух адресов (во всех случаях мы ставим BCC на адрес, с которого пишем).&lt;br /&gt;
&lt;br /&gt;
В RM нужно реализовать три списка:&lt;br /&gt;
&lt;br /&gt;
1) Список коммуникаций типа (1), на которые не было ответа с одного из двух адресов в течение N часов. &lt;br /&gt;
&lt;br /&gt;
2) Список коммуникаций типа (2), на которые не было ответа с одного из двух адресов в течение M часов. &lt;br /&gt;
&lt;br /&gt;
3) Список коммуникаций типа (3), в случае если от кастомера не было ответа в течение D рабочих дней.&lt;br /&gt;
&lt;br /&gt;
В обоих случаях выводить в таблице всю инфо, которая есть на данный email - телефон, скайп, ссылка на кастомеров, у которых в контактах числицо такой email (см. также &amp;quot;Contact as System Item&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
N, M и D нужно дать возможность конфигурить через гуй RM.&lt;br /&gt;
&lt;br /&gt;
В первом приближении выводить тела писем не нужно. Но в будуем мне кажется мы все равно к этому придем. Поэтому хранить можно уже начинать.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Customer download tracking===&lt;br /&gt;
&lt;br /&gt;
* Индивидуальные даунлоад ссылки для отслеживания какой подписчик нажал на сцылку.&lt;br /&gt;
* Отписка или оповещение администратора о подписчиках который не нажимают на ссылки (признак того что не получают письма или не читают их - но при этом по какой-то причине не отписываются).&lt;br /&gt;
&lt;br /&gt;
===Наследование/объединение продуктов===&lt;br /&gt;
&lt;br /&gt;
Необходимо поддержать два следующих сценария:&lt;br /&gt;
&lt;br /&gt;
1) Существует продукт DirectShow Filter Pack - он включает в себя большой набор DirectShow фильтров. Каждый фильтр релизится по своему графику (т.е. без графика) - поэтому отдельного download для него не существует. Т.е. продукт в данном случае это просто такая лицензия, т.е. совокупность цены и набора компонентов. В RM возможность создавать такие лицензии должна быть реализована в виде продукта в общем списке - просто у него будут какие-то дополнительные свойства как-то &amp;quot;включать в себя такие-то продукты&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Соответственно, при создании лицензии на такой продукт нужно сделать так чтобы:&lt;br /&gt;
&lt;br /&gt;
* Контакты кастомера могли быть подписаны на релизы (updates) по каждому из продуктов отдельно. По-умолчанию - создается подписка на все входящие в пакет продукты. Отписаться от каждого из продуктов в отдельности можно через сцылку на отписку из письма или это можно сделать через редактирование свойств лицензии.&lt;br /&gt;
&lt;br /&gt;
* Контакты кастомера не были дубликатно подписаны на эти же самые продукты через другие механизмы RM.&lt;br /&gt;
&lt;br /&gt;
* Подписка License Expired в данном случае остается одна - только на общий продукт. Но в случае, если подписка истекла, то при рассылке Release Updates в тело письма вставляется соотв. сообщение (т.к. это сейчас сделано для обычных лицензий).&lt;br /&gt;
&lt;br /&gt;
* В случае если для продукты DirectShow Filter Pack - RM конечно же имеет право наложить в штаны но после этого должен немедленно собрацо и вести себя так как будто он точно знает что нужно делать - а именно вести себя так как будто DirectShow Filter Pack это самый обычный продукт (т.е. появитсо в Distributives и дать возможность сделать рассылку). Т.е. обычная рассылка Release Updates для продукта такого типа тоже создаецо.&lt;br /&gt;
&lt;br /&gt;
2) Существуют продукты DeckLink SDK, Playout SDK и Multimedia SDK, для которых мы решили в целях упрощения использовать общий даунлоад. В данном случае все остается как есть - т.е. лицензии создаются именно под эти продукты, отдельно ведется статистика подписок, лицензий и закачек - но используется только один download.&lt;br /&gt;
&lt;br /&gt;
Например, мы говорим что DeckLink SDK и Playout SDK - оба используют download Multimedia SDK. Разработчик закачивает новый релиз именно для Multimedia SDK. Этот новый релиз появляется в разделе Distributives. Я его модерю, нажимаю сделать рассылку - и, как и раньше, выходят три блока писем - для DeckLink SDK, Playout SDk и Multimedia SDK.&lt;br /&gt;
&lt;br /&gt;
Особенность: ссылка во всех письмах теперь называется multimedia sdk. Делать редиректы и переименования - не надо (иначе клиенты будут говорить я скачал Playout SDK а мне ставится Multimedia SDK).&lt;br /&gt;
&lt;br /&gt;
===Industry-Based Subscriptions===&lt;br /&gt;
&lt;br /&gt;
Добавить возможность создавать рассылки по индустриям. В целом все аналогично тому как сейчас работают подписки на новые релизы. Можно подписывать контакты руками. А при рассылке заодно рассылать тем, кто является клиентом какого-либо продукта и тоже записан в эту индустрию.&lt;br /&gt;
&lt;br /&gt;
Возможно, когда у нас появятся разные способы делать рассылки, придется придумывать способы не слать дважды по одному и тому же поводу. Например, заводить для рассылки какой-нибудь ID.&lt;br /&gt;
&lt;br /&gt;
===Contact as System Item===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать контакты как самостоятельную сущность.&lt;br /&gt;
&lt;br /&gt;
Контакт представляет из себя имя (текстовое поле например &amp;quot;Andrew Okunev) и ассоциированный c ним набор полей:&lt;br /&gt;
&lt;br /&gt;
* email name (используется в подстановках в письмах; если пусто, используется &amp;quot;customer&amp;quot;)&lt;br /&gt;
* email (любое количество)&lt;br /&gt;
* skype (любое количество)&lt;br /&gt;
* телефон (любое количество)&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать отображение и редактирование свойств для любого из контактов. Например:&lt;br /&gt;
&lt;br /&gt;
* Когда добавлен в систему&lt;br /&gt;
* С какими компаниями (Customers) ассоциирован.&lt;br /&gt;
* С какими лицензиями ассоциирован.&lt;br /&gt;
* На какие подписки подписан.&lt;br /&gt;
&lt;br /&gt;
Все это нужно реализовать в одной вьюхе. Редактирование доступно только администратору системы.&lt;br /&gt;
&lt;br /&gt;
Примечания:&lt;br /&gt;
&lt;br /&gt;
* В системе должны отсутствовать дубликаты по email. Дубликаты по имени допустимы (т.е. когда одинаковое имя но разный email), но должна быть возможность их соединить (т.е. превратить в один контакт с двумя email). Реализовать это можно через отдельную вьюху, доступную администратору.&lt;br /&gt;
&lt;br /&gt;
* Если у контакта больше одного email, то любой из них может использоваться для авторизации.&lt;br /&gt;
&lt;br /&gt;
* Новый контакт (как сущность) создается при любом добавлении контакта в систему (например, при создании подписки через модуль subscribers.&lt;br /&gt;
&lt;br /&gt;
===Universal Uploads===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать возможность закачивать в RM абстрактные (не привязанные к какому-либо продукту) файлы. При этом каждому такому файлу должен быть по-умолчанию присвоен срок жизни - 30 дней. После чего файл автоматически удаляется. Файлы можно защищать паролем, который требуется для скачки.&lt;br /&gt;
&lt;br /&gt;
Каждый файл привязан к какому-либо юзеру. Только у этого пользователя (или у администратора) есть возможность добавлять к своему аккаунту файлы или удалять их. Каждую закачку можно удалить или обновить файл в ней.&lt;br /&gt;
&lt;br /&gt;
Соответственно, необходимо создать две новых вьюхи:&lt;br /&gt;
&lt;br /&gt;
1) Вьюха создания закачки. Опции: текстедит срок жизни (по-умолчанию вбито 30), чекбокс защитить паролем, путь к файлу.&lt;br /&gt;
&lt;br /&gt;
2) Вьюха список закачек данного юзера. Отображать: имя файла, количество скачек, оставшийся срок жизни, дата закачки. Имя файла является ссылкой на данный файл (вида rm.medialooks.com/...).&lt;br /&gt;
&lt;br /&gt;
В меню каждого юзера должно быть что-то вроде &amp;quot;My Uploads&amp;quot;, которая ведет на вьюху (2).&lt;br /&gt;
&lt;br /&gt;
===Customer Access===&lt;br /&gt;
&lt;br /&gt;
Нужно научицо давать кастомерам доступ к аплоадам. Для этого нужно реализовать в RM еще одну роль - &amp;quot;Customer&amp;quot;. Роль &amp;quot;User&amp;quot; нужно переименовать в &amp;quot;Developer&amp;quot;. Каждый контакт, добавленный в систему, должен получать соотв. статус и автоматически сгенеренный пароль. Никаких писем при заведении пользователей пока автоматически рассылать не надо. Однако, при первой попытке зайти в систему, кастомер должен по почте получить свой пароль. Залогинившись, он имеет доступ только к своим аплоадам (в будущем добавим еще подписки и лицензии).&lt;br /&gt;
&lt;br /&gt;
===Search===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать поиск в системе. Форма поиска - одна на все случаи. Она должна размещаться на всех страницах системы.&lt;br /&gt;
&lt;br /&gt;
По каким полям искать:&lt;br /&gt;
&lt;br /&gt;
* По контактам.&lt;br /&gt;
* По названию клиента.&lt;br /&gt;
* По тегу клиента.&lt;br /&gt;
&lt;br /&gt;
'''Пример.''' Если в поле поиска ввден запрос:&lt;br /&gt;
&lt;br /&gt;
Andrew A. Okunev &amp;lt;dev@medialooks.com&amp;gt; (MediaLooks)&lt;br /&gt;
&lt;br /&gt;
- то сперва нужно произвести поиск отдельно по &amp;quot;Osman Yel&amp;quot;, &amp;quot;dev@medialooks.com&amp;quot; и &amp;quot;MediaLooks&amp;quot;. Эти результаты вывести в первую очередь.&lt;br /&gt;
&lt;br /&gt;
Во-вторую - выделить из поисковой строки название домена и отрезать от него домен первого уровня. Т.е. в нашем примере искать по строке &amp;quot;medialooks&amp;quot;. Эти результаты вывести во вторую очередь.&lt;br /&gt;
&lt;br /&gt;
Кроме этого, естественно должен работать поиск в том случае если исходный запрос это &amp;quot;dev@medialooks.com&amp;quot; или просто &amp;quot;medialooks&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===LinkedIn Integration===&lt;br /&gt;
&lt;br /&gt;
Зачем? Любая система управления контактами страдает одним недостатком - ей неоткуда узнать о том, что у кого-то поменялся email или телефон.&lt;br /&gt;
&lt;br /&gt;
Предполагается что пользователи LinkedIn (за исключением [http://www.linkedin.com/pub/2/26b/926 некоторых] поддерживают свой профиль в актуальном состоянии. В частности, следят за тем, чтобы в профиле был актуальный email.&lt;br /&gt;
&lt;br /&gt;
В результате хочется получить поддержку следующих сценариев:&lt;br /&gt;
&lt;br /&gt;
* Узнавать об изменениях в контактной информации наших клиентов.&lt;br /&gt;
* Приглашать в нашу сеть клиентов, которые уже используют LinkedIn.&lt;br /&gt;
* Приглашать в LinkedIn тех клиентов, которые его пока не используют.&lt;br /&gt;
* Если клиент для общение с нами использует один email, а для LinkedIn - другой, - то нам нужно узнать этот email и использовать его как запасной/альтернативный.&lt;br /&gt;
&lt;br /&gt;
Для начала думаю следует просто проверить, позволяет ли API делать следующее:&lt;br /&gt;
&lt;br /&gt;
* Авторизоваться в системе под каким-то реальным логином (например, подо мной).&lt;br /&gt;
* Поискать пользователей по email.&lt;br /&gt;
* Получить email любого из моих контактов.&lt;br /&gt;
* Послать конкретному пользователю инвайт, иметь возможность указать кастомный текст для инвайта.&lt;br /&gt;
* Пригласить нового пользователя через email, то же самое с кастомным текстом.&lt;br /&gt;
&lt;br /&gt;
Задача неактуальна поскольку как я понял от LinkedIn нужно сначала получить одобрение на использование API:&lt;br /&gt;
&lt;br /&gt;
* http://www.linkedin.com/static?key=developers_apis&lt;br /&gt;
&lt;br /&gt;
==Done Tasks==&lt;br /&gt;
&lt;br /&gt;
* [[LMS/CMS Tasks: Done]]&lt;br /&gt;
&lt;br /&gt;
[[Category: Tasks]]&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Ivan</name></author>	</entry>

	<entry>
		<id>http://wiki.avobjects.com/Dev:RM/LMS_Tasks</id>
		<title>Dev:RM/LMS Tasks</title>
		<link rel="alternate" type="text/html" href="http://wiki.avobjects.com/Dev:RM/LMS_Tasks"/>
				<updated>2009-12-10T14:42:57Z</updated>
		
		<summary type="html">&lt;p&gt;Ivan: /* Current */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See also:&lt;br /&gt;
&lt;br /&gt;
* [[Dev:Tasks To Complete Before We Can Papustico!]]&lt;br /&gt;
* [[CMS Tasks]]&lt;br /&gt;
* [[Dev:Communication System]]&lt;br /&gt;
* [[Dev: Support System Roles]]&lt;br /&gt;
* [[Dev: RM User Rights]]&lt;br /&gt;
* [[Dev: RM Licensing Feature Update]]&lt;br /&gt;
* [[Dev: Serge Tasks]]&lt;br /&gt;
&lt;br /&gt;
==RM/LMS Tasks==&lt;br /&gt;
&lt;br /&gt;
==DONE==&lt;br /&gt;
* [bug] Откуда-то взялся кейс in progress без асайна - [http://rm.medialooks.com/messages/show/1586].&lt;br /&gt;
'''забить, он старый'''&lt;br /&gt;
&lt;br /&gt;
* [bug] При паттписке-атписке из кейса выскакивает явоскрпитовый диалог с цифрами (например, 68).&lt;br /&gt;
&lt;br /&gt;
* [bug] Чичас после нажатия на Send emails в [http://rm.medialooks.com/distributives/show/39 релизах] в гуйне ничо не происходит. Т.е. кажецо что ты промахнулсо и хочецо нажать кнопку исчо раз. Хотя на самом деле все срабатывает (письма шлюцо) и если со страницы уйти то из [http://rm.medialooks.com/distributives списка] этот продукт исчезнет.&lt;br /&gt;
'''происходит, но долго'''&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] При создании или редактировании лицензии. Убрать галку &amp;quot;Send license files&amp;quot; и добавить просто новую кнопку &amp;quot;Save and Send License Files&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] Добавть ссылочку Re-send License Files прямо рядом с Edit License. Update переименовать в Renew. Пункты меню расположить так: Renew License | Edit License | Re-send License Files | Delete License.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] Ссылочку Add License поместить над списком лицензий и назвать Add New License.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] Notes в свойствах лицензии нужно выводить красным.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/messages/new_cases/SM] Для всех вариантов отображения списка кейсов. В табличке со списком выводить также статус (In progess, waiting, etc.) - предпоследней колонкой.&lt;br /&gt;
&lt;br /&gt;
* [note] Добавить бряк после номера версии в тексте релилз ноутс который вставляется в subscribe.&lt;br /&gt;
&lt;br /&gt;
* [note] Для license_file.rhtml нужно новое условие - триальная лицензия или нет. Т.к. текст в этом случае другой.&lt;br /&gt;
'''оно там есть, просто называецо нетривиально: &amp;lt;% if @expiration_date %&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/] Писать дату рядом с номером версии на главной странице.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer] В списке кастомеров выводить еще и company таг (первой колонкой).&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/control] Не нужна такая длинная простыня изменений на странице рестарт апдейт RM. А когда она делает рестарт хотелось бы какой-нить индикации.&lt;br /&gt;
'''с индикацией сложности, давай пока это повисит'''&lt;br /&gt;
&lt;br /&gt;
* Када дуплицируецо кейс нада в логе выводить ссылку на дочерний кейс. Ссылка на родительский кейс сейчас есть, а вот наоборот - &lt;br /&gt;
'''сделал'''&lt;br /&gt;
&lt;br /&gt;
нету. Кроме этого, хорошо бы в обоих случаях (родитель и дочко) выводить вверху что-то вроде This case has parent cases:&amp;lt;br&amp;gt;* Subject или This case has child cases...&lt;br /&gt;
'''с этим сложности. ща это помечается в логе, который может сожержать все что угодно'''&lt;br /&gt;
&lt;br /&gt;
* Добавить тайтлы к страницам RM. Там должно быть все очевидно. Ну типа если это кейс то его сабжект, если это кастомер то название кастомера, если юзер то имя юзера. Остальное - по названию менюшек (Product, Customers, etc.).&lt;br /&gt;
&lt;br /&gt;
* Для мейловых кейсов убрать квоту втыкаемую в окошки эдитов (сейчас она втыкается как в интернал, так и во внешний камент). Из интернал вообще убрать. Для экстернал - убрать из едита но прикручивать к письму при отправке.&lt;br /&gt;
&lt;br /&gt;
==TODO==&lt;br /&gt;
&lt;br /&gt;
===Current===&lt;br /&gt;
&lt;br /&gt;
* [bug] При создании лицензии когда делаешь триальную неправильно рассчитывается плюс один месяц.&lt;br /&gt;
'''fixed'''&lt;br /&gt;
&lt;br /&gt;
* Почему-то у всех ощущение что наши письма стали чаще попадать в спам. Надо проверить как у нас шлюцо письма. Мошт в хидерах чота не так?&lt;br /&gt;
'''примеры с хидерами накидай плиз с rm_monitor'''&lt;br /&gt;
&lt;br /&gt;
* Копии в кейсах.&lt;br /&gt;
&lt;br /&gt;
* Квота по-прежнему выткается в интернал камент.&lt;br /&gt;
'''только когда окошко с интернл камментом открыто. нажимаешь там внизу cancel и опять квота в окно ответа идет. это фича'''&lt;br /&gt;
&lt;br /&gt;
* [bug] Берем (предположительно) любой кейс. Пускай это будет кастомер у которого 2 или более контактов и пускай на текущий момент у кейса только один партисипант. Добавляем сообщение и при этом добавляем еще одного участника (ставим галочку). Сообщение добавляется, теперь у кейса два участника, все ОК. Теперь делаем интернал камент (не важно с асайном или без) - дополнительные участники пропадают. Баг повторяется в случае если участников добавлять через email.&lt;br /&gt;
&lt;br /&gt;
* Проблемы с доступам к кейсам нескольких юзеров. Надо обсудить. Исходный кейс вот [http://rm.medialooks.com/messages/show/28265 тут].&lt;br /&gt;
&lt;br /&gt;
* Нерпальное оформление квот (не распознаюцо гмейлом). Отладицо под него.&lt;br /&gt;
* Этот [http://rm.medialooks.com/messages/show/26560 кейс] как я понимаю теперь болтается вне всяких очередей?&lt;br /&gt;
'''похоже на то. ты просто сделал create mail case и все?'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Dev:CRM Tasks]]&lt;br /&gt;
* В случае когда кастомер [http://rm.medialooks.com/messages/show/13168 ссылается на другой кейс] нужно придумать как в него попадать из вьюхи просмотра кейса в RM.&lt;br /&gt;
* Как аттачить прайс лист к письмам таким образом чтобы каждый раз заново не заливать? Мне кажется проще всего залить прайс как продукт. Тогда и подписка нужных людей на него сразу заработает. Вопрос - как заимплементить механизм аттачинга удобный?&lt;br /&gt;
* Никак не могу придумать что делать с [http://rm.medialooks.com/messages/show/16519 такими] кейсами.&lt;br /&gt;
* Поисследуй плиз можно ли как-то засунуть батовские почтовые базы в Gmail. Например, есть [http://www.gmail-backup.com/ такая штука.]&lt;br /&gt;
&lt;br /&gt;
===Mail Cases with Screwed Up Formatting===&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/messages/show/26572]&lt;br /&gt;
&lt;br /&gt;
===To Think About===&lt;br /&gt;
&lt;br /&gt;
* Как сделать FTP с per customer паролями?&lt;br /&gt;
* Как добавить features и подписку кастомеров на них?&lt;br /&gt;
* Что делать с контактами когда у двух людей одинаковый email? Пример - mbcradio.&lt;br /&gt;
&lt;br /&gt;
===Important CRM/Email-Related Fixes===&lt;br /&gt;
&lt;br /&gt;
* Сделать возможность CC на кейс.&lt;br /&gt;
&lt;br /&gt;
* Сделать фичу слежения за кейсами.&lt;br /&gt;
&lt;br /&gt;
* Мердждинг кейсов.&lt;br /&gt;
&lt;br /&gt;
===Bugs, Fixes, Questions===&lt;br /&gt;
&lt;br /&gt;
* Нужно проверить что это не глюки у нас (такое кол-во закачек) и залочить чувака [http://rm.medialooks.com/messages/show/1700].&lt;br /&gt;
&lt;br /&gt;
* [unconfirmed] При наличии customer с некоторым email не срабатывает подписка этого email на любой продукт. Запрет должен срабатывать только в случае если лицензия есть именно на этот продукт (возможно, тут надо еще добавить логику про наследованные продукты).&lt;br /&gt;
&lt;br /&gt;
* [Bug] Не работает напоминалка проля в даунлоадах.&lt;br /&gt;
&lt;br /&gt;
* Сбрасывается инфо при вводе уже зареганого email.&lt;br /&gt;
&lt;br /&gt;
* Красные буквы при вводе adsf@medialooks.com.&lt;br /&gt;
&lt;br /&gt;
* Не обрабатываются ошибки типа wrong password в даунлоадз.&lt;br /&gt;
&lt;br /&gt;
* В моей опере никогда не начинаются даунлоады автоматом.&lt;br /&gt;
&lt;br /&gt;
===RM Access Rights===&lt;br /&gt;
&lt;br /&gt;
* Сейчас если зайти на главную под пользовтелем cthomson@medialooks.com (Reseller/Sales Manager) то у него нет столбца Customers. Нужно добавить и выводить там соответственно только доступных ему кастомеров.&lt;br /&gt;
&lt;br /&gt;
===Подписки===&lt;br /&gt;
&lt;br /&gt;
* Подписка Update Discount Expiration. Ввести для лицензий которые expired только после 01.12.2009. Т.е. письма по этой подписке должны начать ходить примерно с 01.05.2010.&lt;br /&gt;
&lt;br /&gt;
* Новая подписка license_expred_followup - которая будет запускацо спустя 4 месяца после истечения подписки. Там написано что через 2 месяца закончицо скидка 50% на продление лицензии. (Кстати идея - может давать доп. скидку за продление в течение месяца после истечения паттписки - типа 65%?)&lt;br /&gt;
&lt;br /&gt;
===Backups to Amazon S3===&lt;br /&gt;
&lt;br /&gt;
Давай будем наш бэкапный файл закачивать на амазон раз в неделю. Я сделал там аккаунт.&lt;br /&gt;
&lt;br /&gt;
===Tasks===&lt;br /&gt;
&lt;br /&gt;
* [Отложено] New email setup. Нужно засетапить новый домен medialooks-team.com. Мы будем его использовать для следующего - чтобы слать и принимать почту с двух общих адресов - &amp;lt;sales@medialooks-team.com&amp;gt; и &amp;lt;dev@medialooks-team.com&amp;gt;. Почему-то очень многие закачики тупо не получают наши письма. Если это не поможет то нам придется переходить на полностью web-based общение с кастомерами.&lt;br /&gt;
&lt;br /&gt;
* Разобрацо в чем проблема с настройкой goals в гугле.&lt;br /&gt;
&lt;br /&gt;
* Добавить в шаблоны писем (шаблон рассылки нового релиза, 2 шаблона license expired) возможность вставлять &amp;quot;License update link&amp;quot; в случае если такая ссылка указана в свойствах продукта (типа IF License update link exists - вставить следующее). Прислать мне файло шаблонов на редактирование (могу сам залезть но надо настроить тада SVN твой).&lt;br /&gt;
&lt;br /&gt;
* Сделать урлы в свойствах кастомера кликабл.&lt;br /&gt;
&lt;br /&gt;
* Cross-promotion subscriptions.&lt;br /&gt;
&lt;br /&gt;
* Если переименовать продукт, то перестает работать общая ссылка на даунлоад и по-версионные ссылки.&lt;br /&gt;
&lt;br /&gt;
* Contact as System Item (see task description).&lt;br /&gt;
&lt;br /&gt;
* Search (see task description).&lt;br /&gt;
&lt;br /&gt;
* Сортировка по тагам во вьюхе кастомеров. Статистика по тагам.&lt;br /&gt;
&lt;br /&gt;
* Добавить вывод количества лицензионных подписок в графу &amp;quot;Site Subscribers&amp;quot;. Графу переименовать в &amp;quot;Subscribers (Interested/Licensed)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* Общие рассылки. Научиться делать рассылки по всем клиентам. Это должна быть отдельная подписка.&lt;br /&gt;
&lt;br /&gt;
* Персонализированный учет закачек. Мы хотим про каждого клиента знать скачивает он новые версии или нет. В письме, которое он получает при выходе новой версии, можно делать уникальный урл, чтобы система знала нажал он или нет. Второй подход - это использовать куки на тот случай, если клиент скачивает с сайта.&lt;br /&gt;
&lt;br /&gt;
* Статистика закачек. Научицо разделять новые (приходящие с рекламы или из поиска) и повторные (наши кастомеры качают новые версии) закачки.&lt;br /&gt;
&lt;br /&gt;
* Подумать. Если есть идеи как интегрировать с Google Analytics (GA)  AdWords (AW) - было бы клева. Например вытаскивать из GA данные о посещениях конкретной страницы и сравнивать их с данными по закачкам.&lt;br /&gt;
&lt;br /&gt;
* Проблема с возможностью создать продукт у которого все версии - беты. И тогда не работает общая ссылка.&lt;br /&gt;
&lt;br /&gt;
* Проблема с RSS-фидом блога (у меня почему-то аутлук пытаецо запустицо).&lt;br /&gt;
&lt;br /&gt;
* Research on online license document generation. Существует ли какой-нить вебовский генератор PDF?&lt;br /&gt;
&lt;br /&gt;
* Создавать в Google Blog Search и Google Alerts фиды по тегам клиента, подсасывать их и демонстрировать мышап на странице клиента. :)))&lt;br /&gt;
&lt;br /&gt;
* Исследовать возможность автоматически создавать для каждого контакта в RM аккаунт в вике, принадлежащий определенной группе.&lt;br /&gt;
&lt;br /&gt;
* Убивать разделительные знаки в поле contacts (елси это телефон). Нужно для того чтобы можно было искать по номеру телефона в почтовой базе.&lt;br /&gt;
&lt;br /&gt;
* Сортировка по дате последнего релиза вот [http://rm.medialooks.com/distributives тут].&lt;br /&gt;
&lt;br /&gt;
* В RM надо сделать напоминалки для нас об истечении лицензий у кастомеров. (Чтобы пинать/напоминать руками.)&lt;br /&gt;
&lt;br /&gt;
* Поиск кастомеров и контактов по странам в RM.&lt;br /&gt;
&lt;br /&gt;
* Дать возможность редактировать meeting results.&lt;br /&gt;
&lt;br /&gt;
* Доработать функционал реселлеров. Например, чтобы про кастомера было видно что он привязан к некоторому реселлеру ([http://rm.medialooks.com/customer/show/364 пример]).&lt;br /&gt;
&lt;br /&gt;
* Придумать что-нибудь с аттачами. Добавить их в темплейт или как-то иначе автоматизировать. Не забыть про то что он обновляется (автоматизировать?) - может как отдельный продукт его или в этом роде... Нужно уметь видеть версию прайса кот. была отправлена.&lt;br /&gt;
&lt;br /&gt;
* Ручная блокировка аккунта. Выдавать сообщение &amp;quot;Your account has been suspended. Please contact MediaLooks in order to unlock your account.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Выводить количество кастомерских кейсов в скобкаъ на странице кастомера.&lt;br /&gt;
&lt;br /&gt;
* Выводить едишен лицензии в ее свойствах на стр. кастомера.&lt;br /&gt;
&lt;br /&gt;
* Надо различать даунлоады по продуктам (например QT DS и QT Plugin).&lt;br /&gt;
&lt;br /&gt;
* Вот в [http://rm.medialooks.com/product/licenses/22 этой] вьюхе выводить сначала триальные, потом expired лицензии. Триальные лицензии нужно помечать каким-то визуальным образом.&lt;br /&gt;
&lt;br /&gt;
* Тайтлы страниц в RM. Расписать подробнее что где нужно.&lt;br /&gt;
&lt;br /&gt;
* Выводить где-то отдельно триальные лицензии, чтобы можно было пинать кастомеров по ним.&lt;br /&gt;
&lt;br /&gt;
* Нужен способ задать реселлера со страницы кастомера. И нужно на странице кастомера это видеть.&lt;br /&gt;
&lt;br /&gt;
* Сделать опции go to case by number в обоих интерфейсах RM.&lt;br /&gt;
&lt;br /&gt;
* Логгировать даунлоады и выводить в кейсах последнюю скачанную пользователем версии.&lt;br /&gt;
&lt;br /&gt;
* Когда дискуссия идет в теме даунлоад - новые даунлоады ее обновляют что неудобно.&lt;br /&gt;
&lt;br /&gt;
* Идея. Вести две простыни release notes. Одна что вписал девелопер. Другую - что отправлено кастомерам.&lt;br /&gt;
&lt;br /&gt;
* Добавить список аттачей к письму про апдейт кейса.&lt;br /&gt;
&lt;br /&gt;
* Некоторым заказчикам нужно дать возможность заливать на FTP с паролем.&lt;br /&gt;
&lt;br /&gt;
* Надо бы разрешить just comment to customer без реасайна кейса.&lt;br /&gt;
&lt;br /&gt;
* Продумать логику один контакт - две конторы. Пример videoassistech. У него разные адреса для разных случаев.&lt;br /&gt;
&lt;br /&gt;
* Нужно разработать функцию CC case. Там выбираешь N людей кот. кейс как бы идет копией до тех пор пока они не нажпут dismiss.&lt;br /&gt;
&lt;br /&gt;
* [17:40:21] Vsevolod V. Burkutsky: ещё одна мысль - что-бы тикеты от одинаковых чуваков типа как в дереве лежали&lt;br /&gt;
&lt;br /&gt;
* Добавить опцию резолвинга кейса после отправки internal comment, без посылки кастомеру чего-либо.&lt;br /&gt;
&lt;br /&gt;
* Добавить опцию зиповать лиц. файлы при отправке.&lt;br /&gt;
&lt;br /&gt;
* Автоматизировать пиналки, кот. занимается Ольга.&lt;br /&gt;
&lt;br /&gt;
* Сделать независимыми RM и даунлоады. Если лежит RM не должны лежать даунлоады. Хз чо как сделать.&lt;br /&gt;
&lt;br /&gt;
* Галка would you like us to send you an email a few days prior to the expiration of your evaluation license?&lt;br /&gt;
&lt;br /&gt;
===Это потом===&lt;br /&gt;
&lt;br /&gt;
* Переделать форму контактов на сайте. Добавить возможность указать второй email. Отдельные поля под скайп, телефон.&lt;br /&gt;
&lt;br /&gt;
* Подписка royalties.&lt;br /&gt;
&lt;br /&gt;
===[Отложено] Communication Monitor===&lt;br /&gt;
&lt;br /&gt;
Сперва обсудить: может сразу делать web-based ticketing system?&lt;br /&gt;
&lt;br /&gt;
Коммуникация - это в данном случае одно из трех:&lt;br /&gt;
&lt;br /&gt;
1) Кастомер заполнил контактную форму на сайте. Насколько я знаю, в этом случае все данные попадают в базу и там храняцо (если трафик платный то [http://www.medialooks.com/admin/block_admin/53 сюда] лучше не нажимать).&lt;br /&gt;
&lt;br /&gt;
2) На один из двух адресов - &amp;lt;sales@medialooks-team.com&amp;gt; и &amp;lt;dev@medialooks-team.com&amp;gt; получено письмо от кастомера.&lt;br /&gt;
&lt;br /&gt;
3) Мы послали кастомеру письмо с одного из двух адресов (во всех случаях мы ставим BCC на адрес, с которого пишем).&lt;br /&gt;
&lt;br /&gt;
В RM нужно реализовать три списка:&lt;br /&gt;
&lt;br /&gt;
1) Список коммуникаций типа (1), на которые не было ответа с одного из двух адресов в течение N часов. &lt;br /&gt;
&lt;br /&gt;
2) Список коммуникаций типа (2), на которые не было ответа с одного из двух адресов в течение M часов. &lt;br /&gt;
&lt;br /&gt;
3) Список коммуникаций типа (3), в случае если от кастомера не было ответа в течение D рабочих дней.&lt;br /&gt;
&lt;br /&gt;
В обоих случаях выводить в таблице всю инфо, которая есть на данный email - телефон, скайп, ссылка на кастомеров, у которых в контактах числицо такой email (см. также &amp;quot;Contact as System Item&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
N, M и D нужно дать возможность конфигурить через гуй RM.&lt;br /&gt;
&lt;br /&gt;
В первом приближении выводить тела писем не нужно. Но в будуем мне кажется мы все равно к этому придем. Поэтому хранить можно уже начинать.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Customer download tracking===&lt;br /&gt;
&lt;br /&gt;
* Индивидуальные даунлоад ссылки для отслеживания какой подписчик нажал на сцылку.&lt;br /&gt;
* Отписка или оповещение администратора о подписчиках который не нажимают на ссылки (признак того что не получают письма или не читают их - но при этом по какой-то причине не отписываются).&lt;br /&gt;
&lt;br /&gt;
===Наследование/объединение продуктов===&lt;br /&gt;
&lt;br /&gt;
Необходимо поддержать два следующих сценария:&lt;br /&gt;
&lt;br /&gt;
1) Существует продукт DirectShow Filter Pack - он включает в себя большой набор DirectShow фильтров. Каждый фильтр релизится по своему графику (т.е. без графика) - поэтому отдельного download для него не существует. Т.е. продукт в данном случае это просто такая лицензия, т.е. совокупность цены и набора компонентов. В RM возможность создавать такие лицензии должна быть реализована в виде продукта в общем списке - просто у него будут какие-то дополнительные свойства как-то &amp;quot;включать в себя такие-то продукты&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Соответственно, при создании лицензии на такой продукт нужно сделать так чтобы:&lt;br /&gt;
&lt;br /&gt;
* Контакты кастомера могли быть подписаны на релизы (updates) по каждому из продуктов отдельно. По-умолчанию - создается подписка на все входящие в пакет продукты. Отписаться от каждого из продуктов в отдельности можно через сцылку на отписку из письма или это можно сделать через редактирование свойств лицензии.&lt;br /&gt;
&lt;br /&gt;
* Контакты кастомера не были дубликатно подписаны на эти же самые продукты через другие механизмы RM.&lt;br /&gt;
&lt;br /&gt;
* Подписка License Expired в данном случае остается одна - только на общий продукт. Но в случае, если подписка истекла, то при рассылке Release Updates в тело письма вставляется соотв. сообщение (т.к. это сейчас сделано для обычных лицензий).&lt;br /&gt;
&lt;br /&gt;
* В случае если для продукты DirectShow Filter Pack - RM конечно же имеет право наложить в штаны но после этого должен немедленно собрацо и вести себя так как будто он точно знает что нужно делать - а именно вести себя так как будто DirectShow Filter Pack это самый обычный продукт (т.е. появитсо в Distributives и дать возможность сделать рассылку). Т.е. обычная рассылка Release Updates для продукта такого типа тоже создаецо.&lt;br /&gt;
&lt;br /&gt;
2) Существуют продукты DeckLink SDK, Playout SDK и Multimedia SDK, для которых мы решили в целях упрощения использовать общий даунлоад. В данном случае все остается как есть - т.е. лицензии создаются именно под эти продукты, отдельно ведется статистика подписок, лицензий и закачек - но используется только один download.&lt;br /&gt;
&lt;br /&gt;
Например, мы говорим что DeckLink SDK и Playout SDK - оба используют download Multimedia SDK. Разработчик закачивает новый релиз именно для Multimedia SDK. Этот новый релиз появляется в разделе Distributives. Я его модерю, нажимаю сделать рассылку - и, как и раньше, выходят три блока писем - для DeckLink SDK, Playout SDk и Multimedia SDK.&lt;br /&gt;
&lt;br /&gt;
Особенность: ссылка во всех письмах теперь называется multimedia sdk. Делать редиректы и переименования - не надо (иначе клиенты будут говорить я скачал Playout SDK а мне ставится Multimedia SDK).&lt;br /&gt;
&lt;br /&gt;
===Industry-Based Subscriptions===&lt;br /&gt;
&lt;br /&gt;
Добавить возможность создавать рассылки по индустриям. В целом все аналогично тому как сейчас работают подписки на новые релизы. Можно подписывать контакты руками. А при рассылке заодно рассылать тем, кто является клиентом какого-либо продукта и тоже записан в эту индустрию.&lt;br /&gt;
&lt;br /&gt;
Возможно, когда у нас появятся разные способы делать рассылки, придется придумывать способы не слать дважды по одному и тому же поводу. Например, заводить для рассылки какой-нибудь ID.&lt;br /&gt;
&lt;br /&gt;
===Contact as System Item===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать контакты как самостоятельную сущность.&lt;br /&gt;
&lt;br /&gt;
Контакт представляет из себя имя (текстовое поле например &amp;quot;Andrew Okunev) и ассоциированный c ним набор полей:&lt;br /&gt;
&lt;br /&gt;
* email name (используется в подстановках в письмах; если пусто, используется &amp;quot;customer&amp;quot;)&lt;br /&gt;
* email (любое количество)&lt;br /&gt;
* skype (любое количество)&lt;br /&gt;
* телефон (любое количество)&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать отображение и редактирование свойств для любого из контактов. Например:&lt;br /&gt;
&lt;br /&gt;
* Когда добавлен в систему&lt;br /&gt;
* С какими компаниями (Customers) ассоциирован.&lt;br /&gt;
* С какими лицензиями ассоциирован.&lt;br /&gt;
* На какие подписки подписан.&lt;br /&gt;
&lt;br /&gt;
Все это нужно реализовать в одной вьюхе. Редактирование доступно только администратору системы.&lt;br /&gt;
&lt;br /&gt;
Примечания:&lt;br /&gt;
&lt;br /&gt;
* В системе должны отсутствовать дубликаты по email. Дубликаты по имени допустимы (т.е. когда одинаковое имя но разный email), но должна быть возможность их соединить (т.е. превратить в один контакт с двумя email). Реализовать это можно через отдельную вьюху, доступную администратору.&lt;br /&gt;
&lt;br /&gt;
* Если у контакта больше одного email, то любой из них может использоваться для авторизации.&lt;br /&gt;
&lt;br /&gt;
* Новый контакт (как сущность) создается при любом добавлении контакта в систему (например, при создании подписки через модуль subscribers.&lt;br /&gt;
&lt;br /&gt;
===Universal Uploads===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать возможность закачивать в RM абстрактные (не привязанные к какому-либо продукту) файлы. При этом каждому такому файлу должен быть по-умолчанию присвоен срок жизни - 30 дней. После чего файл автоматически удаляется. Файлы можно защищать паролем, который требуется для скачки.&lt;br /&gt;
&lt;br /&gt;
Каждый файл привязан к какому-либо юзеру. Только у этого пользователя (или у администратора) есть возможность добавлять к своему аккаунту файлы или удалять их. Каждую закачку можно удалить или обновить файл в ней.&lt;br /&gt;
&lt;br /&gt;
Соответственно, необходимо создать две новых вьюхи:&lt;br /&gt;
&lt;br /&gt;
1) Вьюха создания закачки. Опции: текстедит срок жизни (по-умолчанию вбито 30), чекбокс защитить паролем, путь к файлу.&lt;br /&gt;
&lt;br /&gt;
2) Вьюха список закачек данного юзера. Отображать: имя файла, количество скачек, оставшийся срок жизни, дата закачки. Имя файла является ссылкой на данный файл (вида rm.medialooks.com/...).&lt;br /&gt;
&lt;br /&gt;
В меню каждого юзера должно быть что-то вроде &amp;quot;My Uploads&amp;quot;, которая ведет на вьюху (2).&lt;br /&gt;
&lt;br /&gt;
===Customer Access===&lt;br /&gt;
&lt;br /&gt;
Нужно научицо давать кастомерам доступ к аплоадам. Для этого нужно реализовать в RM еще одну роль - &amp;quot;Customer&amp;quot;. Роль &amp;quot;User&amp;quot; нужно переименовать в &amp;quot;Developer&amp;quot;. Каждый контакт, добавленный в систему, должен получать соотв. статус и автоматически сгенеренный пароль. Никаких писем при заведении пользователей пока автоматически рассылать не надо. Однако, при первой попытке зайти в систему, кастомер должен по почте получить свой пароль. Залогинившись, он имеет доступ только к своим аплоадам (в будущем добавим еще подписки и лицензии).&lt;br /&gt;
&lt;br /&gt;
===Search===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать поиск в системе. Форма поиска - одна на все случаи. Она должна размещаться на всех страницах системы.&lt;br /&gt;
&lt;br /&gt;
По каким полям искать:&lt;br /&gt;
&lt;br /&gt;
* По контактам.&lt;br /&gt;
* По названию клиента.&lt;br /&gt;
* По тегу клиента.&lt;br /&gt;
&lt;br /&gt;
'''Пример.''' Если в поле поиска ввден запрос:&lt;br /&gt;
&lt;br /&gt;
Andrew A. Okunev &amp;lt;dev@medialooks.com&amp;gt; (MediaLooks)&lt;br /&gt;
&lt;br /&gt;
- то сперва нужно произвести поиск отдельно по &amp;quot;Osman Yel&amp;quot;, &amp;quot;dev@medialooks.com&amp;quot; и &amp;quot;MediaLooks&amp;quot;. Эти результаты вывести в первую очередь.&lt;br /&gt;
&lt;br /&gt;
Во-вторую - выделить из поисковой строки название домена и отрезать от него домен первого уровня. Т.е. в нашем примере искать по строке &amp;quot;medialooks&amp;quot;. Эти результаты вывести во вторую очередь.&lt;br /&gt;
&lt;br /&gt;
Кроме этого, естественно должен работать поиск в том случае если исходный запрос это &amp;quot;dev@medialooks.com&amp;quot; или просто &amp;quot;medialooks&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===LinkedIn Integration===&lt;br /&gt;
&lt;br /&gt;
Зачем? Любая система управления контактами страдает одним недостатком - ей неоткуда узнать о том, что у кого-то поменялся email или телефон.&lt;br /&gt;
&lt;br /&gt;
Предполагается что пользователи LinkedIn (за исключением [http://www.linkedin.com/pub/2/26b/926 некоторых] поддерживают свой профиль в актуальном состоянии. В частности, следят за тем, чтобы в профиле был актуальный email.&lt;br /&gt;
&lt;br /&gt;
В результате хочется получить поддержку следующих сценариев:&lt;br /&gt;
&lt;br /&gt;
* Узнавать об изменениях в контактной информации наших клиентов.&lt;br /&gt;
* Приглашать в нашу сеть клиентов, которые уже используют LinkedIn.&lt;br /&gt;
* Приглашать в LinkedIn тех клиентов, которые его пока не используют.&lt;br /&gt;
* Если клиент для общение с нами использует один email, а для LinkedIn - другой, - то нам нужно узнать этот email и использовать его как запасной/альтернативный.&lt;br /&gt;
&lt;br /&gt;
Для начала думаю следует просто проверить, позволяет ли API делать следующее:&lt;br /&gt;
&lt;br /&gt;
* Авторизоваться в системе под каким-то реальным логином (например, подо мной).&lt;br /&gt;
* Поискать пользователей по email.&lt;br /&gt;
* Получить email любого из моих контактов.&lt;br /&gt;
* Послать конкретному пользователю инвайт, иметь возможность указать кастомный текст для инвайта.&lt;br /&gt;
* Пригласить нового пользователя через email, то же самое с кастомным текстом.&lt;br /&gt;
&lt;br /&gt;
Задача неактуальна поскольку как я понял от LinkedIn нужно сначала получить одобрение на использование API:&lt;br /&gt;
&lt;br /&gt;
* http://www.linkedin.com/static?key=developers_apis&lt;br /&gt;
&lt;br /&gt;
==Done Tasks==&lt;br /&gt;
&lt;br /&gt;
* [[LMS/CMS Tasks: Done]]&lt;br /&gt;
&lt;br /&gt;
[[Category: Tasks]]&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Ivan</name></author>	</entry>

	<entry>
		<id>http://wiki.avobjects.com/Dev:RM/LMS_Tasks</id>
		<title>Dev:RM/LMS Tasks</title>
		<link rel="alternate" type="text/html" href="http://wiki.avobjects.com/Dev:RM/LMS_Tasks"/>
				<updated>2009-12-10T14:37:27Z</updated>
		
		<summary type="html">&lt;p&gt;Ivan: /* Current */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See also:&lt;br /&gt;
&lt;br /&gt;
* [[Dev:Tasks To Complete Before We Can Papustico!]]&lt;br /&gt;
* [[CMS Tasks]]&lt;br /&gt;
* [[Dev:Communication System]]&lt;br /&gt;
* [[Dev: Support System Roles]]&lt;br /&gt;
* [[Dev: RM User Rights]]&lt;br /&gt;
* [[Dev: RM Licensing Feature Update]]&lt;br /&gt;
* [[Dev: Serge Tasks]]&lt;br /&gt;
&lt;br /&gt;
==RM/LMS Tasks==&lt;br /&gt;
&lt;br /&gt;
==DONE==&lt;br /&gt;
* [bug] Откуда-то взялся кейс in progress без асайна - [http://rm.medialooks.com/messages/show/1586].&lt;br /&gt;
'''забить, он старый'''&lt;br /&gt;
&lt;br /&gt;
* [bug] При паттписке-атписке из кейса выскакивает явоскрпитовый диалог с цифрами (например, 68).&lt;br /&gt;
&lt;br /&gt;
* [bug] Чичас после нажатия на Send emails в [http://rm.medialooks.com/distributives/show/39 релизах] в гуйне ничо не происходит. Т.е. кажецо что ты промахнулсо и хочецо нажать кнопку исчо раз. Хотя на самом деле все срабатывает (письма шлюцо) и если со страницы уйти то из [http://rm.medialooks.com/distributives списка] этот продукт исчезнет.&lt;br /&gt;
'''происходит, но долго'''&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] При создании или редактировании лицензии. Убрать галку &amp;quot;Send license files&amp;quot; и добавить просто новую кнопку &amp;quot;Save and Send License Files&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] Добавть ссылочку Re-send License Files прямо рядом с Edit License. Update переименовать в Renew. Пункты меню расположить так: Renew License | Edit License | Re-send License Files | Delete License.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] Ссылочку Add License поместить над списком лицензий и назвать Add New License.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] Notes в свойствах лицензии нужно выводить красным.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/messages/new_cases/SM] Для всех вариантов отображения списка кейсов. В табличке со списком выводить также статус (In progess, waiting, etc.) - предпоследней колонкой.&lt;br /&gt;
&lt;br /&gt;
* [note] Добавить бряк после номера версии в тексте релилз ноутс который вставляется в subscribe.&lt;br /&gt;
&lt;br /&gt;
* [note] Для license_file.rhtml нужно новое условие - триальная лицензия или нет. Т.к. текст в этом случае другой.&lt;br /&gt;
'''оно там есть, просто называецо нетривиально: &amp;lt;% if @expiration_date %&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/] Писать дату рядом с номером версии на главной странице.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer] В списке кастомеров выводить еще и company таг (первой колонкой).&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/control] Не нужна такая длинная простыня изменений на странице рестарт апдейт RM. А когда она делает рестарт хотелось бы какой-нить индикации.&lt;br /&gt;
'''с индикацией сложности, давай пока это повисит'''&lt;br /&gt;
&lt;br /&gt;
* Када дуплицируецо кейс нада в логе выводить ссылку на дочерний кейс. Ссылка на родительский кейс сейчас есть, а вот наоборот - &lt;br /&gt;
'''сделал'''&lt;br /&gt;
&lt;br /&gt;
нету. Кроме этого, хорошо бы в обоих случаях (родитель и дочко) выводить вверху что-то вроде This case has parent cases:&amp;lt;br&amp;gt;* Subject или This case has child cases...&lt;br /&gt;
'''с этим сложности. ща это помечается в логе, который может сожержать все что угодно'''&lt;br /&gt;
&lt;br /&gt;
* Добавить тайтлы к страницам RM. Там должно быть все очевидно. Ну типа если это кейс то его сабжект, если это кастомер то название кастомера, если юзер то имя юзера. Остальное - по названию менюшек (Product, Customers, etc.).&lt;br /&gt;
&lt;br /&gt;
* Для мейловых кейсов убрать квоту втыкаемую в окошки эдитов (сейчас она втыкается как в интернал, так и во внешний камент). Из интернал вообще убрать. Для экстернал - убрать из едита но прикручивать к письму при отправке.&lt;br /&gt;
&lt;br /&gt;
==TODO==&lt;br /&gt;
&lt;br /&gt;
===Current===&lt;br /&gt;
&lt;br /&gt;
* [bug] При создании лицензии когда делаешь триальную неправильно рассчитывается плюс один месяц.&lt;br /&gt;
&lt;br /&gt;
* Почему-то у всех ощущение что наши письма стали чаще попадать в спам. Надо проверить как у нас шлюцо письма. Мошт в хидерах чота не так?&lt;br /&gt;
&lt;br /&gt;
* Копии в кейсах.&lt;br /&gt;
&lt;br /&gt;
* Квота по-прежнему выткается в интернал камент.&lt;br /&gt;
&lt;br /&gt;
* [bug] Берем (предположительно) любой кейс. Пускай это будет кастомер у которого 2 или более контактов и пускай на текущий момент у кейса только один партисипант. Добавляем сообщение и при этом добавляем еще одного участника (ставим галочку). Сообщение добавляется, теперь у кейса два участника, все ОК. Теперь делаем интернал камент (не важно с асайном или без) - дополнительные участники пропадают. Баг повторяется в случае если участников добавлять через email.&lt;br /&gt;
&lt;br /&gt;
* Проблемы с доступам к кейсам нескольких юзеров. Надо обсудить. Исходный кейс вот [http://rm.medialooks.com/messages/show/28265 тут].&lt;br /&gt;
&lt;br /&gt;
* Нерпальное оформление квот (не распознаюцо гмейлом). Отладицо под него.&lt;br /&gt;
* Этот [http://rm.medialooks.com/messages/show/26560 кейс] как я понимаю теперь болтается вне всяких очередей?&lt;br /&gt;
'''похоже на то. ты просто сделал create mail case и все?'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Dev:CRM Tasks]]&lt;br /&gt;
* В случае когда кастомер [http://rm.medialooks.com/messages/show/13168 ссылается на другой кейс] нужно придумать как в него попадать из вьюхи просмотра кейса в RM.&lt;br /&gt;
* Как аттачить прайс лист к письмам таким образом чтобы каждый раз заново не заливать? Мне кажется проще всего залить прайс как продукт. Тогда и подписка нужных людей на него сразу заработает. Вопрос - как заимплементить механизм аттачинга удобный?&lt;br /&gt;
* Никак не могу придумать что делать с [http://rm.medialooks.com/messages/show/16519 такими] кейсами.&lt;br /&gt;
* Поисследуй плиз можно ли как-то засунуть батовские почтовые базы в Gmail. Например, есть [http://www.gmail-backup.com/ такая штука.]&lt;br /&gt;
&lt;br /&gt;
===Mail Cases with Screwed Up Formatting===&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/messages/show/26572]&lt;br /&gt;
&lt;br /&gt;
===To Think About===&lt;br /&gt;
&lt;br /&gt;
* Как сделать FTP с per customer паролями?&lt;br /&gt;
* Как добавить features и подписку кастомеров на них?&lt;br /&gt;
* Что делать с контактами когда у двух людей одинаковый email? Пример - mbcradio.&lt;br /&gt;
&lt;br /&gt;
===Important CRM/Email-Related Fixes===&lt;br /&gt;
&lt;br /&gt;
* Сделать возможность CC на кейс.&lt;br /&gt;
&lt;br /&gt;
* Сделать фичу слежения за кейсами.&lt;br /&gt;
&lt;br /&gt;
* Мердждинг кейсов.&lt;br /&gt;
&lt;br /&gt;
===Bugs, Fixes, Questions===&lt;br /&gt;
&lt;br /&gt;
* Нужно проверить что это не глюки у нас (такое кол-во закачек) и залочить чувака [http://rm.medialooks.com/messages/show/1700].&lt;br /&gt;
&lt;br /&gt;
* [unconfirmed] При наличии customer с некоторым email не срабатывает подписка этого email на любой продукт. Запрет должен срабатывать только в случае если лицензия есть именно на этот продукт (возможно, тут надо еще добавить логику про наследованные продукты).&lt;br /&gt;
&lt;br /&gt;
* [Bug] Не работает напоминалка проля в даунлоадах.&lt;br /&gt;
&lt;br /&gt;
* Сбрасывается инфо при вводе уже зареганого email.&lt;br /&gt;
&lt;br /&gt;
* Красные буквы при вводе adsf@medialooks.com.&lt;br /&gt;
&lt;br /&gt;
* Не обрабатываются ошибки типа wrong password в даунлоадз.&lt;br /&gt;
&lt;br /&gt;
* В моей опере никогда не начинаются даунлоады автоматом.&lt;br /&gt;
&lt;br /&gt;
===RM Access Rights===&lt;br /&gt;
&lt;br /&gt;
* Сейчас если зайти на главную под пользовтелем cthomson@medialooks.com (Reseller/Sales Manager) то у него нет столбца Customers. Нужно добавить и выводить там соответственно только доступных ему кастомеров.&lt;br /&gt;
&lt;br /&gt;
===Подписки===&lt;br /&gt;
&lt;br /&gt;
* Подписка Update Discount Expiration. Ввести для лицензий которые expired только после 01.12.2009. Т.е. письма по этой подписке должны начать ходить примерно с 01.05.2010.&lt;br /&gt;
&lt;br /&gt;
* Новая подписка license_expred_followup - которая будет запускацо спустя 4 месяца после истечения подписки. Там написано что через 2 месяца закончицо скидка 50% на продление лицензии. (Кстати идея - может давать доп. скидку за продление в течение месяца после истечения паттписки - типа 65%?)&lt;br /&gt;
&lt;br /&gt;
===Backups to Amazon S3===&lt;br /&gt;
&lt;br /&gt;
Давай будем наш бэкапный файл закачивать на амазон раз в неделю. Я сделал там аккаунт.&lt;br /&gt;
&lt;br /&gt;
===Tasks===&lt;br /&gt;
&lt;br /&gt;
* [Отложено] New email setup. Нужно засетапить новый домен medialooks-team.com. Мы будем его использовать для следующего - чтобы слать и принимать почту с двух общих адресов - &amp;lt;sales@medialooks-team.com&amp;gt; и &amp;lt;dev@medialooks-team.com&amp;gt;. Почему-то очень многие закачики тупо не получают наши письма. Если это не поможет то нам придется переходить на полностью web-based общение с кастомерами.&lt;br /&gt;
&lt;br /&gt;
* Разобрацо в чем проблема с настройкой goals в гугле.&lt;br /&gt;
&lt;br /&gt;
* Добавить в шаблоны писем (шаблон рассылки нового релиза, 2 шаблона license expired) возможность вставлять &amp;quot;License update link&amp;quot; в случае если такая ссылка указана в свойствах продукта (типа IF License update link exists - вставить следующее). Прислать мне файло шаблонов на редактирование (могу сам залезть но надо настроить тада SVN твой).&lt;br /&gt;
&lt;br /&gt;
* Сделать урлы в свойствах кастомера кликабл.&lt;br /&gt;
&lt;br /&gt;
* Cross-promotion subscriptions.&lt;br /&gt;
&lt;br /&gt;
* Если переименовать продукт, то перестает работать общая ссылка на даунлоад и по-версионные ссылки.&lt;br /&gt;
&lt;br /&gt;
* Contact as System Item (see task description).&lt;br /&gt;
&lt;br /&gt;
* Search (see task description).&lt;br /&gt;
&lt;br /&gt;
* Сортировка по тагам во вьюхе кастомеров. Статистика по тагам.&lt;br /&gt;
&lt;br /&gt;
* Добавить вывод количества лицензионных подписок в графу &amp;quot;Site Subscribers&amp;quot;. Графу переименовать в &amp;quot;Subscribers (Interested/Licensed)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* Общие рассылки. Научиться делать рассылки по всем клиентам. Это должна быть отдельная подписка.&lt;br /&gt;
&lt;br /&gt;
* Персонализированный учет закачек. Мы хотим про каждого клиента знать скачивает он новые версии или нет. В письме, которое он получает при выходе новой версии, можно делать уникальный урл, чтобы система знала нажал он или нет. Второй подход - это использовать куки на тот случай, если клиент скачивает с сайта.&lt;br /&gt;
&lt;br /&gt;
* Статистика закачек. Научицо разделять новые (приходящие с рекламы или из поиска) и повторные (наши кастомеры качают новые версии) закачки.&lt;br /&gt;
&lt;br /&gt;
* Подумать. Если есть идеи как интегрировать с Google Analytics (GA)  AdWords (AW) - было бы клева. Например вытаскивать из GA данные о посещениях конкретной страницы и сравнивать их с данными по закачкам.&lt;br /&gt;
&lt;br /&gt;
* Проблема с возможностью создать продукт у которого все версии - беты. И тогда не работает общая ссылка.&lt;br /&gt;
&lt;br /&gt;
* Проблема с RSS-фидом блога (у меня почему-то аутлук пытаецо запустицо).&lt;br /&gt;
&lt;br /&gt;
* Research on online license document generation. Существует ли какой-нить вебовский генератор PDF?&lt;br /&gt;
&lt;br /&gt;
* Создавать в Google Blog Search и Google Alerts фиды по тегам клиента, подсасывать их и демонстрировать мышап на странице клиента. :)))&lt;br /&gt;
&lt;br /&gt;
* Исследовать возможность автоматически создавать для каждого контакта в RM аккаунт в вике, принадлежащий определенной группе.&lt;br /&gt;
&lt;br /&gt;
* Убивать разделительные знаки в поле contacts (елси это телефон). Нужно для того чтобы можно было искать по номеру телефона в почтовой базе.&lt;br /&gt;
&lt;br /&gt;
* Сортировка по дате последнего релиза вот [http://rm.medialooks.com/distributives тут].&lt;br /&gt;
&lt;br /&gt;
* В RM надо сделать напоминалки для нас об истечении лицензий у кастомеров. (Чтобы пинать/напоминать руками.)&lt;br /&gt;
&lt;br /&gt;
* Поиск кастомеров и контактов по странам в RM.&lt;br /&gt;
&lt;br /&gt;
* Дать возможность редактировать meeting results.&lt;br /&gt;
&lt;br /&gt;
* Доработать функционал реселлеров. Например, чтобы про кастомера было видно что он привязан к некоторому реселлеру ([http://rm.medialooks.com/customer/show/364 пример]).&lt;br /&gt;
&lt;br /&gt;
* Придумать что-нибудь с аттачами. Добавить их в темплейт или как-то иначе автоматизировать. Не забыть про то что он обновляется (автоматизировать?) - может как отдельный продукт его или в этом роде... Нужно уметь видеть версию прайса кот. была отправлена.&lt;br /&gt;
&lt;br /&gt;
* Ручная блокировка аккунта. Выдавать сообщение &amp;quot;Your account has been suspended. Please contact MediaLooks in order to unlock your account.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Выводить количество кастомерских кейсов в скобкаъ на странице кастомера.&lt;br /&gt;
&lt;br /&gt;
* Выводить едишен лицензии в ее свойствах на стр. кастомера.&lt;br /&gt;
&lt;br /&gt;
* Надо различать даунлоады по продуктам (например QT DS и QT Plugin).&lt;br /&gt;
&lt;br /&gt;
* Вот в [http://rm.medialooks.com/product/licenses/22 этой] вьюхе выводить сначала триальные, потом expired лицензии. Триальные лицензии нужно помечать каким-то визуальным образом.&lt;br /&gt;
&lt;br /&gt;
* Тайтлы страниц в RM. Расписать подробнее что где нужно.&lt;br /&gt;
&lt;br /&gt;
* Выводить где-то отдельно триальные лицензии, чтобы можно было пинать кастомеров по ним.&lt;br /&gt;
&lt;br /&gt;
* Нужен способ задать реселлера со страницы кастомера. И нужно на странице кастомера это видеть.&lt;br /&gt;
&lt;br /&gt;
* Сделать опции go to case by number в обоих интерфейсах RM.&lt;br /&gt;
&lt;br /&gt;
* Логгировать даунлоады и выводить в кейсах последнюю скачанную пользователем версии.&lt;br /&gt;
&lt;br /&gt;
* Когда дискуссия идет в теме даунлоад - новые даунлоады ее обновляют что неудобно.&lt;br /&gt;
&lt;br /&gt;
* Идея. Вести две простыни release notes. Одна что вписал девелопер. Другую - что отправлено кастомерам.&lt;br /&gt;
&lt;br /&gt;
* Добавить список аттачей к письму про апдейт кейса.&lt;br /&gt;
&lt;br /&gt;
* Некоторым заказчикам нужно дать возможность заливать на FTP с паролем.&lt;br /&gt;
&lt;br /&gt;
* Надо бы разрешить just comment to customer без реасайна кейса.&lt;br /&gt;
&lt;br /&gt;
* Продумать логику один контакт - две конторы. Пример videoassistech. У него разные адреса для разных случаев.&lt;br /&gt;
&lt;br /&gt;
* Нужно разработать функцию CC case. Там выбираешь N людей кот. кейс как бы идет копией до тех пор пока они не нажпут dismiss.&lt;br /&gt;
&lt;br /&gt;
* [17:40:21] Vsevolod V. Burkutsky: ещё одна мысль - что-бы тикеты от одинаковых чуваков типа как в дереве лежали&lt;br /&gt;
&lt;br /&gt;
* Добавить опцию резолвинга кейса после отправки internal comment, без посылки кастомеру чего-либо.&lt;br /&gt;
&lt;br /&gt;
* Добавить опцию зиповать лиц. файлы при отправке.&lt;br /&gt;
&lt;br /&gt;
* Автоматизировать пиналки, кот. занимается Ольга.&lt;br /&gt;
&lt;br /&gt;
* Сделать независимыми RM и даунлоады. Если лежит RM не должны лежать даунлоады. Хз чо как сделать.&lt;br /&gt;
&lt;br /&gt;
* Галка would you like us to send you an email a few days prior to the expiration of your evaluation license?&lt;br /&gt;
&lt;br /&gt;
===Это потом===&lt;br /&gt;
&lt;br /&gt;
* Переделать форму контактов на сайте. Добавить возможность указать второй email. Отдельные поля под скайп, телефон.&lt;br /&gt;
&lt;br /&gt;
* Подписка royalties.&lt;br /&gt;
&lt;br /&gt;
===[Отложено] Communication Monitor===&lt;br /&gt;
&lt;br /&gt;
Сперва обсудить: может сразу делать web-based ticketing system?&lt;br /&gt;
&lt;br /&gt;
Коммуникация - это в данном случае одно из трех:&lt;br /&gt;
&lt;br /&gt;
1) Кастомер заполнил контактную форму на сайте. Насколько я знаю, в этом случае все данные попадают в базу и там храняцо (если трафик платный то [http://www.medialooks.com/admin/block_admin/53 сюда] лучше не нажимать).&lt;br /&gt;
&lt;br /&gt;
2) На один из двух адресов - &amp;lt;sales@medialooks-team.com&amp;gt; и &amp;lt;dev@medialooks-team.com&amp;gt; получено письмо от кастомера.&lt;br /&gt;
&lt;br /&gt;
3) Мы послали кастомеру письмо с одного из двух адресов (во всех случаях мы ставим BCC на адрес, с которого пишем).&lt;br /&gt;
&lt;br /&gt;
В RM нужно реализовать три списка:&lt;br /&gt;
&lt;br /&gt;
1) Список коммуникаций типа (1), на которые не было ответа с одного из двух адресов в течение N часов. &lt;br /&gt;
&lt;br /&gt;
2) Список коммуникаций типа (2), на которые не было ответа с одного из двух адресов в течение M часов. &lt;br /&gt;
&lt;br /&gt;
3) Список коммуникаций типа (3), в случае если от кастомера не было ответа в течение D рабочих дней.&lt;br /&gt;
&lt;br /&gt;
В обоих случаях выводить в таблице всю инфо, которая есть на данный email - телефон, скайп, ссылка на кастомеров, у которых в контактах числицо такой email (см. также &amp;quot;Contact as System Item&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
N, M и D нужно дать возможность конфигурить через гуй RM.&lt;br /&gt;
&lt;br /&gt;
В первом приближении выводить тела писем не нужно. Но в будуем мне кажется мы все равно к этому придем. Поэтому хранить можно уже начинать.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Customer download tracking===&lt;br /&gt;
&lt;br /&gt;
* Индивидуальные даунлоад ссылки для отслеживания какой подписчик нажал на сцылку.&lt;br /&gt;
* Отписка или оповещение администратора о подписчиках который не нажимают на ссылки (признак того что не получают письма или не читают их - но при этом по какой-то причине не отписываются).&lt;br /&gt;
&lt;br /&gt;
===Наследование/объединение продуктов===&lt;br /&gt;
&lt;br /&gt;
Необходимо поддержать два следующих сценария:&lt;br /&gt;
&lt;br /&gt;
1) Существует продукт DirectShow Filter Pack - он включает в себя большой набор DirectShow фильтров. Каждый фильтр релизится по своему графику (т.е. без графика) - поэтому отдельного download для него не существует. Т.е. продукт в данном случае это просто такая лицензия, т.е. совокупность цены и набора компонентов. В RM возможность создавать такие лицензии должна быть реализована в виде продукта в общем списке - просто у него будут какие-то дополнительные свойства как-то &amp;quot;включать в себя такие-то продукты&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Соответственно, при создании лицензии на такой продукт нужно сделать так чтобы:&lt;br /&gt;
&lt;br /&gt;
* Контакты кастомера могли быть подписаны на релизы (updates) по каждому из продуктов отдельно. По-умолчанию - создается подписка на все входящие в пакет продукты. Отписаться от каждого из продуктов в отдельности можно через сцылку на отписку из письма или это можно сделать через редактирование свойств лицензии.&lt;br /&gt;
&lt;br /&gt;
* Контакты кастомера не были дубликатно подписаны на эти же самые продукты через другие механизмы RM.&lt;br /&gt;
&lt;br /&gt;
* Подписка License Expired в данном случае остается одна - только на общий продукт. Но в случае, если подписка истекла, то при рассылке Release Updates в тело письма вставляется соотв. сообщение (т.к. это сейчас сделано для обычных лицензий).&lt;br /&gt;
&lt;br /&gt;
* В случае если для продукты DirectShow Filter Pack - RM конечно же имеет право наложить в штаны но после этого должен немедленно собрацо и вести себя так как будто он точно знает что нужно делать - а именно вести себя так как будто DirectShow Filter Pack это самый обычный продукт (т.е. появитсо в Distributives и дать возможность сделать рассылку). Т.е. обычная рассылка Release Updates для продукта такого типа тоже создаецо.&lt;br /&gt;
&lt;br /&gt;
2) Существуют продукты DeckLink SDK, Playout SDK и Multimedia SDK, для которых мы решили в целях упрощения использовать общий даунлоад. В данном случае все остается как есть - т.е. лицензии создаются именно под эти продукты, отдельно ведется статистика подписок, лицензий и закачек - но используется только один download.&lt;br /&gt;
&lt;br /&gt;
Например, мы говорим что DeckLink SDK и Playout SDK - оба используют download Multimedia SDK. Разработчик закачивает новый релиз именно для Multimedia SDK. Этот новый релиз появляется в разделе Distributives. Я его модерю, нажимаю сделать рассылку - и, как и раньше, выходят три блока писем - для DeckLink SDK, Playout SDk и Multimedia SDK.&lt;br /&gt;
&lt;br /&gt;
Особенность: ссылка во всех письмах теперь называется multimedia sdk. Делать редиректы и переименования - не надо (иначе клиенты будут говорить я скачал Playout SDK а мне ставится Multimedia SDK).&lt;br /&gt;
&lt;br /&gt;
===Industry-Based Subscriptions===&lt;br /&gt;
&lt;br /&gt;
Добавить возможность создавать рассылки по индустриям. В целом все аналогично тому как сейчас работают подписки на новые релизы. Можно подписывать контакты руками. А при рассылке заодно рассылать тем, кто является клиентом какого-либо продукта и тоже записан в эту индустрию.&lt;br /&gt;
&lt;br /&gt;
Возможно, когда у нас появятся разные способы делать рассылки, придется придумывать способы не слать дважды по одному и тому же поводу. Например, заводить для рассылки какой-нибудь ID.&lt;br /&gt;
&lt;br /&gt;
===Contact as System Item===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать контакты как самостоятельную сущность.&lt;br /&gt;
&lt;br /&gt;
Контакт представляет из себя имя (текстовое поле например &amp;quot;Andrew Okunev) и ассоциированный c ним набор полей:&lt;br /&gt;
&lt;br /&gt;
* email name (используется в подстановках в письмах; если пусто, используется &amp;quot;customer&amp;quot;)&lt;br /&gt;
* email (любое количество)&lt;br /&gt;
* skype (любое количество)&lt;br /&gt;
* телефон (любое количество)&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать отображение и редактирование свойств для любого из контактов. Например:&lt;br /&gt;
&lt;br /&gt;
* Когда добавлен в систему&lt;br /&gt;
* С какими компаниями (Customers) ассоциирован.&lt;br /&gt;
* С какими лицензиями ассоциирован.&lt;br /&gt;
* На какие подписки подписан.&lt;br /&gt;
&lt;br /&gt;
Все это нужно реализовать в одной вьюхе. Редактирование доступно только администратору системы.&lt;br /&gt;
&lt;br /&gt;
Примечания:&lt;br /&gt;
&lt;br /&gt;
* В системе должны отсутствовать дубликаты по email. Дубликаты по имени допустимы (т.е. когда одинаковое имя но разный email), но должна быть возможность их соединить (т.е. превратить в один контакт с двумя email). Реализовать это можно через отдельную вьюху, доступную администратору.&lt;br /&gt;
&lt;br /&gt;
* Если у контакта больше одного email, то любой из них может использоваться для авторизации.&lt;br /&gt;
&lt;br /&gt;
* Новый контакт (как сущность) создается при любом добавлении контакта в систему (например, при создании подписки через модуль subscribers.&lt;br /&gt;
&lt;br /&gt;
===Universal Uploads===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать возможность закачивать в RM абстрактные (не привязанные к какому-либо продукту) файлы. При этом каждому такому файлу должен быть по-умолчанию присвоен срок жизни - 30 дней. После чего файл автоматически удаляется. Файлы можно защищать паролем, который требуется для скачки.&lt;br /&gt;
&lt;br /&gt;
Каждый файл привязан к какому-либо юзеру. Только у этого пользователя (или у администратора) есть возможность добавлять к своему аккаунту файлы или удалять их. Каждую закачку можно удалить или обновить файл в ней.&lt;br /&gt;
&lt;br /&gt;
Соответственно, необходимо создать две новых вьюхи:&lt;br /&gt;
&lt;br /&gt;
1) Вьюха создания закачки. Опции: текстедит срок жизни (по-умолчанию вбито 30), чекбокс защитить паролем, путь к файлу.&lt;br /&gt;
&lt;br /&gt;
2) Вьюха список закачек данного юзера. Отображать: имя файла, количество скачек, оставшийся срок жизни, дата закачки. Имя файла является ссылкой на данный файл (вида rm.medialooks.com/...).&lt;br /&gt;
&lt;br /&gt;
В меню каждого юзера должно быть что-то вроде &amp;quot;My Uploads&amp;quot;, которая ведет на вьюху (2).&lt;br /&gt;
&lt;br /&gt;
===Customer Access===&lt;br /&gt;
&lt;br /&gt;
Нужно научицо давать кастомерам доступ к аплоадам. Для этого нужно реализовать в RM еще одну роль - &amp;quot;Customer&amp;quot;. Роль &amp;quot;User&amp;quot; нужно переименовать в &amp;quot;Developer&amp;quot;. Каждый контакт, добавленный в систему, должен получать соотв. статус и автоматически сгенеренный пароль. Никаких писем при заведении пользователей пока автоматически рассылать не надо. Однако, при первой попытке зайти в систему, кастомер должен по почте получить свой пароль. Залогинившись, он имеет доступ только к своим аплоадам (в будущем добавим еще подписки и лицензии).&lt;br /&gt;
&lt;br /&gt;
===Search===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать поиск в системе. Форма поиска - одна на все случаи. Она должна размещаться на всех страницах системы.&lt;br /&gt;
&lt;br /&gt;
По каким полям искать:&lt;br /&gt;
&lt;br /&gt;
* По контактам.&lt;br /&gt;
* По названию клиента.&lt;br /&gt;
* По тегу клиента.&lt;br /&gt;
&lt;br /&gt;
'''Пример.''' Если в поле поиска ввден запрос:&lt;br /&gt;
&lt;br /&gt;
Andrew A. Okunev &amp;lt;dev@medialooks.com&amp;gt; (MediaLooks)&lt;br /&gt;
&lt;br /&gt;
- то сперва нужно произвести поиск отдельно по &amp;quot;Osman Yel&amp;quot;, &amp;quot;dev@medialooks.com&amp;quot; и &amp;quot;MediaLooks&amp;quot;. Эти результаты вывести в первую очередь.&lt;br /&gt;
&lt;br /&gt;
Во-вторую - выделить из поисковой строки название домена и отрезать от него домен первого уровня. Т.е. в нашем примере искать по строке &amp;quot;medialooks&amp;quot;. Эти результаты вывести во вторую очередь.&lt;br /&gt;
&lt;br /&gt;
Кроме этого, естественно должен работать поиск в том случае если исходный запрос это &amp;quot;dev@medialooks.com&amp;quot; или просто &amp;quot;medialooks&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===LinkedIn Integration===&lt;br /&gt;
&lt;br /&gt;
Зачем? Любая система управления контактами страдает одним недостатком - ей неоткуда узнать о том, что у кого-то поменялся email или телефон.&lt;br /&gt;
&lt;br /&gt;
Предполагается что пользователи LinkedIn (за исключением [http://www.linkedin.com/pub/2/26b/926 некоторых] поддерживают свой профиль в актуальном состоянии. В частности, следят за тем, чтобы в профиле был актуальный email.&lt;br /&gt;
&lt;br /&gt;
В результате хочется получить поддержку следующих сценариев:&lt;br /&gt;
&lt;br /&gt;
* Узнавать об изменениях в контактной информации наших клиентов.&lt;br /&gt;
* Приглашать в нашу сеть клиентов, которые уже используют LinkedIn.&lt;br /&gt;
* Приглашать в LinkedIn тех клиентов, которые его пока не используют.&lt;br /&gt;
* Если клиент для общение с нами использует один email, а для LinkedIn - другой, - то нам нужно узнать этот email и использовать его как запасной/альтернативный.&lt;br /&gt;
&lt;br /&gt;
Для начала думаю следует просто проверить, позволяет ли API делать следующее:&lt;br /&gt;
&lt;br /&gt;
* Авторизоваться в системе под каким-то реальным логином (например, подо мной).&lt;br /&gt;
* Поискать пользователей по email.&lt;br /&gt;
* Получить email любого из моих контактов.&lt;br /&gt;
* Послать конкретному пользователю инвайт, иметь возможность указать кастомный текст для инвайта.&lt;br /&gt;
* Пригласить нового пользователя через email, то же самое с кастомным текстом.&lt;br /&gt;
&lt;br /&gt;
Задача неактуальна поскольку как я понял от LinkedIn нужно сначала получить одобрение на использование API:&lt;br /&gt;
&lt;br /&gt;
* http://www.linkedin.com/static?key=developers_apis&lt;br /&gt;
&lt;br /&gt;
==Done Tasks==&lt;br /&gt;
&lt;br /&gt;
* [[LMS/CMS Tasks: Done]]&lt;br /&gt;
&lt;br /&gt;
[[Category: Tasks]]&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Ivan</name></author>	</entry>

	<entry>
		<id>http://wiki.avobjects.com/Dev:RM/LMS_Tasks</id>
		<title>Dev:RM/LMS Tasks</title>
		<link rel="alternate" type="text/html" href="http://wiki.avobjects.com/Dev:RM/LMS_Tasks"/>
				<updated>2009-11-25T09:57:17Z</updated>
		
		<summary type="html">&lt;p&gt;Ivan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See also:&lt;br /&gt;
&lt;br /&gt;
* [[Dev:Tasks To Complete Before We Can Papustico!]]&lt;br /&gt;
* [[CMS Tasks]]&lt;br /&gt;
* [[Dev:Communication System]]&lt;br /&gt;
* [[Dev: Support System Roles]]&lt;br /&gt;
* [[Dev: RM User Rights]]&lt;br /&gt;
* [[Dev: RM Licensing Feature Update]]&lt;br /&gt;
&lt;br /&gt;
==RM/LMS Tasks==&lt;br /&gt;
&lt;br /&gt;
==DONE==&lt;br /&gt;
* [bug] Откуда-то взялся кейс in progress без асайна - [http://rm.medialooks.com/messages/show/1586].&lt;br /&gt;
'''забить, он старый'''&lt;br /&gt;
&lt;br /&gt;
* [bug] При паттписке-атписке из кейса выскакивает явоскрпитовый диалог с цифрами (например, 68).&lt;br /&gt;
&lt;br /&gt;
* [bug] Чичас после нажатия на Send emails в [http://rm.medialooks.com/distributives/show/39 релизах] в гуйне ничо не происходит. Т.е. кажецо что ты промахнулсо и хочецо нажать кнопку исчо раз. Хотя на самом деле все срабатывает (письма шлюцо) и если со страницы уйти то из [http://rm.medialooks.com/distributives списка] этот продукт исчезнет.&lt;br /&gt;
'''происходит, но долго'''&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] При создании или редактировании лицензии. Убрать галку &amp;quot;Send license files&amp;quot; и добавить просто новую кнопку &amp;quot;Save and Send License Files&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] Добавть ссылочку Re-send License Files прямо рядом с Edit License. Update переименовать в Renew. Пункты меню расположить так: Renew License | Edit License | Re-send License Files | Delete License.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] Ссылочку Add License поместить над списком лицензий и назвать Add New License.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] Notes в свойствах лицензии нужно выводить красным.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/messages/new_cases/SM] Для всех вариантов отображения списка кейсов. В табличке со списком выводить также статус (In progess, waiting, etc.) - предпоследней колонкой.&lt;br /&gt;
&lt;br /&gt;
* [note] Добавить бряк после номера версии в тексте релилз ноутс который вставляется в subscribe.&lt;br /&gt;
&lt;br /&gt;
* [note] Для license_file.rhtml нужно новое условие - триальная лицензия или нет. Т.к. текст в этом случае другой.&lt;br /&gt;
'''оно там есть, просто называецо нетривиально: &amp;lt;% if @expiration_date %&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/] Писать дату рядом с номером версии на главной странице.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer] В списке кастомеров выводить еще и company таг (первой колонкой).&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/control] Не нужна такая длинная простыня изменений на странице рестарт апдейт RM. А когда она делает рестарт хотелось бы какой-нить индикации.&lt;br /&gt;
'''с индикацией сложности, давай пока это повисит'''&lt;br /&gt;
&lt;br /&gt;
* Када дуплицируецо кейс нада в логе выводить ссылку на дочерний кейс. Ссылка на родительский кейс сейчас есть, а вот наоборот - &lt;br /&gt;
'''сделал'''&lt;br /&gt;
&lt;br /&gt;
нету. Кроме этого, хорошо бы в обоих случаях (родитель и дочко) выводить вверху что-то вроде This case has parent cases:&amp;lt;br&amp;gt;* Subject или This case has child cases...&lt;br /&gt;
'''с этим сложности. ща это помечается в логе, который может сожержать все что угодно'''&lt;br /&gt;
&lt;br /&gt;
* Добавить тайтлы к страницам RM. Там должно быть все очевидно. Ну типа если это кейс то его сабжект, если это кастомер то название кастомера, если юзер то имя юзера. Остальное - по названию менюшек (Product, Customers, etc.).&lt;br /&gt;
&lt;br /&gt;
* Для мейловых кейсов убрать квоту втыкаемую в окошки эдитов (сейчас она втыкается как в интернал, так и во внешний камент). Из интернал вообще убрать. Для экстернал - убрать из едита но прикручивать к письму при отправке.&lt;br /&gt;
&lt;br /&gt;
==TODO==&lt;br /&gt;
&lt;br /&gt;
===Current===&lt;br /&gt;
&lt;br /&gt;
* Этот [http://rm.medialooks.com/messages/show/26560 кейс] как я понимаю теперь болтается вне всяких очередей?&lt;br /&gt;
* Во [http://rm.medialooks.com/messages/all_cases/in%20progress вьюшках списков кейсов] добавить еще одну дату в поле Date. Текущая дата - это дата последнего сообщения от кастомера или кастомеру. Нужно вывести еще одну - дату любого обновления кейса. Насколько я понимаю, именно по этой дате происходит сейчас сортировка кейсов.&lt;br /&gt;
* [bug] Берем (предположительно) любой кейс. Пускай это будет кастомер у которого 2 или более контактов и пускай на текущий момент у кейса только один партисипант. Добавляем сообщение и при этом добавляем еще одного участника (ставим галочку). Сообщение добавляется, теперь у кейса два участника, все ОК. Теперь делаем интернал камент (не важно с асайном или без) - дополнительные участники пропадают. Баг повторяется в случае если участников добавлять через email.&lt;br /&gt;
* Добавить возможность Edit recipients в любом состоянии кейса, просто как отдельную опцию.&lt;br /&gt;
* В списке лицензий на странице кейса помечать триальные лицензии как Evaluation license и все строчку подкрашивать каким-нибудь красным цветом.&lt;br /&gt;
* Там где отображается количество тикетов в менюшках (в главном меню и там где навигация по типам кейсов) сделать отображение в виде total/unread.&lt;br /&gt;
* [[Dev:CRM Tasks]]&lt;br /&gt;
* В случае когда кастомер [http://rm.medialooks.com/messages/show/13168 ссылается на другой кейс] нужно придумать как в него попадать из вьюхи просмотра кейса в RM.&lt;br /&gt;
* Как аттачить прайс лист к письмам таким образом чтобы каждый раз заново не заливать? Мне кажется проще всего залить прайс как продукт. Тогда и подписка нужных людей на него сразу заработает. Вопрос - как заимплементить механизм аттачинга удобный?&lt;br /&gt;
* Никак не могу придумать что делать с [http://rm.medialooks.com/messages/show/16519 такими] кейсами.&lt;br /&gt;
* Поисследуй плиз можно ли как-то засунуть батовские почтовые базы в Gmail. Например, есть [http://www.gmail-backup.com/ такая штука.]&lt;br /&gt;
* Перед отправкой ответа на кейс добавить возможность выбрать между двух опций After case is updated by customer: 1) assign this case to me и 2) set to new status.&lt;br /&gt;
* Добавить возможность удалять вручную контакт. При этом должны быть удалены все его кейсы.&lt;br /&gt;
&lt;br /&gt;
===To Think About===&lt;br /&gt;
&lt;br /&gt;
* Как сделать FTP с per customer паролями?&lt;br /&gt;
* Как добавить features и подписку кастомеров на них?&lt;br /&gt;
* Что делать с контактами когда у двух людей одинаковый email? Пример - mbcradio.&lt;br /&gt;
&lt;br /&gt;
===Important CRM/Email-Related Fixes===&lt;br /&gt;
&lt;br /&gt;
* Сделать возможность CC на кейс.&lt;br /&gt;
&lt;br /&gt;
* Сделать фичу слежения за кейсами.&lt;br /&gt;
&lt;br /&gt;
* Мердждинг кейсов.&lt;br /&gt;
&lt;br /&gt;
===Bugs, Fixes, Questions===&lt;br /&gt;
&lt;br /&gt;
* Нужно проверить что это не глюки у нас (такое кол-во закачек) и залочить чувака [http://rm.medialooks.com/messages/show/1700].&lt;br /&gt;
&lt;br /&gt;
* [unconfirmed] При наличии customer с некоторым email не срабатывает подписка этого email на любой продукт. Запрет должен срабатывать только в случае если лицензия есть именно на этот продукт (возможно, тут надо еще добавить логику про наследованные продукты).&lt;br /&gt;
&lt;br /&gt;
* [Bug] Не работает напоминалка проля в даунлоадах.&lt;br /&gt;
&lt;br /&gt;
* Сбрасывается инфо при вводе уже зареганого email.&lt;br /&gt;
&lt;br /&gt;
* Красные буквы при вводе adsf@medialooks.com.&lt;br /&gt;
&lt;br /&gt;
* Не обрабатываются ошибки типа wrong password в даунлоадз.&lt;br /&gt;
&lt;br /&gt;
* В моей опере никогда не начинаются даунлоады автоматом.&lt;br /&gt;
&lt;br /&gt;
===RM Access Rights===&lt;br /&gt;
&lt;br /&gt;
* Сейчас если зайти на главную под пользовтелем cthomson@medialooks.com (Reseller/Sales Manager) то у него нет столбца Customers. Нужно добавить и выводить там соответственно только доступных ему кастомеров.&lt;br /&gt;
&lt;br /&gt;
===Подписки===&lt;br /&gt;
&lt;br /&gt;
* Подписка Update Discount Expiration. Ввести для лицензий которые expired только после 01.12.2009. Т.е. письма по этой подписке должны начать ходить примерно с 01.05.2010.&lt;br /&gt;
&lt;br /&gt;
* Новая подписка license_expred_followup - которая будет запускацо спустя 4 месяца после истечения подписки. Там написано что через 2 месяца закончицо скидка 50% на продление лицензии. (Кстати идея - может давать доп. скидку за продление в течение месяца после истечения паттписки - типа 65%?)&lt;br /&gt;
&lt;br /&gt;
===Backups to Amazon S3===&lt;br /&gt;
&lt;br /&gt;
Давай будем наш бэкапный файл закачивать на амазон раз в неделю. Я сделал там аккаунт.&lt;br /&gt;
&lt;br /&gt;
===Tasks===&lt;br /&gt;
&lt;br /&gt;
* [Отложено] New email setup. Нужно засетапить новый домен medialooks-team.com. Мы будем его использовать для следующего - чтобы слать и принимать почту с двух общих адресов - &amp;lt;sales@medialooks-team.com&amp;gt; и &amp;lt;dev@medialooks-team.com&amp;gt;. Почему-то очень многие закачики тупо не получают наши письма. Если это не поможет то нам придется переходить на полностью web-based общение с кастомерами.&lt;br /&gt;
&lt;br /&gt;
* Разобрацо в чем проблема с настройкой goals в гугле.&lt;br /&gt;
&lt;br /&gt;
* Добавить в шаблоны писем (шаблон рассылки нового релиза, 2 шаблона license expired) возможность вставлять &amp;quot;License update link&amp;quot; в случае если такая ссылка указана в свойствах продукта (типа IF License update link exists - вставить следующее). Прислать мне файло шаблонов на редактирование (могу сам залезть но надо настроить тада SVN твой).&lt;br /&gt;
&lt;br /&gt;
* Сделать урлы в свойствах кастомера кликабл.&lt;br /&gt;
&lt;br /&gt;
* Cross-promotion subscriptions.&lt;br /&gt;
&lt;br /&gt;
* Если переименовать продукт, то перестает работать общая ссылка на даунлоад и по-версионные ссылки.&lt;br /&gt;
&lt;br /&gt;
* Contact as System Item (see task description).&lt;br /&gt;
&lt;br /&gt;
* Search (see task description).&lt;br /&gt;
&lt;br /&gt;
* Сортировка по тагам во вьюхе кастомеров. Статистика по тагам.&lt;br /&gt;
&lt;br /&gt;
* Добавить вывод количества лицензионных подписок в графу &amp;quot;Site Subscribers&amp;quot;. Графу переименовать в &amp;quot;Subscribers (Interested/Licensed)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* Общие рассылки. Научиться делать рассылки по всем клиентам. Это должна быть отдельная подписка.&lt;br /&gt;
&lt;br /&gt;
* Персонализированный учет закачек. Мы хотим про каждого клиента знать скачивает он новые версии или нет. В письме, которое он получает при выходе новой версии, можно делать уникальный урл, чтобы система знала нажал он или нет. Второй подход - это использовать куки на тот случай, если клиент скачивает с сайта.&lt;br /&gt;
&lt;br /&gt;
* Статистика закачек. Научицо разделять новые (приходящие с рекламы или из поиска) и повторные (наши кастомеры качают новые версии) закачки.&lt;br /&gt;
&lt;br /&gt;
* Подумать. Если есть идеи как интегрировать с Google Analytics (GA)  AdWords (AW) - было бы клева. Например вытаскивать из GA данные о посещениях конкретной страницы и сравнивать их с данными по закачкам.&lt;br /&gt;
&lt;br /&gt;
* Проблема с возможностью создать продукт у которого все версии - беты. И тогда не работает общая ссылка.&lt;br /&gt;
&lt;br /&gt;
* Проблема с RSS-фидом блога (у меня почему-то аутлук пытаецо запустицо).&lt;br /&gt;
&lt;br /&gt;
* Research on online license document generation. Существует ли какой-нить вебовский генератор PDF?&lt;br /&gt;
&lt;br /&gt;
* Создавать в Google Blog Search и Google Alerts фиды по тегам клиента, подсасывать их и демонстрировать мышап на странице клиента. :)))&lt;br /&gt;
&lt;br /&gt;
* Исследовать возможность автоматически создавать для каждого контакта в RM аккаунт в вике, принадлежащий определенной группе.&lt;br /&gt;
&lt;br /&gt;
* Убивать разделительные знаки в поле contacts (елси это телефон). Нужно для того чтобы можно было искать по номеру телефона в почтовой базе.&lt;br /&gt;
&lt;br /&gt;
* Сортировка по дате последнего релиза вот [http://rm.medialooks.com/distributives тут].&lt;br /&gt;
&lt;br /&gt;
* В RM надо сделать напоминалки для нас об истечении лицензий у кастомеров. (Чтобы пинать/напоминать руками.)&lt;br /&gt;
&lt;br /&gt;
* Поиск кастомеров и контактов по странам в RM.&lt;br /&gt;
&lt;br /&gt;
* Дать возможность редактировать meeting results.&lt;br /&gt;
&lt;br /&gt;
* Доработать функционал реселлеров. Например, чтобы про кастомера было видно что он привязан к некоторому реселлеру ([http://rm.medialooks.com/customer/show/364 пример]).&lt;br /&gt;
&lt;br /&gt;
* Придумать что-нибудь с аттачами. Добавить их в темплейт или как-то иначе автоматизировать. Не забыть про то что он обновляется (автоматизировать?) - может как отдельный продукт его или в этом роде... Нужно уметь видеть версию прайса кот. была отправлена.&lt;br /&gt;
&lt;br /&gt;
* Ручная блокировка аккунта. Выдавать сообщение &amp;quot;Your account has been suspended. Please contact MediaLooks in order to unlock your account.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Выводить количество кастомерских кейсов в скобкаъ на странице кастомера.&lt;br /&gt;
&lt;br /&gt;
* Выводить едишен лицензии в ее свойствах на стр. кастомера.&lt;br /&gt;
&lt;br /&gt;
* Надо различать даунлоады по продуктам (например QT DS и QT Plugin).&lt;br /&gt;
&lt;br /&gt;
* Вот в [http://rm.medialooks.com/product/licenses/22 этой] вьюхе выводить сначала триальные, потом expired лицензии. Триальные лицензии нужно помечать каким-то визуальным образом.&lt;br /&gt;
&lt;br /&gt;
* Тайтлы страниц в RM. Расписать подробнее что где нужно.&lt;br /&gt;
&lt;br /&gt;
* Выводить где-то отдельно триальные лицензии, чтобы можно было пинать кастомеров по ним.&lt;br /&gt;
&lt;br /&gt;
* Нужен способ задать реселлера со страницы кастомера. И нужно на странице кастомера это видеть.&lt;br /&gt;
&lt;br /&gt;
* Сделать опции go to case by number в обоих интерфейсах RM.&lt;br /&gt;
&lt;br /&gt;
* Логгировать даунлоады и выводить в кейсах последнюю скачанную пользователем версии.&lt;br /&gt;
&lt;br /&gt;
* Когда дискуссия идет в теме даунлоад - новые даунлоады ее обновляют что неудобно.&lt;br /&gt;
&lt;br /&gt;
* Идея. Вести две простыни release notes. Одна что вписал девелопер. Другую - что отправлено кастомерам.&lt;br /&gt;
&lt;br /&gt;
* Добавить список аттачей к письму про апдейт кейса.&lt;br /&gt;
&lt;br /&gt;
* Некоторым заказчикам нужно дать возможность заливать на FTP с паролем.&lt;br /&gt;
&lt;br /&gt;
* Надо бы разрешить just comment to customer без реасайна кейса.&lt;br /&gt;
&lt;br /&gt;
* Продумать логику один контакт - две конторы. Пример videoassistech. У него разные адреса для разных случаев.&lt;br /&gt;
&lt;br /&gt;
* Нужно разработать функцию CC case. Там выбираешь N людей кот. кейс как бы идет копией до тех пор пока они не нажпут dismiss.&lt;br /&gt;
&lt;br /&gt;
* [17:40:21] Vsevolod V. Burkutsky: ещё одна мысль - что-бы тикеты от одинаковых чуваков типа как в дереве лежали&lt;br /&gt;
&lt;br /&gt;
* Добавить опцию резолвинга кейса после отправки internal comment, без посылки кастомеру чего-либо.&lt;br /&gt;
&lt;br /&gt;
===Это потом===&lt;br /&gt;
&lt;br /&gt;
* Переделать форму контактов на сайте. Добавить возможность указать второй email. Отдельные поля под скайп, телефон.&lt;br /&gt;
&lt;br /&gt;
* Подписка royalties.&lt;br /&gt;
&lt;br /&gt;
===[Отложено] Communication Monitor===&lt;br /&gt;
&lt;br /&gt;
Сперва обсудить: может сразу делать web-based ticketing system?&lt;br /&gt;
&lt;br /&gt;
Коммуникация - это в данном случае одно из трех:&lt;br /&gt;
&lt;br /&gt;
1) Кастомер заполнил контактную форму на сайте. Насколько я знаю, в этом случае все данные попадают в базу и там храняцо (если трафик платный то [http://www.medialooks.com/admin/block_admin/53 сюда] лучше не нажимать).&lt;br /&gt;
&lt;br /&gt;
2) На один из двух адресов - &amp;lt;sales@medialooks-team.com&amp;gt; и &amp;lt;dev@medialooks-team.com&amp;gt; получено письмо от кастомера.&lt;br /&gt;
&lt;br /&gt;
3) Мы послали кастомеру письмо с одного из двух адресов (во всех случаях мы ставим BCC на адрес, с которого пишем).&lt;br /&gt;
&lt;br /&gt;
В RM нужно реализовать три списка:&lt;br /&gt;
&lt;br /&gt;
1) Список коммуникаций типа (1), на которые не было ответа с одного из двух адресов в течение N часов. &lt;br /&gt;
&lt;br /&gt;
2) Список коммуникаций типа (2), на которые не было ответа с одного из двух адресов в течение M часов. &lt;br /&gt;
&lt;br /&gt;
3) Список коммуникаций типа (3), в случае если от кастомера не было ответа в течение D рабочих дней.&lt;br /&gt;
&lt;br /&gt;
В обоих случаях выводить в таблице всю инфо, которая есть на данный email - телефон, скайп, ссылка на кастомеров, у которых в контактах числицо такой email (см. также &amp;quot;Contact as System Item&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
N, M и D нужно дать возможность конфигурить через гуй RM.&lt;br /&gt;
&lt;br /&gt;
В первом приближении выводить тела писем не нужно. Но в будуем мне кажется мы все равно к этому придем. Поэтому хранить можно уже начинать.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Customer download tracking===&lt;br /&gt;
&lt;br /&gt;
* Индивидуальные даунлоад ссылки для отслеживания какой подписчик нажал на сцылку.&lt;br /&gt;
* Отписка или оповещение администратора о подписчиках который не нажимают на ссылки (признак того что не получают письма или не читают их - но при этом по какой-то причине не отписываются).&lt;br /&gt;
&lt;br /&gt;
===Наследование/объединение продуктов===&lt;br /&gt;
&lt;br /&gt;
Необходимо поддержать два следующих сценария:&lt;br /&gt;
&lt;br /&gt;
1) Существует продукт DirectShow Filter Pack - он включает в себя большой набор DirectShow фильтров. Каждый фильтр релизится по своему графику (т.е. без графика) - поэтому отдельного download для него не существует. Т.е. продукт в данном случае это просто такая лицензия, т.е. совокупность цены и набора компонентов. В RM возможность создавать такие лицензии должна быть реализована в виде продукта в общем списке - просто у него будут какие-то дополнительные свойства как-то &amp;quot;включать в себя такие-то продукты&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Соответственно, при создании лицензии на такой продукт нужно сделать так чтобы:&lt;br /&gt;
&lt;br /&gt;
* Контакты кастомера могли быть подписаны на релизы (updates) по каждому из продуктов отдельно. По-умолчанию - создается подписка на все входящие в пакет продукты. Отписаться от каждого из продуктов в отдельности можно через сцылку на отписку из письма или это можно сделать через редактирование свойств лицензии.&lt;br /&gt;
&lt;br /&gt;
* Контакты кастомера не были дубликатно подписаны на эти же самые продукты через другие механизмы RM.&lt;br /&gt;
&lt;br /&gt;
* Подписка License Expired в данном случае остается одна - только на общий продукт. Но в случае, если подписка истекла, то при рассылке Release Updates в тело письма вставляется соотв. сообщение (т.к. это сейчас сделано для обычных лицензий).&lt;br /&gt;
&lt;br /&gt;
* В случае если для продукты DirectShow Filter Pack - RM конечно же имеет право наложить в штаны но после этого должен немедленно собрацо и вести себя так как будто он точно знает что нужно делать - а именно вести себя так как будто DirectShow Filter Pack это самый обычный продукт (т.е. появитсо в Distributives и дать возможность сделать рассылку). Т.е. обычная рассылка Release Updates для продукта такого типа тоже создаецо.&lt;br /&gt;
&lt;br /&gt;
2) Существуют продукты DeckLink SDK, Playout SDK и Multimedia SDK, для которых мы решили в целях упрощения использовать общий даунлоад. В данном случае все остается как есть - т.е. лицензии создаются именно под эти продукты, отдельно ведется статистика подписок, лицензий и закачек - но используется только один download.&lt;br /&gt;
&lt;br /&gt;
Например, мы говорим что DeckLink SDK и Playout SDK - оба используют download Multimedia SDK. Разработчик закачивает новый релиз именно для Multimedia SDK. Этот новый релиз появляется в разделе Distributives. Я его модерю, нажимаю сделать рассылку - и, как и раньше, выходят три блока писем - для DeckLink SDK, Playout SDk и Multimedia SDK.&lt;br /&gt;
&lt;br /&gt;
Особенность: ссылка во всех письмах теперь называется multimedia sdk. Делать редиректы и переименования - не надо (иначе клиенты будут говорить я скачал Playout SDK а мне ставится Multimedia SDK).&lt;br /&gt;
&lt;br /&gt;
===Industry-Based Subscriptions===&lt;br /&gt;
&lt;br /&gt;
Добавить возможность создавать рассылки по индустриям. В целом все аналогично тому как сейчас работают подписки на новые релизы. Можно подписывать контакты руками. А при рассылке заодно рассылать тем, кто является клиентом какого-либо продукта и тоже записан в эту индустрию.&lt;br /&gt;
&lt;br /&gt;
Возможно, когда у нас появятся разные способы делать рассылки, придется придумывать способы не слать дважды по одному и тому же поводу. Например, заводить для рассылки какой-нибудь ID.&lt;br /&gt;
&lt;br /&gt;
===Contact as System Item===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать контакты как самостоятельную сущность.&lt;br /&gt;
&lt;br /&gt;
Контакт представляет из себя имя (текстовое поле например &amp;quot;Andrew Okunev) и ассоциированный c ним набор полей:&lt;br /&gt;
&lt;br /&gt;
* email name (используется в подстановках в письмах; если пусто, используется &amp;quot;customer&amp;quot;)&lt;br /&gt;
* email (любое количество)&lt;br /&gt;
* skype (любое количество)&lt;br /&gt;
* телефон (любое количество)&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать отображение и редактирование свойств для любого из контактов. Например:&lt;br /&gt;
&lt;br /&gt;
* Когда добавлен в систему&lt;br /&gt;
* С какими компаниями (Customers) ассоциирован.&lt;br /&gt;
* С какими лицензиями ассоциирован.&lt;br /&gt;
* На какие подписки подписан.&lt;br /&gt;
&lt;br /&gt;
Все это нужно реализовать в одной вьюхе. Редактирование доступно только администратору системы.&lt;br /&gt;
&lt;br /&gt;
Примечания:&lt;br /&gt;
&lt;br /&gt;
* В системе должны отсутствовать дубликаты по email. Дубликаты по имени допустимы (т.е. когда одинаковое имя но разный email), но должна быть возможность их соединить (т.е. превратить в один контакт с двумя email). Реализовать это можно через отдельную вьюху, доступную администратору.&lt;br /&gt;
&lt;br /&gt;
* Если у контакта больше одного email, то любой из них может использоваться для авторизации.&lt;br /&gt;
&lt;br /&gt;
* Новый контакт (как сущность) создается при любом добавлении контакта в систему (например, при создании подписки через модуль subscribers.&lt;br /&gt;
&lt;br /&gt;
===Universal Uploads===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать возможность закачивать в RM абстрактные (не привязанные к какому-либо продукту) файлы. При этом каждому такому файлу должен быть по-умолчанию присвоен срок жизни - 30 дней. После чего файл автоматически удаляется. Файлы можно защищать паролем, который требуется для скачки.&lt;br /&gt;
&lt;br /&gt;
Каждый файл привязан к какому-либо юзеру. Только у этого пользователя (или у администратора) есть возможность добавлять к своему аккаунту файлы или удалять их. Каждую закачку можно удалить или обновить файл в ней.&lt;br /&gt;
&lt;br /&gt;
Соответственно, необходимо создать две новых вьюхи:&lt;br /&gt;
&lt;br /&gt;
1) Вьюха создания закачки. Опции: текстедит срок жизни (по-умолчанию вбито 30), чекбокс защитить паролем, путь к файлу.&lt;br /&gt;
&lt;br /&gt;
2) Вьюха список закачек данного юзера. Отображать: имя файла, количество скачек, оставшийся срок жизни, дата закачки. Имя файла является ссылкой на данный файл (вида rm.medialooks.com/...).&lt;br /&gt;
&lt;br /&gt;
В меню каждого юзера должно быть что-то вроде &amp;quot;My Uploads&amp;quot;, которая ведет на вьюху (2).&lt;br /&gt;
&lt;br /&gt;
===Customer Access===&lt;br /&gt;
&lt;br /&gt;
Нужно научицо давать кастомерам доступ к аплоадам. Для этого нужно реализовать в RM еще одну роль - &amp;quot;Customer&amp;quot;. Роль &amp;quot;User&amp;quot; нужно переименовать в &amp;quot;Developer&amp;quot;. Каждый контакт, добавленный в систему, должен получать соотв. статус и автоматически сгенеренный пароль. Никаких писем при заведении пользователей пока автоматически рассылать не надо. Однако, при первой попытке зайти в систему, кастомер должен по почте получить свой пароль. Залогинившись, он имеет доступ только к своим аплоадам (в будущем добавим еще подписки и лицензии).&lt;br /&gt;
&lt;br /&gt;
===Search===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать поиск в системе. Форма поиска - одна на все случаи. Она должна размещаться на всех страницах системы.&lt;br /&gt;
&lt;br /&gt;
По каким полям искать:&lt;br /&gt;
&lt;br /&gt;
* По контактам.&lt;br /&gt;
* По названию клиента.&lt;br /&gt;
* По тегу клиента.&lt;br /&gt;
&lt;br /&gt;
'''Пример.''' Если в поле поиска ввден запрос:&lt;br /&gt;
&lt;br /&gt;
Andrew A. Okunev &amp;lt;dev@medialooks.com&amp;gt; (MediaLooks)&lt;br /&gt;
&lt;br /&gt;
- то сперва нужно произвести поиск отдельно по &amp;quot;Osman Yel&amp;quot;, &amp;quot;dev@medialooks.com&amp;quot; и &amp;quot;MediaLooks&amp;quot;. Эти результаты вывести в первую очередь.&lt;br /&gt;
&lt;br /&gt;
Во-вторую - выделить из поисковой строки название домена и отрезать от него домен первого уровня. Т.е. в нашем примере искать по строке &amp;quot;medialooks&amp;quot;. Эти результаты вывести во вторую очередь.&lt;br /&gt;
&lt;br /&gt;
Кроме этого, естественно должен работать поиск в том случае если исходный запрос это &amp;quot;dev@medialooks.com&amp;quot; или просто &amp;quot;medialooks&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===LinkedIn Integration===&lt;br /&gt;
&lt;br /&gt;
Зачем? Любая система управления контактами страдает одним недостатком - ей неоткуда узнать о том, что у кого-то поменялся email или телефон.&lt;br /&gt;
&lt;br /&gt;
Предполагается что пользователи LinkedIn (за исключением [http://www.linkedin.com/pub/2/26b/926 некоторых] поддерживают свой профиль в актуальном состоянии. В частности, следят за тем, чтобы в профиле был актуальный email.&lt;br /&gt;
&lt;br /&gt;
В результате хочется получить поддержку следующих сценариев:&lt;br /&gt;
&lt;br /&gt;
* Узнавать об изменениях в контактной информации наших клиентов.&lt;br /&gt;
* Приглашать в нашу сеть клиентов, которые уже используют LinkedIn.&lt;br /&gt;
* Приглашать в LinkedIn тех клиентов, которые его пока не используют.&lt;br /&gt;
* Если клиент для общение с нами использует один email, а для LinkedIn - другой, - то нам нужно узнать этот email и использовать его как запасной/альтернативный.&lt;br /&gt;
&lt;br /&gt;
Для начала думаю следует просто проверить, позволяет ли API делать следующее:&lt;br /&gt;
&lt;br /&gt;
* Авторизоваться в системе под каким-то реальным логином (например, подо мной).&lt;br /&gt;
* Поискать пользователей по email.&lt;br /&gt;
* Получить email любого из моих контактов.&lt;br /&gt;
* Послать конкретному пользователю инвайт, иметь возможность указать кастомный текст для инвайта.&lt;br /&gt;
* Пригласить нового пользователя через email, то же самое с кастомным текстом.&lt;br /&gt;
&lt;br /&gt;
Задача неактуальна поскольку как я понял от LinkedIn нужно сначала получить одобрение на использование API:&lt;br /&gt;
&lt;br /&gt;
* http://www.linkedin.com/static?key=developers_apis&lt;br /&gt;
&lt;br /&gt;
==Done Tasks==&lt;br /&gt;
&lt;br /&gt;
* [[LMS/CMS Tasks: Done]]&lt;br /&gt;
&lt;br /&gt;
[[Category: Tasks]]&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Ivan</name></author>	</entry>

	<entry>
		<id>http://wiki.avobjects.com/Dev:RM/LMS_Tasks</id>
		<title>Dev:RM/LMS Tasks</title>
		<link rel="alternate" type="text/html" href="http://wiki.avobjects.com/Dev:RM/LMS_Tasks"/>
				<updated>2009-11-09T11:32:53Z</updated>
		
		<summary type="html">&lt;p&gt;Ivan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See also:&lt;br /&gt;
&lt;br /&gt;
* [[Dev:Tasks To Complete Before We Can Papustico!]]&lt;br /&gt;
* [[CMS Tasks]]&lt;br /&gt;
* [[Dev:Communication System]]&lt;br /&gt;
* [[Dev: Support System Roles]]&lt;br /&gt;
* [[Dev: RM User Rights]]&lt;br /&gt;
* [[Dev: RM Licensing Feature Update]]&lt;br /&gt;
&lt;br /&gt;
==RM/LMS Tasks==&lt;br /&gt;
&lt;br /&gt;
==DONE==&lt;br /&gt;
* [bug] Откуда-то взялся кейс in progress без асайна - [http://rm.medialooks.com/messages/show/1586].&lt;br /&gt;
'''забить, он старый'''&lt;br /&gt;
&lt;br /&gt;
* [bug] При паттписке-атписке из кейса выскакивает явоскрпитовый диалог с цифрами (например, 68).&lt;br /&gt;
&lt;br /&gt;
* [bug] Чичас после нажатия на Send emails в [http://rm.medialooks.com/distributives/show/39 релизах] в гуйне ничо не происходит. Т.е. кажецо что ты промахнулсо и хочецо нажать кнопку исчо раз. Хотя на самом деле все срабатывает (письма шлюцо) и если со страницы уйти то из [http://rm.medialooks.com/distributives списка] этот продукт исчезнет.&lt;br /&gt;
'''происходит, но долго'''&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] При создании или редактировании лицензии. Убрать галку &amp;quot;Send license files&amp;quot; и добавить просто новую кнопку &amp;quot;Save and Send License Files&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] Добавть ссылочку Re-send License Files прямо рядом с Edit License. Update переименовать в Renew. Пункты меню расположить так: Renew License | Edit License | Re-send License Files | Delete License.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] Ссылочку Add License поместить над списком лицензий и назвать Add New License.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] Notes в свойствах лицензии нужно выводить красным.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/messages/new_cases/SM] Для всех вариантов отображения списка кейсов. В табличке со списком выводить также статус (In progess, waiting, etc.) - предпоследней колонкой.&lt;br /&gt;
&lt;br /&gt;
* [note] Добавить бряк после номера версии в тексте релилз ноутс который вставляется в subscribe.&lt;br /&gt;
&lt;br /&gt;
* [note] Для license_file.rhtml нужно новое условие - триальная лицензия или нет. Т.к. текст в этом случае другой.&lt;br /&gt;
'''оно там есть, просто называецо нетривиально: &amp;lt;% if @expiration_date %&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/] Писать дату рядом с номером версии на главной странице.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer] В списке кастомеров выводить еще и company таг (первой колонкой).&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/control] Не нужна такая длинная простыня изменений на странице рестарт апдейт RM. А когда она делает рестарт хотелось бы какой-нить индикации.&lt;br /&gt;
'''с индикацией сложности, давай пока это повисит'''&lt;br /&gt;
&lt;br /&gt;
* Када дуплицируецо кейс нада в логе выводить ссылку на дочерний кейс. Ссылка на родительский кейс сейчас есть, а вот наоборот - &lt;br /&gt;
'''сделал'''&lt;br /&gt;
&lt;br /&gt;
нету. Кроме этого, хорошо бы в обоих случаях (родитель и дочко) выводить вверху что-то вроде This case has parent cases:&amp;lt;br&amp;gt;* Subject или This case has child cases...&lt;br /&gt;
'''с этим сложности. ща это помечается в логе, который может сожержать все что угодно'''&lt;br /&gt;
&lt;br /&gt;
* Добавить тайтлы к страницам RM. Там должно быть все очевидно. Ну типа если это кейс то его сабжект, если это кастомер то название кастомера, если юзер то имя юзера. Остальное - по названию менюшек (Product, Customers, etc.).&lt;br /&gt;
&lt;br /&gt;
==TODO==&lt;br /&gt;
&lt;br /&gt;
===Current===&lt;br /&gt;
&lt;br /&gt;
===To Think About===&lt;br /&gt;
&lt;br /&gt;
* Как сделать FTP с per customer паролями?&lt;br /&gt;
* Как добавить features и подписку кастомеров на них?&lt;br /&gt;
&lt;br /&gt;
===Important CRM/Email-Related Fixes===&lt;br /&gt;
&lt;br /&gt;
* Сделать возможность CC на кейс.&lt;br /&gt;
&lt;br /&gt;
* Сделать фичу слежения за кейсами.&lt;br /&gt;
&lt;br /&gt;
* Мердждинг кейсов.&lt;br /&gt;
&lt;br /&gt;
===Bugs, Fixes, Questions===&lt;br /&gt;
&lt;br /&gt;
* Нужно проверить что это не глюки у нас (такое кол-во закачек) и залочить чувака [http://rm.medialooks.com/messages/show/1700].&lt;br /&gt;
&lt;br /&gt;
* [unconfirmed] При наличии customer с некоторым email не срабатывает подписка этого email на любой продукт. Запрет должен срабатывать только в случае если лицензия есть именно на этот продукт (возможно, тут надо еще добавить логику про наследованные продукты).&lt;br /&gt;
&lt;br /&gt;
* [Bug] Не работает напоминалка проля в даунлоадах.&lt;br /&gt;
&lt;br /&gt;
* Сбрасывается инфо при вводе уже зареганого email.&lt;br /&gt;
&lt;br /&gt;
* Красные буквы при вводе adsf@medialooks.com.&lt;br /&gt;
&lt;br /&gt;
* Не обрабатываются ошибки типа wrong password в даунлоадз.&lt;br /&gt;
&lt;br /&gt;
* В моей опере никогда не начинаются даунлоады автоматом.&lt;br /&gt;
&lt;br /&gt;
===RM Access Rights===&lt;br /&gt;
&lt;br /&gt;
* Сейчас если зайти на главную под пользовтелем cthomson@medialooks.com (Reseller/Sales Manager) то у него нет столбца Customers. Нужно добавить и выводить там соответственно только доступных ему кастомеров.&lt;br /&gt;
&lt;br /&gt;
===Подписки===&lt;br /&gt;
&lt;br /&gt;
* Подписка Update Discount Expiration. Ввести для лицензий которые expired только после 01.12.2009. Т.е. письма по этой подписке должны начать ходить примерно с 01.05.2010.&lt;br /&gt;
&lt;br /&gt;
* Новая подписка license_expred_followup - которая будет запускацо спустя 4 месяца после истечения подписки. Там написано что через 2 месяца закончицо скидка 50% на продление лицензии. (Кстати идея - может давать доп. скидку за продление в течение месяца после истечения паттписки - типа 65%?)&lt;br /&gt;
&lt;br /&gt;
===Backups to Amazon S3===&lt;br /&gt;
&lt;br /&gt;
Давай будем наш бэкапный файл закачивать на амазон раз в неделю. Я сделал там аккаунт.&lt;br /&gt;
&lt;br /&gt;
===Tasks===&lt;br /&gt;
&lt;br /&gt;
* [Отложено] New email setup. Нужно засетапить новый домен medialooks-team.com. Мы будем его использовать для следующего - чтобы слать и принимать почту с двух общих адресов - &amp;lt;sales@medialooks-team.com&amp;gt; и &amp;lt;dev@medialooks-team.com&amp;gt;. Почему-то очень многие закачики тупо не получают наши письма. Если это не поможет то нам придется переходить на полностью web-based общение с кастомерами.&lt;br /&gt;
&lt;br /&gt;
* Разобрацо в чем проблема с настройкой goals в гугле.&lt;br /&gt;
&lt;br /&gt;
* Добавить в шаблоны писем (шаблон рассылки нового релиза, 2 шаблона license expired) возможность вставлять &amp;quot;License update link&amp;quot; в случае если такая ссылка указана в свойствах продукта (типа IF License update link exists - вставить следующее). Прислать мне файло шаблонов на редактирование (могу сам залезть но надо настроить тада SVN твой).&lt;br /&gt;
&lt;br /&gt;
* Сделать урлы в свойствах кастомера кликабл.&lt;br /&gt;
&lt;br /&gt;
* Cross-promotion subscriptions.&lt;br /&gt;
&lt;br /&gt;
* Если переименовать продукт, то перестает работать общая ссылка на даунлоад и по-версионные ссылки.&lt;br /&gt;
&lt;br /&gt;
* Contact as System Item (see task description).&lt;br /&gt;
&lt;br /&gt;
* Search (see task description).&lt;br /&gt;
&lt;br /&gt;
* Сортировка по тагам во вьюхе кастомеров. Статистика по тагам.&lt;br /&gt;
&lt;br /&gt;
* Добавить вывод количества лицензионных подписок в графу &amp;quot;Site Subscribers&amp;quot;. Графу переименовать в &amp;quot;Subscribers (Interested/Licensed)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* Общие рассылки. Научиться делать рассылки по всем клиентам. Это должна быть отдельная подписка.&lt;br /&gt;
&lt;br /&gt;
* Персонализированный учет закачек. Мы хотим про каждого клиента знать скачивает он новые версии или нет. В письме, которое он получает при выходе новой версии, можно делать уникальный урл, чтобы система знала нажал он или нет. Второй подход - это использовать куки на тот случай, если клиент скачивает с сайта.&lt;br /&gt;
&lt;br /&gt;
* Статистика закачек. Научицо разделять новые (приходящие с рекламы или из поиска) и повторные (наши кастомеры качают новые версии) закачки.&lt;br /&gt;
&lt;br /&gt;
* Подумать. Если есть идеи как интегрировать с Google Analytics (GA)  AdWords (AW) - было бы клева. Например вытаскивать из GA данные о посещениях конкретной страницы и сравнивать их с данными по закачкам.&lt;br /&gt;
&lt;br /&gt;
* Проблема с возможностью создать продукт у которого все версии - беты. И тогда не работает общая ссылка.&lt;br /&gt;
&lt;br /&gt;
* Проблема с RSS-фидом блога (у меня почему-то аутлук пытаецо запустицо).&lt;br /&gt;
&lt;br /&gt;
* Research on online license document generation. Существует ли какой-нить вебовский генератор PDF?&lt;br /&gt;
&lt;br /&gt;
* Создавать в Google Blog Search и Google Alerts фиды по тегам клиента, подсасывать их и демонстрировать мышап на странице клиента. :)))&lt;br /&gt;
&lt;br /&gt;
* Исследовать возможность автоматически создавать для каждого контакта в RM аккаунт в вике, принадлежащий определенной группе.&lt;br /&gt;
&lt;br /&gt;
* Убивать разделительные знаки в поле contacts (елси это телефон). Нужно для того чтобы можно было искать по номеру телефона в почтовой базе.&lt;br /&gt;
&lt;br /&gt;
* Сортировка по дате последнего релиза вот [http://rm.medialooks.com/distributives тут].&lt;br /&gt;
&lt;br /&gt;
* В RM надо сделать напоминалки для нас об истечении лицензий у кастомеров. (Чтобы пинать/напоминать руками.)&lt;br /&gt;
&lt;br /&gt;
* Поиск кастомеров и контактов по странам в RM.&lt;br /&gt;
&lt;br /&gt;
* Дать возможность редактировать meeting results.&lt;br /&gt;
&lt;br /&gt;
* Доработать функционал реселлеров. Например, чтобы про кастомера было видно что он привязан к некоторому реселлеру ([http://rm.medialooks.com/customer/show/364 пример]).&lt;br /&gt;
&lt;br /&gt;
* Придумать что-нибудь с аттачами. Добавить их в темплейт или как-то иначе автоматизировать. Не забыть про то что он обновляется (автоматизировать?) - может как отдельный продукт его или в этом роде... Нужно уметь видеть версию прайса кот. была отправлена.&lt;br /&gt;
&lt;br /&gt;
* Ручная блокировка аккунта. Выдавать сообщение &amp;quot;Your account has been suspended. Please contact MediaLooks in order to unlock your account.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Выводить количество кастомерских кейсов в скобкаъ на странице кастомера.&lt;br /&gt;
&lt;br /&gt;
* Выводить едишен лицензии в ее свойствах на стр. кастомера.&lt;br /&gt;
&lt;br /&gt;
* Надо различать даунлоады по продуктам (например QT DS и QT Plugin).&lt;br /&gt;
&lt;br /&gt;
* Вот в [http://rm.medialooks.com/product/licenses/22 этой] вьюхе выводить сначала триальные, потом expired лицензии. Триальные лицензии нужно помечать каким-то визуальным образом.&lt;br /&gt;
&lt;br /&gt;
* Тайтлы страниц в RM. Расписать подробнее что где нужно.&lt;br /&gt;
&lt;br /&gt;
* Выводить где-то отдельно триальные лицензии, чтобы можно было пинать кастомеров по ним.&lt;br /&gt;
&lt;br /&gt;
* Нужен способ задать реселлера со страницы кастомера. И нужно на странице кастомера это видеть.&lt;br /&gt;
&lt;br /&gt;
* Сделать опции go to case by number в обоих интерфейсах RM.&lt;br /&gt;
&lt;br /&gt;
* Логгировать даунлоады и выводить в кейсах последнюю скачанную пользователем версии.&lt;br /&gt;
&lt;br /&gt;
* Когда дискуссия идет в теме даунлоад - новые даунлоады ее обновляют что неудобно.&lt;br /&gt;
&lt;br /&gt;
* Идея. Вести две простыни release notes. Одна что вписал девелопер. Другую - что отправлено кастомерам.&lt;br /&gt;
&lt;br /&gt;
* Добавить список аттачей к письму про апдейт кейса.&lt;br /&gt;
&lt;br /&gt;
* Некоторым заказчикам нужно дать возможность заливать на FTP с паролем.&lt;br /&gt;
&lt;br /&gt;
* Надо бы разрешить just comment to customer без реасайна кейса.&lt;br /&gt;
&lt;br /&gt;
* Продумать логику один контакт - две конторы. Пример videoassistech. У него разные адреса для разных случаев.&lt;br /&gt;
&lt;br /&gt;
* Нужно разработать функцию CC case. Там выбираешь N людей кот. кейс как бы идет копией до тех пор пока они не нажпут dismiss.&lt;br /&gt;
&lt;br /&gt;
===Инвойсы===&lt;br /&gt;
&lt;br /&gt;
* Каждому продукту и каждому едишену продукта привязываем цену. Все сущности у которых есть цена, становятся доступными в интерфейсе инвойсинга.&lt;br /&gt;
&lt;br /&gt;
* Что такое инвойс вообще:&lt;br /&gt;
&lt;br /&gt;
1) Это некоторая запись в БД, привязанная к двум другим сущностям RM: кастомеру и пользователю. Нужно добавить две возможности в гуйне: а) просмотреть все инвойсы данного кастомера; б) посмотреть инвойсы данного пользователя (имеется в виду только свои или все, или любого конкретного пользователя - в зависимости от наличия прав).&lt;br /&gt;
2) Наличие неоплаченного инвойса это некоторый особый статус кастомера, самый последний перед закрытием сделки. Неоплаченные инвойсы нужно будет выводить отдельными списками в разных местах системы, чтобы можно было в соответствии с ними делать какие-то действия.&lt;br /&gt;
&lt;br /&gt;
У самого инвойса есть следующие свойства:&lt;br /&gt;
1) Список продуктов, включенных в него.&lt;br /&gt;
2) Скидка.&lt;br /&gt;
3) Данные о клиенте.&lt;br /&gt;
4) Метод платежа.&lt;br /&gt;
&lt;br /&gt;
Инвойс отсылается кастомеру по почте, аттачицо к кейсу и сохраняется в истории. &lt;br /&gt;
&lt;br /&gt;
===Это потом===&lt;br /&gt;
&lt;br /&gt;
* Переделать форму контактов на сайте. Добавить возможность указать второй email. Отдельные поля под скайп, телефон.&lt;br /&gt;
&lt;br /&gt;
* Подписка royalties.&lt;br /&gt;
&lt;br /&gt;
===[Отложено] Communication Monitor===&lt;br /&gt;
&lt;br /&gt;
Сперва обсудить: может сразу делать web-based ticketing system?&lt;br /&gt;
&lt;br /&gt;
Коммуникация - это в данном случае одно из трех:&lt;br /&gt;
&lt;br /&gt;
1) Кастомер заполнил контактную форму на сайте. Насколько я знаю, в этом случае все данные попадают в базу и там храняцо (если трафик платный то [http://www.medialooks.com/admin/block_admin/53 сюда] лучше не нажимать).&lt;br /&gt;
&lt;br /&gt;
2) На один из двух адресов - &amp;lt;sales@medialooks-team.com&amp;gt; и &amp;lt;dev@medialooks-team.com&amp;gt; получено письмо от кастомера.&lt;br /&gt;
&lt;br /&gt;
3) Мы послали кастомеру письмо с одного из двух адресов (во всех случаях мы ставим BCC на адрес, с которого пишем).&lt;br /&gt;
&lt;br /&gt;
В RM нужно реализовать три списка:&lt;br /&gt;
&lt;br /&gt;
1) Список коммуникаций типа (1), на которые не было ответа с одного из двух адресов в течение N часов. &lt;br /&gt;
&lt;br /&gt;
2) Список коммуникаций типа (2), на которые не было ответа с одного из двух адресов в течение M часов. &lt;br /&gt;
&lt;br /&gt;
3) Список коммуникаций типа (3), в случае если от кастомера не было ответа в течение D рабочих дней.&lt;br /&gt;
&lt;br /&gt;
В обоих случаях выводить в таблице всю инфо, которая есть на данный email - телефон, скайп, ссылка на кастомеров, у которых в контактах числицо такой email (см. также &amp;quot;Contact as System Item&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
N, M и D нужно дать возможность конфигурить через гуй RM.&lt;br /&gt;
&lt;br /&gt;
В первом приближении выводить тела писем не нужно. Но в будуем мне кажется мы все равно к этому придем. Поэтому хранить можно уже начинать.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Customer download tracking===&lt;br /&gt;
&lt;br /&gt;
* Индивидуальные даунлоад ссылки для отслеживания какой подписчик нажал на сцылку.&lt;br /&gt;
* Отписка или оповещение администратора о подписчиках который не нажимают на ссылки (признак того что не получают письма или не читают их - но при этом по какой-то причине не отписываются).&lt;br /&gt;
&lt;br /&gt;
===Наследование/объединение продуктов===&lt;br /&gt;
&lt;br /&gt;
Необходимо поддержать два следующих сценария:&lt;br /&gt;
&lt;br /&gt;
1) Существует продукт DirectShow Filter Pack - он включает в себя большой набор DirectShow фильтров. Каждый фильтр релизится по своему графику (т.е. без графика) - поэтому отдельного download для него не существует. Т.е. продукт в данном случае это просто такая лицензия, т.е. совокупность цены и набора компонентов. В RM возможность создавать такие лицензии должна быть реализована в виде продукта в общем списке - просто у него будут какие-то дополнительные свойства как-то &amp;quot;включать в себя такие-то продукты&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Соответственно, при создании лицензии на такой продукт нужно сделать так чтобы:&lt;br /&gt;
&lt;br /&gt;
* Контакты кастомера могли быть подписаны на релизы (updates) по каждому из продуктов отдельно. По-умолчанию - создается подписка на все входящие в пакет продукты. Отписаться от каждого из продуктов в отдельности можно через сцылку на отписку из письма или это можно сделать через редактирование свойств лицензии.&lt;br /&gt;
&lt;br /&gt;
* Контакты кастомера не были дубликатно подписаны на эти же самые продукты через другие механизмы RM.&lt;br /&gt;
&lt;br /&gt;
* Подписка License Expired в данном случае остается одна - только на общий продукт. Но в случае, если подписка истекла, то при рассылке Release Updates в тело письма вставляется соотв. сообщение (т.к. это сейчас сделано для обычных лицензий).&lt;br /&gt;
&lt;br /&gt;
* В случае если для продукты DirectShow Filter Pack - RM конечно же имеет право наложить в штаны но после этого должен немедленно собрацо и вести себя так как будто он точно знает что нужно делать - а именно вести себя так как будто DirectShow Filter Pack это самый обычный продукт (т.е. появитсо в Distributives и дать возможность сделать рассылку). Т.е. обычная рассылка Release Updates для продукта такого типа тоже создаецо.&lt;br /&gt;
&lt;br /&gt;
2) Существуют продукты DeckLink SDK, Playout SDK и Multimedia SDK, для которых мы решили в целях упрощения использовать общий даунлоад. В данном случае все остается как есть - т.е. лицензии создаются именно под эти продукты, отдельно ведется статистика подписок, лицензий и закачек - но используется только один download.&lt;br /&gt;
&lt;br /&gt;
Например, мы говорим что DeckLink SDK и Playout SDK - оба используют download Multimedia SDK. Разработчик закачивает новый релиз именно для Multimedia SDK. Этот новый релиз появляется в разделе Distributives. Я его модерю, нажимаю сделать рассылку - и, как и раньше, выходят три блока писем - для DeckLink SDK, Playout SDk и Multimedia SDK.&lt;br /&gt;
&lt;br /&gt;
Особенность: ссылка во всех письмах теперь называется multimedia sdk. Делать редиректы и переименования - не надо (иначе клиенты будут говорить я скачал Playout SDK а мне ставится Multimedia SDK).&lt;br /&gt;
&lt;br /&gt;
===Industry-Based Subscriptions===&lt;br /&gt;
&lt;br /&gt;
Добавить возможность создавать рассылки по индустриям. В целом все аналогично тому как сейчас работают подписки на новые релизы. Можно подписывать контакты руками. А при рассылке заодно рассылать тем, кто является клиентом какого-либо продукта и тоже записан в эту индустрию.&lt;br /&gt;
&lt;br /&gt;
Возможно, когда у нас появятся разные способы делать рассылки, придется придумывать способы не слать дважды по одному и тому же поводу. Например, заводить для рассылки какой-нибудь ID.&lt;br /&gt;
&lt;br /&gt;
===Contact as System Item===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать контакты как самостоятельную сущность.&lt;br /&gt;
&lt;br /&gt;
Контакт представляет из себя имя (текстовое поле например &amp;quot;Andrew Okunev) и ассоциированный c ним набор полей:&lt;br /&gt;
&lt;br /&gt;
* email name (используется в подстановках в письмах; если пусто, используется &amp;quot;customer&amp;quot;)&lt;br /&gt;
* email (любое количество)&lt;br /&gt;
* skype (любое количество)&lt;br /&gt;
* телефон (любое количество)&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать отображение и редактирование свойств для любого из контактов. Например:&lt;br /&gt;
&lt;br /&gt;
* Когда добавлен в систему&lt;br /&gt;
* С какими компаниями (Customers) ассоциирован.&lt;br /&gt;
* С какими лицензиями ассоциирован.&lt;br /&gt;
* На какие подписки подписан.&lt;br /&gt;
&lt;br /&gt;
Все это нужно реализовать в одной вьюхе. Редактирование доступно только администратору системы.&lt;br /&gt;
&lt;br /&gt;
Примечания:&lt;br /&gt;
&lt;br /&gt;
* В системе должны отсутствовать дубликаты по email. Дубликаты по имени допустимы (т.е. когда одинаковое имя но разный email), но должна быть возможность их соединить (т.е. превратить в один контакт с двумя email). Реализовать это можно через отдельную вьюху, доступную администратору.&lt;br /&gt;
&lt;br /&gt;
* Если у контакта больше одного email, то любой из них может использоваться для авторизации.&lt;br /&gt;
&lt;br /&gt;
* Новый контакт (как сущность) создается при любом добавлении контакта в систему (например, при создании подписки через модуль subscribers.&lt;br /&gt;
&lt;br /&gt;
===Universal Uploads===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать возможность закачивать в RM абстрактные (не привязанные к какому-либо продукту) файлы. При этом каждому такому файлу должен быть по-умолчанию присвоен срок жизни - 30 дней. После чего файл автоматически удаляется. Файлы можно защищать паролем, который требуется для скачки.&lt;br /&gt;
&lt;br /&gt;
Каждый файл привязан к какому-либо юзеру. Только у этого пользователя (или у администратора) есть возможность добавлять к своему аккаунту файлы или удалять их. Каждую закачку можно удалить или обновить файл в ней.&lt;br /&gt;
&lt;br /&gt;
Соответственно, необходимо создать две новых вьюхи:&lt;br /&gt;
&lt;br /&gt;
1) Вьюха создания закачки. Опции: текстедит срок жизни (по-умолчанию вбито 30), чекбокс защитить паролем, путь к файлу.&lt;br /&gt;
&lt;br /&gt;
2) Вьюха список закачек данного юзера. Отображать: имя файла, количество скачек, оставшийся срок жизни, дата закачки. Имя файла является ссылкой на данный файл (вида rm.medialooks.com/...).&lt;br /&gt;
&lt;br /&gt;
В меню каждого юзера должно быть что-то вроде &amp;quot;My Uploads&amp;quot;, которая ведет на вьюху (2).&lt;br /&gt;
&lt;br /&gt;
===Customer Access===&lt;br /&gt;
&lt;br /&gt;
Нужно научицо давать кастомерам доступ к аплоадам. Для этого нужно реализовать в RM еще одну роль - &amp;quot;Customer&amp;quot;. Роль &amp;quot;User&amp;quot; нужно переименовать в &amp;quot;Developer&amp;quot;. Каждый контакт, добавленный в систему, должен получать соотв. статус и автоматически сгенеренный пароль. Никаких писем при заведении пользователей пока автоматически рассылать не надо. Однако, при первой попытке зайти в систему, кастомер должен по почте получить свой пароль. Залогинившись, он имеет доступ только к своим аплоадам (в будущем добавим еще подписки и лицензии).&lt;br /&gt;
&lt;br /&gt;
===Search===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать поиск в системе. Форма поиска - одна на все случаи. Она должна размещаться на всех страницах системы.&lt;br /&gt;
&lt;br /&gt;
По каким полям искать:&lt;br /&gt;
&lt;br /&gt;
* По контактам.&lt;br /&gt;
* По названию клиента.&lt;br /&gt;
* По тегу клиента.&lt;br /&gt;
&lt;br /&gt;
'''Пример.''' Если в поле поиска ввден запрос:&lt;br /&gt;
&lt;br /&gt;
Andrew A. Okunev &amp;lt;dev@medialooks.com&amp;gt; (MediaLooks)&lt;br /&gt;
&lt;br /&gt;
- то сперва нужно произвести поиск отдельно по &amp;quot;Osman Yel&amp;quot;, &amp;quot;dev@medialooks.com&amp;quot; и &amp;quot;MediaLooks&amp;quot;. Эти результаты вывести в первую очередь.&lt;br /&gt;
&lt;br /&gt;
Во-вторую - выделить из поисковой строки название домена и отрезать от него домен первого уровня. Т.е. в нашем примере искать по строке &amp;quot;medialooks&amp;quot;. Эти результаты вывести во вторую очередь.&lt;br /&gt;
&lt;br /&gt;
Кроме этого, естественно должен работать поиск в том случае если исходный запрос это &amp;quot;dev@medialooks.com&amp;quot; или просто &amp;quot;medialooks&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===LinkedIn Integration===&lt;br /&gt;
&lt;br /&gt;
Зачем? Любая система управления контактами страдает одним недостатком - ей неоткуда узнать о том, что у кого-то поменялся email или телефон.&lt;br /&gt;
&lt;br /&gt;
Предполагается что пользователи LinkedIn (за исключением [http://www.linkedin.com/pub/2/26b/926 некоторых] поддерживают свой профиль в актуальном состоянии. В частности, следят за тем, чтобы в профиле был актуальный email.&lt;br /&gt;
&lt;br /&gt;
В результате хочется получить поддержку следующих сценариев:&lt;br /&gt;
&lt;br /&gt;
* Узнавать об изменениях в контактной информации наших клиентов.&lt;br /&gt;
* Приглашать в нашу сеть клиентов, которые уже используют LinkedIn.&lt;br /&gt;
* Приглашать в LinkedIn тех клиентов, которые его пока не используют.&lt;br /&gt;
* Если клиент для общение с нами использует один email, а для LinkedIn - другой, - то нам нужно узнать этот email и использовать его как запасной/альтернативный.&lt;br /&gt;
&lt;br /&gt;
Для начала думаю следует просто проверить, позволяет ли API делать следующее:&lt;br /&gt;
&lt;br /&gt;
* Авторизоваться в системе под каким-то реальным логином (например, подо мной).&lt;br /&gt;
* Поискать пользователей по email.&lt;br /&gt;
* Получить email любого из моих контактов.&lt;br /&gt;
* Послать конкретному пользователю инвайт, иметь возможность указать кастомный текст для инвайта.&lt;br /&gt;
* Пригласить нового пользователя через email, то же самое с кастомным текстом.&lt;br /&gt;
&lt;br /&gt;
Задача неактуальна поскольку как я понял от LinkedIn нужно сначала получить одобрение на использование API:&lt;br /&gt;
&lt;br /&gt;
* http://www.linkedin.com/static?key=developers_apis&lt;br /&gt;
&lt;br /&gt;
==Done Tasks==&lt;br /&gt;
&lt;br /&gt;
* [[LMS/CMS Tasks: Done]]&lt;br /&gt;
&lt;br /&gt;
[[Category: Tasks]]&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Ivan</name></author>	</entry>

	<entry>
		<id>http://wiki.avobjects.com/Dev:RM/LMS_Tasks</id>
		<title>Dev:RM/LMS Tasks</title>
		<link rel="alternate" type="text/html" href="http://wiki.avobjects.com/Dev:RM/LMS_Tasks"/>
				<updated>2009-11-04T10:44:13Z</updated>
		
		<summary type="html">&lt;p&gt;Ivan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See also:&lt;br /&gt;
&lt;br /&gt;
* [[Dev:Tasks To Complete Before We Can Papustico!]]&lt;br /&gt;
* [[CMS Tasks]]&lt;br /&gt;
* [[Dev:Communication System]]&lt;br /&gt;
* [[Dev: Support System Roles]]&lt;br /&gt;
* [[Dev: RM User Rights]]&lt;br /&gt;
* [[Dev: RM Licensing Feature Update]]&lt;br /&gt;
&lt;br /&gt;
==RM/LMS Tasks==&lt;br /&gt;
&lt;br /&gt;
==DONE==&lt;br /&gt;
* [bug] Откуда-то взялся кейс in progress без асайна - [http://rm.medialooks.com/messages/show/1586].&lt;br /&gt;
'''забить, он старый'''&lt;br /&gt;
&lt;br /&gt;
* [bug] При паттписке-атписке из кейса выскакивает явоскрпитовый диалог с цифрами (например, 68).&lt;br /&gt;
&lt;br /&gt;
* [bug] Чичас после нажатия на Send emails в [http://rm.medialooks.com/distributives/show/39 релизах] в гуйне ничо не происходит. Т.е. кажецо что ты промахнулсо и хочецо нажать кнопку исчо раз. Хотя на самом деле все срабатывает (письма шлюцо) и если со страницы уйти то из [http://rm.medialooks.com/distributives списка] этот продукт исчезнет.&lt;br /&gt;
'''происходит, но долго'''&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] При создании или редактировании лицензии. Убрать галку &amp;quot;Send license files&amp;quot; и добавить просто новую кнопку &amp;quot;Save and Send License Files&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] Добавть ссылочку Re-send License Files прямо рядом с Edit License. Update переименовать в Renew. Пункты меню расположить так: Renew License | Edit License | Re-send License Files | Delete License.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] Ссылочку Add License поместить над списком лицензий и назвать Add New License.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] Notes в свойствах лицензии нужно выводить красным.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/messages/new_cases/SM] Для всех вариантов отображения списка кейсов. В табличке со списком выводить также статус (In progess, waiting, etc.) - предпоследней колонкой.&lt;br /&gt;
&lt;br /&gt;
* [note] Добавить бряк после номера версии в тексте релилз ноутс который вставляется в subscribe.&lt;br /&gt;
&lt;br /&gt;
* [note] Для license_file.rhtml нужно новое условие - триальная лицензия или нет. Т.к. текст в этом случае другой.&lt;br /&gt;
'''оно там есть, просто называецо нетривиально: &amp;lt;% if @expiration_date %&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/] Писать дату рядом с номером версии на главной странице.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer] В списке кастомеров выводить еще и company таг (первой колонкой).&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/control] Не нужна такая длинная простыня изменений на странице рестарт апдейт RM. А когда она делает рестарт хотелось бы какой-нить индикации.&lt;br /&gt;
'''с индикацией сложности, давай пока это повисит'''&lt;br /&gt;
&lt;br /&gt;
* Када дуплицируецо кейс нада в логе выводить ссылку на дочерний кейс. Ссылка на родительский кейс сейчас есть, а вот наоборот - &lt;br /&gt;
'''сделал'''&lt;br /&gt;
&lt;br /&gt;
нету. Кроме этого, хорошо бы в обоих случаях (родитель и дочко) выводить вверху что-то вроде This case has parent cases:&amp;lt;br&amp;gt;* Subject или This case has child cases...&lt;br /&gt;
'''с этим сложности. ща это помечается в логе, который может сожержать все что угодно'''&lt;br /&gt;
&lt;br /&gt;
==TODO==&lt;br /&gt;
&lt;br /&gt;
===Current===&lt;br /&gt;
&lt;br /&gt;
===To Think About===&lt;br /&gt;
&lt;br /&gt;
* Как сделать FTP с per customer паролями?&lt;br /&gt;
* Как добавить features и подписку кастомеров на них?&lt;br /&gt;
&lt;br /&gt;
===Important CRM/Email-Related Fixes===&lt;br /&gt;
&lt;br /&gt;
* Сделать возможность CC на кейс.&lt;br /&gt;
&lt;br /&gt;
* Сделать фичу слежения за кейсами.&lt;br /&gt;
&lt;br /&gt;
* Мердждинг кейсов.&lt;br /&gt;
&lt;br /&gt;
===Bugs, Fixes, Questions===&lt;br /&gt;
&lt;br /&gt;
* Нужно проверить что это не глюки у нас (такое кол-во закачек) и залочить чувака [http://rm.medialooks.com/messages/show/1700].&lt;br /&gt;
&lt;br /&gt;
* [unconfirmed] При наличии customer с некоторым email не срабатывает подписка этого email на любой продукт. Запрет должен срабатывать только в случае если лицензия есть именно на этот продукт (возможно, тут надо еще добавить логику про наследованные продукты).&lt;br /&gt;
&lt;br /&gt;
* [Bug] Не работает напоминалка проля в даунлоадах.&lt;br /&gt;
&lt;br /&gt;
* Сбрасывается инфо при вводе уже зареганого email.&lt;br /&gt;
&lt;br /&gt;
* Красные буквы при вводе adsf@medialooks.com.&lt;br /&gt;
&lt;br /&gt;
* Не обрабатываются ошибки типа wrong password в даунлоадз.&lt;br /&gt;
&lt;br /&gt;
* В моей опере никогда не начинаются даунлоады автоматом.&lt;br /&gt;
&lt;br /&gt;
===RM Access Rights===&lt;br /&gt;
&lt;br /&gt;
* Сейчас если зайти на главную под пользовтелем cthomson@medialooks.com (Reseller/Sales Manager) то у него нет столбца Customers. Нужно добавить и выводить там соответственно только доступных ему кастомеров.&lt;br /&gt;
&lt;br /&gt;
===Подписки===&lt;br /&gt;
&lt;br /&gt;
* Подписка Update Discount Expiration. Ввести для лицензий которые expired только после 01.12.2009. Т.е. письма по этой подписке должны начать ходить примерно с 01.05.2010.&lt;br /&gt;
&lt;br /&gt;
* Новая подписка license_expred_followup - которая будет запускацо спустя 4 месяца после истечения подписки. Там написано что через 2 месяца закончицо скидка 50% на продление лицензии. (Кстати идея - может давать доп. скидку за продление в течение месяца после истечения паттписки - типа 65%?)&lt;br /&gt;
&lt;br /&gt;
===Backups to Amazon S3===&lt;br /&gt;
&lt;br /&gt;
Давай будем наш бэкапный файл закачивать на амазон раз в неделю. Я сделал там аккаунт.&lt;br /&gt;
&lt;br /&gt;
===Tasks===&lt;br /&gt;
&lt;br /&gt;
* [Отложено] New email setup. Нужно засетапить новый домен medialooks-team.com. Мы будем его использовать для следующего - чтобы слать и принимать почту с двух общих адресов - &amp;lt;sales@medialooks-team.com&amp;gt; и &amp;lt;dev@medialooks-team.com&amp;gt;. Почему-то очень многие закачики тупо не получают наши письма. Если это не поможет то нам придется переходить на полностью web-based общение с кастомерами.&lt;br /&gt;
&lt;br /&gt;
* Разобрацо в чем проблема с настройкой goals в гугле.&lt;br /&gt;
&lt;br /&gt;
* Добавить в шаблоны писем (шаблон рассылки нового релиза, 2 шаблона license expired) возможность вставлять &amp;quot;License update link&amp;quot; в случае если такая ссылка указана в свойствах продукта (типа IF License update link exists - вставить следующее). Прислать мне файло шаблонов на редактирование (могу сам залезть но надо настроить тада SVN твой).&lt;br /&gt;
&lt;br /&gt;
* Сделать урлы в свойствах кастомера кликабл.&lt;br /&gt;
&lt;br /&gt;
* Cross-promotion subscriptions.&lt;br /&gt;
&lt;br /&gt;
* Если переименовать продукт, то перестает работать общая ссылка на даунлоад и по-версионные ссылки.&lt;br /&gt;
&lt;br /&gt;
* Contact as System Item (see task description).&lt;br /&gt;
&lt;br /&gt;
* Search (see task description).&lt;br /&gt;
&lt;br /&gt;
* Сортировка по тагам во вьюхе кастомеров. Статистика по тагам.&lt;br /&gt;
&lt;br /&gt;
* Добавить вывод количества лицензионных подписок в графу &amp;quot;Site Subscribers&amp;quot;. Графу переименовать в &amp;quot;Subscribers (Interested/Licensed)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* Общие рассылки. Научиться делать рассылки по всем клиентам. Это должна быть отдельная подписка.&lt;br /&gt;
&lt;br /&gt;
* Персонализированный учет закачек. Мы хотим про каждого клиента знать скачивает он новые версии или нет. В письме, которое он получает при выходе новой версии, можно делать уникальный урл, чтобы система знала нажал он или нет. Второй подход - это использовать куки на тот случай, если клиент скачивает с сайта.&lt;br /&gt;
&lt;br /&gt;
* Статистика закачек. Научицо разделять новые (приходящие с рекламы или из поиска) и повторные (наши кастомеры качают новые версии) закачки.&lt;br /&gt;
&lt;br /&gt;
* Подумать. Если есть идеи как интегрировать с Google Analytics (GA)  AdWords (AW) - было бы клева. Например вытаскивать из GA данные о посещениях конкретной страницы и сравнивать их с данными по закачкам.&lt;br /&gt;
&lt;br /&gt;
* Проблема с возможностью создать продукт у которого все версии - беты. И тогда не работает общая ссылка.&lt;br /&gt;
&lt;br /&gt;
* Проблема с RSS-фидом блога (у меня почему-то аутлук пытаецо запустицо).&lt;br /&gt;
&lt;br /&gt;
* Research on online license document generation. Существует ли какой-нить вебовский генератор PDF?&lt;br /&gt;
&lt;br /&gt;
* Создавать в Google Blog Search и Google Alerts фиды по тегам клиента, подсасывать их и демонстрировать мышап на странице клиента. :)))&lt;br /&gt;
&lt;br /&gt;
* Исследовать возможность автоматически создавать для каждого контакта в RM аккаунт в вике, принадлежащий определенной группе.&lt;br /&gt;
&lt;br /&gt;
* Убивать разделительные знаки в поле contacts (елси это телефон). Нужно для того чтобы можно было искать по номеру телефона в почтовой базе.&lt;br /&gt;
&lt;br /&gt;
* Сортировка по дате последнего релиза вот [http://rm.medialooks.com/distributives тут].&lt;br /&gt;
&lt;br /&gt;
* В RM надо сделать напоминалки для нас об истечении лицензий у кастомеров. (Чтобы пинать/напоминать руками.)&lt;br /&gt;
&lt;br /&gt;
* Поиск кастомеров и контактов по странам в RM.&lt;br /&gt;
&lt;br /&gt;
* Дать возможность редактировать meeting results.&lt;br /&gt;
&lt;br /&gt;
* Доработать функционал реселлеров. Например, чтобы про кастомера было видно что он привязан к некоторому реселлеру ([http://rm.medialooks.com/customer/show/364 пример]).&lt;br /&gt;
&lt;br /&gt;
* Придумать что-нибудь с аттачами. Добавить их в темплейт или как-то иначе автоматизировать. Не забыть про то что он обновляется (автоматизировать?) - может как отдельный продукт его или в этом роде... Нужно уметь видеть версию прайса кот. была отправлена.&lt;br /&gt;
&lt;br /&gt;
* Ручная блокировка аккунта. Выдавать сообщение &amp;quot;Your account has been suspended. Please contact MediaLooks in order to unlock your account.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Выводить количество кастомерских кейсов в скобкаъ на странице кастомера.&lt;br /&gt;
&lt;br /&gt;
* Выводить едишен лицензии в ее свойствах на стр. кастомера.&lt;br /&gt;
&lt;br /&gt;
* Надо различать даунлоады по продуктам (например QT DS и QT Plugin).&lt;br /&gt;
&lt;br /&gt;
* Вот в [http://rm.medialooks.com/product/licenses/22 этой] вьюхе выводить сначала триальные, потом expired лицензии. Триальные лицензии нужно помечать каким-то визуальным образом.&lt;br /&gt;
&lt;br /&gt;
* Тайтлы страниц в RM. Расписать подробнее что где нужно.&lt;br /&gt;
&lt;br /&gt;
* Выводить где-то отдельно триальные лицензии, чтобы можно было пинать кастомеров по ним.&lt;br /&gt;
&lt;br /&gt;
* Нужен способ задать реселлера со страницы кастомера. И нужно на странице кастомера это видеть.&lt;br /&gt;
&lt;br /&gt;
* Сделать опции go to case by number в обоих интерфейсах RM.&lt;br /&gt;
&lt;br /&gt;
* Логгировать даунлоады и выводить в кейсах последнюю скачанную пользователем версии.&lt;br /&gt;
&lt;br /&gt;
* Когда дискуссия идет в теме даунлоад - новые даунлоады ее обновляют что неудобно.&lt;br /&gt;
&lt;br /&gt;
* Идея. Вести две простыни release notes. Одна что вписал девелопер. Другую - что отправлено кастомерам.&lt;br /&gt;
&lt;br /&gt;
* Добавить список аттачей к письму про апдейт кейса.&lt;br /&gt;
&lt;br /&gt;
* Некоторым заказчикам нужно дать возможность заливать на FTP с паролем.&lt;br /&gt;
&lt;br /&gt;
* Надо бы разрешить just comment to customer без реасайна кейса.&lt;br /&gt;
&lt;br /&gt;
* Продумать логику один контакт - две конторы. Пример videoassistech. У него разные адреса для разных случаев.&lt;br /&gt;
&lt;br /&gt;
* Нужно разработать функцию CC case. Там выбираешь N людей кот. кейс как бы идет копией до тех пор пока они не нажпут dismiss.&lt;br /&gt;
&lt;br /&gt;
===Инвойсы===&lt;br /&gt;
&lt;br /&gt;
* Каждому продукту и каждому едишену продукта привязываем цену. Все сущности у которых есть цена, становятся доступными в интерфейсе инвойсинга.&lt;br /&gt;
&lt;br /&gt;
* Что такое инвойс вообще:&lt;br /&gt;
&lt;br /&gt;
1) Это некоторая запись в БД, привязанная к двум другим сущностям RM: кастомеру и пользователю. Нужно добавить две возможности в гуйне: а) просмотреть все инвойсы данного кастомера; б) посмотреть инвойсы данного пользователя (имеется в виду только свои или все, или любого конкретного пользователя - в зависимости от наличия прав).&lt;br /&gt;
2) Наличие неоплаченного инвойса это некоторый особый статус кастомера, самый последний перед закрытием сделки. Неоплаченные инвойсы нужно будет выводить отдельными списками в разных местах системы, чтобы можно было в соответствии с ними делать какие-то действия.&lt;br /&gt;
&lt;br /&gt;
У самого инвойса есть следующие свойства:&lt;br /&gt;
1) Список продуктов, включенных в него.&lt;br /&gt;
2) Скидка.&lt;br /&gt;
3) Данные о клиенте.&lt;br /&gt;
4) Метод платежа.&lt;br /&gt;
&lt;br /&gt;
Инвойс отсылается кастомеру по почте, аттачицо к кейсу и сохраняется в истории. &lt;br /&gt;
&lt;br /&gt;
===Это потом===&lt;br /&gt;
&lt;br /&gt;
* Переделать форму контактов на сайте. Добавить возможность указать второй email. Отдельные поля под скайп, телефон.&lt;br /&gt;
&lt;br /&gt;
* Подписка royalties.&lt;br /&gt;
&lt;br /&gt;
===[Отложено] Communication Monitor===&lt;br /&gt;
&lt;br /&gt;
Сперва обсудить: может сразу делать web-based ticketing system?&lt;br /&gt;
&lt;br /&gt;
Коммуникация - это в данном случае одно из трех:&lt;br /&gt;
&lt;br /&gt;
1) Кастомер заполнил контактную форму на сайте. Насколько я знаю, в этом случае все данные попадают в базу и там храняцо (если трафик платный то [http://www.medialooks.com/admin/block_admin/53 сюда] лучше не нажимать).&lt;br /&gt;
&lt;br /&gt;
2) На один из двух адресов - &amp;lt;sales@medialooks-team.com&amp;gt; и &amp;lt;dev@medialooks-team.com&amp;gt; получено письмо от кастомера.&lt;br /&gt;
&lt;br /&gt;
3) Мы послали кастомеру письмо с одного из двух адресов (во всех случаях мы ставим BCC на адрес, с которого пишем).&lt;br /&gt;
&lt;br /&gt;
В RM нужно реализовать три списка:&lt;br /&gt;
&lt;br /&gt;
1) Список коммуникаций типа (1), на которые не было ответа с одного из двух адресов в течение N часов. &lt;br /&gt;
&lt;br /&gt;
2) Список коммуникаций типа (2), на которые не было ответа с одного из двух адресов в течение M часов. &lt;br /&gt;
&lt;br /&gt;
3) Список коммуникаций типа (3), в случае если от кастомера не было ответа в течение D рабочих дней.&lt;br /&gt;
&lt;br /&gt;
В обоих случаях выводить в таблице всю инфо, которая есть на данный email - телефон, скайп, ссылка на кастомеров, у которых в контактах числицо такой email (см. также &amp;quot;Contact as System Item&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
N, M и D нужно дать возможность конфигурить через гуй RM.&lt;br /&gt;
&lt;br /&gt;
В первом приближении выводить тела писем не нужно. Но в будуем мне кажется мы все равно к этому придем. Поэтому хранить можно уже начинать.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Customer download tracking===&lt;br /&gt;
&lt;br /&gt;
* Индивидуальные даунлоад ссылки для отслеживания какой подписчик нажал на сцылку.&lt;br /&gt;
* Отписка или оповещение администратора о подписчиках который не нажимают на ссылки (признак того что не получают письма или не читают их - но при этом по какой-то причине не отписываются).&lt;br /&gt;
&lt;br /&gt;
===Наследование/объединение продуктов===&lt;br /&gt;
&lt;br /&gt;
Необходимо поддержать два следующих сценария:&lt;br /&gt;
&lt;br /&gt;
1) Существует продукт DirectShow Filter Pack - он включает в себя большой набор DirectShow фильтров. Каждый фильтр релизится по своему графику (т.е. без графика) - поэтому отдельного download для него не существует. Т.е. продукт в данном случае это просто такая лицензия, т.е. совокупность цены и набора компонентов. В RM возможность создавать такие лицензии должна быть реализована в виде продукта в общем списке - просто у него будут какие-то дополнительные свойства как-то &amp;quot;включать в себя такие-то продукты&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Соответственно, при создании лицензии на такой продукт нужно сделать так чтобы:&lt;br /&gt;
&lt;br /&gt;
* Контакты кастомера могли быть подписаны на релизы (updates) по каждому из продуктов отдельно. По-умолчанию - создается подписка на все входящие в пакет продукты. Отписаться от каждого из продуктов в отдельности можно через сцылку на отписку из письма или это можно сделать через редактирование свойств лицензии.&lt;br /&gt;
&lt;br /&gt;
* Контакты кастомера не были дубликатно подписаны на эти же самые продукты через другие механизмы RM.&lt;br /&gt;
&lt;br /&gt;
* Подписка License Expired в данном случае остается одна - только на общий продукт. Но в случае, если подписка истекла, то при рассылке Release Updates в тело письма вставляется соотв. сообщение (т.к. это сейчас сделано для обычных лицензий).&lt;br /&gt;
&lt;br /&gt;
* В случае если для продукты DirectShow Filter Pack - RM конечно же имеет право наложить в штаны но после этого должен немедленно собрацо и вести себя так как будто он точно знает что нужно делать - а именно вести себя так как будто DirectShow Filter Pack это самый обычный продукт (т.е. появитсо в Distributives и дать возможность сделать рассылку). Т.е. обычная рассылка Release Updates для продукта такого типа тоже создаецо.&lt;br /&gt;
&lt;br /&gt;
2) Существуют продукты DeckLink SDK, Playout SDK и Multimedia SDK, для которых мы решили в целях упрощения использовать общий даунлоад. В данном случае все остается как есть - т.е. лицензии создаются именно под эти продукты, отдельно ведется статистика подписок, лицензий и закачек - но используется только один download.&lt;br /&gt;
&lt;br /&gt;
Например, мы говорим что DeckLink SDK и Playout SDK - оба используют download Multimedia SDK. Разработчик закачивает новый релиз именно для Multimedia SDK. Этот новый релиз появляется в разделе Distributives. Я его модерю, нажимаю сделать рассылку - и, как и раньше, выходят три блока писем - для DeckLink SDK, Playout SDk и Multimedia SDK.&lt;br /&gt;
&lt;br /&gt;
Особенность: ссылка во всех письмах теперь называется multimedia sdk. Делать редиректы и переименования - не надо (иначе клиенты будут говорить я скачал Playout SDK а мне ставится Multimedia SDK).&lt;br /&gt;
&lt;br /&gt;
===Industry-Based Subscriptions===&lt;br /&gt;
&lt;br /&gt;
Добавить возможность создавать рассылки по индустриям. В целом все аналогично тому как сейчас работают подписки на новые релизы. Можно подписывать контакты руками. А при рассылке заодно рассылать тем, кто является клиентом какого-либо продукта и тоже записан в эту индустрию.&lt;br /&gt;
&lt;br /&gt;
Возможно, когда у нас появятся разные способы делать рассылки, придется придумывать способы не слать дважды по одному и тому же поводу. Например, заводить для рассылки какой-нибудь ID.&lt;br /&gt;
&lt;br /&gt;
===Contact as System Item===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать контакты как самостоятельную сущность.&lt;br /&gt;
&lt;br /&gt;
Контакт представляет из себя имя (текстовое поле например &amp;quot;Andrew Okunev) и ассоциированный c ним набор полей:&lt;br /&gt;
&lt;br /&gt;
* email name (используется в подстановках в письмах; если пусто, используется &amp;quot;customer&amp;quot;)&lt;br /&gt;
* email (любое количество)&lt;br /&gt;
* skype (любое количество)&lt;br /&gt;
* телефон (любое количество)&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать отображение и редактирование свойств для любого из контактов. Например:&lt;br /&gt;
&lt;br /&gt;
* Когда добавлен в систему&lt;br /&gt;
* С какими компаниями (Customers) ассоциирован.&lt;br /&gt;
* С какими лицензиями ассоциирован.&lt;br /&gt;
* На какие подписки подписан.&lt;br /&gt;
&lt;br /&gt;
Все это нужно реализовать в одной вьюхе. Редактирование доступно только администратору системы.&lt;br /&gt;
&lt;br /&gt;
Примечания:&lt;br /&gt;
&lt;br /&gt;
* В системе должны отсутствовать дубликаты по email. Дубликаты по имени допустимы (т.е. когда одинаковое имя но разный email), но должна быть возможность их соединить (т.е. превратить в один контакт с двумя email). Реализовать это можно через отдельную вьюху, доступную администратору.&lt;br /&gt;
&lt;br /&gt;
* Если у контакта больше одного email, то любой из них может использоваться для авторизации.&lt;br /&gt;
&lt;br /&gt;
* Новый контакт (как сущность) создается при любом добавлении контакта в систему (например, при создании подписки через модуль subscribers.&lt;br /&gt;
&lt;br /&gt;
===Universal Uploads===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать возможность закачивать в RM абстрактные (не привязанные к какому-либо продукту) файлы. При этом каждому такому файлу должен быть по-умолчанию присвоен срок жизни - 30 дней. После чего файл автоматически удаляется. Файлы можно защищать паролем, который требуется для скачки.&lt;br /&gt;
&lt;br /&gt;
Каждый файл привязан к какому-либо юзеру. Только у этого пользователя (или у администратора) есть возможность добавлять к своему аккаунту файлы или удалять их. Каждую закачку можно удалить или обновить файл в ней.&lt;br /&gt;
&lt;br /&gt;
Соответственно, необходимо создать две новых вьюхи:&lt;br /&gt;
&lt;br /&gt;
1) Вьюха создания закачки. Опции: текстедит срок жизни (по-умолчанию вбито 30), чекбокс защитить паролем, путь к файлу.&lt;br /&gt;
&lt;br /&gt;
2) Вьюха список закачек данного юзера. Отображать: имя файла, количество скачек, оставшийся срок жизни, дата закачки. Имя файла является ссылкой на данный файл (вида rm.medialooks.com/...).&lt;br /&gt;
&lt;br /&gt;
В меню каждого юзера должно быть что-то вроде &amp;quot;My Uploads&amp;quot;, которая ведет на вьюху (2).&lt;br /&gt;
&lt;br /&gt;
===Customer Access===&lt;br /&gt;
&lt;br /&gt;
Нужно научицо давать кастомерам доступ к аплоадам. Для этого нужно реализовать в RM еще одну роль - &amp;quot;Customer&amp;quot;. Роль &amp;quot;User&amp;quot; нужно переименовать в &amp;quot;Developer&amp;quot;. Каждый контакт, добавленный в систему, должен получать соотв. статус и автоматически сгенеренный пароль. Никаких писем при заведении пользователей пока автоматически рассылать не надо. Однако, при первой попытке зайти в систему, кастомер должен по почте получить свой пароль. Залогинившись, он имеет доступ только к своим аплоадам (в будущем добавим еще подписки и лицензии).&lt;br /&gt;
&lt;br /&gt;
===Search===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать поиск в системе. Форма поиска - одна на все случаи. Она должна размещаться на всех страницах системы.&lt;br /&gt;
&lt;br /&gt;
По каким полям искать:&lt;br /&gt;
&lt;br /&gt;
* По контактам.&lt;br /&gt;
* По названию клиента.&lt;br /&gt;
* По тегу клиента.&lt;br /&gt;
&lt;br /&gt;
'''Пример.''' Если в поле поиска ввден запрос:&lt;br /&gt;
&lt;br /&gt;
Andrew A. Okunev &amp;lt;dev@medialooks.com&amp;gt; (MediaLooks)&lt;br /&gt;
&lt;br /&gt;
- то сперва нужно произвести поиск отдельно по &amp;quot;Osman Yel&amp;quot;, &amp;quot;dev@medialooks.com&amp;quot; и &amp;quot;MediaLooks&amp;quot;. Эти результаты вывести в первую очередь.&lt;br /&gt;
&lt;br /&gt;
Во-вторую - выделить из поисковой строки название домена и отрезать от него домен первого уровня. Т.е. в нашем примере искать по строке &amp;quot;medialooks&amp;quot;. Эти результаты вывести во вторую очередь.&lt;br /&gt;
&lt;br /&gt;
Кроме этого, естественно должен работать поиск в том случае если исходный запрос это &amp;quot;dev@medialooks.com&amp;quot; или просто &amp;quot;medialooks&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===LinkedIn Integration===&lt;br /&gt;
&lt;br /&gt;
Зачем? Любая система управления контактами страдает одним недостатком - ей неоткуда узнать о том, что у кого-то поменялся email или телефон.&lt;br /&gt;
&lt;br /&gt;
Предполагается что пользователи LinkedIn (за исключением [http://www.linkedin.com/pub/2/26b/926 некоторых] поддерживают свой профиль в актуальном состоянии. В частности, следят за тем, чтобы в профиле был актуальный email.&lt;br /&gt;
&lt;br /&gt;
В результате хочется получить поддержку следующих сценариев:&lt;br /&gt;
&lt;br /&gt;
* Узнавать об изменениях в контактной информации наших клиентов.&lt;br /&gt;
* Приглашать в нашу сеть клиентов, которые уже используют LinkedIn.&lt;br /&gt;
* Приглашать в LinkedIn тех клиентов, которые его пока не используют.&lt;br /&gt;
* Если клиент для общение с нами использует один email, а для LinkedIn - другой, - то нам нужно узнать этот email и использовать его как запасной/альтернативный.&lt;br /&gt;
&lt;br /&gt;
Для начала думаю следует просто проверить, позволяет ли API делать следующее:&lt;br /&gt;
&lt;br /&gt;
* Авторизоваться в системе под каким-то реальным логином (например, подо мной).&lt;br /&gt;
* Поискать пользователей по email.&lt;br /&gt;
* Получить email любого из моих контактов.&lt;br /&gt;
* Послать конкретному пользователю инвайт, иметь возможность указать кастомный текст для инвайта.&lt;br /&gt;
* Пригласить нового пользователя через email, то же самое с кастомным текстом.&lt;br /&gt;
&lt;br /&gt;
Задача неактуальна поскольку как я понял от LinkedIn нужно сначала получить одобрение на использование API:&lt;br /&gt;
&lt;br /&gt;
* http://www.linkedin.com/static?key=developers_apis&lt;br /&gt;
&lt;br /&gt;
==Done Tasks==&lt;br /&gt;
&lt;br /&gt;
* [[LMS/CMS Tasks: Done]]&lt;br /&gt;
&lt;br /&gt;
[[Category: Tasks]]&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Ivan</name></author>	</entry>

	<entry>
		<id>http://wiki.avobjects.com/Dev:RM/LMS_Tasks</id>
		<title>Dev:RM/LMS Tasks</title>
		<link rel="alternate" type="text/html" href="http://wiki.avobjects.com/Dev:RM/LMS_Tasks"/>
				<updated>2009-11-04T10:43:32Z</updated>
		
		<summary type="html">&lt;p&gt;Ivan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See also:&lt;br /&gt;
&lt;br /&gt;
* [[Dev:Tasks To Complete Before We Can Papustico!]]&lt;br /&gt;
* [[CMS Tasks]]&lt;br /&gt;
* [[Dev:Communication System]]&lt;br /&gt;
* [[Dev: Support System Roles]]&lt;br /&gt;
* [[Dev: RM User Rights]]&lt;br /&gt;
* [[Dev: RM Licensing Feature Update]]&lt;br /&gt;
&lt;br /&gt;
==RM/LMS Tasks==&lt;br /&gt;
&lt;br /&gt;
==DONE==&lt;br /&gt;
* [bug] Откуда-то взялся кейс in progress без асайна - [http://rm.medialooks.com/messages/show/1586].&lt;br /&gt;
'''забить, он старый'''&lt;br /&gt;
&lt;br /&gt;
* [bug] При паттписке-атписке из кейса выскакивает явоскрпитовый диалог с цифрами (например, 68).&lt;br /&gt;
&lt;br /&gt;
* [bug] Чичас после нажатия на Send emails в [http://rm.medialooks.com/distributives/show/39 релизах] в гуйне ничо не происходит. Т.е. кажецо что ты промахнулсо и хочецо нажать кнопку исчо раз. Хотя на самом деле все срабатывает (письма шлюцо) и если со страницы уйти то из [http://rm.medialooks.com/distributives списка] этот продукт исчезнет.&lt;br /&gt;
'''происходит, но долго'''&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] При создании или редактировании лицензии. Убрать галку &amp;quot;Send license files&amp;quot; и добавить просто новую кнопку &amp;quot;Save and Send License Files&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] Добавть ссылочку Re-send License Files прямо рядом с Edit License. Update переименовать в Renew. Пункты меню расположить так: Renew License | Edit License | Re-send License Files | Delete License.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] Ссылочку Add License поместить над списком лицензий и назвать Add New License.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] Notes в свойствах лицензии нужно выводить красным.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/messages/new_cases/SM] Для всех вариантов отображения списка кейсов. В табличке со списком выводить также статус (In progess, waiting, etc.) - предпоследней колонкой.&lt;br /&gt;
&lt;br /&gt;
* [note] Добавить бряк после номера версии в тексте релилз ноутс который вставляется в subscribe.&lt;br /&gt;
&lt;br /&gt;
* [note] Для license_file.rhtml нужно новое условие - триальная лицензия или нет. Т.к. текст в этом случае другой.&lt;br /&gt;
'''оно там есть, просто называецо нетривиально: &amp;lt;% if @expiration_date %&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/] Писать дату рядом с номером версии на главной странице.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer] В списке кастомеров выводить еще и company таг (первой колонкой).&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/control] Не нужна такая длинная простыня изменений на странице рестарт апдейт RM. А когда она делает рестарт хотелось бы какой-нить индикации.&lt;br /&gt;
'''с индикацией сложности, давай пока это повисит'''&lt;br /&gt;
&lt;br /&gt;
* Када дуплицируецо кейс нада в логе выводить ссылку на дочерний кейс. Ссылка на родительский кейс сейчас есть, а вот наоборот - &lt;br /&gt;
'''сделал'''&lt;br /&gt;
нету. Кроме этого, хорошо бы в обоих случаях (родитель и дочко) выводить вверху что-то вроде This case has parent cases:&amp;lt;br&amp;gt;* Subject или This case has child cases...&lt;br /&gt;
'''с этим сложности. ща это помечается в логе, который может сожержать все что угодно'''&lt;br /&gt;
&lt;br /&gt;
==TODO==&lt;br /&gt;
&lt;br /&gt;
===Current===&lt;br /&gt;
&lt;br /&gt;
===To Think About===&lt;br /&gt;
&lt;br /&gt;
* Как сделать FTP с per customer паролями?&lt;br /&gt;
* Как добавить features и подписку кастомеров на них?&lt;br /&gt;
&lt;br /&gt;
===Important CRM/Email-Related Fixes===&lt;br /&gt;
&lt;br /&gt;
* Сделать возможность CC на кейс.&lt;br /&gt;
&lt;br /&gt;
* Сделать фичу слежения за кейсами.&lt;br /&gt;
&lt;br /&gt;
* Мердждинг кейсов.&lt;br /&gt;
&lt;br /&gt;
===Bugs, Fixes, Questions===&lt;br /&gt;
&lt;br /&gt;
* Нужно проверить что это не глюки у нас (такое кол-во закачек) и залочить чувака [http://rm.medialooks.com/messages/show/1700].&lt;br /&gt;
&lt;br /&gt;
* [unconfirmed] При наличии customer с некоторым email не срабатывает подписка этого email на любой продукт. Запрет должен срабатывать только в случае если лицензия есть именно на этот продукт (возможно, тут надо еще добавить логику про наследованные продукты).&lt;br /&gt;
&lt;br /&gt;
* [Bug] Не работает напоминалка проля в даунлоадах.&lt;br /&gt;
&lt;br /&gt;
* Сбрасывается инфо при вводе уже зареганого email.&lt;br /&gt;
&lt;br /&gt;
* Красные буквы при вводе adsf@medialooks.com.&lt;br /&gt;
&lt;br /&gt;
* Не обрабатываются ошибки типа wrong password в даунлоадз.&lt;br /&gt;
&lt;br /&gt;
* В моей опере никогда не начинаются даунлоады автоматом.&lt;br /&gt;
&lt;br /&gt;
===RM Access Rights===&lt;br /&gt;
&lt;br /&gt;
* Сейчас если зайти на главную под пользовтелем cthomson@medialooks.com (Reseller/Sales Manager) то у него нет столбца Customers. Нужно добавить и выводить там соответственно только доступных ему кастомеров.&lt;br /&gt;
&lt;br /&gt;
===Подписки===&lt;br /&gt;
&lt;br /&gt;
* Подписка Update Discount Expiration. Ввести для лицензий которые expired только после 01.12.2009. Т.е. письма по этой подписке должны начать ходить примерно с 01.05.2010.&lt;br /&gt;
&lt;br /&gt;
* Новая подписка license_expred_followup - которая будет запускацо спустя 4 месяца после истечения подписки. Там написано что через 2 месяца закончицо скидка 50% на продление лицензии. (Кстати идея - может давать доп. скидку за продление в течение месяца после истечения паттписки - типа 65%?)&lt;br /&gt;
&lt;br /&gt;
===Backups to Amazon S3===&lt;br /&gt;
&lt;br /&gt;
Давай будем наш бэкапный файл закачивать на амазон раз в неделю. Я сделал там аккаунт.&lt;br /&gt;
&lt;br /&gt;
===Tasks===&lt;br /&gt;
&lt;br /&gt;
* [Отложено] New email setup. Нужно засетапить новый домен medialooks-team.com. Мы будем его использовать для следующего - чтобы слать и принимать почту с двух общих адресов - &amp;lt;sales@medialooks-team.com&amp;gt; и &amp;lt;dev@medialooks-team.com&amp;gt;. Почему-то очень многие закачики тупо не получают наши письма. Если это не поможет то нам придется переходить на полностью web-based общение с кастомерами.&lt;br /&gt;
&lt;br /&gt;
* Разобрацо в чем проблема с настройкой goals в гугле.&lt;br /&gt;
&lt;br /&gt;
* Добавить в шаблоны писем (шаблон рассылки нового релиза, 2 шаблона license expired) возможность вставлять &amp;quot;License update link&amp;quot; в случае если такая ссылка указана в свойствах продукта (типа IF License update link exists - вставить следующее). Прислать мне файло шаблонов на редактирование (могу сам залезть но надо настроить тада SVN твой).&lt;br /&gt;
&lt;br /&gt;
* Сделать урлы в свойствах кастомера кликабл.&lt;br /&gt;
&lt;br /&gt;
* Cross-promotion subscriptions.&lt;br /&gt;
&lt;br /&gt;
* Если переименовать продукт, то перестает работать общая ссылка на даунлоад и по-версионные ссылки.&lt;br /&gt;
&lt;br /&gt;
* Contact as System Item (see task description).&lt;br /&gt;
&lt;br /&gt;
* Search (see task description).&lt;br /&gt;
&lt;br /&gt;
* Сортировка по тагам во вьюхе кастомеров. Статистика по тагам.&lt;br /&gt;
&lt;br /&gt;
* Добавить вывод количества лицензионных подписок в графу &amp;quot;Site Subscribers&amp;quot;. Графу переименовать в &amp;quot;Subscribers (Interested/Licensed)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* Общие рассылки. Научиться делать рассылки по всем клиентам. Это должна быть отдельная подписка.&lt;br /&gt;
&lt;br /&gt;
* Персонализированный учет закачек. Мы хотим про каждого клиента знать скачивает он новые версии или нет. В письме, которое он получает при выходе новой версии, можно делать уникальный урл, чтобы система знала нажал он или нет. Второй подход - это использовать куки на тот случай, если клиент скачивает с сайта.&lt;br /&gt;
&lt;br /&gt;
* Статистика закачек. Научицо разделять новые (приходящие с рекламы или из поиска) и повторные (наши кастомеры качают новые версии) закачки.&lt;br /&gt;
&lt;br /&gt;
* Подумать. Если есть идеи как интегрировать с Google Analytics (GA)  AdWords (AW) - было бы клева. Например вытаскивать из GA данные о посещениях конкретной страницы и сравнивать их с данными по закачкам.&lt;br /&gt;
&lt;br /&gt;
* Проблема с возможностью создать продукт у которого все версии - беты. И тогда не работает общая ссылка.&lt;br /&gt;
&lt;br /&gt;
* Проблема с RSS-фидом блога (у меня почему-то аутлук пытаецо запустицо).&lt;br /&gt;
&lt;br /&gt;
* Research on online license document generation. Существует ли какой-нить вебовский генератор PDF?&lt;br /&gt;
&lt;br /&gt;
* Создавать в Google Blog Search и Google Alerts фиды по тегам клиента, подсасывать их и демонстрировать мышап на странице клиента. :)))&lt;br /&gt;
&lt;br /&gt;
* Исследовать возможность автоматически создавать для каждого контакта в RM аккаунт в вике, принадлежащий определенной группе.&lt;br /&gt;
&lt;br /&gt;
* Убивать разделительные знаки в поле contacts (елси это телефон). Нужно для того чтобы можно было искать по номеру телефона в почтовой базе.&lt;br /&gt;
&lt;br /&gt;
* Сортировка по дате последнего релиза вот [http://rm.medialooks.com/distributives тут].&lt;br /&gt;
&lt;br /&gt;
* В RM надо сделать напоминалки для нас об истечении лицензий у кастомеров. (Чтобы пинать/напоминать руками.)&lt;br /&gt;
&lt;br /&gt;
* Поиск кастомеров и контактов по странам в RM.&lt;br /&gt;
&lt;br /&gt;
* Дать возможность редактировать meeting results.&lt;br /&gt;
&lt;br /&gt;
* Доработать функционал реселлеров. Например, чтобы про кастомера было видно что он привязан к некоторому реселлеру ([http://rm.medialooks.com/customer/show/364 пример]).&lt;br /&gt;
&lt;br /&gt;
* Придумать что-нибудь с аттачами. Добавить их в темплейт или как-то иначе автоматизировать. Не забыть про то что он обновляется (автоматизировать?) - может как отдельный продукт его или в этом роде... Нужно уметь видеть версию прайса кот. была отправлена.&lt;br /&gt;
&lt;br /&gt;
* Ручная блокировка аккунта. Выдавать сообщение &amp;quot;Your account has been suspended. Please contact MediaLooks in order to unlock your account.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Выводить количество кастомерских кейсов в скобкаъ на странице кастомера.&lt;br /&gt;
&lt;br /&gt;
* Выводить едишен лицензии в ее свойствах на стр. кастомера.&lt;br /&gt;
&lt;br /&gt;
* Надо различать даунлоады по продуктам (например QT DS и QT Plugin).&lt;br /&gt;
&lt;br /&gt;
* Вот в [http://rm.medialooks.com/product/licenses/22 этой] вьюхе выводить сначала триальные, потом expired лицензии. Триальные лицензии нужно помечать каким-то визуальным образом.&lt;br /&gt;
&lt;br /&gt;
* Тайтлы страниц в RM. Расписать подробнее что где нужно.&lt;br /&gt;
&lt;br /&gt;
* Выводить где-то отдельно триальные лицензии, чтобы можно было пинать кастомеров по ним.&lt;br /&gt;
&lt;br /&gt;
* Нужен способ задать реселлера со страницы кастомера. И нужно на странице кастомера это видеть.&lt;br /&gt;
&lt;br /&gt;
* Сделать опции go to case by number в обоих интерфейсах RM.&lt;br /&gt;
&lt;br /&gt;
* Логгировать даунлоады и выводить в кейсах последнюю скачанную пользователем версии.&lt;br /&gt;
&lt;br /&gt;
* Когда дискуссия идет в теме даунлоад - новые даунлоады ее обновляют что неудобно.&lt;br /&gt;
&lt;br /&gt;
* Идея. Вести две простыни release notes. Одна что вписал девелопер. Другую - что отправлено кастомерам.&lt;br /&gt;
&lt;br /&gt;
* Добавить список аттачей к письму про апдейт кейса.&lt;br /&gt;
&lt;br /&gt;
* Некоторым заказчикам нужно дать возможность заливать на FTP с паролем.&lt;br /&gt;
&lt;br /&gt;
* Надо бы разрешить just comment to customer без реасайна кейса.&lt;br /&gt;
&lt;br /&gt;
* Продумать логику один контакт - две конторы. Пример videoassistech. У него разные адреса для разных случаев.&lt;br /&gt;
&lt;br /&gt;
* Нужно разработать функцию CC case. Там выбираешь N людей кот. кейс как бы идет копией до тех пор пока они не нажпут dismiss.&lt;br /&gt;
&lt;br /&gt;
===Инвойсы===&lt;br /&gt;
&lt;br /&gt;
* Каждому продукту и каждому едишену продукта привязываем цену. Все сущности у которых есть цена, становятся доступными в интерфейсе инвойсинга.&lt;br /&gt;
&lt;br /&gt;
* Что такое инвойс вообще:&lt;br /&gt;
&lt;br /&gt;
1) Это некоторая запись в БД, привязанная к двум другим сущностям RM: кастомеру и пользователю. Нужно добавить две возможности в гуйне: а) просмотреть все инвойсы данного кастомера; б) посмотреть инвойсы данного пользователя (имеется в виду только свои или все, или любого конкретного пользователя - в зависимости от наличия прав).&lt;br /&gt;
2) Наличие неоплаченного инвойса это некоторый особый статус кастомера, самый последний перед закрытием сделки. Неоплаченные инвойсы нужно будет выводить отдельными списками в разных местах системы, чтобы можно было в соответствии с ними делать какие-то действия.&lt;br /&gt;
&lt;br /&gt;
У самого инвойса есть следующие свойства:&lt;br /&gt;
1) Список продуктов, включенных в него.&lt;br /&gt;
2) Скидка.&lt;br /&gt;
3) Данные о клиенте.&lt;br /&gt;
4) Метод платежа.&lt;br /&gt;
&lt;br /&gt;
Инвойс отсылается кастомеру по почте, аттачицо к кейсу и сохраняется в истории. &lt;br /&gt;
&lt;br /&gt;
===Это потом===&lt;br /&gt;
&lt;br /&gt;
* Переделать форму контактов на сайте. Добавить возможность указать второй email. Отдельные поля под скайп, телефон.&lt;br /&gt;
&lt;br /&gt;
* Подписка royalties.&lt;br /&gt;
&lt;br /&gt;
===[Отложено] Communication Monitor===&lt;br /&gt;
&lt;br /&gt;
Сперва обсудить: может сразу делать web-based ticketing system?&lt;br /&gt;
&lt;br /&gt;
Коммуникация - это в данном случае одно из трех:&lt;br /&gt;
&lt;br /&gt;
1) Кастомер заполнил контактную форму на сайте. Насколько я знаю, в этом случае все данные попадают в базу и там храняцо (если трафик платный то [http://www.medialooks.com/admin/block_admin/53 сюда] лучше не нажимать).&lt;br /&gt;
&lt;br /&gt;
2) На один из двух адресов - &amp;lt;sales@medialooks-team.com&amp;gt; и &amp;lt;dev@medialooks-team.com&amp;gt; получено письмо от кастомера.&lt;br /&gt;
&lt;br /&gt;
3) Мы послали кастомеру письмо с одного из двух адресов (во всех случаях мы ставим BCC на адрес, с которого пишем).&lt;br /&gt;
&lt;br /&gt;
В RM нужно реализовать три списка:&lt;br /&gt;
&lt;br /&gt;
1) Список коммуникаций типа (1), на которые не было ответа с одного из двух адресов в течение N часов. &lt;br /&gt;
&lt;br /&gt;
2) Список коммуникаций типа (2), на которые не было ответа с одного из двух адресов в течение M часов. &lt;br /&gt;
&lt;br /&gt;
3) Список коммуникаций типа (3), в случае если от кастомера не было ответа в течение D рабочих дней.&lt;br /&gt;
&lt;br /&gt;
В обоих случаях выводить в таблице всю инфо, которая есть на данный email - телефон, скайп, ссылка на кастомеров, у которых в контактах числицо такой email (см. также &amp;quot;Contact as System Item&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
N, M и D нужно дать возможность конфигурить через гуй RM.&lt;br /&gt;
&lt;br /&gt;
В первом приближении выводить тела писем не нужно. Но в будуем мне кажется мы все равно к этому придем. Поэтому хранить можно уже начинать.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Customer download tracking===&lt;br /&gt;
&lt;br /&gt;
* Индивидуальные даунлоад ссылки для отслеживания какой подписчик нажал на сцылку.&lt;br /&gt;
* Отписка или оповещение администратора о подписчиках который не нажимают на ссылки (признак того что не получают письма или не читают их - но при этом по какой-то причине не отписываются).&lt;br /&gt;
&lt;br /&gt;
===Наследование/объединение продуктов===&lt;br /&gt;
&lt;br /&gt;
Необходимо поддержать два следующих сценария:&lt;br /&gt;
&lt;br /&gt;
1) Существует продукт DirectShow Filter Pack - он включает в себя большой набор DirectShow фильтров. Каждый фильтр релизится по своему графику (т.е. без графика) - поэтому отдельного download для него не существует. Т.е. продукт в данном случае это просто такая лицензия, т.е. совокупность цены и набора компонентов. В RM возможность создавать такие лицензии должна быть реализована в виде продукта в общем списке - просто у него будут какие-то дополнительные свойства как-то &amp;quot;включать в себя такие-то продукты&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Соответственно, при создании лицензии на такой продукт нужно сделать так чтобы:&lt;br /&gt;
&lt;br /&gt;
* Контакты кастомера могли быть подписаны на релизы (updates) по каждому из продуктов отдельно. По-умолчанию - создается подписка на все входящие в пакет продукты. Отписаться от каждого из продуктов в отдельности можно через сцылку на отписку из письма или это можно сделать через редактирование свойств лицензии.&lt;br /&gt;
&lt;br /&gt;
* Контакты кастомера не были дубликатно подписаны на эти же самые продукты через другие механизмы RM.&lt;br /&gt;
&lt;br /&gt;
* Подписка License Expired в данном случае остается одна - только на общий продукт. Но в случае, если подписка истекла, то при рассылке Release Updates в тело письма вставляется соотв. сообщение (т.к. это сейчас сделано для обычных лицензий).&lt;br /&gt;
&lt;br /&gt;
* В случае если для продукты DirectShow Filter Pack - RM конечно же имеет право наложить в штаны но после этого должен немедленно собрацо и вести себя так как будто он точно знает что нужно делать - а именно вести себя так как будто DirectShow Filter Pack это самый обычный продукт (т.е. появитсо в Distributives и дать возможность сделать рассылку). Т.е. обычная рассылка Release Updates для продукта такого типа тоже создаецо.&lt;br /&gt;
&lt;br /&gt;
2) Существуют продукты DeckLink SDK, Playout SDK и Multimedia SDK, для которых мы решили в целях упрощения использовать общий даунлоад. В данном случае все остается как есть - т.е. лицензии создаются именно под эти продукты, отдельно ведется статистика подписок, лицензий и закачек - но используется только один download.&lt;br /&gt;
&lt;br /&gt;
Например, мы говорим что DeckLink SDK и Playout SDK - оба используют download Multimedia SDK. Разработчик закачивает новый релиз именно для Multimedia SDK. Этот новый релиз появляется в разделе Distributives. Я его модерю, нажимаю сделать рассылку - и, как и раньше, выходят три блока писем - для DeckLink SDK, Playout SDk и Multimedia SDK.&lt;br /&gt;
&lt;br /&gt;
Особенность: ссылка во всех письмах теперь называется multimedia sdk. Делать редиректы и переименования - не надо (иначе клиенты будут говорить я скачал Playout SDK а мне ставится Multimedia SDK).&lt;br /&gt;
&lt;br /&gt;
===Industry-Based Subscriptions===&lt;br /&gt;
&lt;br /&gt;
Добавить возможность создавать рассылки по индустриям. В целом все аналогично тому как сейчас работают подписки на новые релизы. Можно подписывать контакты руками. А при рассылке заодно рассылать тем, кто является клиентом какого-либо продукта и тоже записан в эту индустрию.&lt;br /&gt;
&lt;br /&gt;
Возможно, когда у нас появятся разные способы делать рассылки, придется придумывать способы не слать дважды по одному и тому же поводу. Например, заводить для рассылки какой-нибудь ID.&lt;br /&gt;
&lt;br /&gt;
===Contact as System Item===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать контакты как самостоятельную сущность.&lt;br /&gt;
&lt;br /&gt;
Контакт представляет из себя имя (текстовое поле например &amp;quot;Andrew Okunev) и ассоциированный c ним набор полей:&lt;br /&gt;
&lt;br /&gt;
* email name (используется в подстановках в письмах; если пусто, используется &amp;quot;customer&amp;quot;)&lt;br /&gt;
* email (любое количество)&lt;br /&gt;
* skype (любое количество)&lt;br /&gt;
* телефон (любое количество)&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать отображение и редактирование свойств для любого из контактов. Например:&lt;br /&gt;
&lt;br /&gt;
* Когда добавлен в систему&lt;br /&gt;
* С какими компаниями (Customers) ассоциирован.&lt;br /&gt;
* С какими лицензиями ассоциирован.&lt;br /&gt;
* На какие подписки подписан.&lt;br /&gt;
&lt;br /&gt;
Все это нужно реализовать в одной вьюхе. Редактирование доступно только администратору системы.&lt;br /&gt;
&lt;br /&gt;
Примечания:&lt;br /&gt;
&lt;br /&gt;
* В системе должны отсутствовать дубликаты по email. Дубликаты по имени допустимы (т.е. когда одинаковое имя но разный email), но должна быть возможность их соединить (т.е. превратить в один контакт с двумя email). Реализовать это можно через отдельную вьюху, доступную администратору.&lt;br /&gt;
&lt;br /&gt;
* Если у контакта больше одного email, то любой из них может использоваться для авторизации.&lt;br /&gt;
&lt;br /&gt;
* Новый контакт (как сущность) создается при любом добавлении контакта в систему (например, при создании подписки через модуль subscribers.&lt;br /&gt;
&lt;br /&gt;
===Universal Uploads===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать возможность закачивать в RM абстрактные (не привязанные к какому-либо продукту) файлы. При этом каждому такому файлу должен быть по-умолчанию присвоен срок жизни - 30 дней. После чего файл автоматически удаляется. Файлы можно защищать паролем, который требуется для скачки.&lt;br /&gt;
&lt;br /&gt;
Каждый файл привязан к какому-либо юзеру. Только у этого пользователя (или у администратора) есть возможность добавлять к своему аккаунту файлы или удалять их. Каждую закачку можно удалить или обновить файл в ней.&lt;br /&gt;
&lt;br /&gt;
Соответственно, необходимо создать две новых вьюхи:&lt;br /&gt;
&lt;br /&gt;
1) Вьюха создания закачки. Опции: текстедит срок жизни (по-умолчанию вбито 30), чекбокс защитить паролем, путь к файлу.&lt;br /&gt;
&lt;br /&gt;
2) Вьюха список закачек данного юзера. Отображать: имя файла, количество скачек, оставшийся срок жизни, дата закачки. Имя файла является ссылкой на данный файл (вида rm.medialooks.com/...).&lt;br /&gt;
&lt;br /&gt;
В меню каждого юзера должно быть что-то вроде &amp;quot;My Uploads&amp;quot;, которая ведет на вьюху (2).&lt;br /&gt;
&lt;br /&gt;
===Customer Access===&lt;br /&gt;
&lt;br /&gt;
Нужно научицо давать кастомерам доступ к аплоадам. Для этого нужно реализовать в RM еще одну роль - &amp;quot;Customer&amp;quot;. Роль &amp;quot;User&amp;quot; нужно переименовать в &amp;quot;Developer&amp;quot;. Каждый контакт, добавленный в систему, должен получать соотв. статус и автоматически сгенеренный пароль. Никаких писем при заведении пользователей пока автоматически рассылать не надо. Однако, при первой попытке зайти в систему, кастомер должен по почте получить свой пароль. Залогинившись, он имеет доступ только к своим аплоадам (в будущем добавим еще подписки и лицензии).&lt;br /&gt;
&lt;br /&gt;
===Search===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать поиск в системе. Форма поиска - одна на все случаи. Она должна размещаться на всех страницах системы.&lt;br /&gt;
&lt;br /&gt;
По каким полям искать:&lt;br /&gt;
&lt;br /&gt;
* По контактам.&lt;br /&gt;
* По названию клиента.&lt;br /&gt;
* По тегу клиента.&lt;br /&gt;
&lt;br /&gt;
'''Пример.''' Если в поле поиска ввден запрос:&lt;br /&gt;
&lt;br /&gt;
Andrew A. Okunev &amp;lt;dev@medialooks.com&amp;gt; (MediaLooks)&lt;br /&gt;
&lt;br /&gt;
- то сперва нужно произвести поиск отдельно по &amp;quot;Osman Yel&amp;quot;, &amp;quot;dev@medialooks.com&amp;quot; и &amp;quot;MediaLooks&amp;quot;. Эти результаты вывести в первую очередь.&lt;br /&gt;
&lt;br /&gt;
Во-вторую - выделить из поисковой строки название домена и отрезать от него домен первого уровня. Т.е. в нашем примере искать по строке &amp;quot;medialooks&amp;quot;. Эти результаты вывести во вторую очередь.&lt;br /&gt;
&lt;br /&gt;
Кроме этого, естественно должен работать поиск в том случае если исходный запрос это &amp;quot;dev@medialooks.com&amp;quot; или просто &amp;quot;medialooks&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===LinkedIn Integration===&lt;br /&gt;
&lt;br /&gt;
Зачем? Любая система управления контактами страдает одним недостатком - ей неоткуда узнать о том, что у кого-то поменялся email или телефон.&lt;br /&gt;
&lt;br /&gt;
Предполагается что пользователи LinkedIn (за исключением [http://www.linkedin.com/pub/2/26b/926 некоторых] поддерживают свой профиль в актуальном состоянии. В частности, следят за тем, чтобы в профиле был актуальный email.&lt;br /&gt;
&lt;br /&gt;
В результате хочется получить поддержку следующих сценариев:&lt;br /&gt;
&lt;br /&gt;
* Узнавать об изменениях в контактной информации наших клиентов.&lt;br /&gt;
* Приглашать в нашу сеть клиентов, которые уже используют LinkedIn.&lt;br /&gt;
* Приглашать в LinkedIn тех клиентов, которые его пока не используют.&lt;br /&gt;
* Если клиент для общение с нами использует один email, а для LinkedIn - другой, - то нам нужно узнать этот email и использовать его как запасной/альтернативный.&lt;br /&gt;
&lt;br /&gt;
Для начала думаю следует просто проверить, позволяет ли API делать следующее:&lt;br /&gt;
&lt;br /&gt;
* Авторизоваться в системе под каким-то реальным логином (например, подо мной).&lt;br /&gt;
* Поискать пользователей по email.&lt;br /&gt;
* Получить email любого из моих контактов.&lt;br /&gt;
* Послать конкретному пользователю инвайт, иметь возможность указать кастомный текст для инвайта.&lt;br /&gt;
* Пригласить нового пользователя через email, то же самое с кастомным текстом.&lt;br /&gt;
&lt;br /&gt;
Задача неактуальна поскольку как я понял от LinkedIn нужно сначала получить одобрение на использование API:&lt;br /&gt;
&lt;br /&gt;
* http://www.linkedin.com/static?key=developers_apis&lt;br /&gt;
&lt;br /&gt;
==Done Tasks==&lt;br /&gt;
&lt;br /&gt;
* [[LMS/CMS Tasks: Done]]&lt;br /&gt;
&lt;br /&gt;
[[Category: Tasks]]&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Ivan</name></author>	</entry>

	<entry>
		<id>http://wiki.avobjects.com/Dev:RM/LMS_Tasks</id>
		<title>Dev:RM/LMS Tasks</title>
		<link rel="alternate" type="text/html" href="http://wiki.avobjects.com/Dev:RM/LMS_Tasks"/>
				<updated>2009-11-03T18:20:55Z</updated>
		
		<summary type="html">&lt;p&gt;Ivan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See also:&lt;br /&gt;
&lt;br /&gt;
* [[Dev:Tasks To Complete Before We Can Papustico!]]&lt;br /&gt;
* [[CMS Tasks]]&lt;br /&gt;
* [[Dev:Communication System]]&lt;br /&gt;
* [[Dev: Support System Roles]]&lt;br /&gt;
* [[Dev: RM User Rights]]&lt;br /&gt;
* [[Dev: RM Licensing Feature Update]]&lt;br /&gt;
&lt;br /&gt;
==RM/LMS Tasks==&lt;br /&gt;
&lt;br /&gt;
==DONE==&lt;br /&gt;
* [bug] Откуда-то взялся кейс in progress без асайна - [http://rm.medialooks.com/messages/show/1586].&lt;br /&gt;
'''забить, он старый'''&lt;br /&gt;
&lt;br /&gt;
* [bug] При паттписке-атписке из кейса выскакивает явоскрпитовый диалог с цифрами (например, 68).&lt;br /&gt;
&lt;br /&gt;
* [bug] Чичас после нажатия на Send emails в [http://rm.medialooks.com/distributives/show/39 релизах] в гуйне ничо не происходит. Т.е. кажецо что ты промахнулсо и хочецо нажать кнопку исчо раз. Хотя на самом деле все срабатывает (письма шлюцо) и если со страницы уйти то из [http://rm.medialooks.com/distributives списка] этот продукт исчезнет.&lt;br /&gt;
'''происходит, но долго'''&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] При создании или редактировании лицензии. Убрать галку &amp;quot;Send license files&amp;quot; и добавить просто новую кнопку &amp;quot;Save and Send License Files&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] Добавть ссылочку Re-send License Files прямо рядом с Edit License. Update переименовать в Renew. Пункты меню расположить так: Renew License | Edit License | Re-send License Files | Delete License.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] Ссылочку Add License поместить над списком лицензий и назвать Add New License.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] Notes в свойствах лицензии нужно выводить красным.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/messages/new_cases/SM] Для всех вариантов отображения списка кейсов. В табличке со списком выводить также статус (In progess, waiting, etc.) - предпоследней колонкой.&lt;br /&gt;
&lt;br /&gt;
* [note] Добавить бряк после номера версии в тексте релилз ноутс который вставляется в subscribe.&lt;br /&gt;
&lt;br /&gt;
* [note] Для license_file.rhtml нужно новое условие - триальная лицензия или нет. Т.к. текст в этом случае другой.&lt;br /&gt;
'''оно там есть, просто называецо нетривиально: &amp;lt;% if @expiration_date %&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/] Писать дату рядом с номером версии на главной странице.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer] В списке кастомеров выводить еще и company таг (первой колонкой).&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/control] Не нужна такая длинная простыня изменений на странице рестарт апдейт RM. А когда она делает рестарт хотелось бы какой-нить индикации.&lt;br /&gt;
'''с индикацией сложности, давай пока это повисит'''&lt;br /&gt;
&lt;br /&gt;
==TODO==&lt;br /&gt;
&lt;br /&gt;
===Current===&lt;br /&gt;
&lt;br /&gt;
* Када дуплицируецо кейс нада в логе выводить ссылку на дочерний кейс. Ссылка на родительский кейс сейчас есть, а вот наоборот - нету. Кроме этого, хорошо бы в обоих случаях (родитель и дочко) выводить вверху что-то вроде This case has parent cases:&amp;lt;br&amp;gt;* Subject или This case has child cases...&lt;br /&gt;
&lt;br /&gt;
===To Think About===&lt;br /&gt;
&lt;br /&gt;
* Как сделать FTP с per customer паролями?&lt;br /&gt;
* Как добавить features и подписку кастомеров на них?&lt;br /&gt;
&lt;br /&gt;
===Important CRM/Email-Related Fixes===&lt;br /&gt;
&lt;br /&gt;
* Сделать возможность CC на кейс.&lt;br /&gt;
&lt;br /&gt;
* Сделать фичу слежения за кейсами.&lt;br /&gt;
&lt;br /&gt;
* Мердждинг кейсов.&lt;br /&gt;
&lt;br /&gt;
===Bugs, Fixes, Questions===&lt;br /&gt;
&lt;br /&gt;
* Нужно проверить что это не глюки у нас (такое кол-во закачек) и залочить чувака [http://rm.medialooks.com/messages/show/1700].&lt;br /&gt;
&lt;br /&gt;
* [unconfirmed] При наличии customer с некоторым email не срабатывает подписка этого email на любой продукт. Запрет должен срабатывать только в случае если лицензия есть именно на этот продукт (возможно, тут надо еще добавить логику про наследованные продукты).&lt;br /&gt;
&lt;br /&gt;
* [Bug] Не работает напоминалка проля в даунлоадах.&lt;br /&gt;
&lt;br /&gt;
* Сбрасывается инфо при вводе уже зареганого email.&lt;br /&gt;
&lt;br /&gt;
* Красные буквы при вводе adsf@medialooks.com.&lt;br /&gt;
&lt;br /&gt;
* Не обрабатываются ошибки типа wrong password в даунлоадз.&lt;br /&gt;
&lt;br /&gt;
* В моей опере никогда не начинаются даунлоады автоматом.&lt;br /&gt;
&lt;br /&gt;
===RM Access Rights===&lt;br /&gt;
&lt;br /&gt;
* Сейчас если зайти на главную под пользовтелем cthomson@medialooks.com (Reseller/Sales Manager) то у него нет столбца Customers. Нужно добавить и выводить там соответственно только доступных ему кастомеров.&lt;br /&gt;
&lt;br /&gt;
===Подписки===&lt;br /&gt;
&lt;br /&gt;
* Подписка Update Discount Expiration. Ввести для лицензий которые expired только после 01.12.2009. Т.е. письма по этой подписке должны начать ходить примерно с 01.05.2010.&lt;br /&gt;
&lt;br /&gt;
* Новая подписка license_expred_followup - которая будет запускацо спустя 4 месяца после истечения подписки. Там написано что через 2 месяца закончицо скидка 50% на продление лицензии. (Кстати идея - может давать доп. скидку за продление в течение месяца после истечения паттписки - типа 65%?)&lt;br /&gt;
&lt;br /&gt;
===Backups to Amazon S3===&lt;br /&gt;
&lt;br /&gt;
Давай будем наш бэкапный файл закачивать на амазон раз в неделю. Я сделал там аккаунт.&lt;br /&gt;
&lt;br /&gt;
===Tasks===&lt;br /&gt;
&lt;br /&gt;
* [Отложено] New email setup. Нужно засетапить новый домен medialooks-team.com. Мы будем его использовать для следующего - чтобы слать и принимать почту с двух общих адресов - &amp;lt;sales@medialooks-team.com&amp;gt; и &amp;lt;dev@medialooks-team.com&amp;gt;. Почему-то очень многие закачики тупо не получают наши письма. Если это не поможет то нам придется переходить на полностью web-based общение с кастомерами.&lt;br /&gt;
&lt;br /&gt;
* Разобрацо в чем проблема с настройкой goals в гугле.&lt;br /&gt;
&lt;br /&gt;
* Добавить в шаблоны писем (шаблон рассылки нового релиза, 2 шаблона license expired) возможность вставлять &amp;quot;License update link&amp;quot; в случае если такая ссылка указана в свойствах продукта (типа IF License update link exists - вставить следующее). Прислать мне файло шаблонов на редактирование (могу сам залезть но надо настроить тада SVN твой).&lt;br /&gt;
&lt;br /&gt;
* Сделать урлы в свойствах кастомера кликабл.&lt;br /&gt;
&lt;br /&gt;
* Cross-promotion subscriptions.&lt;br /&gt;
&lt;br /&gt;
* Если переименовать продукт, то перестает работать общая ссылка на даунлоад и по-версионные ссылки.&lt;br /&gt;
&lt;br /&gt;
* Contact as System Item (see task description).&lt;br /&gt;
&lt;br /&gt;
* Search (see task description).&lt;br /&gt;
&lt;br /&gt;
* Сортировка по тагам во вьюхе кастомеров. Статистика по тагам.&lt;br /&gt;
&lt;br /&gt;
* Добавить вывод количества лицензионных подписок в графу &amp;quot;Site Subscribers&amp;quot;. Графу переименовать в &amp;quot;Subscribers (Interested/Licensed)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* Общие рассылки. Научиться делать рассылки по всем клиентам. Это должна быть отдельная подписка.&lt;br /&gt;
&lt;br /&gt;
* Персонализированный учет закачек. Мы хотим про каждого клиента знать скачивает он новые версии или нет. В письме, которое он получает при выходе новой версии, можно делать уникальный урл, чтобы система знала нажал он или нет. Второй подход - это использовать куки на тот случай, если клиент скачивает с сайта.&lt;br /&gt;
&lt;br /&gt;
* Статистика закачек. Научицо разделять новые (приходящие с рекламы или из поиска) и повторные (наши кастомеры качают новые версии) закачки.&lt;br /&gt;
&lt;br /&gt;
* Подумать. Если есть идеи как интегрировать с Google Analytics (GA)  AdWords (AW) - было бы клева. Например вытаскивать из GA данные о посещениях конкретной страницы и сравнивать их с данными по закачкам.&lt;br /&gt;
&lt;br /&gt;
* Проблема с возможностью создать продукт у которого все версии - беты. И тогда не работает общая ссылка.&lt;br /&gt;
&lt;br /&gt;
* Проблема с RSS-фидом блога (у меня почему-то аутлук пытаецо запустицо).&lt;br /&gt;
&lt;br /&gt;
* Research on online license document generation. Существует ли какой-нить вебовский генератор PDF?&lt;br /&gt;
&lt;br /&gt;
* Создавать в Google Blog Search и Google Alerts фиды по тегам клиента, подсасывать их и демонстрировать мышап на странице клиента. :)))&lt;br /&gt;
&lt;br /&gt;
* Исследовать возможность автоматически создавать для каждого контакта в RM аккаунт в вике, принадлежащий определенной группе.&lt;br /&gt;
&lt;br /&gt;
* Убивать разделительные знаки в поле contacts (елси это телефон). Нужно для того чтобы можно было искать по номеру телефона в почтовой базе.&lt;br /&gt;
&lt;br /&gt;
* Сортировка по дате последнего релиза вот [http://rm.medialooks.com/distributives тут].&lt;br /&gt;
&lt;br /&gt;
* В RM надо сделать напоминалки для нас об истечении лицензий у кастомеров. (Чтобы пинать/напоминать руками.)&lt;br /&gt;
&lt;br /&gt;
* Поиск кастомеров и контактов по странам в RM.&lt;br /&gt;
&lt;br /&gt;
* Дать возможность редактировать meeting results.&lt;br /&gt;
&lt;br /&gt;
* Доработать функционал реселлеров. Например, чтобы про кастомера было видно что он привязан к некоторому реселлеру ([http://rm.medialooks.com/customer/show/364 пример]).&lt;br /&gt;
&lt;br /&gt;
* Придумать что-нибудь с аттачами. Добавить их в темплейт или как-то иначе автоматизировать. Не забыть про то что он обновляется (автоматизировать?) - может как отдельный продукт его или в этом роде... Нужно уметь видеть версию прайса кот. была отправлена.&lt;br /&gt;
&lt;br /&gt;
* Ручная блокировка аккунта. Выдавать сообщение &amp;quot;Your account has been suspended. Please contact MediaLooks in order to unlock your account.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Выводить количество кастомерских кейсов в скобкаъ на странице кастомера.&lt;br /&gt;
&lt;br /&gt;
* Выводить едишен лицензии в ее свойствах на стр. кастомера.&lt;br /&gt;
&lt;br /&gt;
* Надо различать даунлоады по продуктам (например QT DS и QT Plugin).&lt;br /&gt;
&lt;br /&gt;
* Вот в [http://rm.medialooks.com/product/licenses/22 этой] вьюхе выводить сначала триальные, потом expired лицензии. Триальные лицензии нужно помечать каким-то визуальным образом.&lt;br /&gt;
&lt;br /&gt;
* Тайтлы страниц в RM. Расписать подробнее что где нужно.&lt;br /&gt;
&lt;br /&gt;
* Выводить где-то отдельно триальные лицензии, чтобы можно было пинать кастомеров по ним.&lt;br /&gt;
&lt;br /&gt;
* Нужен способ задать реселлера со страницы кастомера. И нужно на странице кастомера это видеть.&lt;br /&gt;
&lt;br /&gt;
* Сделать опции go to case by number в обоих интерфейсах RM.&lt;br /&gt;
&lt;br /&gt;
* Логгировать даунлоады и выводить в кейсах последнюю скачанную пользователем версии.&lt;br /&gt;
&lt;br /&gt;
* Когда дискуссия идет в теме даунлоад - новые даунлоады ее обновляют что неудобно.&lt;br /&gt;
&lt;br /&gt;
* Идея. Вести две простыни release notes. Одна что вписал девелопер. Другую - что отправлено кастомерам.&lt;br /&gt;
&lt;br /&gt;
* Добавить список аттачей к письму про апдейт кейса.&lt;br /&gt;
&lt;br /&gt;
* Некоторым заказчикам нужно дать возможность заливать на FTP с паролем.&lt;br /&gt;
&lt;br /&gt;
* Надо бы разрешить just comment to customer без реасайна кейса.&lt;br /&gt;
&lt;br /&gt;
* Продумать логику один контакт - две конторы. Пример videoassistech. У него разные адреса для разных случаев.&lt;br /&gt;
&lt;br /&gt;
* Нужно разработать функцию CC case. Там выбираешь N людей кот. кейс как бы идет копией до тех пор пока они не нажпут dismiss.&lt;br /&gt;
&lt;br /&gt;
===Инвойсы===&lt;br /&gt;
&lt;br /&gt;
* Каждому продукту и каждому едишену продукта привязываем цену. Все сущности у которых есть цена, становятся доступными в интерфейсе инвойсинга.&lt;br /&gt;
&lt;br /&gt;
* Что такое инвойс вообще:&lt;br /&gt;
&lt;br /&gt;
1) Это некоторая запись в БД, привязанная к двум другим сущностям RM: кастомеру и пользователю. Нужно добавить две возможности в гуйне: а) просмотреть все инвойсы данного кастомера; б) посмотреть инвойсы данного пользователя (имеется в виду только свои или все, или любого конкретного пользователя - в зависимости от наличия прав).&lt;br /&gt;
2) Наличие неоплаченного инвойса это некоторый особый статус кастомера, самый последний перед закрытием сделки. Неоплаченные инвойсы нужно будет выводить отдельными списками в разных местах системы, чтобы можно было в соответствии с ними делать какие-то действия.&lt;br /&gt;
&lt;br /&gt;
У самого инвойса есть следующие свойства:&lt;br /&gt;
1) Список продуктов, включенных в него.&lt;br /&gt;
2) Скидка.&lt;br /&gt;
3) Данные о клиенте.&lt;br /&gt;
4) Метод платежа.&lt;br /&gt;
&lt;br /&gt;
Инвойс отсылается кастомеру по почте, аттачицо к кейсу и сохраняется в истории. &lt;br /&gt;
&lt;br /&gt;
===Это потом===&lt;br /&gt;
&lt;br /&gt;
* Переделать форму контактов на сайте. Добавить возможность указать второй email. Отдельные поля под скайп, телефон.&lt;br /&gt;
&lt;br /&gt;
* Подписка royalties.&lt;br /&gt;
&lt;br /&gt;
===[Отложено] Communication Monitor===&lt;br /&gt;
&lt;br /&gt;
Сперва обсудить: может сразу делать web-based ticketing system?&lt;br /&gt;
&lt;br /&gt;
Коммуникация - это в данном случае одно из трех:&lt;br /&gt;
&lt;br /&gt;
1) Кастомер заполнил контактную форму на сайте. Насколько я знаю, в этом случае все данные попадают в базу и там храняцо (если трафик платный то [http://www.medialooks.com/admin/block_admin/53 сюда] лучше не нажимать).&lt;br /&gt;
&lt;br /&gt;
2) На один из двух адресов - &amp;lt;sales@medialooks-team.com&amp;gt; и &amp;lt;dev@medialooks-team.com&amp;gt; получено письмо от кастомера.&lt;br /&gt;
&lt;br /&gt;
3) Мы послали кастомеру письмо с одного из двух адресов (во всех случаях мы ставим BCC на адрес, с которого пишем).&lt;br /&gt;
&lt;br /&gt;
В RM нужно реализовать три списка:&lt;br /&gt;
&lt;br /&gt;
1) Список коммуникаций типа (1), на которые не было ответа с одного из двух адресов в течение N часов. &lt;br /&gt;
&lt;br /&gt;
2) Список коммуникаций типа (2), на которые не было ответа с одного из двух адресов в течение M часов. &lt;br /&gt;
&lt;br /&gt;
3) Список коммуникаций типа (3), в случае если от кастомера не было ответа в течение D рабочих дней.&lt;br /&gt;
&lt;br /&gt;
В обоих случаях выводить в таблице всю инфо, которая есть на данный email - телефон, скайп, ссылка на кастомеров, у которых в контактах числицо такой email (см. также &amp;quot;Contact as System Item&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
N, M и D нужно дать возможность конфигурить через гуй RM.&lt;br /&gt;
&lt;br /&gt;
В первом приближении выводить тела писем не нужно. Но в будуем мне кажется мы все равно к этому придем. Поэтому хранить можно уже начинать.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Customer download tracking===&lt;br /&gt;
&lt;br /&gt;
* Индивидуальные даунлоад ссылки для отслеживания какой подписчик нажал на сцылку.&lt;br /&gt;
* Отписка или оповещение администратора о подписчиках который не нажимают на ссылки (признак того что не получают письма или не читают их - но при этом по какой-то причине не отписываются).&lt;br /&gt;
&lt;br /&gt;
===Наследование/объединение продуктов===&lt;br /&gt;
&lt;br /&gt;
Необходимо поддержать два следующих сценария:&lt;br /&gt;
&lt;br /&gt;
1) Существует продукт DirectShow Filter Pack - он включает в себя большой набор DirectShow фильтров. Каждый фильтр релизится по своему графику (т.е. без графика) - поэтому отдельного download для него не существует. Т.е. продукт в данном случае это просто такая лицензия, т.е. совокупность цены и набора компонентов. В RM возможность создавать такие лицензии должна быть реализована в виде продукта в общем списке - просто у него будут какие-то дополнительные свойства как-то &amp;quot;включать в себя такие-то продукты&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Соответственно, при создании лицензии на такой продукт нужно сделать так чтобы:&lt;br /&gt;
&lt;br /&gt;
* Контакты кастомера могли быть подписаны на релизы (updates) по каждому из продуктов отдельно. По-умолчанию - создается подписка на все входящие в пакет продукты. Отписаться от каждого из продуктов в отдельности можно через сцылку на отписку из письма или это можно сделать через редактирование свойств лицензии.&lt;br /&gt;
&lt;br /&gt;
* Контакты кастомера не были дубликатно подписаны на эти же самые продукты через другие механизмы RM.&lt;br /&gt;
&lt;br /&gt;
* Подписка License Expired в данном случае остается одна - только на общий продукт. Но в случае, если подписка истекла, то при рассылке Release Updates в тело письма вставляется соотв. сообщение (т.к. это сейчас сделано для обычных лицензий).&lt;br /&gt;
&lt;br /&gt;
* В случае если для продукты DirectShow Filter Pack - RM конечно же имеет право наложить в штаны но после этого должен немедленно собрацо и вести себя так как будто он точно знает что нужно делать - а именно вести себя так как будто DirectShow Filter Pack это самый обычный продукт (т.е. появитсо в Distributives и дать возможность сделать рассылку). Т.е. обычная рассылка Release Updates для продукта такого типа тоже создаецо.&lt;br /&gt;
&lt;br /&gt;
2) Существуют продукты DeckLink SDK, Playout SDK и Multimedia SDK, для которых мы решили в целях упрощения использовать общий даунлоад. В данном случае все остается как есть - т.е. лицензии создаются именно под эти продукты, отдельно ведется статистика подписок, лицензий и закачек - но используется только один download.&lt;br /&gt;
&lt;br /&gt;
Например, мы говорим что DeckLink SDK и Playout SDK - оба используют download Multimedia SDK. Разработчик закачивает новый релиз именно для Multimedia SDK. Этот новый релиз появляется в разделе Distributives. Я его модерю, нажимаю сделать рассылку - и, как и раньше, выходят три блока писем - для DeckLink SDK, Playout SDk и Multimedia SDK.&lt;br /&gt;
&lt;br /&gt;
Особенность: ссылка во всех письмах теперь называется multimedia sdk. Делать редиректы и переименования - не надо (иначе клиенты будут говорить я скачал Playout SDK а мне ставится Multimedia SDK).&lt;br /&gt;
&lt;br /&gt;
===Industry-Based Subscriptions===&lt;br /&gt;
&lt;br /&gt;
Добавить возможность создавать рассылки по индустриям. В целом все аналогично тому как сейчас работают подписки на новые релизы. Можно подписывать контакты руками. А при рассылке заодно рассылать тем, кто является клиентом какого-либо продукта и тоже записан в эту индустрию.&lt;br /&gt;
&lt;br /&gt;
Возможно, когда у нас появятся разные способы делать рассылки, придется придумывать способы не слать дважды по одному и тому же поводу. Например, заводить для рассылки какой-нибудь ID.&lt;br /&gt;
&lt;br /&gt;
===Contact as System Item===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать контакты как самостоятельную сущность.&lt;br /&gt;
&lt;br /&gt;
Контакт представляет из себя имя (текстовое поле например &amp;quot;Andrew Okunev) и ассоциированный c ним набор полей:&lt;br /&gt;
&lt;br /&gt;
* email name (используется в подстановках в письмах; если пусто, используется &amp;quot;customer&amp;quot;)&lt;br /&gt;
* email (любое количество)&lt;br /&gt;
* skype (любое количество)&lt;br /&gt;
* телефон (любое количество)&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать отображение и редактирование свойств для любого из контактов. Например:&lt;br /&gt;
&lt;br /&gt;
* Когда добавлен в систему&lt;br /&gt;
* С какими компаниями (Customers) ассоциирован.&lt;br /&gt;
* С какими лицензиями ассоциирован.&lt;br /&gt;
* На какие подписки подписан.&lt;br /&gt;
&lt;br /&gt;
Все это нужно реализовать в одной вьюхе. Редактирование доступно только администратору системы.&lt;br /&gt;
&lt;br /&gt;
Примечания:&lt;br /&gt;
&lt;br /&gt;
* В системе должны отсутствовать дубликаты по email. Дубликаты по имени допустимы (т.е. когда одинаковое имя но разный email), но должна быть возможность их соединить (т.е. превратить в один контакт с двумя email). Реализовать это можно через отдельную вьюху, доступную администратору.&lt;br /&gt;
&lt;br /&gt;
* Если у контакта больше одного email, то любой из них может использоваться для авторизации.&lt;br /&gt;
&lt;br /&gt;
* Новый контакт (как сущность) создается при любом добавлении контакта в систему (например, при создании подписки через модуль subscribers.&lt;br /&gt;
&lt;br /&gt;
===Universal Uploads===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать возможность закачивать в RM абстрактные (не привязанные к какому-либо продукту) файлы. При этом каждому такому файлу должен быть по-умолчанию присвоен срок жизни - 30 дней. После чего файл автоматически удаляется. Файлы можно защищать паролем, который требуется для скачки.&lt;br /&gt;
&lt;br /&gt;
Каждый файл привязан к какому-либо юзеру. Только у этого пользователя (или у администратора) есть возможность добавлять к своему аккаунту файлы или удалять их. Каждую закачку можно удалить или обновить файл в ней.&lt;br /&gt;
&lt;br /&gt;
Соответственно, необходимо создать две новых вьюхи:&lt;br /&gt;
&lt;br /&gt;
1) Вьюха создания закачки. Опции: текстедит срок жизни (по-умолчанию вбито 30), чекбокс защитить паролем, путь к файлу.&lt;br /&gt;
&lt;br /&gt;
2) Вьюха список закачек данного юзера. Отображать: имя файла, количество скачек, оставшийся срок жизни, дата закачки. Имя файла является ссылкой на данный файл (вида rm.medialooks.com/...).&lt;br /&gt;
&lt;br /&gt;
В меню каждого юзера должно быть что-то вроде &amp;quot;My Uploads&amp;quot;, которая ведет на вьюху (2).&lt;br /&gt;
&lt;br /&gt;
===Customer Access===&lt;br /&gt;
&lt;br /&gt;
Нужно научицо давать кастомерам доступ к аплоадам. Для этого нужно реализовать в RM еще одну роль - &amp;quot;Customer&amp;quot;. Роль &amp;quot;User&amp;quot; нужно переименовать в &amp;quot;Developer&amp;quot;. Каждый контакт, добавленный в систему, должен получать соотв. статус и автоматически сгенеренный пароль. Никаких писем при заведении пользователей пока автоматически рассылать не надо. Однако, при первой попытке зайти в систему, кастомер должен по почте получить свой пароль. Залогинившись, он имеет доступ только к своим аплоадам (в будущем добавим еще подписки и лицензии).&lt;br /&gt;
&lt;br /&gt;
===Search===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать поиск в системе. Форма поиска - одна на все случаи. Она должна размещаться на всех страницах системы.&lt;br /&gt;
&lt;br /&gt;
По каким полям искать:&lt;br /&gt;
&lt;br /&gt;
* По контактам.&lt;br /&gt;
* По названию клиента.&lt;br /&gt;
* По тегу клиента.&lt;br /&gt;
&lt;br /&gt;
'''Пример.''' Если в поле поиска ввден запрос:&lt;br /&gt;
&lt;br /&gt;
Andrew A. Okunev &amp;lt;dev@medialooks.com&amp;gt; (MediaLooks)&lt;br /&gt;
&lt;br /&gt;
- то сперва нужно произвести поиск отдельно по &amp;quot;Osman Yel&amp;quot;, &amp;quot;dev@medialooks.com&amp;quot; и &amp;quot;MediaLooks&amp;quot;. Эти результаты вывести в первую очередь.&lt;br /&gt;
&lt;br /&gt;
Во-вторую - выделить из поисковой строки название домена и отрезать от него домен первого уровня. Т.е. в нашем примере искать по строке &amp;quot;medialooks&amp;quot;. Эти результаты вывести во вторую очередь.&lt;br /&gt;
&lt;br /&gt;
Кроме этого, естественно должен работать поиск в том случае если исходный запрос это &amp;quot;dev@medialooks.com&amp;quot; или просто &amp;quot;medialooks&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===LinkedIn Integration===&lt;br /&gt;
&lt;br /&gt;
Зачем? Любая система управления контактами страдает одним недостатком - ей неоткуда узнать о том, что у кого-то поменялся email или телефон.&lt;br /&gt;
&lt;br /&gt;
Предполагается что пользователи LinkedIn (за исключением [http://www.linkedin.com/pub/2/26b/926 некоторых] поддерживают свой профиль в актуальном состоянии. В частности, следят за тем, чтобы в профиле был актуальный email.&lt;br /&gt;
&lt;br /&gt;
В результате хочется получить поддержку следующих сценариев:&lt;br /&gt;
&lt;br /&gt;
* Узнавать об изменениях в контактной информации наших клиентов.&lt;br /&gt;
* Приглашать в нашу сеть клиентов, которые уже используют LinkedIn.&lt;br /&gt;
* Приглашать в LinkedIn тех клиентов, которые его пока не используют.&lt;br /&gt;
* Если клиент для общение с нами использует один email, а для LinkedIn - другой, - то нам нужно узнать этот email и использовать его как запасной/альтернативный.&lt;br /&gt;
&lt;br /&gt;
Для начала думаю следует просто проверить, позволяет ли API делать следующее:&lt;br /&gt;
&lt;br /&gt;
* Авторизоваться в системе под каким-то реальным логином (например, подо мной).&lt;br /&gt;
* Поискать пользователей по email.&lt;br /&gt;
* Получить email любого из моих контактов.&lt;br /&gt;
* Послать конкретному пользователю инвайт, иметь возможность указать кастомный текст для инвайта.&lt;br /&gt;
* Пригласить нового пользователя через email, то же самое с кастомным текстом.&lt;br /&gt;
&lt;br /&gt;
Задача неактуальна поскольку как я понял от LinkedIn нужно сначала получить одобрение на использование API:&lt;br /&gt;
&lt;br /&gt;
* http://www.linkedin.com/static?key=developers_apis&lt;br /&gt;
&lt;br /&gt;
==Done Tasks==&lt;br /&gt;
&lt;br /&gt;
* [[LMS/CMS Tasks: Done]]&lt;br /&gt;
&lt;br /&gt;
[[Category: Tasks]]&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Ivan</name></author>	</entry>

	<entry>
		<id>http://wiki.avobjects.com/Dev:RM/LMS_Tasks</id>
		<title>Dev:RM/LMS Tasks</title>
		<link rel="alternate" type="text/html" href="http://wiki.avobjects.com/Dev:RM/LMS_Tasks"/>
				<updated>2009-11-03T18:05:56Z</updated>
		
		<summary type="html">&lt;p&gt;Ivan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See also:&lt;br /&gt;
&lt;br /&gt;
* [[Dev:Tasks To Complete Before We Can Papustico!]]&lt;br /&gt;
* [[CMS Tasks]]&lt;br /&gt;
* [[Dev:Communication System]]&lt;br /&gt;
* [[Dev: Support System Roles]]&lt;br /&gt;
* [[Dev: RM User Rights]]&lt;br /&gt;
* [[Dev: RM Licensing Feature Update]]&lt;br /&gt;
&lt;br /&gt;
==RM/LMS Tasks==&lt;br /&gt;
&lt;br /&gt;
==DONE==&lt;br /&gt;
* [bug] Откуда-то взялся кейс in progress без асайна - [http://rm.medialooks.com/messages/show/1586].&lt;br /&gt;
'''забить, он старый'''&lt;br /&gt;
&lt;br /&gt;
* [bug] При паттписке-атписке из кейса выскакивает явоскрпитовый диалог с цифрами (например, 68).&lt;br /&gt;
&lt;br /&gt;
* [bug] Чичас после нажатия на Send emails в [http://rm.medialooks.com/distributives/show/39 релизах] в гуйне ничо не происходит. Т.е. кажецо что ты промахнулсо и хочецо нажать кнопку исчо раз. Хотя на самом деле все срабатывает (письма шлюцо) и если со страницы уйти то из [http://rm.medialooks.com/distributives списка] этот продукт исчезнет.&lt;br /&gt;
'''происходит, но долго'''&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] При создании или редактировании лицензии. Убрать галку &amp;quot;Send license files&amp;quot; и добавить просто новую кнопку &amp;quot;Save and Send License Files&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] Добавть ссылочку Re-send License Files прямо рядом с Edit License. Update переименовать в Renew. Пункты меню расположить так: Renew License | Edit License | Re-send License Files | Delete License.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] Ссылочку Add License поместить над списком лицензий и назвать Add New License.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] Notes в свойствах лицензии нужно выводить красным.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/messages/new_cases/SM] Для всех вариантов отображения списка кейсов. В табличке со списком выводить также статус (In progess, waiting, etc.) - предпоследней колонкой.&lt;br /&gt;
&lt;br /&gt;
* [note] Добавить бряк после номера версии в тексте релилз ноутс который вставляется в subscribe.&lt;br /&gt;
&lt;br /&gt;
* [note] Для license_file.rhtml нужно новое условие - триальная лицензия или нет. Т.к. текст в этом случае другой.&lt;br /&gt;
'''оно там есть, просто называецо нетривиально: &amp;lt;% if @expiration_date %&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
==TODO==&lt;br /&gt;
&lt;br /&gt;
===Current===&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/] Писать дату рядом с номером версии на главной странице.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer] В списке кастомеров выводить еще и company таг (первой колонкой).&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/control] Не нужна такая длинная простыня изменений на странице рестарт апдейт RM. А когда она делает рестарт хотелось бы какой-нить индикации.&lt;br /&gt;
&lt;br /&gt;
* Када дуплицируецо кейс нада в логе выводить ссылку на дочерний кейс. Ссылка на родительский кейс сейчас есть, а вот наоборот - нету. Кроме этого, хорошо бы в обоих случаях (родитель и дочко) выводить вверху что-то вроде This case has parent cases:&amp;lt;br&amp;gt;* Subject или This case has child cases...&lt;br /&gt;
&lt;br /&gt;
===To Think About===&lt;br /&gt;
&lt;br /&gt;
* Как сделать FTP с per customer паролями?&lt;br /&gt;
* Как добавить features и подписку кастомеров на них?&lt;br /&gt;
&lt;br /&gt;
===Important CRM/Email-Related Fixes===&lt;br /&gt;
&lt;br /&gt;
* Сделать возможность CC на кейс.&lt;br /&gt;
&lt;br /&gt;
* Сделать фичу слежения за кейсами.&lt;br /&gt;
&lt;br /&gt;
* Мердждинг кейсов.&lt;br /&gt;
&lt;br /&gt;
===Bugs, Fixes, Questions===&lt;br /&gt;
&lt;br /&gt;
* Нужно проверить что это не глюки у нас (такое кол-во закачек) и залочить чувака [http://rm.medialooks.com/messages/show/1700].&lt;br /&gt;
&lt;br /&gt;
* [unconfirmed] При наличии customer с некоторым email не срабатывает подписка этого email на любой продукт. Запрет должен срабатывать только в случае если лицензия есть именно на этот продукт (возможно, тут надо еще добавить логику про наследованные продукты).&lt;br /&gt;
&lt;br /&gt;
* [Bug] Не работает напоминалка проля в даунлоадах.&lt;br /&gt;
&lt;br /&gt;
* Сбрасывается инфо при вводе уже зареганого email.&lt;br /&gt;
&lt;br /&gt;
* Красные буквы при вводе adsf@medialooks.com.&lt;br /&gt;
&lt;br /&gt;
* Не обрабатываются ошибки типа wrong password в даунлоадз.&lt;br /&gt;
&lt;br /&gt;
* В моей опере никогда не начинаются даунлоады автоматом.&lt;br /&gt;
&lt;br /&gt;
===RM Access Rights===&lt;br /&gt;
&lt;br /&gt;
* Сейчас если зайти на главную под пользовтелем cthomson@medialooks.com (Reseller/Sales Manager) то у него нет столбца Customers. Нужно добавить и выводить там соответственно только доступных ему кастомеров.&lt;br /&gt;
&lt;br /&gt;
===Подписки===&lt;br /&gt;
&lt;br /&gt;
* Подписка Update Discount Expiration. Ввести для лицензий которые expired только после 01.12.2009. Т.е. письма по этой подписке должны начать ходить примерно с 01.05.2010.&lt;br /&gt;
&lt;br /&gt;
* Новая подписка license_expred_followup - которая будет запускацо спустя 4 месяца после истечения подписки. Там написано что через 2 месяца закончицо скидка 50% на продление лицензии. (Кстати идея - может давать доп. скидку за продление в течение месяца после истечения паттписки - типа 65%?)&lt;br /&gt;
&lt;br /&gt;
===Backups to Amazon S3===&lt;br /&gt;
&lt;br /&gt;
Давай будем наш бэкапный файл закачивать на амазон раз в неделю. Я сделал там аккаунт.&lt;br /&gt;
&lt;br /&gt;
===Tasks===&lt;br /&gt;
&lt;br /&gt;
* [Отложено] New email setup. Нужно засетапить новый домен medialooks-team.com. Мы будем его использовать для следующего - чтобы слать и принимать почту с двух общих адресов - &amp;lt;sales@medialooks-team.com&amp;gt; и &amp;lt;dev@medialooks-team.com&amp;gt;. Почему-то очень многие закачики тупо не получают наши письма. Если это не поможет то нам придется переходить на полностью web-based общение с кастомерами.&lt;br /&gt;
&lt;br /&gt;
* Разобрацо в чем проблема с настройкой goals в гугле.&lt;br /&gt;
&lt;br /&gt;
* Добавить в шаблоны писем (шаблон рассылки нового релиза, 2 шаблона license expired) возможность вставлять &amp;quot;License update link&amp;quot; в случае если такая ссылка указана в свойствах продукта (типа IF License update link exists - вставить следующее). Прислать мне файло шаблонов на редактирование (могу сам залезть но надо настроить тада SVN твой).&lt;br /&gt;
&lt;br /&gt;
* Сделать урлы в свойствах кастомера кликабл.&lt;br /&gt;
&lt;br /&gt;
* Cross-promotion subscriptions.&lt;br /&gt;
&lt;br /&gt;
* Если переименовать продукт, то перестает работать общая ссылка на даунлоад и по-версионные ссылки.&lt;br /&gt;
&lt;br /&gt;
* Contact as System Item (see task description).&lt;br /&gt;
&lt;br /&gt;
* Search (see task description).&lt;br /&gt;
&lt;br /&gt;
* Сортировка по тагам во вьюхе кастомеров. Статистика по тагам.&lt;br /&gt;
&lt;br /&gt;
* Добавить вывод количества лицензионных подписок в графу &amp;quot;Site Subscribers&amp;quot;. Графу переименовать в &amp;quot;Subscribers (Interested/Licensed)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* Общие рассылки. Научиться делать рассылки по всем клиентам. Это должна быть отдельная подписка.&lt;br /&gt;
&lt;br /&gt;
* Персонализированный учет закачек. Мы хотим про каждого клиента знать скачивает он новые версии или нет. В письме, которое он получает при выходе новой версии, можно делать уникальный урл, чтобы система знала нажал он или нет. Второй подход - это использовать куки на тот случай, если клиент скачивает с сайта.&lt;br /&gt;
&lt;br /&gt;
* Статистика закачек. Научицо разделять новые (приходящие с рекламы или из поиска) и повторные (наши кастомеры качают новые версии) закачки.&lt;br /&gt;
&lt;br /&gt;
* Подумать. Если есть идеи как интегрировать с Google Analytics (GA)  AdWords (AW) - было бы клева. Например вытаскивать из GA данные о посещениях конкретной страницы и сравнивать их с данными по закачкам.&lt;br /&gt;
&lt;br /&gt;
* Проблема с возможностью создать продукт у которого все версии - беты. И тогда не работает общая ссылка.&lt;br /&gt;
&lt;br /&gt;
* Проблема с RSS-фидом блога (у меня почему-то аутлук пытаецо запустицо).&lt;br /&gt;
&lt;br /&gt;
* Research on online license document generation. Существует ли какой-нить вебовский генератор PDF?&lt;br /&gt;
&lt;br /&gt;
* Создавать в Google Blog Search и Google Alerts фиды по тегам клиента, подсасывать их и демонстрировать мышап на странице клиента. :)))&lt;br /&gt;
&lt;br /&gt;
* Исследовать возможность автоматически создавать для каждого контакта в RM аккаунт в вике, принадлежащий определенной группе.&lt;br /&gt;
&lt;br /&gt;
* Убивать разделительные знаки в поле contacts (елси это телефон). Нужно для того чтобы можно было искать по номеру телефона в почтовой базе.&lt;br /&gt;
&lt;br /&gt;
* Сортировка по дате последнего релиза вот [http://rm.medialooks.com/distributives тут].&lt;br /&gt;
&lt;br /&gt;
* В RM надо сделать напоминалки для нас об истечении лицензий у кастомеров. (Чтобы пинать/напоминать руками.)&lt;br /&gt;
&lt;br /&gt;
* Поиск кастомеров и контактов по странам в RM.&lt;br /&gt;
&lt;br /&gt;
* Дать возможность редактировать meeting results.&lt;br /&gt;
&lt;br /&gt;
* Доработать функционал реселлеров. Например, чтобы про кастомера было видно что он привязан к некоторому реселлеру ([http://rm.medialooks.com/customer/show/364 пример]).&lt;br /&gt;
&lt;br /&gt;
* Придумать что-нибудь с аттачами. Добавить их в темплейт или как-то иначе автоматизировать. Не забыть про то что он обновляется (автоматизировать?) - может как отдельный продукт его или в этом роде... Нужно уметь видеть версию прайса кот. была отправлена.&lt;br /&gt;
&lt;br /&gt;
* Ручная блокировка аккунта. Выдавать сообщение &amp;quot;Your account has been suspended. Please contact MediaLooks in order to unlock your account.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Выводить количество кастомерских кейсов в скобкаъ на странице кастомера.&lt;br /&gt;
&lt;br /&gt;
* Выводить едишен лицензии в ее свойствах на стр. кастомера.&lt;br /&gt;
&lt;br /&gt;
* Надо различать даунлоады по продуктам (например QT DS и QT Plugin).&lt;br /&gt;
&lt;br /&gt;
* Вот в [http://rm.medialooks.com/product/licenses/22 этой] вьюхе выводить сначала триальные, потом expired лицензии. Триальные лицензии нужно помечать каким-то визуальным образом.&lt;br /&gt;
&lt;br /&gt;
* Тайтлы страниц в RM. Расписать подробнее что где нужно.&lt;br /&gt;
&lt;br /&gt;
* Выводить где-то отдельно триальные лицензии, чтобы можно было пинать кастомеров по ним.&lt;br /&gt;
&lt;br /&gt;
* Нужен способ задать реселлера со страницы кастомера. И нужно на странице кастомера это видеть.&lt;br /&gt;
&lt;br /&gt;
* Сделать опции go to case by number в обоих интерфейсах RM.&lt;br /&gt;
&lt;br /&gt;
* Логгировать даунлоады и выводить в кейсах последнюю скачанную пользователем версии.&lt;br /&gt;
&lt;br /&gt;
* Когда дискуссия идет в теме даунлоад - новые даунлоады ее обновляют что неудобно.&lt;br /&gt;
&lt;br /&gt;
* Идея. Вести две простыни release notes. Одна что вписал девелопер. Другую - что отправлено кастомерам.&lt;br /&gt;
&lt;br /&gt;
* Добавить список аттачей к письму про апдейт кейса.&lt;br /&gt;
&lt;br /&gt;
* Некоторым заказчикам нужно дать возможность заливать на FTP с паролем.&lt;br /&gt;
&lt;br /&gt;
* Надо бы разрешить just comment to customer без реасайна кейса.&lt;br /&gt;
&lt;br /&gt;
* Продумать логику один контакт - две конторы. Пример videoassistech. У него разные адреса для разных случаев.&lt;br /&gt;
&lt;br /&gt;
* Нужно разработать функцию CC case. Там выбираешь N людей кот. кейс как бы идет копией до тех пор пока они не нажпут dismiss.&lt;br /&gt;
&lt;br /&gt;
===Инвойсы===&lt;br /&gt;
&lt;br /&gt;
* Каждому продукту и каждому едишену продукта привязываем цену. Все сущности у которых есть цена, становятся доступными в интерфейсе инвойсинга.&lt;br /&gt;
&lt;br /&gt;
* Что такое инвойс вообще:&lt;br /&gt;
&lt;br /&gt;
1) Это некоторая запись в БД, привязанная к двум другим сущностям RM: кастомеру и пользователю. Нужно добавить две возможности в гуйне: а) просмотреть все инвойсы данного кастомера; б) посмотреть инвойсы данного пользователя (имеется в виду только свои или все, или любого конкретного пользователя - в зависимости от наличия прав).&lt;br /&gt;
2) Наличие неоплаченного инвойса это некоторый особый статус кастомера, самый последний перед закрытием сделки. Неоплаченные инвойсы нужно будет выводить отдельными списками в разных местах системы, чтобы можно было в соответствии с ними делать какие-то действия.&lt;br /&gt;
&lt;br /&gt;
У самого инвойса есть следующие свойства:&lt;br /&gt;
1) Список продуктов, включенных в него.&lt;br /&gt;
2) Скидка.&lt;br /&gt;
3) Данные о клиенте.&lt;br /&gt;
4) Метод платежа.&lt;br /&gt;
&lt;br /&gt;
Инвойс отсылается кастомеру по почте, аттачицо к кейсу и сохраняется в истории. &lt;br /&gt;
&lt;br /&gt;
===Это потом===&lt;br /&gt;
&lt;br /&gt;
* Переделать форму контактов на сайте. Добавить возможность указать второй email. Отдельные поля под скайп, телефон.&lt;br /&gt;
&lt;br /&gt;
* Подписка royalties.&lt;br /&gt;
&lt;br /&gt;
===[Отложено] Communication Monitor===&lt;br /&gt;
&lt;br /&gt;
Сперва обсудить: может сразу делать web-based ticketing system?&lt;br /&gt;
&lt;br /&gt;
Коммуникация - это в данном случае одно из трех:&lt;br /&gt;
&lt;br /&gt;
1) Кастомер заполнил контактную форму на сайте. Насколько я знаю, в этом случае все данные попадают в базу и там храняцо (если трафик платный то [http://www.medialooks.com/admin/block_admin/53 сюда] лучше не нажимать).&lt;br /&gt;
&lt;br /&gt;
2) На один из двух адресов - &amp;lt;sales@medialooks-team.com&amp;gt; и &amp;lt;dev@medialooks-team.com&amp;gt; получено письмо от кастомера.&lt;br /&gt;
&lt;br /&gt;
3) Мы послали кастомеру письмо с одного из двух адресов (во всех случаях мы ставим BCC на адрес, с которого пишем).&lt;br /&gt;
&lt;br /&gt;
В RM нужно реализовать три списка:&lt;br /&gt;
&lt;br /&gt;
1) Список коммуникаций типа (1), на которые не было ответа с одного из двух адресов в течение N часов. &lt;br /&gt;
&lt;br /&gt;
2) Список коммуникаций типа (2), на которые не было ответа с одного из двух адресов в течение M часов. &lt;br /&gt;
&lt;br /&gt;
3) Список коммуникаций типа (3), в случае если от кастомера не было ответа в течение D рабочих дней.&lt;br /&gt;
&lt;br /&gt;
В обоих случаях выводить в таблице всю инфо, которая есть на данный email - телефон, скайп, ссылка на кастомеров, у которых в контактах числицо такой email (см. также &amp;quot;Contact as System Item&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
N, M и D нужно дать возможность конфигурить через гуй RM.&lt;br /&gt;
&lt;br /&gt;
В первом приближении выводить тела писем не нужно. Но в будуем мне кажется мы все равно к этому придем. Поэтому хранить можно уже начинать.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Customer download tracking===&lt;br /&gt;
&lt;br /&gt;
* Индивидуальные даунлоад ссылки для отслеживания какой подписчик нажал на сцылку.&lt;br /&gt;
* Отписка или оповещение администратора о подписчиках который не нажимают на ссылки (признак того что не получают письма или не читают их - но при этом по какой-то причине не отписываются).&lt;br /&gt;
&lt;br /&gt;
===Наследование/объединение продуктов===&lt;br /&gt;
&lt;br /&gt;
Необходимо поддержать два следующих сценария:&lt;br /&gt;
&lt;br /&gt;
1) Существует продукт DirectShow Filter Pack - он включает в себя большой набор DirectShow фильтров. Каждый фильтр релизится по своему графику (т.е. без графика) - поэтому отдельного download для него не существует. Т.е. продукт в данном случае это просто такая лицензия, т.е. совокупность цены и набора компонентов. В RM возможность создавать такие лицензии должна быть реализована в виде продукта в общем списке - просто у него будут какие-то дополнительные свойства как-то &amp;quot;включать в себя такие-то продукты&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Соответственно, при создании лицензии на такой продукт нужно сделать так чтобы:&lt;br /&gt;
&lt;br /&gt;
* Контакты кастомера могли быть подписаны на релизы (updates) по каждому из продуктов отдельно. По-умолчанию - создается подписка на все входящие в пакет продукты. Отписаться от каждого из продуктов в отдельности можно через сцылку на отписку из письма или это можно сделать через редактирование свойств лицензии.&lt;br /&gt;
&lt;br /&gt;
* Контакты кастомера не были дубликатно подписаны на эти же самые продукты через другие механизмы RM.&lt;br /&gt;
&lt;br /&gt;
* Подписка License Expired в данном случае остается одна - только на общий продукт. Но в случае, если подписка истекла, то при рассылке Release Updates в тело письма вставляется соотв. сообщение (т.к. это сейчас сделано для обычных лицензий).&lt;br /&gt;
&lt;br /&gt;
* В случае если для продукты DirectShow Filter Pack - RM конечно же имеет право наложить в штаны но после этого должен немедленно собрацо и вести себя так как будто он точно знает что нужно делать - а именно вести себя так как будто DirectShow Filter Pack это самый обычный продукт (т.е. появитсо в Distributives и дать возможность сделать рассылку). Т.е. обычная рассылка Release Updates для продукта такого типа тоже создаецо.&lt;br /&gt;
&lt;br /&gt;
2) Существуют продукты DeckLink SDK, Playout SDK и Multimedia SDK, для которых мы решили в целях упрощения использовать общий даунлоад. В данном случае все остается как есть - т.е. лицензии создаются именно под эти продукты, отдельно ведется статистика подписок, лицензий и закачек - но используется только один download.&lt;br /&gt;
&lt;br /&gt;
Например, мы говорим что DeckLink SDK и Playout SDK - оба используют download Multimedia SDK. Разработчик закачивает новый релиз именно для Multimedia SDK. Этот новый релиз появляется в разделе Distributives. Я его модерю, нажимаю сделать рассылку - и, как и раньше, выходят три блока писем - для DeckLink SDK, Playout SDk и Multimedia SDK.&lt;br /&gt;
&lt;br /&gt;
Особенность: ссылка во всех письмах теперь называется multimedia sdk. Делать редиректы и переименования - не надо (иначе клиенты будут говорить я скачал Playout SDK а мне ставится Multimedia SDK).&lt;br /&gt;
&lt;br /&gt;
===Industry-Based Subscriptions===&lt;br /&gt;
&lt;br /&gt;
Добавить возможность создавать рассылки по индустриям. В целом все аналогично тому как сейчас работают подписки на новые релизы. Можно подписывать контакты руками. А при рассылке заодно рассылать тем, кто является клиентом какого-либо продукта и тоже записан в эту индустрию.&lt;br /&gt;
&lt;br /&gt;
Возможно, когда у нас появятся разные способы делать рассылки, придется придумывать способы не слать дважды по одному и тому же поводу. Например, заводить для рассылки какой-нибудь ID.&lt;br /&gt;
&lt;br /&gt;
===Contact as System Item===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать контакты как самостоятельную сущность.&lt;br /&gt;
&lt;br /&gt;
Контакт представляет из себя имя (текстовое поле например &amp;quot;Andrew Okunev) и ассоциированный c ним набор полей:&lt;br /&gt;
&lt;br /&gt;
* email name (используется в подстановках в письмах; если пусто, используется &amp;quot;customer&amp;quot;)&lt;br /&gt;
* email (любое количество)&lt;br /&gt;
* skype (любое количество)&lt;br /&gt;
* телефон (любое количество)&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать отображение и редактирование свойств для любого из контактов. Например:&lt;br /&gt;
&lt;br /&gt;
* Когда добавлен в систему&lt;br /&gt;
* С какими компаниями (Customers) ассоциирован.&lt;br /&gt;
* С какими лицензиями ассоциирован.&lt;br /&gt;
* На какие подписки подписан.&lt;br /&gt;
&lt;br /&gt;
Все это нужно реализовать в одной вьюхе. Редактирование доступно только администратору системы.&lt;br /&gt;
&lt;br /&gt;
Примечания:&lt;br /&gt;
&lt;br /&gt;
* В системе должны отсутствовать дубликаты по email. Дубликаты по имени допустимы (т.е. когда одинаковое имя но разный email), но должна быть возможность их соединить (т.е. превратить в один контакт с двумя email). Реализовать это можно через отдельную вьюху, доступную администратору.&lt;br /&gt;
&lt;br /&gt;
* Если у контакта больше одного email, то любой из них может использоваться для авторизации.&lt;br /&gt;
&lt;br /&gt;
* Новый контакт (как сущность) создается при любом добавлении контакта в систему (например, при создании подписки через модуль subscribers.&lt;br /&gt;
&lt;br /&gt;
===Universal Uploads===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать возможность закачивать в RM абстрактные (не привязанные к какому-либо продукту) файлы. При этом каждому такому файлу должен быть по-умолчанию присвоен срок жизни - 30 дней. После чего файл автоматически удаляется. Файлы можно защищать паролем, который требуется для скачки.&lt;br /&gt;
&lt;br /&gt;
Каждый файл привязан к какому-либо юзеру. Только у этого пользователя (или у администратора) есть возможность добавлять к своему аккаунту файлы или удалять их. Каждую закачку можно удалить или обновить файл в ней.&lt;br /&gt;
&lt;br /&gt;
Соответственно, необходимо создать две новых вьюхи:&lt;br /&gt;
&lt;br /&gt;
1) Вьюха создания закачки. Опции: текстедит срок жизни (по-умолчанию вбито 30), чекбокс защитить паролем, путь к файлу.&lt;br /&gt;
&lt;br /&gt;
2) Вьюха список закачек данного юзера. Отображать: имя файла, количество скачек, оставшийся срок жизни, дата закачки. Имя файла является ссылкой на данный файл (вида rm.medialooks.com/...).&lt;br /&gt;
&lt;br /&gt;
В меню каждого юзера должно быть что-то вроде &amp;quot;My Uploads&amp;quot;, которая ведет на вьюху (2).&lt;br /&gt;
&lt;br /&gt;
===Customer Access===&lt;br /&gt;
&lt;br /&gt;
Нужно научицо давать кастомерам доступ к аплоадам. Для этого нужно реализовать в RM еще одну роль - &amp;quot;Customer&amp;quot;. Роль &amp;quot;User&amp;quot; нужно переименовать в &amp;quot;Developer&amp;quot;. Каждый контакт, добавленный в систему, должен получать соотв. статус и автоматически сгенеренный пароль. Никаких писем при заведении пользователей пока автоматически рассылать не надо. Однако, при первой попытке зайти в систему, кастомер должен по почте получить свой пароль. Залогинившись, он имеет доступ только к своим аплоадам (в будущем добавим еще подписки и лицензии).&lt;br /&gt;
&lt;br /&gt;
===Search===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать поиск в системе. Форма поиска - одна на все случаи. Она должна размещаться на всех страницах системы.&lt;br /&gt;
&lt;br /&gt;
По каким полям искать:&lt;br /&gt;
&lt;br /&gt;
* По контактам.&lt;br /&gt;
* По названию клиента.&lt;br /&gt;
* По тегу клиента.&lt;br /&gt;
&lt;br /&gt;
'''Пример.''' Если в поле поиска ввден запрос:&lt;br /&gt;
&lt;br /&gt;
Andrew A. Okunev &amp;lt;dev@medialooks.com&amp;gt; (MediaLooks)&lt;br /&gt;
&lt;br /&gt;
- то сперва нужно произвести поиск отдельно по &amp;quot;Osman Yel&amp;quot;, &amp;quot;dev@medialooks.com&amp;quot; и &amp;quot;MediaLooks&amp;quot;. Эти результаты вывести в первую очередь.&lt;br /&gt;
&lt;br /&gt;
Во-вторую - выделить из поисковой строки название домена и отрезать от него домен первого уровня. Т.е. в нашем примере искать по строке &amp;quot;medialooks&amp;quot;. Эти результаты вывести во вторую очередь.&lt;br /&gt;
&lt;br /&gt;
Кроме этого, естественно должен работать поиск в том случае если исходный запрос это &amp;quot;dev@medialooks.com&amp;quot; или просто &amp;quot;medialooks&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===LinkedIn Integration===&lt;br /&gt;
&lt;br /&gt;
Зачем? Любая система управления контактами страдает одним недостатком - ей неоткуда узнать о том, что у кого-то поменялся email или телефон.&lt;br /&gt;
&lt;br /&gt;
Предполагается что пользователи LinkedIn (за исключением [http://www.linkedin.com/pub/2/26b/926 некоторых] поддерживают свой профиль в актуальном состоянии. В частности, следят за тем, чтобы в профиле был актуальный email.&lt;br /&gt;
&lt;br /&gt;
В результате хочется получить поддержку следующих сценариев:&lt;br /&gt;
&lt;br /&gt;
* Узнавать об изменениях в контактной информации наших клиентов.&lt;br /&gt;
* Приглашать в нашу сеть клиентов, которые уже используют LinkedIn.&lt;br /&gt;
* Приглашать в LinkedIn тех клиентов, которые его пока не используют.&lt;br /&gt;
* Если клиент для общение с нами использует один email, а для LinkedIn - другой, - то нам нужно узнать этот email и использовать его как запасной/альтернативный.&lt;br /&gt;
&lt;br /&gt;
Для начала думаю следует просто проверить, позволяет ли API делать следующее:&lt;br /&gt;
&lt;br /&gt;
* Авторизоваться в системе под каким-то реальным логином (например, подо мной).&lt;br /&gt;
* Поискать пользователей по email.&lt;br /&gt;
* Получить email любого из моих контактов.&lt;br /&gt;
* Послать конкретному пользователю инвайт, иметь возможность указать кастомный текст для инвайта.&lt;br /&gt;
* Пригласить нового пользователя через email, то же самое с кастомным текстом.&lt;br /&gt;
&lt;br /&gt;
Задача неактуальна поскольку как я понял от LinkedIn нужно сначала получить одобрение на использование API:&lt;br /&gt;
&lt;br /&gt;
* http://www.linkedin.com/static?key=developers_apis&lt;br /&gt;
&lt;br /&gt;
==Done Tasks==&lt;br /&gt;
&lt;br /&gt;
* [[LMS/CMS Tasks: Done]]&lt;br /&gt;
&lt;br /&gt;
[[Category: Tasks]]&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Ivan</name></author>	</entry>

	<entry>
		<id>http://wiki.avobjects.com/Dev:RM/LMS_Tasks</id>
		<title>Dev:RM/LMS Tasks</title>
		<link rel="alternate" type="text/html" href="http://wiki.avobjects.com/Dev:RM/LMS_Tasks"/>
				<updated>2009-11-03T14:37:26Z</updated>
		
		<summary type="html">&lt;p&gt;Ivan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See also:&lt;br /&gt;
&lt;br /&gt;
* [[Dev:Tasks To Complete Before We Can Papustico!]]&lt;br /&gt;
* [[CMS Tasks]]&lt;br /&gt;
* [[Dev:Communication System]]&lt;br /&gt;
* [[Dev: Support System Roles]]&lt;br /&gt;
* [[Dev: RM User Rights]]&lt;br /&gt;
* [[Dev: RM Licensing Feature Update]]&lt;br /&gt;
&lt;br /&gt;
==RM/LMS Tasks==&lt;br /&gt;
&lt;br /&gt;
==DONE==&lt;br /&gt;
* [bug] Откуда-то взялся кейс in progress без асайна - [http://rm.medialooks.com/messages/show/1586].&lt;br /&gt;
'''забить, он старый'''&lt;br /&gt;
&lt;br /&gt;
* [bug] При паттписке-атписке из кейса выскакивает явоскрпитовый диалог с цифрами (например, 68).&lt;br /&gt;
&lt;br /&gt;
* [bug] Чичас после нажатия на Send emails в [http://rm.medialooks.com/distributives/show/39 релизах] в гуйне ничо не происходит. Т.е. кажецо что ты промахнулсо и хочецо нажать кнопку исчо раз. Хотя на самом деле все срабатывает (письма шлюцо) и если со страницы уйти то из [http://rm.medialooks.com/distributives списка] этот продукт исчезнет.&lt;br /&gt;
'''происходит, но долго'''&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] При создании или редактировании лицензии. Убрать галку &amp;quot;Send license files&amp;quot; и добавить просто новую кнопку &amp;quot;Save and Send License Files&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] Добавть ссылочку Re-send License Files прямо рядом с Edit License. Update переименовать в Renew. Пункты меню расположить так: Renew License | Edit License | Re-send License Files | Delete License.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] Ссылочку Add License поместить над списком лицензий и назвать Add New License.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer/show/95] Notes в свойствах лицензии нужно выводить красным.&lt;br /&gt;
&lt;br /&gt;
==TODO==&lt;br /&gt;
&lt;br /&gt;
===Current===&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/messages/new_cases/SM] Для всех вариантов отображения списка кейсов. В табличке со списком выводить также статус (In progess, waiting, etc.) - предпоследней колонкой.&lt;br /&gt;
&lt;br /&gt;
* [note] Добавить бряк после номера версии в тексте релилз ноутс который вставляется в subscribe.&lt;br /&gt;
&lt;br /&gt;
* [note] Для license_file.rhtml нужно новое условие - триальная лицензия или нет. Т.к. текст в этом случае другой.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/] Писать дату рядом с номером версии на главной странице.&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/customer] В списке кастомеров выводить еще и company таг (первой колонкой).&lt;br /&gt;
&lt;br /&gt;
* [http://rm.medialooks.com/control] Не нужна такая длинная простыня изменений на странице рестарт апдейт RM. А когда она делает рестарт хотелось бы какой-нить индикации.&lt;br /&gt;
&lt;br /&gt;
* Када дуплицируецо кейс нада в логе выводить ссылку на дочерний кейс. Ссылка на родительский кейс сейчас есть, а вот наоборот - нету. Кроме этого, хорошо бы в обоих случаях (родитель и дочко) выводить вверху что-то вроде This case has parent cases:&amp;lt;br&amp;gt;* Subject или This case has child cases...&lt;br /&gt;
&lt;br /&gt;
===To Think About===&lt;br /&gt;
&lt;br /&gt;
* Как сделать FTP с per customer паролями?&lt;br /&gt;
* Как добавить features и подписку кастомеров на них?&lt;br /&gt;
&lt;br /&gt;
===Important CRM/Email-Related Fixes===&lt;br /&gt;
&lt;br /&gt;
* Сделать возможность CC на кейс.&lt;br /&gt;
&lt;br /&gt;
* Сделать фичу слежения за кейсами.&lt;br /&gt;
&lt;br /&gt;
* Мердждинг кейсов.&lt;br /&gt;
&lt;br /&gt;
===Bugs, Fixes, Questions===&lt;br /&gt;
&lt;br /&gt;
* Нужно проверить что это не глюки у нас (такое кол-во закачек) и залочить чувака [http://rm.medialooks.com/messages/show/1700].&lt;br /&gt;
&lt;br /&gt;
* [unconfirmed] При наличии customer с некоторым email не срабатывает подписка этого email на любой продукт. Запрет должен срабатывать только в случае если лицензия есть именно на этот продукт (возможно, тут надо еще добавить логику про наследованные продукты).&lt;br /&gt;
&lt;br /&gt;
* [Bug] Не работает напоминалка проля в даунлоадах.&lt;br /&gt;
&lt;br /&gt;
* Сбрасывается инфо при вводе уже зареганого email.&lt;br /&gt;
&lt;br /&gt;
* Красные буквы при вводе adsf@medialooks.com.&lt;br /&gt;
&lt;br /&gt;
* Не обрабатываются ошибки типа wrong password в даунлоадз.&lt;br /&gt;
&lt;br /&gt;
* В моей опере никогда не начинаются даунлоады автоматом.&lt;br /&gt;
&lt;br /&gt;
===RM Access Rights===&lt;br /&gt;
&lt;br /&gt;
* Сейчас если зайти на главную под пользовтелем cthomson@medialooks.com (Reseller/Sales Manager) то у него нет столбца Customers. Нужно добавить и выводить там соответственно только доступных ему кастомеров.&lt;br /&gt;
&lt;br /&gt;
===Подписки===&lt;br /&gt;
&lt;br /&gt;
* Подписка Update Discount Expiration. Ввести для лицензий которые expired только после 01.12.2009. Т.е. письма по этой подписке должны начать ходить примерно с 01.05.2010.&lt;br /&gt;
&lt;br /&gt;
* Новая подписка license_expred_followup - которая будет запускацо спустя 4 месяца после истечения подписки. Там написано что через 2 месяца закончицо скидка 50% на продление лицензии. (Кстати идея - может давать доп. скидку за продление в течение месяца после истечения паттписки - типа 65%?)&lt;br /&gt;
&lt;br /&gt;
===Backups to Amazon S3===&lt;br /&gt;
&lt;br /&gt;
Давай будем наш бэкапный файл закачивать на амазон раз в неделю. Я сделал там аккаунт.&lt;br /&gt;
&lt;br /&gt;
===Tasks===&lt;br /&gt;
&lt;br /&gt;
* [Отложено] New email setup. Нужно засетапить новый домен medialooks-team.com. Мы будем его использовать для следующего - чтобы слать и принимать почту с двух общих адресов - &amp;lt;sales@medialooks-team.com&amp;gt; и &amp;lt;dev@medialooks-team.com&amp;gt;. Почему-то очень многие закачики тупо не получают наши письма. Если это не поможет то нам придется переходить на полностью web-based общение с кастомерами.&lt;br /&gt;
&lt;br /&gt;
* Разобрацо в чем проблема с настройкой goals в гугле.&lt;br /&gt;
&lt;br /&gt;
* Добавить в шаблоны писем (шаблон рассылки нового релиза, 2 шаблона license expired) возможность вставлять &amp;quot;License update link&amp;quot; в случае если такая ссылка указана в свойствах продукта (типа IF License update link exists - вставить следующее). Прислать мне файло шаблонов на редактирование (могу сам залезть но надо настроить тада SVN твой).&lt;br /&gt;
&lt;br /&gt;
* Сделать урлы в свойствах кастомера кликабл.&lt;br /&gt;
&lt;br /&gt;
* Cross-promotion subscriptions.&lt;br /&gt;
&lt;br /&gt;
* Если переименовать продукт, то перестает работать общая ссылка на даунлоад и по-версионные ссылки.&lt;br /&gt;
&lt;br /&gt;
* Contact as System Item (see task description).&lt;br /&gt;
&lt;br /&gt;
* Search (see task description).&lt;br /&gt;
&lt;br /&gt;
* Сортировка по тагам во вьюхе кастомеров. Статистика по тагам.&lt;br /&gt;
&lt;br /&gt;
* Добавить вывод количества лицензионных подписок в графу &amp;quot;Site Subscribers&amp;quot;. Графу переименовать в &amp;quot;Subscribers (Interested/Licensed)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* Общие рассылки. Научиться делать рассылки по всем клиентам. Это должна быть отдельная подписка.&lt;br /&gt;
&lt;br /&gt;
* Персонализированный учет закачек. Мы хотим про каждого клиента знать скачивает он новые версии или нет. В письме, которое он получает при выходе новой версии, можно делать уникальный урл, чтобы система знала нажал он или нет. Второй подход - это использовать куки на тот случай, если клиент скачивает с сайта.&lt;br /&gt;
&lt;br /&gt;
* Статистика закачек. Научицо разделять новые (приходящие с рекламы или из поиска) и повторные (наши кастомеры качают новые версии) закачки.&lt;br /&gt;
&lt;br /&gt;
* Подумать. Если есть идеи как интегрировать с Google Analytics (GA)  AdWords (AW) - было бы клева. Например вытаскивать из GA данные о посещениях конкретной страницы и сравнивать их с данными по закачкам.&lt;br /&gt;
&lt;br /&gt;
* Проблема с возможностью создать продукт у которого все версии - беты. И тогда не работает общая ссылка.&lt;br /&gt;
&lt;br /&gt;
* Проблема с RSS-фидом блога (у меня почему-то аутлук пытаецо запустицо).&lt;br /&gt;
&lt;br /&gt;
* Research on online license document generation. Существует ли какой-нить вебовский генератор PDF?&lt;br /&gt;
&lt;br /&gt;
* Создавать в Google Blog Search и Google Alerts фиды по тегам клиента, подсасывать их и демонстрировать мышап на странице клиента. :)))&lt;br /&gt;
&lt;br /&gt;
* Исследовать возможность автоматически создавать для каждого контакта в RM аккаунт в вике, принадлежащий определенной группе.&lt;br /&gt;
&lt;br /&gt;
* Убивать разделительные знаки в поле contacts (елси это телефон). Нужно для того чтобы можно было искать по номеру телефона в почтовой базе.&lt;br /&gt;
&lt;br /&gt;
* Сортировка по дате последнего релиза вот [http://rm.medialooks.com/distributives тут].&lt;br /&gt;
&lt;br /&gt;
* В RM надо сделать напоминалки для нас об истечении лицензий у кастомеров. (Чтобы пинать/напоминать руками.)&lt;br /&gt;
&lt;br /&gt;
* Поиск кастомеров и контактов по странам в RM.&lt;br /&gt;
&lt;br /&gt;
* Дать возможность редактировать meeting results.&lt;br /&gt;
&lt;br /&gt;
* Доработать функционал реселлеров. Например, чтобы про кастомера было видно что он привязан к некоторому реселлеру ([http://rm.medialooks.com/customer/show/364 пример]).&lt;br /&gt;
&lt;br /&gt;
* Придумать что-нибудь с аттачами. Добавить их в темплейт или как-то иначе автоматизировать. Не забыть про то что он обновляется (автоматизировать?) - может как отдельный продукт его или в этом роде... Нужно уметь видеть версию прайса кот. была отправлена.&lt;br /&gt;
&lt;br /&gt;
* Ручная блокировка аккунта. Выдавать сообщение &amp;quot;Your account has been suspended. Please contact MediaLooks in order to unlock your account.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Выводить количество кастомерских кейсов в скобкаъ на странице кастомера.&lt;br /&gt;
&lt;br /&gt;
* Выводить едишен лицензии в ее свойствах на стр. кастомера.&lt;br /&gt;
&lt;br /&gt;
* Надо различать даунлоады по продуктам (например QT DS и QT Plugin).&lt;br /&gt;
&lt;br /&gt;
* Вот в [http://rm.medialooks.com/product/licenses/22 этой] вьюхе выводить сначала триальные, потом expired лицензии. Триальные лицензии нужно помечать каким-то визуальным образом.&lt;br /&gt;
&lt;br /&gt;
* Тайтлы страниц в RM. Расписать подробнее что где нужно.&lt;br /&gt;
&lt;br /&gt;
* Выводить где-то отдельно триальные лицензии, чтобы можно было пинать кастомеров по ним.&lt;br /&gt;
&lt;br /&gt;
* Нужен способ задать реселлера со страницы кастомера. И нужно на странице кастомера это видеть.&lt;br /&gt;
&lt;br /&gt;
* Сделать опции go to case by number в обоих интерфейсах RM.&lt;br /&gt;
&lt;br /&gt;
* Логгировать даунлоады и выводить в кейсах последнюю скачанную пользователем версии.&lt;br /&gt;
&lt;br /&gt;
* Когда дискуссия идет в теме даунлоад - новые даунлоады ее обновляют что неудобно.&lt;br /&gt;
&lt;br /&gt;
* Идея. Вести две простыни release notes. Одна что вписал девелопер. Другую - что отправлено кастомерам.&lt;br /&gt;
&lt;br /&gt;
* Добавить список аттачей к письму про апдейт кейса.&lt;br /&gt;
&lt;br /&gt;
* Некоторым заказчикам нужно дать возможность заливать на FTP с паролем.&lt;br /&gt;
&lt;br /&gt;
* Надо бы разрешить just comment to customer без реасайна кейса.&lt;br /&gt;
&lt;br /&gt;
* Продумать логику один контакт - две конторы. Пример videoassistech. У него разные адреса для разных случаев.&lt;br /&gt;
&lt;br /&gt;
* Нужно разработать функцию CC case. Там выбираешь N людей кот. кейс как бы идет копией до тех пор пока они не нажпут dismiss.&lt;br /&gt;
&lt;br /&gt;
===Инвойсы===&lt;br /&gt;
&lt;br /&gt;
* Каждому продукту и каждому едишену продукта привязываем цену. Все сущности у которых есть цена, становятся доступными в интерфейсе инвойсинга.&lt;br /&gt;
&lt;br /&gt;
* Что такое инвойс вообще:&lt;br /&gt;
&lt;br /&gt;
1) Это некоторая запись в БД, привязанная к двум другим сущностям RM: кастомеру и пользователю. Нужно добавить две возможности в гуйне: а) просмотреть все инвойсы данного кастомера; б) посмотреть инвойсы данного пользователя (имеется в виду только свои или все, или любого конкретного пользователя - в зависимости от наличия прав).&lt;br /&gt;
2) Наличие неоплаченного инвойса это некоторый особый статус кастомера, самый последний перед закрытием сделки. Неоплаченные инвойсы нужно будет выводить отдельными списками в разных местах системы, чтобы можно было в соответствии с ними делать какие-то действия.&lt;br /&gt;
&lt;br /&gt;
У самого инвойса есть следующие свойства:&lt;br /&gt;
1) Список продуктов, включенных в него.&lt;br /&gt;
2) Скидка.&lt;br /&gt;
3) Данные о клиенте.&lt;br /&gt;
4) Метод платежа.&lt;br /&gt;
&lt;br /&gt;
Инвойс отсылается кастомеру по почте, аттачицо к кейсу и сохраняется в истории. &lt;br /&gt;
&lt;br /&gt;
===Это потом===&lt;br /&gt;
&lt;br /&gt;
* Переделать форму контактов на сайте. Добавить возможность указать второй email. Отдельные поля под скайп, телефон.&lt;br /&gt;
&lt;br /&gt;
* Подписка royalties.&lt;br /&gt;
&lt;br /&gt;
===[Отложено] Communication Monitor===&lt;br /&gt;
&lt;br /&gt;
Сперва обсудить: может сразу делать web-based ticketing system?&lt;br /&gt;
&lt;br /&gt;
Коммуникация - это в данном случае одно из трех:&lt;br /&gt;
&lt;br /&gt;
1) Кастомер заполнил контактную форму на сайте. Насколько я знаю, в этом случае все данные попадают в базу и там храняцо (если трафик платный то [http://www.medialooks.com/admin/block_admin/53 сюда] лучше не нажимать).&lt;br /&gt;
&lt;br /&gt;
2) На один из двух адресов - &amp;lt;sales@medialooks-team.com&amp;gt; и &amp;lt;dev@medialooks-team.com&amp;gt; получено письмо от кастомера.&lt;br /&gt;
&lt;br /&gt;
3) Мы послали кастомеру письмо с одного из двух адресов (во всех случаях мы ставим BCC на адрес, с которого пишем).&lt;br /&gt;
&lt;br /&gt;
В RM нужно реализовать три списка:&lt;br /&gt;
&lt;br /&gt;
1) Список коммуникаций типа (1), на которые не было ответа с одного из двух адресов в течение N часов. &lt;br /&gt;
&lt;br /&gt;
2) Список коммуникаций типа (2), на которые не было ответа с одного из двух адресов в течение M часов. &lt;br /&gt;
&lt;br /&gt;
3) Список коммуникаций типа (3), в случае если от кастомера не было ответа в течение D рабочих дней.&lt;br /&gt;
&lt;br /&gt;
В обоих случаях выводить в таблице всю инфо, которая есть на данный email - телефон, скайп, ссылка на кастомеров, у которых в контактах числицо такой email (см. также &amp;quot;Contact as System Item&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
N, M и D нужно дать возможность конфигурить через гуй RM.&lt;br /&gt;
&lt;br /&gt;
В первом приближении выводить тела писем не нужно. Но в будуем мне кажется мы все равно к этому придем. Поэтому хранить можно уже начинать.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Customer download tracking===&lt;br /&gt;
&lt;br /&gt;
* Индивидуальные даунлоад ссылки для отслеживания какой подписчик нажал на сцылку.&lt;br /&gt;
* Отписка или оповещение администратора о подписчиках который не нажимают на ссылки (признак того что не получают письма или не читают их - но при этом по какой-то причине не отписываются).&lt;br /&gt;
&lt;br /&gt;
===Наследование/объединение продуктов===&lt;br /&gt;
&lt;br /&gt;
Необходимо поддержать два следующих сценария:&lt;br /&gt;
&lt;br /&gt;
1) Существует продукт DirectShow Filter Pack - он включает в себя большой набор DirectShow фильтров. Каждый фильтр релизится по своему графику (т.е. без графика) - поэтому отдельного download для него не существует. Т.е. продукт в данном случае это просто такая лицензия, т.е. совокупность цены и набора компонентов. В RM возможность создавать такие лицензии должна быть реализована в виде продукта в общем списке - просто у него будут какие-то дополнительные свойства как-то &amp;quot;включать в себя такие-то продукты&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Соответственно, при создании лицензии на такой продукт нужно сделать так чтобы:&lt;br /&gt;
&lt;br /&gt;
* Контакты кастомера могли быть подписаны на релизы (updates) по каждому из продуктов отдельно. По-умолчанию - создается подписка на все входящие в пакет продукты. Отписаться от каждого из продуктов в отдельности можно через сцылку на отписку из письма или это можно сделать через редактирование свойств лицензии.&lt;br /&gt;
&lt;br /&gt;
* Контакты кастомера не были дубликатно подписаны на эти же самые продукты через другие механизмы RM.&lt;br /&gt;
&lt;br /&gt;
* Подписка License Expired в данном случае остается одна - только на общий продукт. Но в случае, если подписка истекла, то при рассылке Release Updates в тело письма вставляется соотв. сообщение (т.к. это сейчас сделано для обычных лицензий).&lt;br /&gt;
&lt;br /&gt;
* В случае если для продукты DirectShow Filter Pack - RM конечно же имеет право наложить в штаны но после этого должен немедленно собрацо и вести себя так как будто он точно знает что нужно делать - а именно вести себя так как будто DirectShow Filter Pack это самый обычный продукт (т.е. появитсо в Distributives и дать возможность сделать рассылку). Т.е. обычная рассылка Release Updates для продукта такого типа тоже создаецо.&lt;br /&gt;
&lt;br /&gt;
2) Существуют продукты DeckLink SDK, Playout SDK и Multimedia SDK, для которых мы решили в целях упрощения использовать общий даунлоад. В данном случае все остается как есть - т.е. лицензии создаются именно под эти продукты, отдельно ведется статистика подписок, лицензий и закачек - но используется только один download.&lt;br /&gt;
&lt;br /&gt;
Например, мы говорим что DeckLink SDK и Playout SDK - оба используют download Multimedia SDK. Разработчик закачивает новый релиз именно для Multimedia SDK. Этот новый релиз появляется в разделе Distributives. Я его модерю, нажимаю сделать рассылку - и, как и раньше, выходят три блока писем - для DeckLink SDK, Playout SDk и Multimedia SDK.&lt;br /&gt;
&lt;br /&gt;
Особенность: ссылка во всех письмах теперь называется multimedia sdk. Делать редиректы и переименования - не надо (иначе клиенты будут говорить я скачал Playout SDK а мне ставится Multimedia SDK).&lt;br /&gt;
&lt;br /&gt;
===Industry-Based Subscriptions===&lt;br /&gt;
&lt;br /&gt;
Добавить возможность создавать рассылки по индустриям. В целом все аналогично тому как сейчас работают подписки на новые релизы. Можно подписывать контакты руками. А при рассылке заодно рассылать тем, кто является клиентом какого-либо продукта и тоже записан в эту индустрию.&lt;br /&gt;
&lt;br /&gt;
Возможно, когда у нас появятся разные способы делать рассылки, придется придумывать способы не слать дважды по одному и тому же поводу. Например, заводить для рассылки какой-нибудь ID.&lt;br /&gt;
&lt;br /&gt;
===Contact as System Item===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать контакты как самостоятельную сущность.&lt;br /&gt;
&lt;br /&gt;
Контакт представляет из себя имя (текстовое поле например &amp;quot;Andrew Okunev) и ассоциированный c ним набор полей:&lt;br /&gt;
&lt;br /&gt;
* email name (используется в подстановках в письмах; если пусто, используется &amp;quot;customer&amp;quot;)&lt;br /&gt;
* email (любое количество)&lt;br /&gt;
* skype (любое количество)&lt;br /&gt;
* телефон (любое количество)&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать отображение и редактирование свойств для любого из контактов. Например:&lt;br /&gt;
&lt;br /&gt;
* Когда добавлен в систему&lt;br /&gt;
* С какими компаниями (Customers) ассоциирован.&lt;br /&gt;
* С какими лицензиями ассоциирован.&lt;br /&gt;
* На какие подписки подписан.&lt;br /&gt;
&lt;br /&gt;
Все это нужно реализовать в одной вьюхе. Редактирование доступно только администратору системы.&lt;br /&gt;
&lt;br /&gt;
Примечания:&lt;br /&gt;
&lt;br /&gt;
* В системе должны отсутствовать дубликаты по email. Дубликаты по имени допустимы (т.е. когда одинаковое имя но разный email), но должна быть возможность их соединить (т.е. превратить в один контакт с двумя email). Реализовать это можно через отдельную вьюху, доступную администратору.&lt;br /&gt;
&lt;br /&gt;
* Если у контакта больше одного email, то любой из них может использоваться для авторизации.&lt;br /&gt;
&lt;br /&gt;
* Новый контакт (как сущность) создается при любом добавлении контакта в систему (например, при создании подписки через модуль subscribers.&lt;br /&gt;
&lt;br /&gt;
===Universal Uploads===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать возможность закачивать в RM абстрактные (не привязанные к какому-либо продукту) файлы. При этом каждому такому файлу должен быть по-умолчанию присвоен срок жизни - 30 дней. После чего файл автоматически удаляется. Файлы можно защищать паролем, который требуется для скачки.&lt;br /&gt;
&lt;br /&gt;
Каждый файл привязан к какому-либо юзеру. Только у этого пользователя (или у администратора) есть возможность добавлять к своему аккаунту файлы или удалять их. Каждую закачку можно удалить или обновить файл в ней.&lt;br /&gt;
&lt;br /&gt;
Соответственно, необходимо создать две новых вьюхи:&lt;br /&gt;
&lt;br /&gt;
1) Вьюха создания закачки. Опции: текстедит срок жизни (по-умолчанию вбито 30), чекбокс защитить паролем, путь к файлу.&lt;br /&gt;
&lt;br /&gt;
2) Вьюха список закачек данного юзера. Отображать: имя файла, количество скачек, оставшийся срок жизни, дата закачки. Имя файла является ссылкой на данный файл (вида rm.medialooks.com/...).&lt;br /&gt;
&lt;br /&gt;
В меню каждого юзера должно быть что-то вроде &amp;quot;My Uploads&amp;quot;, которая ведет на вьюху (2).&lt;br /&gt;
&lt;br /&gt;
===Customer Access===&lt;br /&gt;
&lt;br /&gt;
Нужно научицо давать кастомерам доступ к аплоадам. Для этого нужно реализовать в RM еще одну роль - &amp;quot;Customer&amp;quot;. Роль &amp;quot;User&amp;quot; нужно переименовать в &amp;quot;Developer&amp;quot;. Каждый контакт, добавленный в систему, должен получать соотв. статус и автоматически сгенеренный пароль. Никаких писем при заведении пользователей пока автоматически рассылать не надо. Однако, при первой попытке зайти в систему, кастомер должен по почте получить свой пароль. Залогинившись, он имеет доступ только к своим аплоадам (в будущем добавим еще подписки и лицензии).&lt;br /&gt;
&lt;br /&gt;
===Search===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать поиск в системе. Форма поиска - одна на все случаи. Она должна размещаться на всех страницах системы.&lt;br /&gt;
&lt;br /&gt;
По каким полям искать:&lt;br /&gt;
&lt;br /&gt;
* По контактам.&lt;br /&gt;
* По названию клиента.&lt;br /&gt;
* По тегу клиента.&lt;br /&gt;
&lt;br /&gt;
'''Пример.''' Если в поле поиска ввден запрос:&lt;br /&gt;
&lt;br /&gt;
Andrew A. Okunev &amp;lt;dev@medialooks.com&amp;gt; (MediaLooks)&lt;br /&gt;
&lt;br /&gt;
- то сперва нужно произвести поиск отдельно по &amp;quot;Osman Yel&amp;quot;, &amp;quot;dev@medialooks.com&amp;quot; и &amp;quot;MediaLooks&amp;quot;. Эти результаты вывести в первую очередь.&lt;br /&gt;
&lt;br /&gt;
Во-вторую - выделить из поисковой строки название домена и отрезать от него домен первого уровня. Т.е. в нашем примере искать по строке &amp;quot;medialooks&amp;quot;. Эти результаты вывести во вторую очередь.&lt;br /&gt;
&lt;br /&gt;
Кроме этого, естественно должен работать поиск в том случае если исходный запрос это &amp;quot;dev@medialooks.com&amp;quot; или просто &amp;quot;medialooks&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===LinkedIn Integration===&lt;br /&gt;
&lt;br /&gt;
Зачем? Любая система управления контактами страдает одним недостатком - ей неоткуда узнать о том, что у кого-то поменялся email или телефон.&lt;br /&gt;
&lt;br /&gt;
Предполагается что пользователи LinkedIn (за исключением [http://www.linkedin.com/pub/2/26b/926 некоторых] поддерживают свой профиль в актуальном состоянии. В частности, следят за тем, чтобы в профиле был актуальный email.&lt;br /&gt;
&lt;br /&gt;
В результате хочется получить поддержку следующих сценариев:&lt;br /&gt;
&lt;br /&gt;
* Узнавать об изменениях в контактной информации наших клиентов.&lt;br /&gt;
* Приглашать в нашу сеть клиентов, которые уже используют LinkedIn.&lt;br /&gt;
* Приглашать в LinkedIn тех клиентов, которые его пока не используют.&lt;br /&gt;
* Если клиент для общение с нами использует один email, а для LinkedIn - другой, - то нам нужно узнать этот email и использовать его как запасной/альтернативный.&lt;br /&gt;
&lt;br /&gt;
Для начала думаю следует просто проверить, позволяет ли API делать следующее:&lt;br /&gt;
&lt;br /&gt;
* Авторизоваться в системе под каким-то реальным логином (например, подо мной).&lt;br /&gt;
* Поискать пользователей по email.&lt;br /&gt;
* Получить email любого из моих контактов.&lt;br /&gt;
* Послать конкретному пользователю инвайт, иметь возможность указать кастомный текст для инвайта.&lt;br /&gt;
* Пригласить нового пользователя через email, то же самое с кастомным текстом.&lt;br /&gt;
&lt;br /&gt;
Задача неактуальна поскольку как я понял от LinkedIn нужно сначала получить одобрение на использование API:&lt;br /&gt;
&lt;br /&gt;
* http://www.linkedin.com/static?key=developers_apis&lt;br /&gt;
&lt;br /&gt;
==Done Tasks==&lt;br /&gt;
&lt;br /&gt;
* [[LMS/CMS Tasks: Done]]&lt;br /&gt;
&lt;br /&gt;
[[Category: Tasks]]&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Ivan</name></author>	</entry>

	<entry>
		<id>http://wiki.avobjects.com/Dev:Tasks_To_Complete_Before_We_Can_Papustico</id>
		<title>Dev:Tasks To Complete Before We Can Papustico</title>
		<link rel="alternate" type="text/html" href="http://wiki.avobjects.com/Dev:Tasks_To_Complete_Before_We_Can_Papustico"/>
				<updated>2009-08-06T04:58:45Z</updated>
		
		<summary type="html">&lt;p&gt;Ivan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== толстым нада падумать ==&lt;br /&gt;
&lt;br /&gt;
* Инвойсы.&lt;br /&gt;
&lt;br /&gt;
== DONE ==&lt;br /&gt;
* Новые типы лицензий.&lt;br /&gt;
&lt;br /&gt;
* New downloads and website view in IE8 debugging.&lt;br /&gt;
&lt;br /&gt;
* Отвязка контактов от кастомера.&lt;br /&gt;
&lt;br /&gt;
* Реселлирский фнукционал (проверить плюс кэш).&lt;br /&gt;
&lt;br /&gt;
* Support System. Если кастомера для даннова email не существует, то рядом показывать ссылочку &amp;quot;Create customer&amp;quot; - соответственно уводить на страницу создания нового кастомера где уже вбит этот email и страна. Доступно только SM.&lt;br /&gt;
&lt;br /&gt;
* Квотинг при ответах через RM/Support System.&lt;br /&gt;
&lt;br /&gt;
* Темплейты в RM/Support System. Чтобы создать темплейт, нужно выделить текст и нажать кнопочку. После чего выскакивает попап где можно задать имя шаблона и сделать его либо личным, либо расшарить с другими пользователями. Темплейты, доступные пользователю, выводяцо справа от поля ввода.&lt;br /&gt;
&lt;br /&gt;
* Генерация временных лицнзий (гуй).&lt;br /&gt;
&lt;br /&gt;
* Галка subscribe to thread (шлет письма при апдейте кейса пользователю RM).&lt;br /&gt;
&lt;br /&gt;
* Небольшие коррекции по интерфейсу создания лицензии.&lt;br /&gt;
&lt;br /&gt;
* Апдейт license stats по классам лицензий после того как будет сделан апдейт структуры параметров продукта.&lt;br /&gt;
&lt;br /&gt;
* Подумать чо делать если чота сломалось а мы уже папустились.&lt;br /&gt;
&lt;br /&gt;
* [[Dev:RM Licensing Feature Update]]&lt;br /&gt;
&lt;br /&gt;
[[Category: Web Development Tasks]]&lt;/div&gt;</summary>
		<author><name>Ivan</name></author>	</entry>

	<entry>
		<id>http://wiki.avobjects.com/Dev:Tasks_To_Complete_Before_We_Can_Papustico</id>
		<title>Dev:Tasks To Complete Before We Can Papustico</title>
		<link rel="alternate" type="text/html" href="http://wiki.avobjects.com/Dev:Tasks_To_Complete_Before_We_Can_Papustico"/>
				<updated>2009-07-26T11:12:04Z</updated>
		
		<summary type="html">&lt;p&gt;Ivan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Подумать чо делать если чота сломалось а мы уже папустились.&lt;br /&gt;
&lt;br /&gt;
== толстым нада падумать ==&lt;br /&gt;
&lt;br /&gt;
* Инвойсы.&lt;br /&gt;
&lt;br /&gt;
== DONE ==&lt;br /&gt;
* Новые типы лицензий.&lt;br /&gt;
&lt;br /&gt;
* New downloads and website view in IE8 debugging.&lt;br /&gt;
&lt;br /&gt;
* Отвязка контактов от кастомера.&lt;br /&gt;
&lt;br /&gt;
* Реселлирский фнукционал (проверить плюс кэш).&lt;br /&gt;
&lt;br /&gt;
* Support System. Если кастомера для даннова email не существует, то рядом показывать ссылочку &amp;quot;Create customer&amp;quot; - соответственно уводить на страницу создания нового кастомера где уже вбит этот email и страна. Доступно только SM.&lt;br /&gt;
&lt;br /&gt;
* Квотинг при ответах через RM/Support System.&lt;br /&gt;
&lt;br /&gt;
* Темплейты в RM/Support System. Чтобы создать темплейт, нужно выделить текст и нажать кнопочку. После чего выскакивает попап где можно задать имя шаблона и сделать его либо личным, либо расшарить с другими пользователями. Темплейты, доступные пользователю, выводяцо справа от поля ввода.&lt;br /&gt;
&lt;br /&gt;
* Генерация временных лицнзий (гуй).&lt;br /&gt;
&lt;br /&gt;
* Галка subscribe to thread (шлет письма при апдейте кейса пользователю RM).&lt;br /&gt;
&lt;br /&gt;
* Небольшие коррекции по интерфейсу создания лицензии.&lt;br /&gt;
&lt;br /&gt;
* Апдейт license stats по классам лицензий после того как будет сделан апдейт структуры параметров продукта.&lt;br /&gt;
&lt;br /&gt;
* [[Dev:RM Licensing Feature Update]]&lt;br /&gt;
&lt;br /&gt;
[[Category: Web Development Tasks]]&lt;/div&gt;</summary>
		<author><name>Ivan</name></author>	</entry>

	<entry>
		<id>http://wiki.avobjects.com/Dev:Tasks_To_Complete_Before_We_Can_Papustico</id>
		<title>Dev:Tasks To Complete Before We Can Papustico</title>
		<link rel="alternate" type="text/html" href="http://wiki.avobjects.com/Dev:Tasks_To_Complete_Before_We_Can_Papustico"/>
				<updated>2009-07-22T15:28:52Z</updated>
		
		<summary type="html">&lt;p&gt;Ivan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Подумать чо делать если чота сломалось а мы уже папустились.&lt;br /&gt;
&lt;br /&gt;
== толстым нада падумать ==&lt;br /&gt;
&lt;br /&gt;
* Небольшие коррекции по интерфейсу создания лицензии.&lt;br /&gt;
&lt;br /&gt;
* (?) Инвойсы.&lt;br /&gt;
&lt;br /&gt;
* Апдейт license stats по классам лицензий после того как будет сделан апдейт структуры параметров продукта.&lt;br /&gt;
&lt;br /&gt;
== DONE ==&lt;br /&gt;
* Новые типы лицензий.&lt;br /&gt;
&lt;br /&gt;
* New downloads and website view in IE8 debugging.&lt;br /&gt;
&lt;br /&gt;
* Отвязка контактов от кастомера.&lt;br /&gt;
&lt;br /&gt;
* Реселлирский фнукционал (проверить плюс кэш).&lt;br /&gt;
&lt;br /&gt;
* Support System. Если кастомера для даннова email не существует, то рядом показывать ссылочку &amp;quot;Create customer&amp;quot; - соответственно уводить на страницу создания нового кастомера где уже вбит этот email и страна. Доступно только SM.&lt;br /&gt;
&lt;br /&gt;
* Квотинг при ответах через RM/Support System.&lt;br /&gt;
&lt;br /&gt;
* Темплейты в RM/Support System. Чтобы создать темплейт, нужно выделить текст и нажать кнопочку. После чего выскакивает попап где можно задать имя шаблона и сделать его либо личным, либо расшарить с другими пользователями. Темплейты, доступные пользователю, выводяцо справа от поля ввода.&lt;br /&gt;
&lt;br /&gt;
* Генерация временных лицнзий (гуй).&lt;br /&gt;
&lt;br /&gt;
* Галка subscribe to thread (шлет письма при апдейте кейса пользователю RM).&lt;br /&gt;
&lt;br /&gt;
* [[Dev:RM Licensing Feature Update]]&lt;br /&gt;
&lt;br /&gt;
[[Category: Web Development Tasks]]&lt;/div&gt;</summary>
		<author><name>Ivan</name></author>	</entry>

	<entry>
		<id>http://wiki.avobjects.com/Dev:Tasks_To_Complete_Before_We_Can_Papustico</id>
		<title>Dev:Tasks To Complete Before We Can Papustico</title>
		<link rel="alternate" type="text/html" href="http://wiki.avobjects.com/Dev:Tasks_To_Complete_Before_We_Can_Papustico"/>
				<updated>2009-07-21T11:06:47Z</updated>
		
		<summary type="html">&lt;p&gt;Ivan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Подумать чо делать если чота сломалось а мы уже папустились.&lt;br /&gt;
&lt;br /&gt;
== толстым нада падумать ==&lt;br /&gt;
* Новая структура параметров продукта.&lt;br /&gt;
&lt;br /&gt;
* (?) Инвойсы.&lt;br /&gt;
&lt;br /&gt;
* Апдейт license stats по классам лицензий после того как будет сделан апдейт структуры параметров продукта.&lt;br /&gt;
&lt;br /&gt;
== DONE ==&lt;br /&gt;
* Новые типы лицензий.&lt;br /&gt;
&lt;br /&gt;
* New downloads and website view in IE8 debugging.&lt;br /&gt;
&lt;br /&gt;
* Отвязка контактов от кастомера.&lt;br /&gt;
&lt;br /&gt;
* Реселлирский фнукционал (проверить плюс кэш).&lt;br /&gt;
&lt;br /&gt;
* Support System. Если кастомера для даннова email не существует, то рядом показывать ссылочку &amp;quot;Create customer&amp;quot; - соответственно уводить на страницу создания нового кастомера где уже вбит этот email и страна. Доступно только SM.&lt;br /&gt;
&lt;br /&gt;
* Квотинг при ответах через RM/Support System.&lt;br /&gt;
&lt;br /&gt;
* Темплейты в RM/Support System. Чтобы создать темплейт, нужно выделить текст и нажать кнопочку. После чего выскакивает попап где можно задать имя шаблона и сделать его либо личным, либо расшарить с другими пользователями. Темплейты, доступные пользователю, выводяцо справа от поля ввода.&lt;br /&gt;
&lt;br /&gt;
* Генерация временных лицнзий (гуй).&lt;br /&gt;
&lt;br /&gt;
* Галка subscribe to thread (шлет письма при апдейте кейса пользователю RM).&lt;/div&gt;</summary>
		<author><name>Ivan</name></author>	</entry>

	<entry>
		<id>http://wiki.avobjects.com/Dev:Tasks_To_Complete_Before_We_Can_Papustico</id>
		<title>Dev:Tasks To Complete Before We Can Papustico</title>
		<link rel="alternate" type="text/html" href="http://wiki.avobjects.com/Dev:Tasks_To_Complete_Before_We_Can_Papustico"/>
				<updated>2009-07-16T17:58:25Z</updated>
		
		<summary type="html">&lt;p&gt;Ivan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Галка subscribe to thread (шлет письма при апдейте кейса пользователю RM).&lt;br /&gt;
&lt;br /&gt;
* Подумать чо делать если чота сломалось а мы уже папустились.&lt;br /&gt;
&lt;br /&gt;
== толстым нада падумать ==&lt;br /&gt;
* Новая структура параметров продукта.&lt;br /&gt;
&lt;br /&gt;
* (?) Инвойсы.&lt;br /&gt;
&lt;br /&gt;
== DONE ==&lt;br /&gt;
* Новые типы лицензий.&lt;br /&gt;
&lt;br /&gt;
* New downloads and website view in IE8 debugging.&lt;br /&gt;
&lt;br /&gt;
* Отвязка контактов от кастомера.&lt;br /&gt;
&lt;br /&gt;
* Реселлирский фнукционал (проверить плюс кэш).&lt;br /&gt;
&lt;br /&gt;
* Support System. Если кастомера для даннова email не существует, то рядом показывать ссылочку &amp;quot;Create customer&amp;quot; - соответственно уводить на страницу создания нового кастомера где уже вбит этот email и страна. Доступно только SM.&lt;br /&gt;
&lt;br /&gt;
* Квотинг при ответах через RM/Support System.&lt;br /&gt;
&lt;br /&gt;
* Темплейты в RM/Support System. Чтобы создать темплейт, нужно выделить текст и нажать кнопочку. После чего выскакивает попап где можно задать имя шаблона и сделать его либо личным, либо расшарить с другими пользователями. Темплейты, доступные пользователю, выводяцо справа от поля ввода.&lt;br /&gt;
&lt;br /&gt;
* Генерация временных лицнзий (гуй).&lt;/div&gt;</summary>
		<author><name>Ivan</name></author>	</entry>

	<entry>
		<id>http://wiki.avobjects.com/Dev:Tasks_To_Complete_Before_We_Can_Papustico</id>
		<title>Dev:Tasks To Complete Before We Can Papustico</title>
		<link rel="alternate" type="text/html" href="http://wiki.avobjects.com/Dev:Tasks_To_Complete_Before_We_Can_Papustico"/>
				<updated>2009-07-16T17:07:27Z</updated>
		
		<summary type="html">&lt;p&gt;Ivan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Галка subscribe to thread (шлет письма при апдейте кейса пользователю RM).&lt;br /&gt;
&lt;br /&gt;
* Подумать чо делать если чота сломалось а мы уже папустились.&lt;br /&gt;
&lt;br /&gt;
== толстым нада падумать ==&lt;br /&gt;
* Новая структура параметров продукта.&lt;br /&gt;
&lt;br /&gt;
* Генерация временных лицнзий (гуй).&lt;br /&gt;
&lt;br /&gt;
* (?) Инвойсы.&lt;br /&gt;
&lt;br /&gt;
== DONE ==&lt;br /&gt;
* Новые типы лицензий.&lt;br /&gt;
&lt;br /&gt;
* New downloads and website view in IE8 debugging.&lt;br /&gt;
&lt;br /&gt;
* Отвязка контактов от кастомера.&lt;br /&gt;
&lt;br /&gt;
* Реселлирский фнукционал (проверить плюс кэш).&lt;br /&gt;
&lt;br /&gt;
* Support System. Если кастомера для даннова email не существует, то рядом показывать ссылочку &amp;quot;Create customer&amp;quot; - соответственно уводить на страницу создания нового кастомера где уже вбит этот email и страна. Доступно только SM.&lt;br /&gt;
&lt;br /&gt;
* Квотинг при ответах через RM/Support System.&lt;br /&gt;
&lt;br /&gt;
* Темплейты в RM/Support System. Чтобы создать темплейт, нужно выделить текст и нажать кнопочку. После чего выскакивает попап где можно задать имя шаблона и сделать его либо личным, либо расшарить с другими пользователями. Темплейты, доступные пользователю, выводяцо справа от поля ввода.&lt;/div&gt;</summary>
		<author><name>Ivan</name></author>	</entry>

	<entry>
		<id>http://wiki.avobjects.com/Dev:Tasks_To_Complete_Before_We_Can_Papustico</id>
		<title>Dev:Tasks To Complete Before We Can Papustico</title>
		<link rel="alternate" type="text/html" href="http://wiki.avobjects.com/Dev:Tasks_To_Complete_Before_We_Can_Papustico"/>
				<updated>2009-07-16T12:22:12Z</updated>
		
		<summary type="html">&lt;p&gt;Ivan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Галка subscribe to thread (шлет письма при апдейте кейса пользователю RM).&lt;br /&gt;
&lt;br /&gt;
* Подумать чо делать если чота сломалось а мы уже папустились.&lt;br /&gt;
&lt;br /&gt;
== толстым нада падумать ==&lt;br /&gt;
* Новая структура параметров продукта.&lt;br /&gt;
&lt;br /&gt;
* Генерация временных лицнзий (гуй).&lt;br /&gt;
&lt;br /&gt;
* (?) Инвойсы.&lt;br /&gt;
&lt;br /&gt;
* Personal protect:&lt;br /&gt;
  решить какие из 7 файлов нужны а какие нет&lt;br /&gt;
  решить где и как буит MediaLooks Protection Guide&lt;br /&gt;
  решить где и как кастомер буит получать MLProxyT.dll&lt;br /&gt;
&lt;br /&gt;
== DONE ==&lt;br /&gt;
* Новые типы лицензий.&lt;br /&gt;
&lt;br /&gt;
* New downloads and website view in IE8 debugging.&lt;br /&gt;
&lt;br /&gt;
* Отвязка контактов от кастомера.&lt;br /&gt;
&lt;br /&gt;
* Реселлирский фнукционал (проверить плюс кэш).&lt;br /&gt;
&lt;br /&gt;
* Support System. Если кастомера для даннова email не существует, то рядом показывать ссылочку &amp;quot;Create customer&amp;quot; - соответственно уводить на страницу создания нового кастомера где уже вбит этот email и страна. Доступно только SM.&lt;br /&gt;
&lt;br /&gt;
* Квотинг при ответах через RM/Support System.&lt;br /&gt;
&lt;br /&gt;
* Темплейты в RM/Support System. Чтобы создать темплейт, нужно выделить текст и нажать кнопочку. После чего выскакивает попап где можно задать имя шаблона и сделать его либо личным, либо расшарить с другими пользователями. Темплейты, доступные пользователю, выводяцо справа от поля ввода.&lt;/div&gt;</summary>
		<author><name>Ivan</name></author>	</entry>

	<entry>
		<id>http://wiki.avobjects.com/Dev:Tasks_To_Complete_Before_We_Can_Papustico</id>
		<title>Dev:Tasks To Complete Before We Can Papustico</title>
		<link rel="alternate" type="text/html" href="http://wiki.avobjects.com/Dev:Tasks_To_Complete_Before_We_Can_Papustico"/>
				<updated>2009-07-16T06:22:04Z</updated>
		
		<summary type="html">&lt;p&gt;Ivan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Квотинг при ответах через RM/Support System.&lt;br /&gt;
&lt;br /&gt;
* Галка subscribe to thread (шлет письма при апдейте кейса пользователю RM).&lt;br /&gt;
&lt;br /&gt;
* Темплейты в RM/Support System. Чтобы создать темплейт, нужно выделить текст и нажать кнопочку. После чего выскакивает попап где можно задать имя шаблона и сделать его либо личным, либо расшарить с другими пользователями. Темплейты, доступные пользователю, выводяцо справа от поля ввода.&lt;br /&gt;
&lt;br /&gt;
* Подумать чо делать если чота сломалось а мы уже папустились.&lt;br /&gt;
&lt;br /&gt;
== толстым нада падумать ==&lt;br /&gt;
* Новая структура параметров продукта.&lt;br /&gt;
&lt;br /&gt;
* Генерация временных лицнзий (гуй).&lt;br /&gt;
&lt;br /&gt;
* (?) Инвойсы.&lt;br /&gt;
&lt;br /&gt;
* Personal protect:&lt;br /&gt;
  решить какие из 7 файлов нужны а какие нет&lt;br /&gt;
  решить где и как буит MediaLooks Protection Guide&lt;br /&gt;
  решить где и как кастомер буит получать MLProxyT.dll&lt;br /&gt;
&lt;br /&gt;
== DONE ==&lt;br /&gt;
* Новые типы лицензий.&lt;br /&gt;
&lt;br /&gt;
* New downloads and website view in IE8 debugging.&lt;br /&gt;
&lt;br /&gt;
* Отвязка контактов от кастомера.&lt;br /&gt;
&lt;br /&gt;
* Реселлирский фнукционал (проверить плюс кэш).&lt;br /&gt;
&lt;br /&gt;
* Support System. Если кастомера для даннова email не существует, то рядом показывать ссылочку &amp;quot;Create customer&amp;quot; - соответственно уводить на страницу создания нового кастомера где уже вбит этот email и страна. Доступно только SM.&lt;/div&gt;</summary>
		<author><name>Ivan</name></author>	</entry>

	<entry>
		<id>http://wiki.avobjects.com/Dev:Tasks_To_Complete_Before_We_Can_Papustico</id>
		<title>Dev:Tasks To Complete Before We Can Papustico</title>
		<link rel="alternate" type="text/html" href="http://wiki.avobjects.com/Dev:Tasks_To_Complete_Before_We_Can_Papustico"/>
				<updated>2009-07-15T08:52:49Z</updated>
		
		<summary type="html">&lt;p&gt;Ivan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Support System. Если кастомера для даннова email не существует, то рядом показывать ссылочку &amp;quot;Create customer&amp;quot; - соответственно уводить на страницу создания нового кастомера где уже вбит этот email и страна. Доступно только SM.&lt;br /&gt;
&lt;br /&gt;
* Квотинг при ответах через RM/Support System.&lt;br /&gt;
&lt;br /&gt;
* Галка subscribe to thread (шлет письма при апдейте кейса пользователю RM).&lt;br /&gt;
&lt;br /&gt;
* Темплейты в RM/Support System. Чтобы создать темплейт, нужно выделить текст и нажать кнопочку. После чего выскакивает попап где можно задать имя шаблона и сделать его либо личным, либо расшарить с другими пользователями. Темплейты, доступные пользователю, выводяцо справа от поля ввода.&lt;br /&gt;
&lt;br /&gt;
* Подумать чо делать если чота сломалось а мы уже папустились.&lt;br /&gt;
&lt;br /&gt;
== толстым нада падумать ==&lt;br /&gt;
* Новая структура параметров продукта.&lt;br /&gt;
&lt;br /&gt;
* Генерация временных лицнзий (гуй).&lt;br /&gt;
&lt;br /&gt;
* (?) Инвойсы.&lt;br /&gt;
&lt;br /&gt;
== DONE ==&lt;br /&gt;
* Новые типы лицензий.&lt;br /&gt;
&lt;br /&gt;
* New downloads and website view in IE8 debugging.&lt;br /&gt;
&lt;br /&gt;
* Отвязка контактов от кастомера.&lt;br /&gt;
&lt;br /&gt;
* Реселлирский фнукционал (проверить плюс кэш).&lt;/div&gt;</summary>
		<author><name>Ivan</name></author>	</entry>

	<entry>
		<id>http://wiki.avobjects.com/Dev:Tasks_To_Complete_Before_We_Can_Papustico</id>
		<title>Dev:Tasks To Complete Before We Can Papustico</title>
		<link rel="alternate" type="text/html" href="http://wiki.avobjects.com/Dev:Tasks_To_Complete_Before_We_Can_Papustico"/>
				<updated>2009-07-15T07:43:07Z</updated>
		
		<summary type="html">&lt;p&gt;Ivan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Support System. Если кастомера для даннова email не существует, то рядом показывать ссылочку &amp;quot;Create customer&amp;quot; - соответственно уводить на страницу создания нового кастомера где уже вбит этот email и страна. Доступно только SM.&lt;br /&gt;
&lt;br /&gt;
* Новая структура параметров продукта.&lt;br /&gt;
&lt;br /&gt;
* Генерация временных лицнзий (гуй).&lt;br /&gt;
&lt;br /&gt;
* Квотинг при ответах через RM/Support System.&lt;br /&gt;
&lt;br /&gt;
* Галка subscribe to thread (шлет письма при апдейте кейса пользователю RM).&lt;br /&gt;
&lt;br /&gt;
* Темплейты в RM/Support System. Чтобы создать темплейт, нужно выделить текст и нажать кнопочку. После чего выскакивает попап где можно задать имя шаблона и сделать его либо личным, либо расшарить с другими пользователями. Темплейты, доступные пользователю, выводяцо справа от поля ввода.&lt;br /&gt;
&lt;br /&gt;
* (?) Инвойсы.&lt;br /&gt;
&lt;br /&gt;
* Подумать чо делать если чота сломалось а мы уже папустились.&lt;br /&gt;
&lt;br /&gt;
== DONE ==&lt;br /&gt;
* Новые типы лицензий.&lt;br /&gt;
&lt;br /&gt;
* New downloads and website view in IE8 debugging.&lt;br /&gt;
&lt;br /&gt;
* Отвязка контактов от кастомера.&lt;br /&gt;
&lt;br /&gt;
* Реселлирский фнукционал (проверить плюс кэш).&lt;/div&gt;</summary>
		<author><name>Ivan</name></author>	</entry>

	<entry>
		<id>http://wiki.avobjects.com/JP:Multimedia_SDK_test</id>
		<title>JP:Multimedia SDK test</title>
		<link rel="alternate" type="text/html" href="http://wiki.avobjects.com/JP:Multimedia_SDK_test"/>
				<updated>2009-06-08T12:30:11Z</updated>
		
		<summary type="html">&lt;p&gt;Ivan: JP:Multimedia SDK test moved to JP:Multimedia SDK over redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[JP:Multimedia SDK]]&lt;/div&gt;</summary>
		<author><name>Ivan</name></author>	</entry>

	<entry>
		<id>http://wiki.avobjects.com/JP:VanoBalda-test</id>
		<title>JP:VanoBalda-test</title>
		<link rel="alternate" type="text/html" href="http://wiki.avobjects.com/JP:VanoBalda-test"/>
				<updated>2009-06-08T06:42:37Z</updated>
		
		<summary type="html">&lt;p&gt;Ivan: JP:VanoBalda-test moved to JP:VanoBalda over redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[JP:VanoBalda]]&lt;/div&gt;</summary>
		<author><name>Ivan</name></author>	</entry>

	<entry>
		<id>http://wiki.avobjects.com/JP:VanoBalda</id>
		<title>JP:VanoBalda</title>
		<link rel="alternate" type="text/html" href="http://wiki.avobjects.com/JP:VanoBalda"/>
				<updated>2009-06-08T06:42:37Z</updated>
		
		<summary type="html">&lt;p&gt;Ivan: JP:VanoBalda-test moved to JP:VanoBalda over redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;test&lt;/div&gt;</summary>
		<author><name>Ivan</name></author>	</entry>

	<entry>
		<id>http://wiki.avobjects.com/JP:VanoBalda</id>
		<title>JP:VanoBalda</title>
		<link rel="alternate" type="text/html" href="http://wiki.avobjects.com/JP:VanoBalda"/>
				<updated>2009-06-08T06:41:59Z</updated>
		
		<summary type="html">&lt;p&gt;Ivan: JP:VanoBalda moved to JP:VanoBalda-test&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;test&lt;/div&gt;</summary>
		<author><name>Ivan</name></author>	</entry>

	<entry>
		<id>http://wiki.avobjects.com/JP:VanoBalda</id>
		<title>JP:VanoBalda</title>
		<link rel="alternate" type="text/html" href="http://wiki.avobjects.com/JP:VanoBalda"/>
				<updated>2009-06-08T06:41:27Z</updated>
		
		<summary type="html">&lt;p&gt;Ivan: New page: test&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;test&lt;/div&gt;</summary>
		<author><name>Ivan</name></author>	</entry>

	<entry>
		<id>http://wiki.avobjects.com/Events</id>
		<title>Events</title>
		<link rel="alternate" type="text/html" href="http://wiki.avobjects.com/Events"/>
				<updated>2009-04-04T12:58:37Z</updated>
		
		<summary type="html">&lt;p&gt;Ivan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--SORT=3--&amp;gt;&lt;br /&gt;
{{This|company/events.html}}&lt;br /&gt;
&lt;br /&gt;
Upcoming events.&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
{{Template:Events}}&lt;br /&gt;
&lt;br /&gt;
==NAB Show 2009 - April 20-23 - Las Vegas, USA==&lt;br /&gt;
&lt;br /&gt;
MediaLooks provides the broadcasting industry with software development kits and solutions that help time-to-market and bring software development costs down.&lt;br /&gt;
&lt;br /&gt;
Some of our most popular solutions are:&lt;br /&gt;
&lt;br /&gt;
* [[Multimedia SDK]] - a broadcast automation software development kit. Supports capture and playout via Blackmagic Design, Bluefish444 and AJA (coming soon). Time shifting, advanced playlist management, multi-format gapless playout, etc. This product is also used by broadcast engineers for direct deployment in studios.&lt;br /&gt;
* [[Vision Mixer SDK]] - a software kit to build multi-viewers and software production switchers.&lt;br /&gt;
&lt;br /&gt;
New products:&lt;br /&gt;
&lt;br /&gt;
* [[MPEG-2 Video Decoder DirectShow Filter|MPEG-2 Video Decoder]] - high-quality '''royalty-free''' MPEG-2 decoder based on Intel's decoding engine.&lt;br /&gt;
* [[Audio Decoder DirectShow Filter|Audio Decoder]] - '''royalty-free''' MP3, AC-3 and AAC decoder.&lt;br /&gt;
* [[Chroma Key DirectShow Filter|Chroma Keying Technology]] - implemented as a feature of the [[Vision Mixer SDK]], as well as a stand-alone DirectShow filter - we claim this to be the best chroma key technology capable of real-time operation on a PC.&lt;br /&gt;
* [[Flash Overlay DirectShow Filter]] - an innovative way to add animated graphics and dynamic content to your video layout.&lt;br /&gt;
* [[MXF Splitter DirectShow Filter|MXF Splitter]] - completely rewritten version of our MXF splitter.&lt;br /&gt;
&lt;br /&gt;
If you would like to meet us an NAB and talk to us about our product - let us know.&lt;br /&gt;
&lt;br /&gt;
* [http://www.nabshow.com/ NAB Show Official Web Site]&lt;br /&gt;
&lt;br /&gt;
[[Category:Company]]&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Ivan</name></author>	</entry>

	<entry>
		<id>http://wiki.avobjects.com/Events</id>
		<title>Events</title>
		<link rel="alternate" type="text/html" href="http://wiki.avobjects.com/Events"/>
				<updated>2009-04-04T12:11:14Z</updated>
		
		<summary type="html">&lt;p&gt;Ivan: Undo revision 7746 by Ivan (Talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--SORT=3--&amp;gt;&lt;br /&gt;
{{This|company/events.html}}&lt;br /&gt;
&lt;br /&gt;
Upcoming events.&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
{{Events}}&lt;br /&gt;
&lt;br /&gt;
==NAB Show 2009 - April 20-23 - Las Vegas, USA==&lt;br /&gt;
&lt;br /&gt;
MediaLooks provides the broadcasting industry with software development kits and solutions that help time-to-market and bring software development costs down.&lt;br /&gt;
&lt;br /&gt;
Some of our most popular solutions are:&lt;br /&gt;
&lt;br /&gt;
* [[Multimedia SDK]] - a broadcast automation software development kit. Supports capture and playout via Blackmagic Design, Bluefish444 and AJA (coming soon). Time shifting, advanced playlist management, multi-format gapless playout, etc. This product is also used by broadcast engineers for direct deployment in studios.&lt;br /&gt;
* [[Vision Mixer SDK]] - a software kit to build multi-viewers and software production switchers.&lt;br /&gt;
&lt;br /&gt;
New products:&lt;br /&gt;
&lt;br /&gt;
* [[MPEG-2 Video Decoder DirectShow Filter|MPEG-2 Video Decoder]] - high-quality '''royalty-free''' MPEG-2 decoder based on Intel's decoding engine.&lt;br /&gt;
* [[Audio Decoder DirectShow Filter|Audio Decoder]] - '''royalty-free''' MP3, AC-3 and AAC decoder.&lt;br /&gt;
* [[Chroma Key DirectShow Filter|Chroma Keying Technology]] - implemented as a feature of the [[Vision Mixer SDK]], as well as a stand-alone DirectShow filter - we claim this to be the best chroma key technology capable of real-time operation on a PC.&lt;br /&gt;
* [[Flash Overlay DirectShow Filter]] - an innovative way to add animated graphics and dynamic content to your video layout.&lt;br /&gt;
* [[MXF Splitter DirectShow Filter|MXF Splitter]] - completely rewritten version of our MXF splitter.&lt;br /&gt;
&lt;br /&gt;
If you would like to meet us an NAB and talk to us about our product - let us know.&lt;br /&gt;
&lt;br /&gt;
* [http://www.nabshow.com/ NAB Show Official Web Site]&lt;br /&gt;
&lt;br /&gt;
[[Category:Company]]&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Ivan</name></author>	</entry>

	<entry>
		<id>http://wiki.avobjects.com/Events</id>
		<title>Events</title>
		<link rel="alternate" type="text/html" href="http://wiki.avobjects.com/Events"/>
				<updated>2009-04-03T13:38:01Z</updated>
		
		<summary type="html">&lt;p&gt;Ivan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--SORT=3--&amp;gt;&lt;br /&gt;
{{This|company/events.html}}&lt;br /&gt;
&lt;br /&gt;
Upcoming events.&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
{{Events}}&lt;br /&gt;
&lt;br /&gt;
==NAB Show 2009 - April 20-23 - Las Vegas, USA==&lt;br /&gt;
&lt;br /&gt;
MediaLooks provides the broadcasting industry with software development kits and solutions that help time-to-market and bring software development costs down.&lt;br /&gt;
&lt;br /&gt;
Some of our most popular solutions are:&lt;br /&gt;
&lt;br /&gt;
* [[Multimedia SDK]] - a broadcast automation software development kit. Supports capture and playout via Blackmagic Design, Bluefish444 and AJA (coming soon). Time shifting, advanced playlist management, multi-format gapless playout, etc. This product is also used by broadcast engineers for direct deployment in studios.&lt;br /&gt;
* [[Vision Mixer SDK]] - a software kit to build multi-viewers and software production switchers.&lt;br /&gt;
&lt;br /&gt;
New products:&lt;br /&gt;
&lt;br /&gt;
* [[MPEG-2 Video Decoder DirectShow Filter|MPEG-2 Video Decoder]] - high-quality '''royalty-free''' MPEG-2 decoder based on Intel's decoding engine.&lt;br /&gt;
* [[Audio Decoder DirectShow Filter|Audio Decoder]] - '''royalty-free''' MP3, AC-3 and AAC decoder.&lt;br /&gt;
* [[Chroma Key DirectShow Filter|Chroma Keying Technology]] - implemented as a feature of the [[Vision Mixer SDK]], as well as a stand-alone DirectShow filter - we claim this to be the best chroma key technology capable of real-time operation on a PC.&lt;br /&gt;
* [[Flash Overlay DirectShow Filter]] - an innovative way to add animated graphics and dynamic content to your video layout.&lt;br /&gt;
* [[MXF Splitter DirectShow Filter|MXF Splitter]] - completely rewritten version of our MXF splitter.&lt;br /&gt;
&lt;br /&gt;
If you would like to meet us an NAB and talk to us about our product - let us know.&lt;br /&gt;
&lt;br /&gt;
* [http://www.nabshow.com/ NAB Show Official Web Site]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Ivan</name></author>	</entry>

	<entry>
		<id>http://wiki.avobjects.com/Template:Licensing</id>
		<title>Template:Licensing</title>
		<link rel="alternate" type="text/html" href="http://wiki.avobjects.com/Template:Licensing"/>
				<updated>2009-03-16T12:04:26Z</updated>
		
		<summary type="html">&lt;p&gt;Ivan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Licensing==&lt;br /&gt;
&lt;br /&gt;
Lifetime license. '''No royalties.''' The license grants the right to use the SDK to create an unlimited number of applications and deploy or distribute these applications without any limitations. Single Developer and Team licenses are available. One year of support and updates is included in the license fee.&lt;br /&gt;
&lt;br /&gt;
If you are interested in licensing this product please '''contact us through the form below''' or call one of the [[Resellers|authorized resellers]].&lt;/div&gt;</summary>
		<author><name>Ivan</name></author>	</entry>

	<entry>
		<id>http://wiki.avobjects.com/Template:Licensing</id>
		<title>Template:Licensing</title>
		<link rel="alternate" type="text/html" href="http://wiki.avobjects.com/Template:Licensing"/>
				<updated>2009-03-16T11:40:11Z</updated>
		
		<summary type="html">&lt;p&gt;Ivan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Licensing==&lt;br /&gt;
&lt;br /&gt;
Lifetime license. '''No royalties.''' The license grants the right to use the SDK to create an unlimited number of applications and deploy or distribute these applications without any limitations. Single Developer and Team licenses are available. One year of support and updates is included in the license fee.&lt;br /&gt;
If you are interested in licensing this product please '''contact us through the form below''' or call one of the [[Resellers|authorized resellers]].&lt;/div&gt;</summary>
		<author><name>Ivan</name></author>	</entry>

	<entry>
		<id>http://wiki.avobjects.com/Template:Licensing</id>
		<title>Template:Licensing</title>
		<link rel="alternate" type="text/html" href="http://wiki.avobjects.com/Template:Licensing"/>
				<updated>2009-03-16T11:38:43Z</updated>
		
		<summary type="html">&lt;p&gt;Ivan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Licensing==&lt;br /&gt;
&lt;br /&gt;
Lifetime license. '''No royalties.''' The license grants the right to use the SDK to create an unlimited number of applications and deploy or distribute these applications without any limitations. Single Developer and Team licenses are available. One year of support and updates is included in the license fee.&lt;br /&gt;
&lt;br /&gt;
1&lt;br /&gt;
&lt;br /&gt;
If you are interested in licensing this product please '''contact us through the form below''' or call one of the [[Resellers|authorized resellers]].&lt;/div&gt;</summary>
		<author><name>Ivan</name></author>	</entry>

	<entry>
		<id>http://wiki.avobjects.com/Template:Licensing</id>
		<title>Template:Licensing</title>
		<link rel="alternate" type="text/html" href="http://wiki.avobjects.com/Template:Licensing"/>
				<updated>2009-03-16T11:30:22Z</updated>
		
		<summary type="html">&lt;p&gt;Ivan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Licensing==&lt;br /&gt;
&lt;br /&gt;
Lifetime license. '''No royalties.''' The license grants the right to use the SDK to create an unlimited number of applications and deploy or distribute these applications without any limitations. Single Developer and Team licenses are available. One year of support and updates is included in the license fee.&lt;br /&gt;
If you are interested in licensing this product please '''contact us through the form below''' or call one of the [[Resellers|authorized resellers]].&lt;/div&gt;</summary>
		<author><name>Ivan</name></author>	</entry>

	<entry>
		<id>http://wiki.avobjects.com/Dev:RM/LMS_Tasks</id>
		<title>Dev:RM/LMS Tasks</title>
		<link rel="alternate" type="text/html" href="http://wiki.avobjects.com/Dev:RM/LMS_Tasks"/>
				<updated>2009-02-25T07:13:40Z</updated>
		
		<summary type="html">&lt;p&gt;Ivan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See also:&lt;br /&gt;
&lt;br /&gt;
* [[CMS Tasks]]&lt;br /&gt;
&lt;br /&gt;
==RM/LMS Tasks==&lt;br /&gt;
&lt;br /&gt;
==DONE==&lt;br /&gt;
&lt;br /&gt;
* [01:00] SVN setup.&lt;br /&gt;
* [00:10] Выводить вот [http://rm.medialooks.com/customer/show/119 тут] информацию &amp;quot;Last edited: X days ago.&amp;quot; (доделка апдейта кастомер.апдейтед_эт при манипуляциях с лицензиями)&lt;br /&gt;
* [00:05] Ссылку нью кастомер снизу перенести наверх: &amp;quot;Add new customer&amp;quot;. Send LicenseExpired убрать.&lt;br /&gt;
* [00:20] Поменять from/reply-to писем [http://rm.medialooks.com/product/subscribers/31 sent to all] на: MediaLooks &amp;lt;dev@medialooks.com&amp;gt;. После рассылки выводить сообщение &amp;quot;15 emails sent to subscribers.&amp;quot; 15 это количество писем.&lt;br /&gt;
* [01:20] Переработать миханизм добавления контактов в кастомера. При пастинге в поле Name строки вида &lt;br /&gt;
:'Andrew A. Okunev &amp;lt;dev@medialooks.com&amp;gt; (MediaLooks)'&lt;br /&gt;
:'&amp;quot;Andrew A. Okunev&amp;quot; &amp;lt;dev@medialooks.com&amp;gt; (MediaLooks)' &lt;br /&gt;
:'Andrew A. Okunev &amp;lt;dev@medialooks.com&amp;gt;'&lt;br /&gt;
:'&amp;quot;Andrew A. Okunev&amp;quot; &amp;lt;dev@medialooks.com&amp;gt;' &lt;br /&gt;
:- сразу выделять из этой строки Name и Email и вставлять в соответствующие поля. То что в скобках - просто отбрасывать.&lt;br /&gt;
* [03:00] Добавить возможность вести историю лицензий. Т.е. если кастомер обновил лицензию, то я ее не просто редактирую а делаю к ней какой-то аддишен - таким образом что в RM остается (и может быть отображена) инфа про старую лицензию.&lt;br /&gt;
* [01:00] Добавить колоночку &amp;quot;Latest Version&amp;quot; сразу после колонки &amp;quot;Product&amp;quot; на главной странице. Выводить туда номер самой распоследней версии (вклюачая бету).&lt;br /&gt;
* [00:20] Добавить фичу: разработчик (указан в свойствах продукта) должен получать релиз ноутсы. Но при этом он не должен быть подписчиком (учитываца в статистике и т.д.).&lt;br /&gt;
* [00:45] При добавлении нового релиза вставлять в поле версии номер последней +1 в последней цифре.&lt;br /&gt;
* [самдурак (ящик хуйня@mdilooks.com)] RM высаживается при попытке отослать emails продукта Test Product 1 - он часть бандла Test Bundle.&lt;br /&gt;
* [fixed] Некорретный парсинг контактов вида Graham Neden &amp;lt;graham@starfish.tv&amp;gt;  (Starfish Technologies Ltd) при редактировании кастомера.&lt;br /&gt;
* [fixed] При добавлении нового кантакта к кастомеру этот контакт подписывается на все имеющиеся на данный момент у кастомера подписки. Это неверно - новый контакт (при добавлении его) не должен ни на что подписываться.&lt;br /&gt;
* [explained] Что означает галко левая которая стоит напротив email, у которого лицензия на бандл?&lt;br /&gt;
* [00:10] Убрать график downloads с главной страницы. Он довольно медленный и держать его на странице, через которую постоянно ходишь в процессе навигации, невозможно. :( Временно разместить его на отдельной страничке.&lt;br /&gt;
* [??:??] Наследование/объединение продуктов (см. полное описание ниже).&lt;br /&gt;
* [00:15] Добавить на страницу [http://rm.medialooks.com/product/show/40 о продукте] инфо о том какие он в себя включает (если бандл), и за чьими релизами смотрит (если он смотрит).&lt;br /&gt;
* [00:15] Переделать интерфейс задания продуктов для бандла. Через Ctrl жутко высадно. Лучше либо галки, либо два списка, и кноки туда-сюда перекидывать.&lt;br /&gt;
* [00:15] Переместить главною меню на верх: &amp;quot;Products | Customers | New Releases (5) | Users&amp;quot;. &amp;quot;New Releases&amp;quot; это вместо &amp;quot;Distributives&amp;quot;; в скобках выводить количество неомодерированных релизов.&lt;br /&gt;
* [00:10] Создать продуктовое меню вот [http://rm.medialooks.com/product/show/15 тут]: &amp;quot;Add new release | View leads | View customers | Edit&amp;quot;. Из таблицы на главной странице убрать столбцы Edit и Delete. Там же заменить &amp;quot;Site Subscribers&amp;quot; на &amp;quot;Leads&amp;quot;, а &amp;quot;Licenses&amp;quot; на &amp;quot;Customers&amp;quot;. Ссылку из цифр в этих столбцах убрать, сделать ее рядом в виде &amp;quot;(View)&amp;quot; (а то не очень удобно в цифры кликать).&lt;br /&gt;
* [00:25] проверка кастомер.таг по частям. т.е. если таг совпадает целиком то не дает создать. а если совпадает по частям (пробелами делится) то выводит предупреждение со списком найденных совпадений и после повторного нажатия Сейв создает&lt;br /&gt;
* [00:35] Добавить в свойства кастомера еще одно таговое поле &amp;quot;Exhibitions&amp;quot;.&lt;br /&gt;
* [01:50] Группировка продуктов по тегу &amp;quot;Product type&amp;quot; на главной странице. Соответственно в свойства продукта нужно добавить такое поле. Группирока осуществляется по сочетанию тегов - например, &amp;quot;sdks vsevolod&amp;quot;, &amp;quot;sdks dkn&amp;quot;, &amp;quot;filters dkn&amp;quot; - это три разных группы (а у кадого продукта в этих группах по 2 тега). Внутри групп сортировать продукты по общему количеству подписок на апдейты (просто подписка или по лицензии). Группы сортировать по суммурному количеству подписок.&lt;br /&gt;
* [00:15] Добавить поля к продуктам: 1) Purchase link; 2) Subscription update link. Выводить эти сцылочки в отдельной колоночке после Latest Version. Название столбца - Purchase Links. Сами ссылки - Purchase/Update.&lt;br /&gt;
* [02:15] Add abstract tags feature (т.е. сперва сделать лицензии одно тег-поле, патом убрать роялтис (не потеряв тех кастомеров, у кот. сейчас стоит галка роятлиз) и тайп (не потеряв тех у кот. стоит тайп Team), патом сделать фильтрацию кастомеров по вот этим тагам лицензии).&lt;br /&gt;
&lt;br /&gt;
==TODO==&lt;br /&gt;
&lt;br /&gt;
===Bugs, Fixes, Questions===&lt;br /&gt;
&lt;br /&gt;
* [unconfirmed] При наличии customer с некоторым email не срабатывает подписка этого email на любой продукт. Запрет должен срабатывать только в случае если лицензия есть именно на этот продукт (возможно, тут надо еще добавить логику про наследованные продукты).&lt;br /&gt;
&lt;br /&gt;
===Backups to Amazon S3===&lt;br /&gt;
&lt;br /&gt;
Давай будем наш бэкапный файл закачивать на амазон раз в неделю. Я сделал там аккаунт.&lt;br /&gt;
&lt;br /&gt;
===Tasks===&lt;br /&gt;
&lt;br /&gt;
* Разобрацо в чем проблема с настройкой goals в гугле.&lt;br /&gt;
&lt;br /&gt;
* Добавить в шаблоны писем (шаблон рассылки нового релиза, 2 шаблона license expired) возможность вставлять &amp;quot;License update link&amp;quot; в случае если такая ссылка указана в свойствах продукта (типа IF License update link exists - вставить следующее). Прислать мне файло шаблонов на редактирование (могу сам залезть но надо настроить тада SVN твой).&lt;br /&gt;
&lt;br /&gt;
* Сделать урлы в свойствах кастомера кликабл.&lt;br /&gt;
&lt;br /&gt;
* Cross-promotion subscriptions.&lt;br /&gt;
&lt;br /&gt;
* Если переименовать продукт, то перестает работать общая ссылка на даунлоад и по-версионные ссылки.&lt;br /&gt;
&lt;br /&gt;
* Contact as System Item (see task description).&lt;br /&gt;
&lt;br /&gt;
* Search (see task description).&lt;br /&gt;
&lt;br /&gt;
* Сортировка по тагам во вьюхе кастомеров. Статистика по тагам.&lt;br /&gt;
&lt;br /&gt;
* Добавить вывод количества лицензионных подписок в графу &amp;quot;Site Subscribers&amp;quot;. Графу переименовать в &amp;quot;Subscribers (Interested/Licensed)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* Общие рассылки. Научиться делать рассылки по всем клиентам. Это должна быть отдельная подписка.&lt;br /&gt;
&lt;br /&gt;
* Персонализированный учет закачек. Мы хотим про каждого клиента знать скачивает он новые версии или нет. В письме, которое он получает при выходе новой версии, можно делать уникальный урл, чтобы система знала нажал он или нет. Второй подход - это использовать куки на тот случай, если клиент скачивает с сайта.&lt;br /&gt;
&lt;br /&gt;
* Статистика закачек. Научицо разделять новые (приходящие с рекламы или из поиска) и повторные (наши кастомеры качают новые версии) закачки.&lt;br /&gt;
&lt;br /&gt;
* Подумать. Если есть идеи как интегрировать с Google Analytics (GA)  AdWords (AW) - было бы клева. Например вытаскивать из GA данные о посещениях конкретной страницы и сравнивать их с данными по закачкам.&lt;br /&gt;
&lt;br /&gt;
* Проблема с возможностью создать продукт у которого все версии - беты. И тогда не работает общая ссылка.&lt;br /&gt;
&lt;br /&gt;
* Проблема с RSS-фидом блога (у меня почему-то аутлук пытаецо запустицо).&lt;br /&gt;
&lt;br /&gt;
* Research on online license document generation. Существует ли какой-нить вебовский генератор PDF?&lt;br /&gt;
&lt;br /&gt;
* Подписка Update Discount Expiration. Ввести для лицензий которые expired только после 01.12.2009. Т.е. письма по этой подписке должны начать ходить примерно с 01.05.2010.&lt;br /&gt;
&lt;br /&gt;
* Создавать в Google Blog Search и Google Alerts фиды по тегам клиента, подсасывать их и демонстрировать мышап на странице клиента. :)))&lt;br /&gt;
&lt;br /&gt;
* Исследовать возможность автоматически создавать для каждого контакта в RM аккаунт в вике, принадлежащий определенной группе.&lt;br /&gt;
&lt;br /&gt;
* Убивать разделительные знаки в поле contacts (елси это телефон). Нужно для того чтобы можно было искать по номеру телефона в почтовой базе.&lt;br /&gt;
&lt;br /&gt;
===Это потом===&lt;br /&gt;
&lt;br /&gt;
* Переделать форму контактов на сайте. Добавить возможность указать второй email. Отдельные поля под скайп, телефон.&lt;br /&gt;
&lt;br /&gt;
* Подписка royalties.&lt;br /&gt;
&lt;br /&gt;
===User Rights===&lt;br /&gt;
&lt;br /&gt;
* Разобраться с ролями и отображением соотв. инфы.&lt;br /&gt;
&lt;br /&gt;
===Customer download tracking===&lt;br /&gt;
&lt;br /&gt;
* Индивидуальные даунлоад ссылки для отслеживания какой подписчик нажал на сцылку.&lt;br /&gt;
* Отписка или оповещение администратора о подписчиках который не нажимают на ссылки (признак того что не получают письма или не читают их - но при этом по какой-то причине не отписываются).&lt;br /&gt;
&lt;br /&gt;
===Наследование/объединение продуктов===&lt;br /&gt;
&lt;br /&gt;
Необходимо поддержать два следующих сценария:&lt;br /&gt;
&lt;br /&gt;
1) Существует продукт DirectShow Filter Pack - он включает в себя большой набор DirectShow фильтров. Каждый фильтр релизится по своему графику (т.е. без графика) - поэтому отдельного download для него не существует. Т.е. продукт в данном случае это просто такая лицензия, т.е. совокупность цены и набора компонентов. В RM возможность создавать такие лицензии должна быть реализована в виде продукта в общем списке - просто у него будут какие-то дополнительные свойства как-то &amp;quot;включать в себя такие-то продукты&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Соответственно, при создании лицензии на такой продукт нужно сделать так чтобы:&lt;br /&gt;
&lt;br /&gt;
* Контакты кастомера могли быть подписаны на релизы (updates) по каждому из продуктов отдельно. По-умолчанию - создается подписка на все входящие в пакет продукты. Отписаться от каждого из продуктов в отдельности можно через сцылку на отписку из письма или это можно сделать через редактирование свойств лицензии.&lt;br /&gt;
&lt;br /&gt;
* Контакты кастомера не были дубликатно подписаны на эти же самые продукты через другие механизмы RM.&lt;br /&gt;
&lt;br /&gt;
* Подписка License Expired в данном случае остается одна - только на общий продукт. Но в случае, если подписка истекла, то при рассылке Release Updates в тело письма вставляется соотв. сообщение (т.к. это сейчас сделано для обычных лицензий).&lt;br /&gt;
&lt;br /&gt;
* В случае если для продукты DirectShow Filter Pack - RM конечно же имеет право наложить в штаны но после этого должен немедленно собрацо и вести себя так как будто он точно знает что нужно делать - а именно вести себя так как будто DirectShow Filter Pack это самый обычный продукт (т.е. появитсо в Distributives и дать возможность сделать рассылку). Т.е. обычная рассылка Release Updates для продукта такого типа тоже создаецо.&lt;br /&gt;
&lt;br /&gt;
2) Существуют продукты DeckLink SDK, Playout SDK и Multimedia SDK, для которых мы решили в целях упрощения использовать общий даунлоад. В данном случае все остается как есть - т.е. лицензии создаются именно под эти продукты, отдельно ведется статистика подписок, лицензий и закачек - но используется только один download.&lt;br /&gt;
&lt;br /&gt;
Например, мы говорим что DeckLink SDK и Playout SDK - оба используют download Multimedia SDK. Разработчик закачивает новый релиз именно для Multimedia SDK. Этот новый релиз появляется в разделе Distributives. Я его модерю, нажимаю сделать рассылку - и, как и раньше, выходят три блока писем - для DeckLink SDK, Playout SDk и Multimedia SDK.&lt;br /&gt;
&lt;br /&gt;
Особенность: ссылка во всех письмах теперь называется multimedia sdk. Делать редиректы и переименования - не надо (иначе клиенты будут говорить я скачал Playout SDK а мне ставится Multimedia SDK).&lt;br /&gt;
&lt;br /&gt;
===Industry-Based Subscriptions===&lt;br /&gt;
&lt;br /&gt;
Добавить возможность создавать рассылки по индустриям. В целом все аналогично тому как сейчас работают подписки на новые релизы. Можно подписывать контакты руками. А при рассылке заодно рассылать тем, кто является клиентом какого-либо продукта и тоже записан в эту индустрию.&lt;br /&gt;
&lt;br /&gt;
Возможно, когда у нас появятся разные способы делать рассылки, придется придумывать способы не слать дважды по одному и тому же поводу. Например, заводить для рассылки какой-нибудь ID.&lt;br /&gt;
&lt;br /&gt;
===Contact as System Item===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать контакты как самостоятельную сущность.&lt;br /&gt;
&lt;br /&gt;
Контакт представляет из себя имя (текстовое поле например &amp;quot;Andrew Okunev) и ассоциированный c ним набор полей:&lt;br /&gt;
&lt;br /&gt;
* email name (используется в подстановках в письмах; если пусто, используется &amp;quot;customer&amp;quot;)&lt;br /&gt;
* email (любое количество)&lt;br /&gt;
* skype (любое количество)&lt;br /&gt;
* телефон (любое количество)&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать отображение и редактирование свойств для любого из контактов. Например:&lt;br /&gt;
&lt;br /&gt;
* Когда добавлен в систему&lt;br /&gt;
* С какими компаниями (Customers) ассоциирован.&lt;br /&gt;
* С какими лицензиями ассоциирован.&lt;br /&gt;
* На какие подписки подписан.&lt;br /&gt;
&lt;br /&gt;
Все это нужно реализовать в одной вьюхе. Редактирование доступно только администратору системы.&lt;br /&gt;
&lt;br /&gt;
Примечания:&lt;br /&gt;
&lt;br /&gt;
* В системе должны отсутствовать дубликаты по email. Дубликаты по имени допустимы (т.е. когда одинаковое имя но разный email), но должна быть возможность их соединить (т.е. превратить в один контакт с двумя email). Реализовать это можно через отдельную вьюху, доступную администратору.&lt;br /&gt;
&lt;br /&gt;
* Если у контакта больше одного email, то любой из них может использоваться для авторизации.&lt;br /&gt;
&lt;br /&gt;
* Новый контакт (как сущность) создается при любом добавлении контакта в систему (например, при создании подписки через модуль subscribers.&lt;br /&gt;
&lt;br /&gt;
===Universal Uploads===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать возможность закачивать в RM абстрактные (не привязанные к какому-либо продукту) файлы. При этом каждому такому файлу должен быть по-умолчанию присвоен срок жизни - 30 дней. После чего файл автоматически удаляется. Файлы можно защищать паролем, который требуется для скачки.&lt;br /&gt;
&lt;br /&gt;
Каждый файл привязан к какому-либо юзеру. Только у этого пользователя (или у администратора) есть возможность добавлять к своему аккаунту файлы или удалять их. Каждую закачку можно удалить или обновить файл в ней.&lt;br /&gt;
&lt;br /&gt;
Соответственно, необходимо создать две новых вьюхи:&lt;br /&gt;
&lt;br /&gt;
1) Вьюха создания закачки. Опции: текстедит срок жизни (по-умолчанию вбито 30), чекбокс защитить паролем, путь к файлу.&lt;br /&gt;
&lt;br /&gt;
2) Вьюха список закачек данного юзера. Отображать: имя файла, количество скачек, оставшийся срок жизни, дата закачки. Имя файла является ссылкой на данный файл (вида rm.medialooks.com/...).&lt;br /&gt;
&lt;br /&gt;
В меню каждого юзера должно быть что-то вроде &amp;quot;My Uploads&amp;quot;, которая ведет на вьюху (2).&lt;br /&gt;
&lt;br /&gt;
===Customer Access===&lt;br /&gt;
&lt;br /&gt;
Нужно научицо давать кастомерам доступ к аплоадам. Для этого нужно реализовать в RM еще одну роль - &amp;quot;Customer&amp;quot;. Роль &amp;quot;User&amp;quot; нужно переименовать в &amp;quot;Developer&amp;quot;. Каждый контакт, добавленный в систему, должен получать соотв. статус и автоматически сгенеренный пароль. Никаких писем при заведении пользователей пока автоматически рассылать не надо. Однако, при первой попытке зайти в систему, кастомер должен по почте получить свой пароль. Залогинившись, он имеет доступ только к своим аплоадам (в будущем добавим еще подписки и лицензии).&lt;br /&gt;
&lt;br /&gt;
===Search===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать поиск в системе. Форма поиска - одна на все случаи. Она должна размещаться на всех страницах системы.&lt;br /&gt;
&lt;br /&gt;
По каким полям искать:&lt;br /&gt;
&lt;br /&gt;
* По контактам.&lt;br /&gt;
* По названию клиента.&lt;br /&gt;
* По тегу клиента.&lt;br /&gt;
&lt;br /&gt;
'''Пример.''' Если в поле поиска ввден запрос:&lt;br /&gt;
&lt;br /&gt;
Andrew A. Okunev &amp;lt;dev@medialooks.com&amp;gt; (MediaLooks)&lt;br /&gt;
&lt;br /&gt;
- то сперва нужно произвести поиск отдельно по &amp;quot;Osman Yel&amp;quot;, &amp;quot;dev@medialooks.com&amp;quot; и &amp;quot;MediaLooks&amp;quot;. Эти результаты вывести в первую очередь.&lt;br /&gt;
&lt;br /&gt;
Во-вторую - выделить из поисковой строки название домена и отрезать от него домен первого уровня. Т.е. в нашем примере искать по строке &amp;quot;medialooks&amp;quot;. Эти результаты вывести во вторую очередь.&lt;br /&gt;
&lt;br /&gt;
Кроме этого, естественно должен работать поиск в том случае если исходный запрос это &amp;quot;dev@medialooks.com&amp;quot; или просто &amp;quot;medialooks&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===LinkedIn Integration===&lt;br /&gt;
&lt;br /&gt;
Зачем? Любая система управления контактами страдает одним недостатком - ей неоткуда узнать о том, что у кого-то поменялся email или телефон.&lt;br /&gt;
&lt;br /&gt;
Предполагается что пользователи LinkedIn (за исключением [http://www.linkedin.com/pub/2/26b/926 некоторых] поддерживают свой профиль в актуальном состоянии. В частности, следят за тем, чтобы в профиле был актуальный email.&lt;br /&gt;
&lt;br /&gt;
В результате хочется получить поддержку следующих сценариев:&lt;br /&gt;
&lt;br /&gt;
* Узнавать об изменениях в контактной информации наших клиентов.&lt;br /&gt;
* Приглашать в нашу сеть клиентов, которые уже используют LinkedIn.&lt;br /&gt;
* Приглашать в LinkedIn тех клиентов, которые его пока не используют.&lt;br /&gt;
* Если клиент для общение с нами использует один email, а для LinkedIn - другой, - то нам нужно узнать этот email и использовать его как запасной/альтернативный.&lt;br /&gt;
&lt;br /&gt;
Для начала думаю следует просто проверить, позволяет ли API делать следующее:&lt;br /&gt;
&lt;br /&gt;
* Авторизоваться в системе под каким-то реальным логином (например, подо мной).&lt;br /&gt;
* Поискать пользователей по email.&lt;br /&gt;
* Получить email любого из моих контактов.&lt;br /&gt;
* Послать конкретному пользователю инвайт, иметь возможность указать кастомный текст для инвайта.&lt;br /&gt;
* Пригласить нового пользователя через email, то же самое с кастомным текстом.&lt;br /&gt;
&lt;br /&gt;
Задача неактуальна поскольку как я понял от LinkedIn нужно сначала получить одобрение на использование API:&lt;br /&gt;
&lt;br /&gt;
* http://www.linkedin.com/static?key=developers_apis&lt;br /&gt;
&lt;br /&gt;
==Done Tasks==&lt;br /&gt;
&lt;br /&gt;
* [[LMS/CMS Tasks: Done]]&lt;br /&gt;
&lt;br /&gt;
[[Category: Tasks]]&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Ivan</name></author>	</entry>

	<entry>
		<id>http://wiki.avobjects.com/Dev:RM/LMS_Tasks</id>
		<title>Dev:RM/LMS Tasks</title>
		<link rel="alternate" type="text/html" href="http://wiki.avobjects.com/Dev:RM/LMS_Tasks"/>
				<updated>2009-02-11T09:41:46Z</updated>
		
		<summary type="html">&lt;p&gt;Ivan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See also:&lt;br /&gt;
&lt;br /&gt;
* [[CMS Tasks]]&lt;br /&gt;
&lt;br /&gt;
==RM/LMS Tasks==&lt;br /&gt;
&lt;br /&gt;
==DONE==&lt;br /&gt;
&lt;br /&gt;
* [01:00] SVN setup.&lt;br /&gt;
* [00:10] Выводить вот [http://rm.medialooks.com/customer/show/119 тут] информацию &amp;quot;Last edited: X days ago.&amp;quot; (доделка апдейта кастомер.апдейтед_эт при манипуляциях с лицензиями)&lt;br /&gt;
* [00:05] Ссылку нью кастомер снизу перенести наверх: &amp;quot;Add new customer&amp;quot;. Send LicenseExpired убрать.&lt;br /&gt;
* [00:20] Поменять from/reply-to писем [http://rm.medialooks.com/product/subscribers/31 sent to all] на: MediaLooks &amp;lt;dev@medialooks.com&amp;gt;. После рассылки выводить сообщение &amp;quot;15 emails sent to subscribers.&amp;quot; 15 это количество писем.&lt;br /&gt;
* [01:20] Переработать миханизм добавления контактов в кастомера. При пастинге в поле Name строки вида &lt;br /&gt;
:'Andrew A. Okunev &amp;lt;dev@medialooks.com&amp;gt; (MediaLooks)'&lt;br /&gt;
:'&amp;quot;Andrew A. Okunev&amp;quot; &amp;lt;dev@medialooks.com&amp;gt; (MediaLooks)' &lt;br /&gt;
:'Andrew A. Okunev &amp;lt;dev@medialooks.com&amp;gt;'&lt;br /&gt;
:'&amp;quot;Andrew A. Okunev&amp;quot; &amp;lt;dev@medialooks.com&amp;gt;' &lt;br /&gt;
:- сразу выделять из этой строки Name и Email и вставлять в соответствующие поля. То что в скобках - просто отбрасывать.&lt;br /&gt;
* [03:00] Добавить возможность вести историю лицензий. Т.е. если кастомер обновил лицензию, то я ее не просто редактирую а делаю к ней какой-то аддишен - таким образом что в RM остается (и может быть отображена) инфа про старую лицензию.&lt;br /&gt;
* [01:00] Добавить колоночку &amp;quot;Latest Version&amp;quot; сразу после колонки &amp;quot;Product&amp;quot; на главной странице. Выводить туда номер самой распоследней версии (вклюачая бету).&lt;br /&gt;
* [00:20] Добавить фичу: разработчик (указан в свойствах продукта) должен получать релиз ноутсы. Но при этом он не должен быть подписчиком (учитываца в статистике и т.д.).&lt;br /&gt;
* [00:45] При добавлении нового релиза вставлять в поле версии номер последней +1 в последней цифре.&lt;br /&gt;
* [самдурак (ящик хуйня@mdilooks.com)] RM высаживается при попытке отослать emails продукта Test Product 1 - он часть бандла Test Bundle.&lt;br /&gt;
* [fixed] Некорретный парсинг контактов вида Graham Neden &amp;lt;graham@starfish.tv&amp;gt;  (Starfish Technologies Ltd) при редактировании кастомера.&lt;br /&gt;
* [fixed] При добавлении нового кантакта к кастомеру этот контакт подписывается на все имеющиеся на данный момент у кастомера подписки. Это неверно - новый контакт (при добавлении его) не должен ни на что подписываться.&lt;br /&gt;
* [explained] Что означает галко левая которая стоит напротив email, у которого лицензия на бандл?&lt;br /&gt;
* [00:10] Убрать график downloads с главной страницы. Он довольно медленный и держать его на странице, через которую постоянно ходишь в процессе навигации, невозможно. :( Временно разместить его на отдельной страничке.&lt;br /&gt;
* [??:??] Наследование/объединение продуктов (см. полное описание ниже).&lt;br /&gt;
* [00:15] Добавить на страницу [http://rm.medialooks.com/product/show/40 о продукте] инфо о том какие он в себя включает (если бандл), и за чьими релизами смотрит (если он смотрит).&lt;br /&gt;
* [00:15] Переделать интерфейс задания продуктов для бандла. Через Ctrl жутко высадно. Лучше либо галки, либо два списка, и кноки туда-сюда перекидывать.&lt;br /&gt;
* [00:15] Переместить главною меню на верх: &amp;quot;Products | Customers | New Releases (5) | Users&amp;quot;. &amp;quot;New Releases&amp;quot; это вместо &amp;quot;Distributives&amp;quot;; в скобках выводить количество неомодерированных релизов.&lt;br /&gt;
* [00:10] Создать продуктовое меню вот [http://rm.medialooks.com/product/show/15 тут]: &amp;quot;Add new release | View leads | View customers | Edit&amp;quot;. Из таблицы на главной странице убрать столбцы Edit и Delete. Там же заменить &amp;quot;Site Subscribers&amp;quot; на &amp;quot;Leads&amp;quot;, а &amp;quot;Licenses&amp;quot; на &amp;quot;Customers&amp;quot;. Ссылку из цифр в этих столбцах убрать, сделать ее рядом в виде &amp;quot;(View)&amp;quot; (а то не очень удобно в цифры кликать).&lt;br /&gt;
* [00:25] проверка кастомер.таг по частям. т.е. если таг совпадает целиком то не дает создать. а если совпадает по частям (пробелами делится) то выводит предупреждение со списком найденных совпадений и после повторного нажатия Сейв создает&lt;br /&gt;
* [00:35] Добавить в свойства кастомера еще одно таговое поле &amp;quot;Exhibitions&amp;quot;.&lt;br /&gt;
* [01:50] Группировка продуктов по тегу &amp;quot;Product type&amp;quot; на главной странице. Соответственно в свойства продукта нужно добавить такое поле. Группирока осуществляется по сочетанию тегов - например, &amp;quot;sdks vsevolod&amp;quot;, &amp;quot;sdks dkn&amp;quot;, &amp;quot;filters dkn&amp;quot; - это три разных группы (а у кадого продукта в этих группах по 2 тега). Внутри групп сортировать продукты по общему количеству подписок на апдейты (просто подписка или по лицензии). Группы сортировать по суммурному количеству подписок.&lt;br /&gt;
&lt;br /&gt;
==TODO==&lt;br /&gt;
&lt;br /&gt;
===Bugs, Fixes, Questions===&lt;br /&gt;
&lt;br /&gt;
===Backups to Amazon S3===&lt;br /&gt;
&lt;br /&gt;
Давай будем наш бэкапный файл закачивать на амазон раз в неделю. Я сделал там аккаунт.&lt;br /&gt;
&lt;br /&gt;
===Tasks===&lt;br /&gt;
&lt;br /&gt;
* Разобрацо в чем проблема с настройкой goals в гугле.&lt;br /&gt;
&lt;br /&gt;
* Add abstract tags feature.&lt;br /&gt;
( т.е. сперва сделать лицензии одно тег-поле, патом убрать роялтис и тайп, патом сделать фильтрацию кастомеров по вот этим тагам лицензии)&lt;br /&gt;
&lt;br /&gt;
* Если переименовать продукт, то перестает работать общая ссылка на даунлоад и по-версионные ссылки.&lt;br /&gt;
&lt;br /&gt;
* Contact as System Item (see task description).&lt;br /&gt;
&lt;br /&gt;
* Search (see task description).&lt;br /&gt;
&lt;br /&gt;
* Сортировка по тагам во вьюхе кастомеров. Статистика по тагам.&lt;br /&gt;
&lt;br /&gt;
* Добавить вывод количества лицензионных подписок в графу &amp;quot;Site Subscribers&amp;quot;. Графу переименовать в &amp;quot;Subscribers (Interested/Licensed)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* Общие рассылки. Научиться делать рассылки по всем клиентам. Это должна быть отдельная подписка.&lt;br /&gt;
&lt;br /&gt;
* Персонализированный учет закачек. Мы хотим про каждого клиента знать скачивает он новые версии или нет. В письме, которое он получает при выходе новой версии, можно делать уникальный урл, чтобы система знала нажал он или нет. Второй подход - это использовать куки на тот случай, если клиент скачивает с сайта.&lt;br /&gt;
&lt;br /&gt;
* Статистика закачек. Научицо разделять новые (приходящие с рекламы или из поиска) и повторные (наши кастомеры качают новые версии) закачки.&lt;br /&gt;
&lt;br /&gt;
* Подумать. Если есть идеи как интегрировать с Google Analytics (GA)  AdWords (AW) - было бы клева. Например вытаскивать из GA данные о посещениях конкретной страницы и сравнивать их с данными по закачкам.&lt;br /&gt;
&lt;br /&gt;
* Проблема с возможностью создать продукт у которого все версии - беты. И тогда не работает общая ссылка.&lt;br /&gt;
&lt;br /&gt;
* Проблема с RSS-фидом блога (у меня почему-то аутлук пытаецо запустицо).&lt;br /&gt;
&lt;br /&gt;
* Research on online license document generation. Существует ли какой-нить вебовский генератор PDF?&lt;br /&gt;
&lt;br /&gt;
* Подписка Update Discount Expiration. Ввести для лицензий которые expired только после 01.12.2009. Т.е. письма по этой подписке должны начать ходить примерно с 01.05.2010.&lt;br /&gt;
&lt;br /&gt;
===Это потом===&lt;br /&gt;
&lt;br /&gt;
* Переделать форму контактов на сайте. Добавить возможность указать второй email. Отдельные поля под скайп, телефон.&lt;br /&gt;
&lt;br /&gt;
* Подписка royalties.&lt;br /&gt;
&lt;br /&gt;
===User Rights===&lt;br /&gt;
&lt;br /&gt;
* Разобраться с ролями и отображением соотв. инфы.&lt;br /&gt;
&lt;br /&gt;
===Customer download tracking===&lt;br /&gt;
&lt;br /&gt;
* Индивидуальные даунлоад ссылки для отслеживания какой подписчик нажал на сцылку.&lt;br /&gt;
* Отписка или оповещение администратора о подписчиках который не нажимают на ссылки (признак того что не получают письма или не читают их - но при этом по какой-то причине не отписываются).&lt;br /&gt;
&lt;br /&gt;
===Наследование/объединение продуктов===&lt;br /&gt;
&lt;br /&gt;
Необходимо поддержать два следующих сценария:&lt;br /&gt;
&lt;br /&gt;
1) Существует продукт DirectShow Filter Pack - он включает в себя большой набор DirectShow фильтров. Каждый фильтр релизится по своему графику (т.е. без графика) - поэтому отдельного download для него не существует. Т.е. продукт в данном случае это просто такая лицензия, т.е. совокупность цены и набора компонентов. В RM возможность создавать такие лицензии должна быть реализована в виде продукта в общем списке - просто у него будут какие-то дополнительные свойства как-то &amp;quot;включать в себя такие-то продукты&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Соответственно, при создании лицензии на такой продукт нужно сделать так чтобы:&lt;br /&gt;
&lt;br /&gt;
* Контакты кастомера могли быть подписаны на релизы (updates) по каждому из продуктов отдельно. По-умолчанию - создается подписка на все входящие в пакет продукты. Отписаться от каждого из продуктов в отдельности можно через сцылку на отписку из письма или это можно сделать через редактирование свойств лицензии.&lt;br /&gt;
&lt;br /&gt;
* Контакты кастомера не были дубликатно подписаны на эти же самые продукты через другие механизмы RM.&lt;br /&gt;
&lt;br /&gt;
* Подписка License Expired в данном случае остается одна - только на общий продукт. Но в случае, если подписка истекла, то при рассылке Release Updates в тело письма вставляется соотв. сообщение (т.к. это сейчас сделано для обычных лицензий).&lt;br /&gt;
&lt;br /&gt;
* В случае если для продукты DirectShow Filter Pack - RM конечно же имеет право наложить в штаны но после этого должен немедленно собрацо и вести себя так как будто он точно знает что нужно делать - а именно вести себя так как будто DirectShow Filter Pack это самый обычный продукт (т.е. появитсо в Distributives и дать возможность сделать рассылку). Т.е. обычная рассылка Release Updates для продукта такого типа тоже создаецо.&lt;br /&gt;
&lt;br /&gt;
2) Существуют продукты DeckLink SDK, Playout SDK и Multimedia SDK, для которых мы решили в целях упрощения использовать общий даунлоад. В данном случае все остается как есть - т.е. лицензии создаются именно под эти продукты, отдельно ведется статистика подписок, лицензий и закачек - но используется только один download.&lt;br /&gt;
&lt;br /&gt;
Например, мы говорим что DeckLink SDK и Playout SDK - оба используют download Multimedia SDK. Разработчик закачивает новый релиз именно для Multimedia SDK. Этот новый релиз появляется в разделе Distributives. Я его модерю, нажимаю сделать рассылку - и, как и раньше, выходят три блока писем - для DeckLink SDK, Playout SDk и Multimedia SDK.&lt;br /&gt;
&lt;br /&gt;
Особенность: ссылка во всех письмах теперь называется multimedia sdk. Делать редиректы и переименования - не надо (иначе клиенты будут говорить я скачал Playout SDK а мне ставится Multimedia SDK).&lt;br /&gt;
&lt;br /&gt;
===Industry-Based Subscriptions===&lt;br /&gt;
&lt;br /&gt;
Добавить возможность создавать рассылки по индустриям. В целом все аналогично тому как сейчас работают подписки на новые релизы. Можно подписывать контакты руками. А при рассылке заодно рассылать тем, кто является клиентом какого-либо продукта и тоже записан в эту индустрию.&lt;br /&gt;
&lt;br /&gt;
Возможно, когда у нас появятся разные способы делать рассылки, придется придумывать способы не слать дважды по одному и тому же поводу. Например, заводить для рассылки какой-нибудь ID.&lt;br /&gt;
&lt;br /&gt;
===Contact as System Item===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать контакты как самостоятельную сущность.&lt;br /&gt;
&lt;br /&gt;
Контакт представляет из себя имя (текстовое поле например &amp;quot;Andrew Okunev) и ассоциированный c ним набор полей:&lt;br /&gt;
&lt;br /&gt;
* email name (используется в подстановках в письмах; если пусто, используется &amp;quot;customer&amp;quot;)&lt;br /&gt;
* email (любое количество)&lt;br /&gt;
* skype (любое количество)&lt;br /&gt;
* телефон (любое количество)&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать отображение и редактирование свойств для любого из контактов. Например:&lt;br /&gt;
&lt;br /&gt;
* Когда добавлен в систему&lt;br /&gt;
* С какими компаниями (Customers) ассоциирован.&lt;br /&gt;
* С какими лицензиями ассоциирован.&lt;br /&gt;
* На какие подписки подписан.&lt;br /&gt;
&lt;br /&gt;
Все это нужно реализовать в одной вьюхе. Редактирование доступно только администратору системы.&lt;br /&gt;
&lt;br /&gt;
Примечания:&lt;br /&gt;
&lt;br /&gt;
* В системе должны отсутствовать дубликаты по email. Дубликаты по имени допустимы (т.е. когда одинаковое имя но разный email), но должна быть возможность их соединить (т.е. превратить в один контакт с двумя email). Реализовать это можно через отдельную вьюху, доступную администратору.&lt;br /&gt;
&lt;br /&gt;
* Если у контакта больше одного email, то любой из них может использоваться для авторизации.&lt;br /&gt;
&lt;br /&gt;
* Новый контакт (как сущность) создается при любом добавлении контакта в систему (например, при создании подписки через модуль subscribers.&lt;br /&gt;
&lt;br /&gt;
===Universal Uploads===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать возможность закачивать в RM абстрактные (не привязанные к какому-либо продукту) файлы. При этом каждому такому файлу должен быть по-умолчанию присвоен срок жизни - 30 дней. После чего файл автоматически удаляется. Файлы можно защищать паролем, который требуется для скачки.&lt;br /&gt;
&lt;br /&gt;
Каждый файл привязан к какому-либо юзеру. Только у этого пользователя (или у администратора) есть возможность добавлять к своему аккаунту файлы или удалять их. Каждую закачку можно удалить или обновить файл в ней.&lt;br /&gt;
&lt;br /&gt;
Соответственно, необходимо создать две новых вьюхи:&lt;br /&gt;
&lt;br /&gt;
1) Вьюха создания закачки. Опции: текстедит срок жизни (по-умолчанию вбито 30), чекбокс защитить паролем, путь к файлу.&lt;br /&gt;
&lt;br /&gt;
2) Вьюха список закачек данного юзера. Отображать: имя файла, количество скачек, оставшийся срок жизни, дата закачки. Имя файла является ссылкой на данный файл (вида rm.medialooks.com/...).&lt;br /&gt;
&lt;br /&gt;
В меню каждого юзера должно быть что-то вроде &amp;quot;My Uploads&amp;quot;, которая ведет на вьюху (2).&lt;br /&gt;
&lt;br /&gt;
===Customer Access===&lt;br /&gt;
&lt;br /&gt;
Нужно научицо давать кастомерам доступ к аплоадам. Для этого нужно реализовать в RM еще одну роль - &amp;quot;Customer&amp;quot;. Роль &amp;quot;User&amp;quot; нужно переименовать в &amp;quot;Developer&amp;quot;. Каждый контакт, добавленный в систему, должен получать соотв. статус и автоматически сгенеренный пароль. Никаких писем при заведении пользователей пока автоматически рассылать не надо. Однако, при первой попытке зайти в систему, кастомер должен по почте получить свой пароль. Залогинившись, он имеет доступ только к своим аплоадам (в будущем добавим еще подписки и лицензии).&lt;br /&gt;
&lt;br /&gt;
===Search===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать поиск в системе. Форма поиска - одна на все случаи. Она должна размещаться на всех страницах системы.&lt;br /&gt;
&lt;br /&gt;
По каким полям искать:&lt;br /&gt;
&lt;br /&gt;
* По контактам.&lt;br /&gt;
* По названию клиента.&lt;br /&gt;
* По тегу клиента.&lt;br /&gt;
&lt;br /&gt;
'''Пример.''' Если в поле поиска ввден запрос:&lt;br /&gt;
&lt;br /&gt;
Andrew A. Okunev &amp;lt;dev@medialooks.com&amp;gt; (MediaLooks)&lt;br /&gt;
&lt;br /&gt;
- то сперва нужно произвести поиск отдельно по &amp;quot;Osman Yel&amp;quot;, &amp;quot;dev@medialooks.com&amp;quot; и &amp;quot;MediaLooks&amp;quot;. Эти результаты вывести в первую очередь.&lt;br /&gt;
&lt;br /&gt;
Во-вторую - выделить из поисковой строки название домена и отрезать от него домен первого уровня. Т.е. в нашем примере искать по строке &amp;quot;medialooks&amp;quot;. Эти результаты вывести во вторую очередь.&lt;br /&gt;
&lt;br /&gt;
Кроме этого, естественно должен работать поиск в том случае если исходный запрос это &amp;quot;dev@medialooks.com&amp;quot; или просто &amp;quot;medialooks&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===LinkedIn Integration===&lt;br /&gt;
&lt;br /&gt;
Зачем? Любая система управления контактами страдает одним недостатком - ей неоткуда узнать о том, что у кого-то поменялся email или телефон.&lt;br /&gt;
&lt;br /&gt;
Предполагается что пользователи LinkedIn (за исключением [http://www.linkedin.com/pub/2/26b/926 некоторых] поддерживают свой профиль в актуальном состоянии. В частности, следят за тем, чтобы в профиле был актуальный email.&lt;br /&gt;
&lt;br /&gt;
В результате хочется получить поддержку следующих сценариев:&lt;br /&gt;
&lt;br /&gt;
* Узнавать об изменениях в контактной информации наших клиентов.&lt;br /&gt;
* Приглашать в нашу сеть клиентов, которые уже используют LinkedIn.&lt;br /&gt;
* Приглашать в LinkedIn тех клиентов, которые его пока не используют.&lt;br /&gt;
* Если клиент для общение с нами использует один email, а для LinkedIn - другой, - то нам нужно узнать этот email и использовать его как запасной/альтернативный.&lt;br /&gt;
&lt;br /&gt;
Для начала думаю следует просто проверить, позволяет ли API делать следующее:&lt;br /&gt;
&lt;br /&gt;
* Авторизоваться в системе под каким-то реальным логином (например, подо мной).&lt;br /&gt;
* Поискать пользователей по email.&lt;br /&gt;
* Получить email любого из моих контактов.&lt;br /&gt;
* Послать конкретному пользователю инвайт, иметь возможность указать кастомный текст для инвайта.&lt;br /&gt;
* Пригласить нового пользователя через email, то же самое с кастомным текстом.&lt;br /&gt;
&lt;br /&gt;
Задача неактуальна поскольку как я понял от LinkedIn нужно сначала получить одобрение на использование API:&lt;br /&gt;
&lt;br /&gt;
* http://www.linkedin.com/static?key=developers_apis&lt;br /&gt;
&lt;br /&gt;
==Done Tasks==&lt;br /&gt;
&lt;br /&gt;
* [[LMS/CMS Tasks: Done]]&lt;br /&gt;
&lt;br /&gt;
[[Category: Tasks]]&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Ivan</name></author>	</entry>

	<entry>
		<id>http://wiki.avobjects.com/Dev:RM/LMS_Tasks</id>
		<title>Dev:RM/LMS Tasks</title>
		<link rel="alternate" type="text/html" href="http://wiki.avobjects.com/Dev:RM/LMS_Tasks"/>
				<updated>2009-02-11T05:30:26Z</updated>
		
		<summary type="html">&lt;p&gt;Ivan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See also:&lt;br /&gt;
&lt;br /&gt;
* [[CMS Tasks]]&lt;br /&gt;
&lt;br /&gt;
==RM/LMS Tasks==&lt;br /&gt;
&lt;br /&gt;
==DONE==&lt;br /&gt;
&lt;br /&gt;
* [01:00] SVN setup.&lt;br /&gt;
* [00:10] Выводить вот [http://rm.medialooks.com/customer/show/119 тут] информацию &amp;quot;Last edited: X days ago.&amp;quot; (доделка апдейта кастомер.апдейтед_эт при манипуляциях с лицензиями)&lt;br /&gt;
* [00:05] Ссылку нью кастомер снизу перенести наверх: &amp;quot;Add new customer&amp;quot;. Send LicenseExpired убрать.&lt;br /&gt;
* [00:20] Поменять from/reply-to писем [http://rm.medialooks.com/product/subscribers/31 sent to all] на: MediaLooks &amp;lt;dev@medialooks.com&amp;gt;. После рассылки выводить сообщение &amp;quot;15 emails sent to subscribers.&amp;quot; 15 это количество писем.&lt;br /&gt;
* [01:20] Переработать миханизм добавления контактов в кастомера. При пастинге в поле Name строки вида &lt;br /&gt;
:'Andrew A. Okunev &amp;lt;dev@medialooks.com&amp;gt; (MediaLooks)'&lt;br /&gt;
:'&amp;quot;Andrew A. Okunev&amp;quot; &amp;lt;dev@medialooks.com&amp;gt; (MediaLooks)' &lt;br /&gt;
:'Andrew A. Okunev &amp;lt;dev@medialooks.com&amp;gt;'&lt;br /&gt;
:'&amp;quot;Andrew A. Okunev&amp;quot; &amp;lt;dev@medialooks.com&amp;gt;' &lt;br /&gt;
:- сразу выделять из этой строки Name и Email и вставлять в соответствующие поля. То что в скобках - просто отбрасывать.&lt;br /&gt;
* [03:00] Добавить возможность вести историю лицензий. Т.е. если кастомер обновил лицензию, то я ее не просто редактирую а делаю к ней какой-то аддишен - таким образом что в RM остается (и может быть отображена) инфа про старую лицензию.&lt;br /&gt;
* [01:00] Добавить колоночку &amp;quot;Latest Version&amp;quot; сразу после колонки &amp;quot;Product&amp;quot; на главной странице. Выводить туда номер самой распоследней версии (вклюачая бету).&lt;br /&gt;
* [00:20] Добавить фичу: разработчик (указан в свойствах продукта) должен получать релиз ноутсы. Но при этом он не должен быть подписчиком (учитываца в статистике и т.д.).&lt;br /&gt;
* [00:45] При добавлении нового релиза вставлять в поле версии номер последней +1 в последней цифре.&lt;br /&gt;
* [самдурак (ящик хуйня@mdilooks.com)] RM высаживается при попытке отослать emails продукта Test Product 1 - он часть бандла Test Bundle.&lt;br /&gt;
* [fixed] Некорретный парсинг контактов вида Graham Neden &amp;lt;graham@starfish.tv&amp;gt;  (Starfish Technologies Ltd) при редактировании кастомера.&lt;br /&gt;
* [fixed] При добавлении нового кантакта к кастомеру этот контакт подписывается на все имеющиеся на данный момент у кастомера подписки. Это неверно - новый контакт (при добавлении его) не должен ни на что подписываться.&lt;br /&gt;
* [explained] Что означает галко левая которая стоит напротив email, у которого лицензия на бандл?&lt;br /&gt;
* [00:10] Убрать график downloads с главной страницы. Он довольно медленный и держать его на странице, через которую постоянно ходишь в процессе навигации, невозможно. :( Временно разместить его на отдельной страничке.&lt;br /&gt;
* [??:??] Наследование/объединение продуктов (см. полное описание ниже).&lt;br /&gt;
* [00:15] Добавить на страницу [http://rm.medialooks.com/product/show/40 о продукте] инфо о том какие он в себя включает (если бандл), и за чьими релизами смотрит (если он смотрит).&lt;br /&gt;
* [00:15] Переделать интерфейс задания продуктов для бандла. Через Ctrl жутко высадно. Лучше либо галки, либо два списка, и кноки туда-сюда перекидывать.&lt;br /&gt;
* [00:15] Переместить главною меню на верх: &amp;quot;Products | Customers | New Releases (5) | Users&amp;quot;. &amp;quot;New Releases&amp;quot; это вместо &amp;quot;Distributives&amp;quot;; в скобках выводить количество неомодерированных релизов.&lt;br /&gt;
* [00:10] Создать продуктовое меню вот [http://rm.medialooks.com/product/show/15 тут]: &amp;quot;Add new release | View leads | View customers | Edit&amp;quot;. Из таблицы на главной странице убрать столбцы Edit и Delete. Там же заменить &amp;quot;Site Subscribers&amp;quot; на &amp;quot;Leads&amp;quot;, а &amp;quot;Licenses&amp;quot; на &amp;quot;Customers&amp;quot;. Ссылку из цифр в этих столбцах убрать, сделать ее рядом в виде &amp;quot;(View)&amp;quot; (а то не очень удобно в цифры кликать).&lt;br /&gt;
* [00:25] проверка кастомер.таг по частям. т.е. если таг совпадает целиком то не дает создать. а если совпадает по частям (пробелами делится) то выводит предупреждение со списком найденных совпадений и после повторного нажатия Сейв создает&lt;br /&gt;
* [00:35] Добавить в свойства кастомера еще одно таговое поле &amp;quot;Exhibitions&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==TODO==&lt;br /&gt;
&lt;br /&gt;
===Bugs, Fixes, Questions===&lt;br /&gt;
&lt;br /&gt;
===Backups to Amazon S3===&lt;br /&gt;
&lt;br /&gt;
Давай будем наш бэкапный файл закачивать на амазон раз в неделю. Я сделал там аккаунт.&lt;br /&gt;
&lt;br /&gt;
===Tasks===&lt;br /&gt;
&lt;br /&gt;
* Разобрацо в чем проблема с настройкой goals в гугле.&lt;br /&gt;
&lt;br /&gt;
* Add abstract tags feature.&lt;br /&gt;
( т.е. сперва сделать лицензии одно тег-поле, патом убрать роялтис и тайп, патом сделать фильтрацию кастомеров по вот этим тагам лицензии)&lt;br /&gt;
&lt;br /&gt;
* Если переименовать продукт, то перестает работать общая ссылка на даунлоад и по-версионные ссылки.&lt;br /&gt;
&lt;br /&gt;
* Contact as System Item (see task description).&lt;br /&gt;
&lt;br /&gt;
* Search (see task description).&lt;br /&gt;
&lt;br /&gt;
* Сортировка по тагам во вьюхе кастомеров. Статистика по тагам.&lt;br /&gt;
&lt;br /&gt;
* Добавить вывод количества лицензионных подписок в графу &amp;quot;Site Subscribers&amp;quot;. Графу переименовать в &amp;quot;Subscribers (Interested/Licensed)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* Группировка продуктов по тегу &amp;quot;Product type&amp;quot; на главной странице. Соответственно в свойства продукта нужно добавить такое поле. Группирока осуществляется по сочетанию тегов - например, &amp;quot;sdks vsevolod&amp;quot;, &amp;quot;sdks dkn&amp;quot;, &amp;quot;filters dkn&amp;quot; - это три разных группы (а у кадого продукта в этих группах по 2 тега). Внутри групп сортировать продукты по общему количеству подписок на апдейты (просто подписка или по лицензии). Группы сортировать по суммурному количеству подписок.&lt;br /&gt;
&lt;br /&gt;
* Общие рассылки. Научиться делать рассылки по всем клиентам. Это должна быть отдельная подписка.&lt;br /&gt;
&lt;br /&gt;
* Персонализированный учет закачек. Мы хотим про каждого клиента знать скачивает он новые версии или нет. В письме, которое он получает при выходе новой версии, можно делать уникальный урл, чтобы система знала нажал он или нет. Второй подход - это использовать куки на тот случай, если клиент скачивает с сайта.&lt;br /&gt;
&lt;br /&gt;
* Статистика закачек. Научицо разделять новые (приходящие с рекламы или из поиска) и повторные (наши кастомеры качают новые версии) закачки.&lt;br /&gt;
&lt;br /&gt;
* Подумать. Если есть идеи как интегрировать с Google Analytics (GA)  AdWords (AW) - было бы клева. Например вытаскивать из GA данные о посещениях конкретной страницы и сравнивать их с данными по закачкам.&lt;br /&gt;
&lt;br /&gt;
* Проблема с возможностью создать продукт у которого все версии - беты. И тогда не работает общая ссылка.&lt;br /&gt;
&lt;br /&gt;
* Проблема с RSS-фидом блога (у меня почему-то аутлук пытаецо запустицо).&lt;br /&gt;
&lt;br /&gt;
* Research on online license document generation. Существует ли какой-нить вебовский генератор PDF?&lt;br /&gt;
&lt;br /&gt;
* Подписка Update Discount Expiration. Ввести для лицензий которые expired только после 01.12.2009. Т.е. письма по этой подписке должны начать ходить примерно с 01.05.2010.&lt;br /&gt;
&lt;br /&gt;
===Это потом===&lt;br /&gt;
&lt;br /&gt;
* Переделать форму контактов на сайте. Добавить возможность указать второй email. Отдельные поля под скайп, телефон.&lt;br /&gt;
&lt;br /&gt;
* Подписка royalties.&lt;br /&gt;
&lt;br /&gt;
===User Rights===&lt;br /&gt;
&lt;br /&gt;
* Разобраться с ролями и отображением соотв. инфы.&lt;br /&gt;
&lt;br /&gt;
===Customer download tracking===&lt;br /&gt;
&lt;br /&gt;
* Индивидуальные даунлоад ссылки для отслеживания какой подписчик нажал на сцылку.&lt;br /&gt;
* Отписка или оповещение администратора о подписчиках который не нажимают на ссылки (признак того что не получают письма или не читают их - но при этом по какой-то причине не отписываются).&lt;br /&gt;
&lt;br /&gt;
===Наследование/объединение продуктов===&lt;br /&gt;
&lt;br /&gt;
Необходимо поддержать два следующих сценария:&lt;br /&gt;
&lt;br /&gt;
1) Существует продукт DirectShow Filter Pack - он включает в себя большой набор DirectShow фильтров. Каждый фильтр релизится по своему графику (т.е. без графика) - поэтому отдельного download для него не существует. Т.е. продукт в данном случае это просто такая лицензия, т.е. совокупность цены и набора компонентов. В RM возможность создавать такие лицензии должна быть реализована в виде продукта в общем списке - просто у него будут какие-то дополнительные свойства как-то &amp;quot;включать в себя такие-то продукты&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Соответственно, при создании лицензии на такой продукт нужно сделать так чтобы:&lt;br /&gt;
&lt;br /&gt;
* Контакты кастомера могли быть подписаны на релизы (updates) по каждому из продуктов отдельно. По-умолчанию - создается подписка на все входящие в пакет продукты. Отписаться от каждого из продуктов в отдельности можно через сцылку на отписку из письма или это можно сделать через редактирование свойств лицензии.&lt;br /&gt;
&lt;br /&gt;
* Контакты кастомера не были дубликатно подписаны на эти же самые продукты через другие механизмы RM.&lt;br /&gt;
&lt;br /&gt;
* Подписка License Expired в данном случае остается одна - только на общий продукт. Но в случае, если подписка истекла, то при рассылке Release Updates в тело письма вставляется соотв. сообщение (т.к. это сейчас сделано для обычных лицензий).&lt;br /&gt;
&lt;br /&gt;
* В случае если для продукты DirectShow Filter Pack - RM конечно же имеет право наложить в штаны но после этого должен немедленно собрацо и вести себя так как будто он точно знает что нужно делать - а именно вести себя так как будто DirectShow Filter Pack это самый обычный продукт (т.е. появитсо в Distributives и дать возможность сделать рассылку). Т.е. обычная рассылка Release Updates для продукта такого типа тоже создаецо.&lt;br /&gt;
&lt;br /&gt;
2) Существуют продукты DeckLink SDK, Playout SDK и Multimedia SDK, для которых мы решили в целях упрощения использовать общий даунлоад. В данном случае все остается как есть - т.е. лицензии создаются именно под эти продукты, отдельно ведется статистика подписок, лицензий и закачек - но используется только один download.&lt;br /&gt;
&lt;br /&gt;
Например, мы говорим что DeckLink SDK и Playout SDK - оба используют download Multimedia SDK. Разработчик закачивает новый релиз именно для Multimedia SDK. Этот новый релиз появляется в разделе Distributives. Я его модерю, нажимаю сделать рассылку - и, как и раньше, выходят три блока писем - для DeckLink SDK, Playout SDk и Multimedia SDK.&lt;br /&gt;
&lt;br /&gt;
Особенность: ссылка во всех письмах теперь называется multimedia sdk. Делать редиректы и переименования - не надо (иначе клиенты будут говорить я скачал Playout SDK а мне ставится Multimedia SDK).&lt;br /&gt;
&lt;br /&gt;
===Industry-Based Subscriptions===&lt;br /&gt;
&lt;br /&gt;
Добавить возможность создавать рассылки по индустриям. В целом все аналогично тому как сейчас работают подписки на новые релизы. Можно подписывать контакты руками. А при рассылке заодно рассылать тем, кто является клиентом какого-либо продукта и тоже записан в эту индустрию.&lt;br /&gt;
&lt;br /&gt;
Возможно, когда у нас появятся разные способы делать рассылки, придется придумывать способы не слать дважды по одному и тому же поводу. Например, заводить для рассылки какой-нибудь ID.&lt;br /&gt;
&lt;br /&gt;
===Contact as System Item===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать контакты как самостоятельную сущность.&lt;br /&gt;
&lt;br /&gt;
Контакт представляет из себя имя (текстовое поле например &amp;quot;Andrew Okunev) и ассоциированный c ним набор полей:&lt;br /&gt;
&lt;br /&gt;
* email name (используется в подстановках в письмах; если пусто, используется &amp;quot;customer&amp;quot;)&lt;br /&gt;
* email (любое количество)&lt;br /&gt;
* skype (любое количество)&lt;br /&gt;
* телефон (любое количество)&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать отображение и редактирование свойств для любого из контактов. Например:&lt;br /&gt;
&lt;br /&gt;
* Когда добавлен в систему&lt;br /&gt;
* С какими компаниями (Customers) ассоциирован.&lt;br /&gt;
* С какими лицензиями ассоциирован.&lt;br /&gt;
* На какие подписки подписан.&lt;br /&gt;
&lt;br /&gt;
Все это нужно реализовать в одной вьюхе. Редактирование доступно только администратору системы.&lt;br /&gt;
&lt;br /&gt;
Примечания:&lt;br /&gt;
&lt;br /&gt;
* В системе должны отсутствовать дубликаты по email. Дубликаты по имени допустимы (т.е. когда одинаковое имя но разный email), но должна быть возможность их соединить (т.е. превратить в один контакт с двумя email). Реализовать это можно через отдельную вьюху, доступную администратору.&lt;br /&gt;
&lt;br /&gt;
* Если у контакта больше одного email, то любой из них может использоваться для авторизации.&lt;br /&gt;
&lt;br /&gt;
* Новый контакт (как сущность) создается при любом добавлении контакта в систему (например, при создании подписки через модуль subscribers.&lt;br /&gt;
&lt;br /&gt;
===Universal Uploads===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать возможность закачивать в RM абстрактные (не привязанные к какому-либо продукту) файлы. При этом каждому такому файлу должен быть по-умолчанию присвоен срок жизни - 30 дней. После чего файл автоматически удаляется. Файлы можно защищать паролем, который требуется для скачки.&lt;br /&gt;
&lt;br /&gt;
Каждый файл привязан к какому-либо юзеру. Только у этого пользователя (или у администратора) есть возможность добавлять к своему аккаунту файлы или удалять их. Каждую закачку можно удалить или обновить файл в ней.&lt;br /&gt;
&lt;br /&gt;
Соответственно, необходимо создать две новых вьюхи:&lt;br /&gt;
&lt;br /&gt;
1) Вьюха создания закачки. Опции: текстедит срок жизни (по-умолчанию вбито 30), чекбокс защитить паролем, путь к файлу.&lt;br /&gt;
&lt;br /&gt;
2) Вьюха список закачек данного юзера. Отображать: имя файла, количество скачек, оставшийся срок жизни, дата закачки. Имя файла является ссылкой на данный файл (вида rm.medialooks.com/...).&lt;br /&gt;
&lt;br /&gt;
В меню каждого юзера должно быть что-то вроде &amp;quot;My Uploads&amp;quot;, которая ведет на вьюху (2).&lt;br /&gt;
&lt;br /&gt;
===Customer Access===&lt;br /&gt;
&lt;br /&gt;
Нужно научицо давать кастомерам доступ к аплоадам. Для этого нужно реализовать в RM еще одну роль - &amp;quot;Customer&amp;quot;. Роль &amp;quot;User&amp;quot; нужно переименовать в &amp;quot;Developer&amp;quot;. Каждый контакт, добавленный в систему, должен получать соотв. статус и автоматически сгенеренный пароль. Никаких писем при заведении пользователей пока автоматически рассылать не надо. Однако, при первой попытке зайти в систему, кастомер должен по почте получить свой пароль. Залогинившись, он имеет доступ только к своим аплоадам (в будущем добавим еще подписки и лицензии).&lt;br /&gt;
&lt;br /&gt;
===Search===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать поиск в системе. Форма поиска - одна на все случаи. Она должна размещаться на всех страницах системы.&lt;br /&gt;
&lt;br /&gt;
По каким полям искать:&lt;br /&gt;
&lt;br /&gt;
* По контактам.&lt;br /&gt;
* По названию клиента.&lt;br /&gt;
* По тегу клиента.&lt;br /&gt;
&lt;br /&gt;
'''Пример.''' Если в поле поиска ввден запрос:&lt;br /&gt;
&lt;br /&gt;
Andrew A. Okunev &amp;lt;dev@medialooks.com&amp;gt; (MediaLooks)&lt;br /&gt;
&lt;br /&gt;
- то сперва нужно произвести поиск отдельно по &amp;quot;Osman Yel&amp;quot;, &amp;quot;dev@medialooks.com&amp;quot; и &amp;quot;MediaLooks&amp;quot;. Эти результаты вывести в первую очередь.&lt;br /&gt;
&lt;br /&gt;
Во-вторую - выделить из поисковой строки название домена и отрезать от него домен первого уровня. Т.е. в нашем примере искать по строке &amp;quot;medialooks&amp;quot;. Эти результаты вывести во вторую очередь.&lt;br /&gt;
&lt;br /&gt;
Кроме этого, естественно должен работать поиск в том случае если исходный запрос это &amp;quot;dev@medialooks.com&amp;quot; или просто &amp;quot;medialooks&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===LinkedIn Integration===&lt;br /&gt;
&lt;br /&gt;
Зачем? Любая система управления контактами страдает одним недостатком - ей неоткуда узнать о том, что у кого-то поменялся email или телефон.&lt;br /&gt;
&lt;br /&gt;
Предполагается что пользователи LinkedIn (за исключением [http://www.linkedin.com/pub/2/26b/926 некоторых] поддерживают свой профиль в актуальном состоянии. В частности, следят за тем, чтобы в профиле был актуальный email.&lt;br /&gt;
&lt;br /&gt;
В результате хочется получить поддержку следующих сценариев:&lt;br /&gt;
&lt;br /&gt;
* Узнавать об изменениях в контактной информации наших клиентов.&lt;br /&gt;
* Приглашать в нашу сеть клиентов, которые уже используют LinkedIn.&lt;br /&gt;
* Приглашать в LinkedIn тех клиентов, которые его пока не используют.&lt;br /&gt;
* Если клиент для общение с нами использует один email, а для LinkedIn - другой, - то нам нужно узнать этот email и использовать его как запасной/альтернативный.&lt;br /&gt;
&lt;br /&gt;
Для начала думаю следует просто проверить, позволяет ли API делать следующее:&lt;br /&gt;
&lt;br /&gt;
* Авторизоваться в системе под каким-то реальным логином (например, подо мной).&lt;br /&gt;
* Поискать пользователей по email.&lt;br /&gt;
* Получить email любого из моих контактов.&lt;br /&gt;
* Послать конкретному пользователю инвайт, иметь возможность указать кастомный текст для инвайта.&lt;br /&gt;
* Пригласить нового пользователя через email, то же самое с кастомным текстом.&lt;br /&gt;
&lt;br /&gt;
Задача неактуальна поскольку как я понял от LinkedIn нужно сначала получить одобрение на использование API:&lt;br /&gt;
&lt;br /&gt;
* http://www.linkedin.com/static?key=developers_apis&lt;br /&gt;
&lt;br /&gt;
==Done Tasks==&lt;br /&gt;
&lt;br /&gt;
* [[LMS/CMS Tasks: Done]]&lt;br /&gt;
&lt;br /&gt;
[[Category: Tasks]]&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Ivan</name></author>	</entry>

	<entry>
		<id>http://wiki.avobjects.com/Dev:RM/LMS_Tasks</id>
		<title>Dev:RM/LMS Tasks</title>
		<link rel="alternate" type="text/html" href="http://wiki.avobjects.com/Dev:RM/LMS_Tasks"/>
				<updated>2009-02-11T04:52:33Z</updated>
		
		<summary type="html">&lt;p&gt;Ivan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See also:&lt;br /&gt;
&lt;br /&gt;
* [[CMS Tasks]]&lt;br /&gt;
&lt;br /&gt;
==RM/LMS Tasks==&lt;br /&gt;
&lt;br /&gt;
==DONE==&lt;br /&gt;
&lt;br /&gt;
* [01:00] SVN setup.&lt;br /&gt;
* [00:10] Выводить вот [http://rm.medialooks.com/customer/show/119 тут] информацию &amp;quot;Last edited: X days ago.&amp;quot; (доделка апдейта кастомер.апдейтед_эт при манипуляциях с лицензиями)&lt;br /&gt;
* [00:05] Ссылку нью кастомер снизу перенести наверх: &amp;quot;Add new customer&amp;quot;. Send LicenseExpired убрать.&lt;br /&gt;
* [00:20] Поменять from/reply-to писем [http://rm.medialooks.com/product/subscribers/31 sent to all] на: MediaLooks &amp;lt;dev@medialooks.com&amp;gt;. После рассылки выводить сообщение &amp;quot;15 emails sent to subscribers.&amp;quot; 15 это количество писем.&lt;br /&gt;
* [01:20] Переработать миханизм добавления контактов в кастомера. При пастинге в поле Name строки вида &lt;br /&gt;
:'Andrew A. Okunev &amp;lt;dev@medialooks.com&amp;gt; (MediaLooks)'&lt;br /&gt;
:'&amp;quot;Andrew A. Okunev&amp;quot; &amp;lt;dev@medialooks.com&amp;gt; (MediaLooks)' &lt;br /&gt;
:'Andrew A. Okunev &amp;lt;dev@medialooks.com&amp;gt;'&lt;br /&gt;
:'&amp;quot;Andrew A. Okunev&amp;quot; &amp;lt;dev@medialooks.com&amp;gt;' &lt;br /&gt;
:- сразу выделять из этой строки Name и Email и вставлять в соответствующие поля. То что в скобках - просто отбрасывать.&lt;br /&gt;
* [03:00] Добавить возможность вести историю лицензий. Т.е. если кастомер обновил лицензию, то я ее не просто редактирую а делаю к ней какой-то аддишен - таким образом что в RM остается (и может быть отображена) инфа про старую лицензию.&lt;br /&gt;
* [01:00] Добавить колоночку &amp;quot;Latest Version&amp;quot; сразу после колонки &amp;quot;Product&amp;quot; на главной странице. Выводить туда номер самой распоследней версии (вклюачая бету).&lt;br /&gt;
* [00:20] Добавить фичу: разработчик (указан в свойствах продукта) должен получать релиз ноутсы. Но при этом он не должен быть подписчиком (учитываца в статистике и т.д.).&lt;br /&gt;
* [00:45] При добавлении нового релиза вставлять в поле версии номер последней +1 в последней цифре.&lt;br /&gt;
* [самдурак (ящик хуйня@mdilooks.com)] RM высаживается при попытке отослать emails продукта Test Product 1 - он часть бандла Test Bundle.&lt;br /&gt;
* [fixed] Некорретный парсинг контактов вида Graham Neden &amp;lt;graham@starfish.tv&amp;gt;  (Starfish Technologies Ltd) при редактировании кастомера.&lt;br /&gt;
* [fixed] При добавлении нового кантакта к кастомеру этот контакт подписывается на все имеющиеся на данный момент у кастомера подписки. Это неверно - новый контакт (при добавлении его) не должен ни на что подписываться.&lt;br /&gt;
* [explained] Что означает галко левая которая стоит напротив email, у которого лицензия на бандл?&lt;br /&gt;
* [00:10] Убрать график downloads с главной страницы. Он довольно медленный и держать его на странице, через которую постоянно ходишь в процессе навигации, невозможно. :( Временно разместить его на отдельной страничке.&lt;br /&gt;
* [??:??] Наследование/объединение продуктов (см. полное описание ниже).&lt;br /&gt;
* [00:15] Добавить на страницу [http://rm.medialooks.com/product/show/40 о продукте] инфо о том какие он в себя включает (если бандл), и за чьими релизами смотрит (если он смотрит).&lt;br /&gt;
* [00:15] Переделать интерфейс задания продуктов для бандла. Через Ctrl жутко высадно. Лучше либо галки, либо два списка, и кноки туда-сюда перекидывать.&lt;br /&gt;
* [00:15] Переместить главною меню на верх: &amp;quot;Products | Customers | New Releases (5) | Users&amp;quot;. &amp;quot;New Releases&amp;quot; это вместо &amp;quot;Distributives&amp;quot;; в скобках выводить количество неомодерированных релизов.&lt;br /&gt;
* [00:10] Создать продуктовое меню вот [http://rm.medialooks.com/product/show/15 тут]: &amp;quot;Add new release | View leads | View customers | Edit&amp;quot;. Из таблицы на главной странице убрать столбцы Edit и Delete. Там же заменить &amp;quot;Site Subscribers&amp;quot; на &amp;quot;Leads&amp;quot;, а &amp;quot;Licenses&amp;quot; на &amp;quot;Customers&amp;quot;. Ссылку из цифр в этих столбцах убрать, сделать ее рядом в виде &amp;quot;(View)&amp;quot; (а то не очень удобно в цифры кликать).&lt;br /&gt;
* [00:25] проверка кастомер.таг по частям. т.е. если таг совпадает целиком то не дает создать. а если совпадает по частям (пробелами делится) то выводит предупреждение со списком найденных совпадений и после повторного нажатия Сейв создает&lt;br /&gt;
&lt;br /&gt;
==TODO==&lt;br /&gt;
&lt;br /&gt;
===Bugs, Fixes, Questions===&lt;br /&gt;
&lt;br /&gt;
===Backups to Amazon S3===&lt;br /&gt;
&lt;br /&gt;
Давай будем наш бэкапный файл закачивать на амазон раз в неделю. Я сделал там аккаунт.&lt;br /&gt;
&lt;br /&gt;
===Tasks===&lt;br /&gt;
&lt;br /&gt;
* Разобрацо в чем проблема с настройкой goals в гугле.&lt;br /&gt;
&lt;br /&gt;
* Add abstract tags feature.&lt;br /&gt;
( т.е. сперва сделать лицензии одно тег-поле, патом убрать роялтис и тайп, патом сделать фильтрацию кастомеров по вот этим тагам лицензии)&lt;br /&gt;
&lt;br /&gt;
* Если переименовать продукт, то перестает работать общая ссылка на даунлоад и по-версионные ссылки.&lt;br /&gt;
&lt;br /&gt;
* Contact as System Item (see task description).&lt;br /&gt;
&lt;br /&gt;
* Search (see task description).&lt;br /&gt;
&lt;br /&gt;
* Сортировка по тагам во вьюхе кастомеров. Статистика по тагам.&lt;br /&gt;
&lt;br /&gt;
* Добавить вывод количества лицензионных подписок в графу &amp;quot;Site Subscribers&amp;quot;. Графу переименовать в &amp;quot;Subscribers (Interested/Licensed)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* Группировка продуктов по тегу &amp;quot;Product type&amp;quot; на главной странице. Соответственно в свойства продукта нужно добавить такое поле. Группирока осуществляется по сочетанию тегов - например, &amp;quot;sdks vsevolod&amp;quot;, &amp;quot;sdks dkn&amp;quot;, &amp;quot;filters dkn&amp;quot; - это три разных группы (а у кадого продукта в этих группах по 2 тега). Внутри групп сортировать продукты по общему количеству подписок на апдейты (просто подписка или по лицензии). Группы сортировать по суммурному количеству подписок.&lt;br /&gt;
&lt;br /&gt;
* Общие рассылки. Научиться делать рассылки по всем клиентам. Это должна быть отдельная подписка.&lt;br /&gt;
&lt;br /&gt;
* Персонализированный учет закачек. Мы хотим про каждого клиента знать скачивает он новые версии или нет. В письме, которое он получает при выходе новой версии, можно делать уникальный урл, чтобы система знала нажал он или нет. Второй подход - это использовать куки на тот случай, если клиент скачивает с сайта.&lt;br /&gt;
&lt;br /&gt;
* Статистика закачек. Научицо разделять новые (приходящие с рекламы или из поиска) и повторные (наши кастомеры качают новые версии) закачки.&lt;br /&gt;
&lt;br /&gt;
* Подумать. Если есть идеи как интегрировать с Google Analytics (GA)  AdWords (AW) - было бы клева. Например вытаскивать из GA данные о посещениях конкретной страницы и сравнивать их с данными по закачкам.&lt;br /&gt;
&lt;br /&gt;
* Проблема с возможностью создать продукт у которого все версии - беты. И тогда не работает общая ссылка.&lt;br /&gt;
&lt;br /&gt;
* Проблема с RSS-фидом блога (у меня почему-то аутлук пытаецо запустицо).&lt;br /&gt;
&lt;br /&gt;
* Research on online license document generation. Существует ли какой-нить вебовский генератор PDF?&lt;br /&gt;
&lt;br /&gt;
* Добавить в свойства кастомера еще одно таговое поле &amp;quot;Exhibitions&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* Подписка Update Discount Expiration. Ввести для лицензий которые expired только после 01.12.2009. Т.е. письма по этой подписке должны начать ходить примерно с 01.05.2010.&lt;br /&gt;
&lt;br /&gt;
===Это потом===&lt;br /&gt;
&lt;br /&gt;
* Переделать форму контактов на сайте. Добавить возможность указать второй email. Отдельные поля под скайп, телефон.&lt;br /&gt;
&lt;br /&gt;
* Подписка royalties.&lt;br /&gt;
&lt;br /&gt;
===User Rights===&lt;br /&gt;
&lt;br /&gt;
* Разобраться с ролями и отображением соотв. инфы.&lt;br /&gt;
&lt;br /&gt;
===Customer download tracking===&lt;br /&gt;
&lt;br /&gt;
* Индивидуальные даунлоад ссылки для отслеживания какой подписчик нажал на сцылку.&lt;br /&gt;
* Отписка или оповещение администратора о подписчиках который не нажимают на ссылки (признак того что не получают письма или не читают их - но при этом по какой-то причине не отписываются).&lt;br /&gt;
&lt;br /&gt;
===Наследование/объединение продуктов===&lt;br /&gt;
&lt;br /&gt;
Необходимо поддержать два следующих сценария:&lt;br /&gt;
&lt;br /&gt;
1) Существует продукт DirectShow Filter Pack - он включает в себя большой набор DirectShow фильтров. Каждый фильтр релизится по своему графику (т.е. без графика) - поэтому отдельного download для него не существует. Т.е. продукт в данном случае это просто такая лицензия, т.е. совокупность цены и набора компонентов. В RM возможность создавать такие лицензии должна быть реализована в виде продукта в общем списке - просто у него будут какие-то дополнительные свойства как-то &amp;quot;включать в себя такие-то продукты&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Соответственно, при создании лицензии на такой продукт нужно сделать так чтобы:&lt;br /&gt;
&lt;br /&gt;
* Контакты кастомера могли быть подписаны на релизы (updates) по каждому из продуктов отдельно. По-умолчанию - создается подписка на все входящие в пакет продукты. Отписаться от каждого из продуктов в отдельности можно через сцылку на отписку из письма или это можно сделать через редактирование свойств лицензии.&lt;br /&gt;
&lt;br /&gt;
* Контакты кастомера не были дубликатно подписаны на эти же самые продукты через другие механизмы RM.&lt;br /&gt;
&lt;br /&gt;
* Подписка License Expired в данном случае остается одна - только на общий продукт. Но в случае, если подписка истекла, то при рассылке Release Updates в тело письма вставляется соотв. сообщение (т.к. это сейчас сделано для обычных лицензий).&lt;br /&gt;
&lt;br /&gt;
* В случае если для продукты DirectShow Filter Pack - RM конечно же имеет право наложить в штаны но после этого должен немедленно собрацо и вести себя так как будто он точно знает что нужно делать - а именно вести себя так как будто DirectShow Filter Pack это самый обычный продукт (т.е. появитсо в Distributives и дать возможность сделать рассылку). Т.е. обычная рассылка Release Updates для продукта такого типа тоже создаецо.&lt;br /&gt;
&lt;br /&gt;
2) Существуют продукты DeckLink SDK, Playout SDK и Multimedia SDK, для которых мы решили в целях упрощения использовать общий даунлоад. В данном случае все остается как есть - т.е. лицензии создаются именно под эти продукты, отдельно ведется статистика подписок, лицензий и закачек - но используется только один download.&lt;br /&gt;
&lt;br /&gt;
Например, мы говорим что DeckLink SDK и Playout SDK - оба используют download Multimedia SDK. Разработчик закачивает новый релиз именно для Multimedia SDK. Этот новый релиз появляется в разделе Distributives. Я его модерю, нажимаю сделать рассылку - и, как и раньше, выходят три блока писем - для DeckLink SDK, Playout SDk и Multimedia SDK.&lt;br /&gt;
&lt;br /&gt;
Особенность: ссылка во всех письмах теперь называется multimedia sdk. Делать редиректы и переименования - не надо (иначе клиенты будут говорить я скачал Playout SDK а мне ставится Multimedia SDK).&lt;br /&gt;
&lt;br /&gt;
===Industry-Based Subscriptions===&lt;br /&gt;
&lt;br /&gt;
Добавить возможность создавать рассылки по индустриям. В целом все аналогично тому как сейчас работают подписки на новые релизы. Можно подписывать контакты руками. А при рассылке заодно рассылать тем, кто является клиентом какого-либо продукта и тоже записан в эту индустрию.&lt;br /&gt;
&lt;br /&gt;
Возможно, когда у нас появятся разные способы делать рассылки, придется придумывать способы не слать дважды по одному и тому же поводу. Например, заводить для рассылки какой-нибудь ID.&lt;br /&gt;
&lt;br /&gt;
===Contact as System Item===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать контакты как самостоятельную сущность.&lt;br /&gt;
&lt;br /&gt;
Контакт представляет из себя имя (текстовое поле например &amp;quot;Andrew Okunev) и ассоциированный c ним набор полей:&lt;br /&gt;
&lt;br /&gt;
* email name (используется в подстановках в письмах; если пусто, используется &amp;quot;customer&amp;quot;)&lt;br /&gt;
* email (любое количество)&lt;br /&gt;
* skype (любое количество)&lt;br /&gt;
* телефон (любое количество)&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать отображение и редактирование свойств для любого из контактов. Например:&lt;br /&gt;
&lt;br /&gt;
* Когда добавлен в систему&lt;br /&gt;
* С какими компаниями (Customers) ассоциирован.&lt;br /&gt;
* С какими лицензиями ассоциирован.&lt;br /&gt;
* На какие подписки подписан.&lt;br /&gt;
&lt;br /&gt;
Все это нужно реализовать в одной вьюхе. Редактирование доступно только администратору системы.&lt;br /&gt;
&lt;br /&gt;
Примечания:&lt;br /&gt;
&lt;br /&gt;
* В системе должны отсутствовать дубликаты по email. Дубликаты по имени допустимы (т.е. когда одинаковое имя но разный email), но должна быть возможность их соединить (т.е. превратить в один контакт с двумя email). Реализовать это можно через отдельную вьюху, доступную администратору.&lt;br /&gt;
&lt;br /&gt;
* Если у контакта больше одного email, то любой из них может использоваться для авторизации.&lt;br /&gt;
&lt;br /&gt;
* Новый контакт (как сущность) создается при любом добавлении контакта в систему (например, при создании подписки через модуль subscribers.&lt;br /&gt;
&lt;br /&gt;
===Universal Uploads===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать возможность закачивать в RM абстрактные (не привязанные к какому-либо продукту) файлы. При этом каждому такому файлу должен быть по-умолчанию присвоен срок жизни - 30 дней. После чего файл автоматически удаляется. Файлы можно защищать паролем, который требуется для скачки.&lt;br /&gt;
&lt;br /&gt;
Каждый файл привязан к какому-либо юзеру. Только у этого пользователя (или у администратора) есть возможность добавлять к своему аккаунту файлы или удалять их. Каждую закачку можно удалить или обновить файл в ней.&lt;br /&gt;
&lt;br /&gt;
Соответственно, необходимо создать две новых вьюхи:&lt;br /&gt;
&lt;br /&gt;
1) Вьюха создания закачки. Опции: текстедит срок жизни (по-умолчанию вбито 30), чекбокс защитить паролем, путь к файлу.&lt;br /&gt;
&lt;br /&gt;
2) Вьюха список закачек данного юзера. Отображать: имя файла, количество скачек, оставшийся срок жизни, дата закачки. Имя файла является ссылкой на данный файл (вида rm.medialooks.com/...).&lt;br /&gt;
&lt;br /&gt;
В меню каждого юзера должно быть что-то вроде &amp;quot;My Uploads&amp;quot;, которая ведет на вьюху (2).&lt;br /&gt;
&lt;br /&gt;
===Customer Access===&lt;br /&gt;
&lt;br /&gt;
Нужно научицо давать кастомерам доступ к аплоадам. Для этого нужно реализовать в RM еще одну роль - &amp;quot;Customer&amp;quot;. Роль &amp;quot;User&amp;quot; нужно переименовать в &amp;quot;Developer&amp;quot;. Каждый контакт, добавленный в систему, должен получать соотв. статус и автоматически сгенеренный пароль. Никаких писем при заведении пользователей пока автоматически рассылать не надо. Однако, при первой попытке зайти в систему, кастомер должен по почте получить свой пароль. Залогинившись, он имеет доступ только к своим аплоадам (в будущем добавим еще подписки и лицензии).&lt;br /&gt;
&lt;br /&gt;
===Search===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать поиск в системе. Форма поиска - одна на все случаи. Она должна размещаться на всех страницах системы.&lt;br /&gt;
&lt;br /&gt;
По каким полям искать:&lt;br /&gt;
&lt;br /&gt;
* По контактам.&lt;br /&gt;
* По названию клиента.&lt;br /&gt;
* По тегу клиента.&lt;br /&gt;
&lt;br /&gt;
'''Пример.''' Если в поле поиска ввден запрос:&lt;br /&gt;
&lt;br /&gt;
Andrew A. Okunev &amp;lt;dev@medialooks.com&amp;gt; (MediaLooks)&lt;br /&gt;
&lt;br /&gt;
- то сперва нужно произвести поиск отдельно по &amp;quot;Osman Yel&amp;quot;, &amp;quot;dev@medialooks.com&amp;quot; и &amp;quot;MediaLooks&amp;quot;. Эти результаты вывести в первую очередь.&lt;br /&gt;
&lt;br /&gt;
Во-вторую - выделить из поисковой строки название домена и отрезать от него домен первого уровня. Т.е. в нашем примере искать по строке &amp;quot;medialooks&amp;quot;. Эти результаты вывести во вторую очередь.&lt;br /&gt;
&lt;br /&gt;
Кроме этого, естественно должен работать поиск в том случае если исходный запрос это &amp;quot;dev@medialooks.com&amp;quot; или просто &amp;quot;medialooks&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===LinkedIn Integration===&lt;br /&gt;
&lt;br /&gt;
Зачем? Любая система управления контактами страдает одним недостатком - ей неоткуда узнать о том, что у кого-то поменялся email или телефон.&lt;br /&gt;
&lt;br /&gt;
Предполагается что пользователи LinkedIn (за исключением [http://www.linkedin.com/pub/2/26b/926 некоторых] поддерживают свой профиль в актуальном состоянии. В частности, следят за тем, чтобы в профиле был актуальный email.&lt;br /&gt;
&lt;br /&gt;
В результате хочется получить поддержку следующих сценариев:&lt;br /&gt;
&lt;br /&gt;
* Узнавать об изменениях в контактной информации наших клиентов.&lt;br /&gt;
* Приглашать в нашу сеть клиентов, которые уже используют LinkedIn.&lt;br /&gt;
* Приглашать в LinkedIn тех клиентов, которые его пока не используют.&lt;br /&gt;
* Если клиент для общение с нами использует один email, а для LinkedIn - другой, - то нам нужно узнать этот email и использовать его как запасной/альтернативный.&lt;br /&gt;
&lt;br /&gt;
Для начала думаю следует просто проверить, позволяет ли API делать следующее:&lt;br /&gt;
&lt;br /&gt;
* Авторизоваться в системе под каким-то реальным логином (например, подо мной).&lt;br /&gt;
* Поискать пользователей по email.&lt;br /&gt;
* Получить email любого из моих контактов.&lt;br /&gt;
* Послать конкретному пользователю инвайт, иметь возможность указать кастомный текст для инвайта.&lt;br /&gt;
* Пригласить нового пользователя через email, то же самое с кастомным текстом.&lt;br /&gt;
&lt;br /&gt;
Задача неактуальна поскольку как я понял от LinkedIn нужно сначала получить одобрение на использование API:&lt;br /&gt;
&lt;br /&gt;
* http://www.linkedin.com/static?key=developers_apis&lt;br /&gt;
&lt;br /&gt;
==Done Tasks==&lt;br /&gt;
&lt;br /&gt;
* [[LMS/CMS Tasks: Done]]&lt;br /&gt;
&lt;br /&gt;
[[Category: Tasks]]&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Ivan</name></author>	</entry>

	<entry>
		<id>http://wiki.avobjects.com/Dev:RM/LMS_Tasks</id>
		<title>Dev:RM/LMS Tasks</title>
		<link rel="alternate" type="text/html" href="http://wiki.avobjects.com/Dev:RM/LMS_Tasks"/>
				<updated>2009-02-10T15:56:24Z</updated>
		
		<summary type="html">&lt;p&gt;Ivan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See also:&lt;br /&gt;
&lt;br /&gt;
* [[CMS Tasks]]&lt;br /&gt;
&lt;br /&gt;
==RM/LMS Tasks==&lt;br /&gt;
&lt;br /&gt;
==DONE==&lt;br /&gt;
&lt;br /&gt;
* [01:00] SVN setup.&lt;br /&gt;
* [00:10] Выводить вот [http://rm.medialooks.com/customer/show/119 тут] информацию &amp;quot;Last edited: X days ago.&amp;quot; (доделка апдейта кастомер.апдейтед_эт при манипуляциях с лицензиями)&lt;br /&gt;
* [00:05] Ссылку нью кастомер снизу перенести наверх: &amp;quot;Add new customer&amp;quot;. Send LicenseExpired убрать.&lt;br /&gt;
* [00:20] Поменять from/reply-to писем [http://rm.medialooks.com/product/subscribers/31 sent to all] на: MediaLooks &amp;lt;dev@medialooks.com&amp;gt;. После рассылки выводить сообщение &amp;quot;15 emails sent to subscribers.&amp;quot; 15 это количество писем.&lt;br /&gt;
* [01:20] Переработать миханизм добавления контактов в кастомера. При пастинге в поле Name строки вида &lt;br /&gt;
:'Andrew A. Okunev &amp;lt;dev@medialooks.com&amp;gt; (MediaLooks)'&lt;br /&gt;
:'&amp;quot;Andrew A. Okunev&amp;quot; &amp;lt;dev@medialooks.com&amp;gt; (MediaLooks)' &lt;br /&gt;
:'Andrew A. Okunev &amp;lt;dev@medialooks.com&amp;gt;'&lt;br /&gt;
:'&amp;quot;Andrew A. Okunev&amp;quot; &amp;lt;dev@medialooks.com&amp;gt;' &lt;br /&gt;
:- сразу выделять из этой строки Name и Email и вставлять в соответствующие поля. То что в скобках - просто отбрасывать.&lt;br /&gt;
* [03:00] Добавить возможность вести историю лицензий. Т.е. если кастомер обновил лицензию, то я ее не просто редактирую а делаю к ней какой-то аддишен - таким образом что в RM остается (и может быть отображена) инфа про старую лицензию.&lt;br /&gt;
* [01:00] Добавить колоночку &amp;quot;Latest Version&amp;quot; сразу после колонки &amp;quot;Product&amp;quot; на главной странице. Выводить туда номер самой распоследней версии (вклюачая бету).&lt;br /&gt;
* [00:20] Добавить фичу: разработчик (указан в свойствах продукта) должен получать релиз ноутсы. Но при этом он не должен быть подписчиком (учитываца в статистике и т.д.).&lt;br /&gt;
* [00:45] При добавлении нового релиза вставлять в поле версии номер последней +1 в последней цифре.&lt;br /&gt;
* [самдурак (ящик хуйня@mdilooks.com)] RM высаживается при попытке отослать emails продукта Test Product 1 - он часть бандла Test Bundle.&lt;br /&gt;
* [fixed] Некорретный парсинг контактов вида Graham Neden &amp;lt;graham@starfish.tv&amp;gt;  (Starfish Technologies Ltd) при редактировании кастомера.&lt;br /&gt;
* [fixed] При добавлении нового кантакта к кастомеру этот контакт подписывается на все имеющиеся на данный момент у кастомера подписки. Это неверно - новый контакт (при добавлении его) не должен ни на что подписываться.&lt;br /&gt;
* [explained] Что означает галко левая которая стоит напротив email, у которого лицензия на бандл?&lt;br /&gt;
* [00:10] Убрать график downloads с главной страницы. Он довольно медленный и держать его на странице, через которую постоянно ходишь в процессе навигации, невозможно. :( Временно разместить его на отдельной страничке.&lt;br /&gt;
* [??:??] Наследование/объединение продуктов (см. полное описание ниже).&lt;br /&gt;
* [00:15] Добавить на страницу [http://rm.medialooks.com/product/show/40 о продукте] инфо о том какие он в себя включает (если бандл), и за чьими релизами смотрит (если он смотрит).&lt;br /&gt;
* [00:15] Переделать интерфейс задания продуктов для бандла. Через Ctrl жутко высадно. Лучше либо галки, либо два списка, и кноки туда-сюда перекидывать.&lt;br /&gt;
* [00:15] Переместить главною меню на верх: &amp;quot;Products | Customers | New Releases (5) | Users&amp;quot;. &amp;quot;New Releases&amp;quot; это вместо &amp;quot;Distributives&amp;quot;; в скобках выводить количество неомодерированных релизов.&lt;br /&gt;
* [00:10] Создать продуктовое меню вот [http://rm.medialooks.com/product/show/15 тут]: &amp;quot;Add new release | View leads | View customers | Edit&amp;quot;. Из таблицы на главной странице убрать столбцы Edit и Delete. Там же заменить &amp;quot;Site Subscribers&amp;quot; на &amp;quot;Leads&amp;quot;, а &amp;quot;Licenses&amp;quot; на &amp;quot;Customers&amp;quot;. Ссылку из цифр в этих столбцах убрать, сделать ее рядом в виде &amp;quot;(View)&amp;quot; (а то не очень удобно в цифры кликать).&lt;br /&gt;
&lt;br /&gt;
==TODO==&lt;br /&gt;
&lt;br /&gt;
===Bugs, Fixes, Questions===&lt;br /&gt;
&lt;br /&gt;
* [confirmed] Проверка по customer tag на наличие дубликата при создании кастомера. В случае если есть кастомер tag1 tag2, и мы создаем кастомера tag1 - то проверка не срабатывает. Также продумать возможность других сценариев. Цель: при добавлении кастомера оповещать администратора о наличии кастомера с похожими тагами. В противном случае перед созданием приходится делать поиск.&lt;br /&gt;
&lt;br /&gt;
===Backups to Amazon S3===&lt;br /&gt;
&lt;br /&gt;
Давай будем наш бэкапный файл закачивать на амазон раз в неделю. Я сделал там аккаунт.&lt;br /&gt;
&lt;br /&gt;
===Tasks===&lt;br /&gt;
&lt;br /&gt;
* Разобрацо в чем проблема с настройкой goals в гугле.&lt;br /&gt;
&lt;br /&gt;
* Add abstract tags feature.&lt;br /&gt;
( т.е. сперва сделать лицензии одно тег-поле, патом убрать роялтис и тайп, патом сделать фильтрацию кастомеров по вот этим тагам лицензии)&lt;br /&gt;
&lt;br /&gt;
* Если переименовать продукт, то перестает работать общая ссылка на даунлоад и по-версионные ссылки.&lt;br /&gt;
&lt;br /&gt;
* Contact as System Item (see task description).&lt;br /&gt;
&lt;br /&gt;
* Search (see task description).&lt;br /&gt;
&lt;br /&gt;
* Сортировка по тагам во вьюхе кастомеров. Статистика по тагам.&lt;br /&gt;
&lt;br /&gt;
* Добавить вывод количества лицензионных подписок в графу &amp;quot;Site Subscribers&amp;quot;. Графу переименовать в &amp;quot;Subscribers (Interested/Licensed)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* Группировка продуктов по тегу &amp;quot;Product type&amp;quot; на главной странице. Соответственно в свойства продукта нужно добавить такое поле. Группирока осуществляется по сочетанию тегов - например, &amp;quot;sdks vsevolod&amp;quot;, &amp;quot;sdks dkn&amp;quot;, &amp;quot;filters dkn&amp;quot; - это три разных группы (а у кадого продукта в этих группах по 2 тега). Внутри групп сортировать продукты по общему количеству подписок на апдейты (просто подписка или по лицензии). Группы сортировать по суммурному количеству подписок.&lt;br /&gt;
&lt;br /&gt;
* Общие рассылки. Научиться делать рассылки по всем клиентам. Это должна быть отдельная подписка.&lt;br /&gt;
&lt;br /&gt;
* Персонализированный учет закачек. Мы хотим про каждого клиента знать скачивает он новые версии или нет. В письме, которое он получает при выходе новой версии, можно делать уникальный урл, чтобы система знала нажал он или нет. Второй подход - это использовать куки на тот случай, если клиент скачивает с сайта.&lt;br /&gt;
&lt;br /&gt;
* Статистика закачек. Научицо разделять новые (приходящие с рекламы или из поиска) и повторные (наши кастомеры качают новые версии) закачки.&lt;br /&gt;
&lt;br /&gt;
* Подумать. Если есть идеи как интегрировать с Google Analytics (GA)  AdWords (AW) - было бы клева. Например вытаскивать из GA данные о посещениях конкретной страницы и сравнивать их с данными по закачкам.&lt;br /&gt;
&lt;br /&gt;
* Проблема с возможностью создать продукт у которого все версии - беты. И тогда не работает общая ссылка.&lt;br /&gt;
&lt;br /&gt;
* Проблема с RSS-фидом блога (у меня почему-то аутлук пытаецо запустицо).&lt;br /&gt;
&lt;br /&gt;
* Research on online license document generation. Существует ли какой-нить вебовский генератор PDF?&lt;br /&gt;
&lt;br /&gt;
* Добавить в свойства кастомера еще одно таговое поле &amp;quot;Exhibitions&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* Подписка Update Discount Expiration. Ввести для лицензий которые expired только после 01.12.2009. Т.е. письма по этой подписке должны начать ходить примерно с 01.05.2010.&lt;br /&gt;
&lt;br /&gt;
===Это потом===&lt;br /&gt;
&lt;br /&gt;
* Переделать форму контактов на сайте. Добавить возможность указать второй email. Отдельные поля под скайп, телефон.&lt;br /&gt;
&lt;br /&gt;
* Подписка royalties.&lt;br /&gt;
&lt;br /&gt;
===User Rights===&lt;br /&gt;
&lt;br /&gt;
* Разобраться с ролями и отображением соотв. инфы.&lt;br /&gt;
&lt;br /&gt;
===Customer download tracking===&lt;br /&gt;
&lt;br /&gt;
* Индивидуальные даунлоад ссылки для отслеживания какой подписчик нажал на сцылку.&lt;br /&gt;
* Отписка или оповещение администратора о подписчиках который не нажимают на ссылки (признак того что не получают письма или не читают их - но при этом по какой-то причине не отписываются).&lt;br /&gt;
&lt;br /&gt;
===Наследование/объединение продуктов===&lt;br /&gt;
&lt;br /&gt;
Необходимо поддержать два следующих сценария:&lt;br /&gt;
&lt;br /&gt;
1) Существует продукт DirectShow Filter Pack - он включает в себя большой набор DirectShow фильтров. Каждый фильтр релизится по своему графику (т.е. без графика) - поэтому отдельного download для него не существует. Т.е. продукт в данном случае это просто такая лицензия, т.е. совокупность цены и набора компонентов. В RM возможность создавать такие лицензии должна быть реализована в виде продукта в общем списке - просто у него будут какие-то дополнительные свойства как-то &amp;quot;включать в себя такие-то продукты&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Соответственно, при создании лицензии на такой продукт нужно сделать так чтобы:&lt;br /&gt;
&lt;br /&gt;
* Контакты кастомера могли быть подписаны на релизы (updates) по каждому из продуктов отдельно. По-умолчанию - создается подписка на все входящие в пакет продукты. Отписаться от каждого из продуктов в отдельности можно через сцылку на отписку из письма или это можно сделать через редактирование свойств лицензии.&lt;br /&gt;
&lt;br /&gt;
* Контакты кастомера не были дубликатно подписаны на эти же самые продукты через другие механизмы RM.&lt;br /&gt;
&lt;br /&gt;
* Подписка License Expired в данном случае остается одна - только на общий продукт. Но в случае, если подписка истекла, то при рассылке Release Updates в тело письма вставляется соотв. сообщение (т.к. это сейчас сделано для обычных лицензий).&lt;br /&gt;
&lt;br /&gt;
* В случае если для продукты DirectShow Filter Pack - RM конечно же имеет право наложить в штаны но после этого должен немедленно собрацо и вести себя так как будто он точно знает что нужно делать - а именно вести себя так как будто DirectShow Filter Pack это самый обычный продукт (т.е. появитсо в Distributives и дать возможность сделать рассылку). Т.е. обычная рассылка Release Updates для продукта такого типа тоже создаецо.&lt;br /&gt;
&lt;br /&gt;
2) Существуют продукты DeckLink SDK, Playout SDK и Multimedia SDK, для которых мы решили в целях упрощения использовать общий даунлоад. В данном случае все остается как есть - т.е. лицензии создаются именно под эти продукты, отдельно ведется статистика подписок, лицензий и закачек - но используется только один download.&lt;br /&gt;
&lt;br /&gt;
Например, мы говорим что DeckLink SDK и Playout SDK - оба используют download Multimedia SDK. Разработчик закачивает новый релиз именно для Multimedia SDK. Этот новый релиз появляется в разделе Distributives. Я его модерю, нажимаю сделать рассылку - и, как и раньше, выходят три блока писем - для DeckLink SDK, Playout SDk и Multimedia SDK.&lt;br /&gt;
&lt;br /&gt;
Особенность: ссылка во всех письмах теперь называется multimedia sdk. Делать редиректы и переименования - не надо (иначе клиенты будут говорить я скачал Playout SDK а мне ставится Multimedia SDK).&lt;br /&gt;
&lt;br /&gt;
===Industry-Based Subscriptions===&lt;br /&gt;
&lt;br /&gt;
Добавить возможность создавать рассылки по индустриям. В целом все аналогично тому как сейчас работают подписки на новые релизы. Можно подписывать контакты руками. А при рассылке заодно рассылать тем, кто является клиентом какого-либо продукта и тоже записан в эту индустрию.&lt;br /&gt;
&lt;br /&gt;
Возможно, когда у нас появятся разные способы делать рассылки, придется придумывать способы не слать дважды по одному и тому же поводу. Например, заводить для рассылки какой-нибудь ID.&lt;br /&gt;
&lt;br /&gt;
===Contact as System Item===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать контакты как самостоятельную сущность.&lt;br /&gt;
&lt;br /&gt;
Контакт представляет из себя имя (текстовое поле например &amp;quot;Andrew Okunev) и ассоциированный c ним набор полей:&lt;br /&gt;
&lt;br /&gt;
* email name (используется в подстановках в письмах; если пусто, используется &amp;quot;customer&amp;quot;)&lt;br /&gt;
* email (любое количество)&lt;br /&gt;
* skype (любое количество)&lt;br /&gt;
* телефон (любое количество)&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать отображение и редактирование свойств для любого из контактов. Например:&lt;br /&gt;
&lt;br /&gt;
* Когда добавлен в систему&lt;br /&gt;
* С какими компаниями (Customers) ассоциирован.&lt;br /&gt;
* С какими лицензиями ассоциирован.&lt;br /&gt;
* На какие подписки подписан.&lt;br /&gt;
&lt;br /&gt;
Все это нужно реализовать в одной вьюхе. Редактирование доступно только администратору системы.&lt;br /&gt;
&lt;br /&gt;
Примечания:&lt;br /&gt;
&lt;br /&gt;
* В системе должны отсутствовать дубликаты по email. Дубликаты по имени допустимы (т.е. когда одинаковое имя но разный email), но должна быть возможность их соединить (т.е. превратить в один контакт с двумя email). Реализовать это можно через отдельную вьюху, доступную администратору.&lt;br /&gt;
&lt;br /&gt;
* Если у контакта больше одного email, то любой из них может использоваться для авторизации.&lt;br /&gt;
&lt;br /&gt;
* Новый контакт (как сущность) создается при любом добавлении контакта в систему (например, при создании подписки через модуль subscribers.&lt;br /&gt;
&lt;br /&gt;
===Universal Uploads===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать возможность закачивать в RM абстрактные (не привязанные к какому-либо продукту) файлы. При этом каждому такому файлу должен быть по-умолчанию присвоен срок жизни - 30 дней. После чего файл автоматически удаляется. Файлы можно защищать паролем, который требуется для скачки.&lt;br /&gt;
&lt;br /&gt;
Каждый файл привязан к какому-либо юзеру. Только у этого пользователя (или у администратора) есть возможность добавлять к своему аккаунту файлы или удалять их. Каждую закачку можно удалить или обновить файл в ней.&lt;br /&gt;
&lt;br /&gt;
Соответственно, необходимо создать две новых вьюхи:&lt;br /&gt;
&lt;br /&gt;
1) Вьюха создания закачки. Опции: текстедит срок жизни (по-умолчанию вбито 30), чекбокс защитить паролем, путь к файлу.&lt;br /&gt;
&lt;br /&gt;
2) Вьюха список закачек данного юзера. Отображать: имя файла, количество скачек, оставшийся срок жизни, дата закачки. Имя файла является ссылкой на данный файл (вида rm.medialooks.com/...).&lt;br /&gt;
&lt;br /&gt;
В меню каждого юзера должно быть что-то вроде &amp;quot;My Uploads&amp;quot;, которая ведет на вьюху (2).&lt;br /&gt;
&lt;br /&gt;
===Customer Access===&lt;br /&gt;
&lt;br /&gt;
Нужно научицо давать кастомерам доступ к аплоадам. Для этого нужно реализовать в RM еще одну роль - &amp;quot;Customer&amp;quot;. Роль &amp;quot;User&amp;quot; нужно переименовать в &amp;quot;Developer&amp;quot;. Каждый контакт, добавленный в систему, должен получать соотв. статус и автоматически сгенеренный пароль. Никаких писем при заведении пользователей пока автоматически рассылать не надо. Однако, при первой попытке зайти в систему, кастомер должен по почте получить свой пароль. Залогинившись, он имеет доступ только к своим аплоадам (в будущем добавим еще подписки и лицензии).&lt;br /&gt;
&lt;br /&gt;
===Search===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать поиск в системе. Форма поиска - одна на все случаи. Она должна размещаться на всех страницах системы.&lt;br /&gt;
&lt;br /&gt;
По каким полям искать:&lt;br /&gt;
&lt;br /&gt;
* По контактам.&lt;br /&gt;
* По названию клиента.&lt;br /&gt;
* По тегу клиента.&lt;br /&gt;
&lt;br /&gt;
'''Пример.''' Если в поле поиска ввден запрос:&lt;br /&gt;
&lt;br /&gt;
Andrew A. Okunev &amp;lt;dev@medialooks.com&amp;gt; (MediaLooks)&lt;br /&gt;
&lt;br /&gt;
- то сперва нужно произвести поиск отдельно по &amp;quot;Osman Yel&amp;quot;, &amp;quot;dev@medialooks.com&amp;quot; и &amp;quot;MediaLooks&amp;quot;. Эти результаты вывести в первую очередь.&lt;br /&gt;
&lt;br /&gt;
Во-вторую - выделить из поисковой строки название домена и отрезать от него домен первого уровня. Т.е. в нашем примере искать по строке &amp;quot;medialooks&amp;quot;. Эти результаты вывести во вторую очередь.&lt;br /&gt;
&lt;br /&gt;
Кроме этого, естественно должен работать поиск в том случае если исходный запрос это &amp;quot;dev@medialooks.com&amp;quot; или просто &amp;quot;medialooks&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===LinkedIn Integration===&lt;br /&gt;
&lt;br /&gt;
Зачем? Любая система управления контактами страдает одним недостатком - ей неоткуда узнать о том, что у кого-то поменялся email или телефон.&lt;br /&gt;
&lt;br /&gt;
Предполагается что пользователи LinkedIn (за исключением [http://www.linkedin.com/pub/2/26b/926 некоторых] поддерживают свой профиль в актуальном состоянии. В частности, следят за тем, чтобы в профиле был актуальный email.&lt;br /&gt;
&lt;br /&gt;
В результате хочется получить поддержку следующих сценариев:&lt;br /&gt;
&lt;br /&gt;
* Узнавать об изменениях в контактной информации наших клиентов.&lt;br /&gt;
* Приглашать в нашу сеть клиентов, которые уже используют LinkedIn.&lt;br /&gt;
* Приглашать в LinkedIn тех клиентов, которые его пока не используют.&lt;br /&gt;
* Если клиент для общение с нами использует один email, а для LinkedIn - другой, - то нам нужно узнать этот email и использовать его как запасной/альтернативный.&lt;br /&gt;
&lt;br /&gt;
Для начала думаю следует просто проверить, позволяет ли API делать следующее:&lt;br /&gt;
&lt;br /&gt;
* Авторизоваться в системе под каким-то реальным логином (например, подо мной).&lt;br /&gt;
* Поискать пользователей по email.&lt;br /&gt;
* Получить email любого из моих контактов.&lt;br /&gt;
* Послать конкретному пользователю инвайт, иметь возможность указать кастомный текст для инвайта.&lt;br /&gt;
* Пригласить нового пользователя через email, то же самое с кастомным текстом.&lt;br /&gt;
&lt;br /&gt;
Задача неактуальна поскольку как я понял от LinkedIn нужно сначала получить одобрение на использование API:&lt;br /&gt;
&lt;br /&gt;
* http://www.linkedin.com/static?key=developers_apis&lt;br /&gt;
&lt;br /&gt;
==Done Tasks==&lt;br /&gt;
&lt;br /&gt;
* [[LMS/CMS Tasks: Done]]&lt;br /&gt;
&lt;br /&gt;
[[Category: Tasks]]&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Ivan</name></author>	</entry>

	<entry>
		<id>http://wiki.avobjects.com/Dev:RM/LMS_Tasks</id>
		<title>Dev:RM/LMS Tasks</title>
		<link rel="alternate" type="text/html" href="http://wiki.avobjects.com/Dev:RM/LMS_Tasks"/>
				<updated>2009-02-10T13:40:17Z</updated>
		
		<summary type="html">&lt;p&gt;Ivan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See also:&lt;br /&gt;
&lt;br /&gt;
* [[CMS Tasks]]&lt;br /&gt;
&lt;br /&gt;
==RM/LMS Tasks==&lt;br /&gt;
&lt;br /&gt;
==DONE==&lt;br /&gt;
&lt;br /&gt;
* [01:00] SVN setup.&lt;br /&gt;
* [00:10] Выводить вот [http://rm.medialooks.com/customer/show/119 тут] информацию &amp;quot;Last edited: X days ago.&amp;quot; (доделка апдейта кастомер.апдейтед_эт при манипуляциях с лицензиями)&lt;br /&gt;
* [00:05] Ссылку нью кастомер снизу перенести наверх: &amp;quot;Add new customer&amp;quot;. Send LicenseExpired убрать.&lt;br /&gt;
* [00:20] Поменять from/reply-to писем [http://rm.medialooks.com/product/subscribers/31 sent to all] на: MediaLooks &amp;lt;dev@medialooks.com&amp;gt;. После рассылки выводить сообщение &amp;quot;15 emails sent to subscribers.&amp;quot; 15 это количество писем.&lt;br /&gt;
* [01:20] Переработать миханизм добавления контактов в кастомера. При пастинге в поле Name строки вида &lt;br /&gt;
:'Andrew A. Okunev &amp;lt;dev@medialooks.com&amp;gt; (MediaLooks)'&lt;br /&gt;
:'&amp;quot;Andrew A. Okunev&amp;quot; &amp;lt;dev@medialooks.com&amp;gt; (MediaLooks)' &lt;br /&gt;
:'Andrew A. Okunev &amp;lt;dev@medialooks.com&amp;gt;'&lt;br /&gt;
:'&amp;quot;Andrew A. Okunev&amp;quot; &amp;lt;dev@medialooks.com&amp;gt;' &lt;br /&gt;
:- сразу выделять из этой строки Name и Email и вставлять в соответствующие поля. То что в скобках - просто отбрасывать.&lt;br /&gt;
* [03:00] Добавить возможность вести историю лицензий. Т.е. если кастомер обновил лицензию, то я ее не просто редактирую а делаю к ней какой-то аддишен - таким образом что в RM остается (и может быть отображена) инфа про старую лицензию.&lt;br /&gt;
* [01:00] Добавить колоночку &amp;quot;Latest Version&amp;quot; сразу после колонки &amp;quot;Product&amp;quot; на главной странице. Выводить туда номер самой распоследней версии (вклюачая бету).&lt;br /&gt;
* [00:20] Добавить фичу: разработчик (указан в свойствах продукта) должен получать релиз ноутсы. Но при этом он не должен быть подписчиком (учитываца в статистике и т.д.).&lt;br /&gt;
* [00:45] При добавлении нового релиза вставлять в поле версии номер последней +1 в последней цифре.&lt;br /&gt;
* [самдурак (ящик хуйня@mdilooks.com)] RM высаживается при попытке отослать emails продукта Test Product 1 - он часть бандла Test Bundle.&lt;br /&gt;
* [fixed] Некорретный парсинг контактов вида Graham Neden &amp;lt;graham@starfish.tv&amp;gt;  (Starfish Technologies Ltd) при редактировании кастомера.&lt;br /&gt;
* [fixed] При добавлении нового кантакта к кастомеру этот контакт подписывается на все имеющиеся на данный момент у кастомера подписки. Это неверно - новый контакт (при добавлении его) не должен ни на что подписываться.&lt;br /&gt;
* [explained] Что означает галко левая которая стоит напротив email, у которого лицензия на бандл?&lt;br /&gt;
* [00:10] Убрать график downloads с главной страницы. Он довольно медленный и держать его на странице, через которую постоянно ходишь в процессе навигации, невозможно. :( Временно разместить его на отдельной страничке.&lt;br /&gt;
* [??:??] Наследование/объединение продуктов (см. полное описание ниже).&lt;br /&gt;
* [00:15] Добавить на страницу [http://rm.medialooks.com/product/show/40 о продукте] инфо о том какие он в себя включает (если бандл), и за чьими релизами смотрит (если он смотрит).&lt;br /&gt;
* [00:15] Переделать интерфейс задания продуктов для бандла. Через Ctrl жутко высадно. Лучше либо галки, либо два списка, и кноки туда-сюда перекидывать.&lt;br /&gt;
* [00:15] Переместить главною меню на верх: &amp;quot;Products | Customers | New Releases (5) | Users&amp;quot;. &amp;quot;New Releases&amp;quot; это вместо &amp;quot;Distributives&amp;quot;; в скобках выводить количество неомодерированных релизов.&lt;br /&gt;
* [00:10] Создать продуктовое меню вот [http://rm.medialooks.com/product/show/15 тут]: &amp;quot;Add new release | View leads | View customers | Edit&amp;quot;. Из таблицы на главной странице убрать столбцы Edit и Delete. Там же заменить &amp;quot;Site Subscribers&amp;quot; на &amp;quot;Leads&amp;quot;, а &amp;quot;Licenses&amp;quot; на &amp;quot;Customers&amp;quot;. Ссылку из цифр в этих столбцах убрать, сделать ее рядом в виде &amp;quot;(View)&amp;quot; (а то не очень удобно в цифры кликать).&lt;br /&gt;
&lt;br /&gt;
==TODO==&lt;br /&gt;
&lt;br /&gt;
===Bugs, Fixes, Questions===&lt;br /&gt;
&lt;br /&gt;
* [confirmed] Проверка по customer tag на наличие дубликата при создании кастомера. В случае если есть кастомер tag1 tag2, и мы создаем кастомера tag1 - то проверка не срабатывает. Также продумать возможность других сценариев. Цель: при добавлении кастомера оповещать администратора о наличии кастомера с похожими тагами. В противном случае перед созданием приходится делать поиск.&lt;br /&gt;
&lt;br /&gt;
===Backups to Amazon S3===&lt;br /&gt;
&lt;br /&gt;
Давай будем наш бэкапный файл закачивать на амазон раз в неделю. Я сделал там аккаунт.&lt;br /&gt;
&lt;br /&gt;
===Tasks===&lt;br /&gt;
&lt;br /&gt;
* Разобрацо в чем проблема с настройкой goals в гугле.&lt;br /&gt;
&lt;br /&gt;
* Add abstract tags feature.&lt;br /&gt;
&lt;br /&gt;
* Если переименовать продукт, то перестает работать общая ссылка на даунлоад и по-версионные ссылки.&lt;br /&gt;
&lt;br /&gt;
* Contact as System Item (see task description).&lt;br /&gt;
&lt;br /&gt;
* Search (see task description).&lt;br /&gt;
&lt;br /&gt;
* Сортировка по тагам во вьюхе кастомеров. Статистика по тагам.&lt;br /&gt;
&lt;br /&gt;
* Добавить вывод количества лицензионных подписок в графу &amp;quot;Site Subscribers&amp;quot;. Графу переименовать в &amp;quot;Subscribers (Interested/Licensed)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* Группировка продуктов по тегу &amp;quot;Product type&amp;quot; на главной странице. Соответственно в свойства продукта нужно добавить такое поле. Группирока осуществляется по сочетанию тегов - например, &amp;quot;sdks vsevolod&amp;quot;, &amp;quot;sdks dkn&amp;quot;, &amp;quot;filters dkn&amp;quot; - это три разных группы (а у кадого продукта в этих группах по 2 тега). Внутри групп сортировать продукты по общему количеству подписок на апдейты (просто подписка или по лицензии). Группы сортировать по суммурному количеству подписок.&lt;br /&gt;
&lt;br /&gt;
* Общие рассылки. Научиться делать рассылки по всем клиентам. Это должна быть отдельная подписка.&lt;br /&gt;
&lt;br /&gt;
* Персонализированный учет закачек. Мы хотим про каждого клиента знать скачивает он новые версии или нет. В письме, которое он получает при выходе новой версии, можно делать уникальный урл, чтобы система знала нажал он или нет. Второй подход - это использовать куки на тот случай, если клиент скачивает с сайта.&lt;br /&gt;
&lt;br /&gt;
* Статистика закачек. Научицо разделять новые (приходящие с рекламы или из поиска) и повторные (наши кастомеры качают новые версии) закачки.&lt;br /&gt;
&lt;br /&gt;
* Подумать. Если есть идеи как интегрировать с Google Analytics (GA)  AdWords (AW) - было бы клева. Например вытаскивать из GA данные о посещениях конкретной страницы и сравнивать их с данными по закачкам.&lt;br /&gt;
&lt;br /&gt;
* Проблема с возможностью создать продукт у которого все версии - беты. И тогда не работает общая ссылка.&lt;br /&gt;
&lt;br /&gt;
* Проблема с RSS-фидом блога (у меня почему-то аутлук пытаецо запустицо).&lt;br /&gt;
&lt;br /&gt;
* Research on online license document generation. Существует ли какой-нить вебовский генератор PDF?&lt;br /&gt;
&lt;br /&gt;
* Добавить в свойства кастомера еще одно таговое поле &amp;quot;Exhibitions&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* Подписка Update Discount Expiration. Ввести для лицензий которые expired только после 01.12.2009. Т.е. письма по этой подписке должны начать ходить примерно с 01.05.2010.&lt;br /&gt;
&lt;br /&gt;
===Это потом===&lt;br /&gt;
&lt;br /&gt;
* Переделать форму контактов на сайте. Добавить возможность указать второй email. Отдельные поля под скайп, телефон.&lt;br /&gt;
&lt;br /&gt;
* Подписка royalties.&lt;br /&gt;
&lt;br /&gt;
===User Rights===&lt;br /&gt;
&lt;br /&gt;
* Разобраться с ролями и отображением соотв. инфы.&lt;br /&gt;
&lt;br /&gt;
===Customer download tracking===&lt;br /&gt;
&lt;br /&gt;
* Индивидуальные даунлоад ссылки для отслеживания какой подписчик нажал на сцылку.&lt;br /&gt;
* Отписка или оповещение администратора о подписчиках который не нажимают на ссылки (признак того что не получают письма или не читают их - но при этом по какой-то причине не отписываются).&lt;br /&gt;
&lt;br /&gt;
===Наследование/объединение продуктов===&lt;br /&gt;
&lt;br /&gt;
Необходимо поддержать два следующих сценария:&lt;br /&gt;
&lt;br /&gt;
1) Существует продукт DirectShow Filter Pack - он включает в себя большой набор DirectShow фильтров. Каждый фильтр релизится по своему графику (т.е. без графика) - поэтому отдельного download для него не существует. Т.е. продукт в данном случае это просто такая лицензия, т.е. совокупность цены и набора компонентов. В RM возможность создавать такие лицензии должна быть реализована в виде продукта в общем списке - просто у него будут какие-то дополнительные свойства как-то &amp;quot;включать в себя такие-то продукты&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Соответственно, при создании лицензии на такой продукт нужно сделать так чтобы:&lt;br /&gt;
&lt;br /&gt;
* Контакты кастомера могли быть подписаны на релизы (updates) по каждому из продуктов отдельно. По-умолчанию - создается подписка на все входящие в пакет продукты. Отписаться от каждого из продуктов в отдельности можно через сцылку на отписку из письма или это можно сделать через редактирование свойств лицензии.&lt;br /&gt;
&lt;br /&gt;
* Контакты кастомера не были дубликатно подписаны на эти же самые продукты через другие механизмы RM.&lt;br /&gt;
&lt;br /&gt;
* Подписка License Expired в данном случае остается одна - только на общий продукт. Но в случае, если подписка истекла, то при рассылке Release Updates в тело письма вставляется соотв. сообщение (т.к. это сейчас сделано для обычных лицензий).&lt;br /&gt;
&lt;br /&gt;
* В случае если для продукты DirectShow Filter Pack - RM конечно же имеет право наложить в штаны но после этого должен немедленно собрацо и вести себя так как будто он точно знает что нужно делать - а именно вести себя так как будто DirectShow Filter Pack это самый обычный продукт (т.е. появитсо в Distributives и дать возможность сделать рассылку). Т.е. обычная рассылка Release Updates для продукта такого типа тоже создаецо.&lt;br /&gt;
&lt;br /&gt;
2) Существуют продукты DeckLink SDK, Playout SDK и Multimedia SDK, для которых мы решили в целях упрощения использовать общий даунлоад. В данном случае все остается как есть - т.е. лицензии создаются именно под эти продукты, отдельно ведется статистика подписок, лицензий и закачек - но используется только один download.&lt;br /&gt;
&lt;br /&gt;
Например, мы говорим что DeckLink SDK и Playout SDK - оба используют download Multimedia SDK. Разработчик закачивает новый релиз именно для Multimedia SDK. Этот новый релиз появляется в разделе Distributives. Я его модерю, нажимаю сделать рассылку - и, как и раньше, выходят три блока писем - для DeckLink SDK, Playout SDk и Multimedia SDK.&lt;br /&gt;
&lt;br /&gt;
Особенность: ссылка во всех письмах теперь называется multimedia sdk. Делать редиректы и переименования - не надо (иначе клиенты будут говорить я скачал Playout SDK а мне ставится Multimedia SDK).&lt;br /&gt;
&lt;br /&gt;
===Industry-Based Subscriptions===&lt;br /&gt;
&lt;br /&gt;
Добавить возможность создавать рассылки по индустриям. В целом все аналогично тому как сейчас работают подписки на новые релизы. Можно подписывать контакты руками. А при рассылке заодно рассылать тем, кто является клиентом какого-либо продукта и тоже записан в эту индустрию.&lt;br /&gt;
&lt;br /&gt;
Возможно, когда у нас появятся разные способы делать рассылки, придется придумывать способы не слать дважды по одному и тому же поводу. Например, заводить для рассылки какой-нибудь ID.&lt;br /&gt;
&lt;br /&gt;
===Contact as System Item===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать контакты как самостоятельную сущность.&lt;br /&gt;
&lt;br /&gt;
Контакт представляет из себя имя (текстовое поле например &amp;quot;Andrew Okunev) и ассоциированный c ним набор полей:&lt;br /&gt;
&lt;br /&gt;
* email name (используется в подстановках в письмах; если пусто, используется &amp;quot;customer&amp;quot;)&lt;br /&gt;
* email (любое количество)&lt;br /&gt;
* skype (любое количество)&lt;br /&gt;
* телефон (любое количество)&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать отображение и редактирование свойств для любого из контактов. Например:&lt;br /&gt;
&lt;br /&gt;
* Когда добавлен в систему&lt;br /&gt;
* С какими компаниями (Customers) ассоциирован.&lt;br /&gt;
* С какими лицензиями ассоциирован.&lt;br /&gt;
* На какие подписки подписан.&lt;br /&gt;
&lt;br /&gt;
Все это нужно реализовать в одной вьюхе. Редактирование доступно только администратору системы.&lt;br /&gt;
&lt;br /&gt;
Примечания:&lt;br /&gt;
&lt;br /&gt;
* В системе должны отсутствовать дубликаты по email. Дубликаты по имени допустимы (т.е. когда одинаковое имя но разный email), но должна быть возможность их соединить (т.е. превратить в один контакт с двумя email). Реализовать это можно через отдельную вьюху, доступную администратору.&lt;br /&gt;
&lt;br /&gt;
* Если у контакта больше одного email, то любой из них может использоваться для авторизации.&lt;br /&gt;
&lt;br /&gt;
* Новый контакт (как сущность) создается при любом добавлении контакта в систему (например, при создании подписки через модуль subscribers.&lt;br /&gt;
&lt;br /&gt;
===Universal Uploads===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать возможность закачивать в RM абстрактные (не привязанные к какому-либо продукту) файлы. При этом каждому такому файлу должен быть по-умолчанию присвоен срок жизни - 30 дней. После чего файл автоматически удаляется. Файлы можно защищать паролем, который требуется для скачки.&lt;br /&gt;
&lt;br /&gt;
Каждый файл привязан к какому-либо юзеру. Только у этого пользователя (или у администратора) есть возможность добавлять к своему аккаунту файлы или удалять их. Каждую закачку можно удалить или обновить файл в ней.&lt;br /&gt;
&lt;br /&gt;
Соответственно, необходимо создать две новых вьюхи:&lt;br /&gt;
&lt;br /&gt;
1) Вьюха создания закачки. Опции: текстедит срок жизни (по-умолчанию вбито 30), чекбокс защитить паролем, путь к файлу.&lt;br /&gt;
&lt;br /&gt;
2) Вьюха список закачек данного юзера. Отображать: имя файла, количество скачек, оставшийся срок жизни, дата закачки. Имя файла является ссылкой на данный файл (вида rm.medialooks.com/...).&lt;br /&gt;
&lt;br /&gt;
В меню каждого юзера должно быть что-то вроде &amp;quot;My Uploads&amp;quot;, которая ведет на вьюху (2).&lt;br /&gt;
&lt;br /&gt;
===Customer Access===&lt;br /&gt;
&lt;br /&gt;
Нужно научицо давать кастомерам доступ к аплоадам. Для этого нужно реализовать в RM еще одну роль - &amp;quot;Customer&amp;quot;. Роль &amp;quot;User&amp;quot; нужно переименовать в &amp;quot;Developer&amp;quot;. Каждый контакт, добавленный в систему, должен получать соотв. статус и автоматически сгенеренный пароль. Никаких писем при заведении пользователей пока автоматически рассылать не надо. Однако, при первой попытке зайти в систему, кастомер должен по почте получить свой пароль. Залогинившись, он имеет доступ только к своим аплоадам (в будущем добавим еще подписки и лицензии).&lt;br /&gt;
&lt;br /&gt;
===Search===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать поиск в системе. Форма поиска - одна на все случаи. Она должна размещаться на всех страницах системы.&lt;br /&gt;
&lt;br /&gt;
По каким полям искать:&lt;br /&gt;
&lt;br /&gt;
* По контактам.&lt;br /&gt;
* По названию клиента.&lt;br /&gt;
* По тегу клиента.&lt;br /&gt;
&lt;br /&gt;
'''Пример.''' Если в поле поиска ввден запрос:&lt;br /&gt;
&lt;br /&gt;
Andrew A. Okunev &amp;lt;dev@medialooks.com&amp;gt; (MediaLooks)&lt;br /&gt;
&lt;br /&gt;
- то сперва нужно произвести поиск отдельно по &amp;quot;Osman Yel&amp;quot;, &amp;quot;dev@medialooks.com&amp;quot; и &amp;quot;MediaLooks&amp;quot;. Эти результаты вывести в первую очередь.&lt;br /&gt;
&lt;br /&gt;
Во-вторую - выделить из поисковой строки название домена и отрезать от него домен первого уровня. Т.е. в нашем примере искать по строке &amp;quot;medialooks&amp;quot;. Эти результаты вывести во вторую очередь.&lt;br /&gt;
&lt;br /&gt;
Кроме этого, естественно должен работать поиск в том случае если исходный запрос это &amp;quot;dev@medialooks.com&amp;quot; или просто &amp;quot;medialooks&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===LinkedIn Integration===&lt;br /&gt;
&lt;br /&gt;
Зачем? Любая система управления контактами страдает одним недостатком - ей неоткуда узнать о том, что у кого-то поменялся email или телефон.&lt;br /&gt;
&lt;br /&gt;
Предполагается что пользователи LinkedIn (за исключением [http://www.linkedin.com/pub/2/26b/926 некоторых] поддерживают свой профиль в актуальном состоянии. В частности, следят за тем, чтобы в профиле был актуальный email.&lt;br /&gt;
&lt;br /&gt;
В результате хочется получить поддержку следующих сценариев:&lt;br /&gt;
&lt;br /&gt;
* Узнавать об изменениях в контактной информации наших клиентов.&lt;br /&gt;
* Приглашать в нашу сеть клиентов, которые уже используют LinkedIn.&lt;br /&gt;
* Приглашать в LinkedIn тех клиентов, которые его пока не используют.&lt;br /&gt;
* Если клиент для общение с нами использует один email, а для LinkedIn - другой, - то нам нужно узнать этот email и использовать его как запасной/альтернативный.&lt;br /&gt;
&lt;br /&gt;
Для начала думаю следует просто проверить, позволяет ли API делать следующее:&lt;br /&gt;
&lt;br /&gt;
* Авторизоваться в системе под каким-то реальным логином (например, подо мной).&lt;br /&gt;
* Поискать пользователей по email.&lt;br /&gt;
* Получить email любого из моих контактов.&lt;br /&gt;
* Послать конкретному пользователю инвайт, иметь возможность указать кастомный текст для инвайта.&lt;br /&gt;
* Пригласить нового пользователя через email, то же самое с кастомным текстом.&lt;br /&gt;
&lt;br /&gt;
Задача неактуальна поскольку как я понял от LinkedIn нужно сначала получить одобрение на использование API:&lt;br /&gt;
&lt;br /&gt;
* http://www.linkedin.com/static?key=developers_apis&lt;br /&gt;
&lt;br /&gt;
==Done Tasks==&lt;br /&gt;
&lt;br /&gt;
* [[LMS/CMS Tasks: Done]]&lt;br /&gt;
&lt;br /&gt;
[[Category: Tasks]]&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Ivan</name></author>	</entry>

	<entry>
		<id>http://wiki.avobjects.com/Dev:RM/LMS_Tasks</id>
		<title>Dev:RM/LMS Tasks</title>
		<link rel="alternate" type="text/html" href="http://wiki.avobjects.com/Dev:RM/LMS_Tasks"/>
				<updated>2009-01-30T09:09:40Z</updated>
		
		<summary type="html">&lt;p&gt;Ivan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See also:&lt;br /&gt;
&lt;br /&gt;
* [[CMS Tasks]]&lt;br /&gt;
&lt;br /&gt;
==RM/LMS Tasks==&lt;br /&gt;
&lt;br /&gt;
==DONE==&lt;br /&gt;
&lt;br /&gt;
* [1:00] SVN setup.&lt;br /&gt;
* [00:10] Выводить вот [http://rm.medialooks.com/customer/show/119 тут] информацию &amp;quot;Last edited: X days ago.&amp;quot; (доделка апдейта кастомер.апдейтед_эт при манипуляциях с лицензиями)&lt;br /&gt;
* [00:05] Ссылку нью кастомер снизу перенести наверх: &amp;quot;Add new customer&amp;quot;. Send LicenseExpired убрать.&lt;br /&gt;
* [00:20] Поменять from/reply-to писем [http://rm.medialooks.com/product/subscribers/31 sent to all] на: MediaLooks &amp;lt;dev@medialooks.com&amp;gt;. После рассылки выводить сообщение &amp;quot;15 emails sent to subscribers.&amp;quot; 15 это количество писем.&lt;br /&gt;
* [01:20] Переработать миханизм добавления контактов в кастомера. При пастинге в поле Name строки вида &lt;br /&gt;
:'Andrew A. Okunev &amp;lt;dev@medialooks.com&amp;gt; (MediaLooks)'&lt;br /&gt;
:'&amp;quot;Andrew A. Okunev&amp;quot; &amp;lt;dev@medialooks.com&amp;gt; (MediaLooks)' &lt;br /&gt;
:'Andrew A. Okunev &amp;lt;dev@medialooks.com&amp;gt;'&lt;br /&gt;
:'&amp;quot;Andrew A. Okunev&amp;quot; &amp;lt;dev@medialooks.com&amp;gt;' &lt;br /&gt;
:- сразу выделять из этой строки Name и Email и вставлять в соответствующие поля. То что в скобках - просто отбрасывать.&lt;br /&gt;
* [03:00] Добавить возможность вести историю лицензий. Т.е. если кастомер обновил лицензию, то я ее не просто редактирую а делаю к ней какой-то аддишен - таким образом что в RM остается (и может быть отображена) инфа про старую лицензию.&lt;br /&gt;
* [01:00] Добавить колоночку &amp;quot;Latest Version&amp;quot; сразу после колонки &amp;quot;Product&amp;quot; на главной странице. Выводить туда номер самой распоследней версии (вклюачая бету).&lt;br /&gt;
* [00:20] Добавить фичу: разработчик (указан в свойствах продукта) должен получать релиз ноутсы. Но при этом он не должен быть подписчиком (учитываца в статистике и т.д.).&lt;br /&gt;
* [00:45] При добавлении нового релиза вставлять в поле версии номер последней +1 в последней цифре.&lt;br /&gt;
&lt;br /&gt;
==TODO==&lt;br /&gt;
&lt;br /&gt;
===Backups to Amazon S3===&lt;br /&gt;
&lt;br /&gt;
Давай будем наш бэкапный файл закачивать на амазон раз в неделю. Я сделал там аккаунт.&lt;br /&gt;
&lt;br /&gt;
===Tasks===&lt;br /&gt;
&lt;br /&gt;
* Наследование/объединение продуктов (см. полное описание ниже).&lt;br /&gt;
&lt;br /&gt;
* Разобрацо в чем проблема с настройкой goals в гугле.&lt;br /&gt;
&lt;br /&gt;
* Если переименовать продукт, то перестает работать общая ссылка на даунлоад и по-версионные ссылки.&lt;br /&gt;
&lt;br /&gt;
* Contact as System Item (see task description).&lt;br /&gt;
&lt;br /&gt;
* Search (see task description).&lt;br /&gt;
&lt;br /&gt;
* Сортировка по тагам во вьюхе кастомеров. Статистика по тагам.&lt;br /&gt;
&lt;br /&gt;
* Добавить вывод количества лицензионных подписок в графу &amp;quot;Site Subscribers&amp;quot;. Графу переименовать в &amp;quot;Subscribers (Interested/Licensed)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* Группировка продуктов по тегу &amp;quot;Product type&amp;quot; на главной странице. Соответственно в свойства продукта нужно добавить такое поле. Группирока осуществляется по сочетанию тегов - например, &amp;quot;sdks vsevolod&amp;quot;, &amp;quot;sdks dkn&amp;quot;, &amp;quot;filters dkn&amp;quot; - это три разных группы (а у кадого продукта в этих группах по 2 тега). Внутри групп сортировать продукты по общему количеству подписок на апдейты (просто подписка или по лицензии). Группы сортировать по суммурному количеству подписок.&lt;br /&gt;
&lt;br /&gt;
* Общие рассылки. Научиться делать рассылки по всем клиентам. Это должна быть отдельная подписка.&lt;br /&gt;
&lt;br /&gt;
* Переместить главною меню на верх: &amp;quot;Products | Customers | New Releases (5) | Users&amp;quot;. &amp;quot;New Releases&amp;quot; это вместо &amp;quot;Distributives&amp;quot;; в скобках выводить количество неомодерированных релизов.&lt;br /&gt;
&lt;br /&gt;
* Создать продуктовое меню вот [http://rm.medialooks.com/product/show/15 тут]: &amp;quot;Add new release | View leads | View customers | Edit&amp;quot;. Из таблицы на главной странице убрать столбцы Edit и Delete. Там же заменить &amp;quot;Site Subscribers&amp;quot; на &amp;quot;Leads&amp;quot;, а &amp;quot;Licenses&amp;quot; на &amp;quot;Customers&amp;quot;. Ссылку из цифр в этих столбцах убрать, сделать ее рядом в виде &amp;quot;(View)&amp;quot; (а то не очень удобно в цифры кликать).&lt;br /&gt;
&lt;br /&gt;
* Персонализированный учет закачек. Мы хотим про каждого клиента знать скачивает он новые версии или нет. В письме, которое он получает при выходе новой версии, можно делать уникальный урл, чтобы система знала нажал он или нет. Второй подход - это использовать куки на тот случай, если клиент скачивает с сайта.&lt;br /&gt;
&lt;br /&gt;
* Статистика закачек. Научицо разделять новые (приходящие с рекламы или из поиска) и повторные (наши кастомеры качают новые версии) закачки.&lt;br /&gt;
&lt;br /&gt;
* Подумать. Если есть идеи как интегрировать с Google Analytics (GA)  AdWords (AW) - было бы клева. Например вытаскивать из GA данные о посещениях конкретной страницы и сравнивать их с данными по закачкам.&lt;br /&gt;
&lt;br /&gt;
* Проблема с возможностью создать продукт у которого все версии - беты. И тогда не работает общая ссылка.&lt;br /&gt;
&lt;br /&gt;
* Проблема с RSS-фидом блога (у меня почему-то аутлук пытаецо запустицо).&lt;br /&gt;
&lt;br /&gt;
* Research on online license document generation. Существует ли какой-нить вебовский генератор PDF?&lt;br /&gt;
&lt;br /&gt;
===Это потом===&lt;br /&gt;
&lt;br /&gt;
* Переделать форму контактов на сайте. Добавить возможность указать второй email. Отдельные поля под скайп, телефон.&lt;br /&gt;
&lt;br /&gt;
* Подписка royalties.&lt;br /&gt;
&lt;br /&gt;
===Наследование/объединение продуктов===&lt;br /&gt;
&lt;br /&gt;
Необходимо поддержать два следующих сценария:&lt;br /&gt;
&lt;br /&gt;
1) Существует продукт DirectShow Filter Pack - он включает в себя большой набор DirectShow фильтров. Каждый фильтр релизится по своему графику (т.е. без графика) - поэтому отдельного download для него не существует. Т.е. продукт в данном случае это просто такая лицензия, т.е. совокупность цены и набора компонентов. В RM возможность создавать такие лицензии должна быть реализована в виде продукта в общем списке - просто у него будут какие-то дополнительные свойства как-то &amp;quot;включать в себя такие-то продукты&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Соответственно, при создании лицензии на такой продукт нужно сделать так чтобы:&lt;br /&gt;
&lt;br /&gt;
* Контакты кастомера могли быть подписаны на релизы (updates) по каждому из продуктов отдельно. По-умолчанию - создается подписка на все входящие в пакет продукты. Отписаться от каждого из продуктов в отдельности можно через сцылку на отписку из письма или это можно сделать через редактирование свойств лицензии.&lt;br /&gt;
&lt;br /&gt;
* Контакты кастомера не были дубликатно подписаны на эти же самые продукты через другие механизмы RM.&lt;br /&gt;
&lt;br /&gt;
* Подписка License Expired в данном случае остается одна - только на общий продукт. Но в случае, если подписка истекла, то при рассылке Release Updates в тело письма вставляется соотв. сообщение (т.к. это сейчас сделано для обычных лицензий).&lt;br /&gt;
&lt;br /&gt;
* В случае если для продукты DirectShow Filter Pack - RM конечно же имеет право наложить в штаны но после этого должен немедленно собрацо и вести себя так как будто он точно знает что нужно делать - а именно вести себя так как будто DirectShow Filter Pack это самый обычный продукт (т.е. появитсо в Distributives и дать возможность сделать рассылку). Т.е. обычная рассылка Release Updates для продукта такого типа тоже создаецо.&lt;br /&gt;
&lt;br /&gt;
2) Существуют продукты DeckLink SDK, Playout SDK и Multimedia SDK, для которых мы решили в целях упрощения использовать общий даунлоад. В данном случае все остается как есть - т.е. лицензии создаются именно под эти продукты, отдельно ведется статистика подписок, лицензий и закачек - но используется только один download.&lt;br /&gt;
&lt;br /&gt;
Например, мы говорим что DeckLink SDK и Playout SDK - оба используют download Multimedia SDK. Разработчик закачивает новый релиз именно для Multimedia SDK. Этот новый релиз появляется в разделе Distributives. Я его модерю, нажимаю сделать рассылку - и, как и раньше, выходят три блока писем - для DeckLink SDK, Playout SDk и Multimedia SDK.&lt;br /&gt;
&lt;br /&gt;
Особенность: ссылка во всех письмах теперь называется multimedia sdk. Делать редиректы и переименования - не надо (иначе клиенты будут говорить я скачал Playout SDK а мне ставится Multimedia SDK).&lt;br /&gt;
&lt;br /&gt;
===Industry-Based Subscriptions===&lt;br /&gt;
&lt;br /&gt;
Добавить возможность создавать рассылки по индустриям. В целом все аналогично тому как сейчас работают подписки на новые релизы. Можно подписывать контакты руками. А при рассылке заодно рассылать тем, кто является клиентом какого-либо продукта и тоже записан в эту индустрию.&lt;br /&gt;
&lt;br /&gt;
Возможно, когда у нас появятся разные способы делать рассылки, придется придумывать способы не слать дважды по одному и тому же поводу. Например, заводить для рассылки какой-нибудь ID.&lt;br /&gt;
&lt;br /&gt;
===Contact as System Item===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать контакты как самостоятельную сущность.&lt;br /&gt;
&lt;br /&gt;
Контакт представляет из себя имя (текстовое поле например &amp;quot;Andrew Okunev) и ассоциированный c ним набор полей:&lt;br /&gt;
&lt;br /&gt;
* email name (используется в подстановках в письмах; если пусто, используется &amp;quot;customer&amp;quot;)&lt;br /&gt;
* email (любое количество)&lt;br /&gt;
* skype (любое количество)&lt;br /&gt;
* телефон (любое количество)&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать отображение и редактирование свойств для любого из контактов. Например:&lt;br /&gt;
&lt;br /&gt;
* Когда добавлен в систему&lt;br /&gt;
* С какими компаниями (Customers) ассоциирован.&lt;br /&gt;
* С какими лицензиями ассоциирован.&lt;br /&gt;
* На какие подписки подписан.&lt;br /&gt;
&lt;br /&gt;
Все это нужно реализовать в одной вьюхе. Редактирование доступно только администратору системы.&lt;br /&gt;
&lt;br /&gt;
Примечания:&lt;br /&gt;
&lt;br /&gt;
* В системе должны отсутствовать дубликаты по email. Дубликаты по имени допустимы (т.е. когда одинаковое имя но разный email), но должна быть возможность их соединить (т.е. превратить в один контакт с двумя email). Реализовать это можно через отдельную вьюху, доступную администратору.&lt;br /&gt;
&lt;br /&gt;
* Если у контакта больше одного email, то любой из них может использоваться для авторизации.&lt;br /&gt;
&lt;br /&gt;
* Новый контакт (как сущность) создается при любом добавлении контакта в систему (например, при создании подписки через модуль subscribers.&lt;br /&gt;
&lt;br /&gt;
===Universal Uploads===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать возможность закачивать в RM абстрактные (не привязанные к какому-либо продукту) файлы. При этом каждому такому файлу должен быть по-умолчанию присвоен срок жизни - 30 дней. После чего файл автоматически удаляется. Файлы можно защищать паролем, который требуется для скачки.&lt;br /&gt;
&lt;br /&gt;
Каждый файл привязан к какому-либо юзеру. Только у этого пользователя (или у администратора) есть возможность добавлять к своему аккаунту файлы или удалять их. Каждую закачку можно удалить или обновить файл в ней.&lt;br /&gt;
&lt;br /&gt;
Соответственно, необходимо создать две новых вьюхи:&lt;br /&gt;
&lt;br /&gt;
1) Вьюха создания закачки. Опции: текстедит срок жизни (по-умолчанию вбито 30), чекбокс защитить паролем, путь к файлу.&lt;br /&gt;
&lt;br /&gt;
2) Вьюха список закачек данного юзера. Отображать: имя файла, количество скачек, оставшийся срок жизни, дата закачки. Имя файла является ссылкой на данный файл (вида rm.medialooks.com/...).&lt;br /&gt;
&lt;br /&gt;
В меню каждого юзера должно быть что-то вроде &amp;quot;My Uploads&amp;quot;, которая ведет на вьюху (2).&lt;br /&gt;
&lt;br /&gt;
===Customer Access===&lt;br /&gt;
&lt;br /&gt;
Нужно научицо давать кастомерам доступ к аплоадам. Для этого нужно реализовать в RM еще одну роль - &amp;quot;Customer&amp;quot;. Роль &amp;quot;User&amp;quot; нужно переименовать в &amp;quot;Developer&amp;quot;. Каждый контакт, добавленный в систему, должен получать соотв. статус и автоматически сгенеренный пароль. Никаких писем при заведении пользователей пока автоматически рассылать не надо. Однако, при первой попытке зайти в систему, кастомер должен по почте получить свой пароль. Залогинившись, он имеет доступ только к своим аплоадам (в будущем добавим еще подписки и лицензии).&lt;br /&gt;
&lt;br /&gt;
===Search===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать поиск в системе. Форма поиска - одна на все случаи. Она должна размещаться на всех страницах системы.&lt;br /&gt;
&lt;br /&gt;
По каким полям искать:&lt;br /&gt;
&lt;br /&gt;
* По контактам.&lt;br /&gt;
* По названию клиента.&lt;br /&gt;
* По тегу клиента.&lt;br /&gt;
&lt;br /&gt;
'''Пример.''' Если в поле поиска ввден запрос:&lt;br /&gt;
&lt;br /&gt;
Andrew A. Okunev &amp;lt;dev@medialooks.com&amp;gt; (MediaLooks)&lt;br /&gt;
&lt;br /&gt;
- то сперва нужно произвести поиск отдельно по &amp;quot;Osman Yel&amp;quot;, &amp;quot;dev@medialooks.com&amp;quot; и &amp;quot;MediaLooks&amp;quot;. Эти результаты вывести в первую очередь.&lt;br /&gt;
&lt;br /&gt;
Во-вторую - выделить из поисковой строки название домена и отрезать от него домен первого уровня. Т.е. в нашем примере искать по строке &amp;quot;medialooks&amp;quot;. Эти результаты вывести во вторую очередь.&lt;br /&gt;
&lt;br /&gt;
Кроме этого, естественно должен работать поиск в том случае если исходный запрос это &amp;quot;dev@medialooks.com&amp;quot; или просто &amp;quot;medialooks&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===LinkedIn Integration===&lt;br /&gt;
&lt;br /&gt;
Зачем? Любая система управления контактами страдает одним недостатком - ей неоткуда узнать о том, что у кого-то поменялся email или телефон.&lt;br /&gt;
&lt;br /&gt;
Предполагается что пользователи LinkedIn (за исключением [http://www.linkedin.com/pub/2/26b/926 некоторых] поддерживают свой профиль в актуальном состоянии. В частности, следят за тем, чтобы в профиле был актуальный email.&lt;br /&gt;
&lt;br /&gt;
В результате хочется получить поддержку следующих сценариев:&lt;br /&gt;
&lt;br /&gt;
* Узнавать об изменениях в контактной информации наших клиентов.&lt;br /&gt;
* Приглашать в нашу сеть клиентов, которые уже используют LinkedIn.&lt;br /&gt;
* Приглашать в LinkedIn тех клиентов, которые его пока не используют.&lt;br /&gt;
* Если клиент для общение с нами использует один email, а для LinkedIn - другой, - то нам нужно узнать этот email и использовать его как запасной/альтернативный.&lt;br /&gt;
&lt;br /&gt;
Для начала думаю следует просто проверить, позволяет ли API делать следующее:&lt;br /&gt;
&lt;br /&gt;
* Авторизоваться в системе под каким-то реальным логином (например, подо мной).&lt;br /&gt;
* Поискать пользователей по email.&lt;br /&gt;
* Получить email любого из моих контактов.&lt;br /&gt;
* Послать конкретному пользователю инвайт, иметь возможность указать кастомный текст для инвайта.&lt;br /&gt;
* Пригласить нового пользователя через email, то же самое с кастомным текстом.&lt;br /&gt;
&lt;br /&gt;
Задача неактуальна поскольку как я понял от LinkedIn нужно сначала получить одобрение на использование API:&lt;br /&gt;
&lt;br /&gt;
* http://www.linkedin.com/static?key=developers_apis&lt;br /&gt;
&lt;br /&gt;
==Done Tasks==&lt;br /&gt;
&lt;br /&gt;
* [[LMS/CMS Tasks: Done]]&lt;br /&gt;
&lt;br /&gt;
[[Category: Tasks]]&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Ivan</name></author>	</entry>

	<entry>
		<id>http://wiki.avobjects.com/Dev:RM/LMS_Tasks</id>
		<title>Dev:RM/LMS Tasks</title>
		<link rel="alternate" type="text/html" href="http://wiki.avobjects.com/Dev:RM/LMS_Tasks"/>
				<updated>2009-01-29T13:51:07Z</updated>
		
		<summary type="html">&lt;p&gt;Ivan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See also:&lt;br /&gt;
&lt;br /&gt;
* [[CMS Tasks]]&lt;br /&gt;
&lt;br /&gt;
==RM/LMS Tasks==&lt;br /&gt;
&lt;br /&gt;
==DONE==&lt;br /&gt;
&lt;br /&gt;
* [1:00] SVN setup.&lt;br /&gt;
* [00:10] Выводить вот [http://rm.medialooks.com/customer/show/119 тут] информацию &amp;quot;Last edited: X days ago.&amp;quot; (доделка апдейта кастомер.апдейтед_эт при манипуляциях с лицензиями)&lt;br /&gt;
* [00:05] Ссылку нью кастомер снизу перенести наверх: &amp;quot;Add new customer&amp;quot;. Send LicenseExpired убрать.&lt;br /&gt;
* [00:20] Поменять from/reply-to писем [http://rm.medialooks.com/product/subscribers/31 sent to all] на: MediaLooks &amp;lt;dev@medialooks.com&amp;gt;. После рассылки выводить сообщение &amp;quot;15 emails sent to subscribers.&amp;quot; 15 это количество писем.&lt;br /&gt;
* [01:20] Переработать миханизм добавления контактов в кастомера. При пастинге в поле Name строки вида &lt;br /&gt;
:'Andrew A. Okunev &amp;lt;dev@medialooks.com&amp;gt; (MediaLooks)'&lt;br /&gt;
:'&amp;quot;Andrew A. Okunev&amp;quot; &amp;lt;dev@medialooks.com&amp;gt; (MediaLooks)' &lt;br /&gt;
:'Andrew A. Okunev &amp;lt;dev@medialooks.com&amp;gt;'&lt;br /&gt;
:'&amp;quot;Andrew A. Okunev&amp;quot; &amp;lt;dev@medialooks.com&amp;gt;' &lt;br /&gt;
:- сразу выделять из этой строки Name и Email и вставлять в соответствующие поля. То что в скобках - просто отбрасывать.&lt;br /&gt;
* [03:00] Добавить возможность вести историю лицензий. Т.е. если кастомер обновил лицензию, то я ее не просто редактирую а делаю к ней какой-то аддишен - таким образом что в RM остается (и может быть отображена) инфа про старую лицензию.&lt;br /&gt;
&lt;br /&gt;
==TODO==&lt;br /&gt;
&lt;br /&gt;
===Backups to Amazon S3===&lt;br /&gt;
&lt;br /&gt;
Давай будем наш бэкапный файл закачивать на амазон раз в неделю. Я сделал там аккаунт.&lt;br /&gt;
&lt;br /&gt;
===Tasks===&lt;br /&gt;
&lt;br /&gt;
* Добавить колоночку &amp;quot;Latest Version&amp;quot; сразу после колонки &amp;quot;Product&amp;quot; на главной странице. Выводить туда номер самой распоследней версии (вклюачая бету).&lt;br /&gt;
&lt;br /&gt;
* Добавить фичу: разработчик (указан в свойствах продукта) должен получать релиз ноутсы. Но при этом он не должен быть подписчиком (учитываца в статистике и т.д.).&lt;br /&gt;
&lt;br /&gt;
* Наследование/объединение продуктов (см. полное описание ниже).&lt;br /&gt;
&lt;br /&gt;
* Разобрацо в чем проблема с настройкой goals в гугле.&lt;br /&gt;
&lt;br /&gt;
* Если переименовать продукт, то перестает работать общая ссылка на даунлоад и по-версионные ссылки.&lt;br /&gt;
&lt;br /&gt;
* Contact as System Item (see task description).&lt;br /&gt;
&lt;br /&gt;
* Search (see task description).&lt;br /&gt;
&lt;br /&gt;
* Сортировка по тагам во вьюхе кастомеров. Статистика по тагам.&lt;br /&gt;
&lt;br /&gt;
* Добавить вывод количества лицензионных подписок в графу &amp;quot;Site Subscribers&amp;quot;. Графу переименовать в &amp;quot;Subscribers (Interested/Licensed)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* Группировка продуктов по тегу &amp;quot;Product type&amp;quot; на главной странице. Соответственно в свойства продукта нужно добавить такое поле. Группирока осуществляется по сочетанию тегов - например, &amp;quot;sdks vsevolod&amp;quot;, &amp;quot;sdks dkn&amp;quot;, &amp;quot;filters dkn&amp;quot; - это три разных группы (а у кадого продукта в этих группах по 2 тега). Внутри групп сортировать продукты по общему количеству подписок на апдейты (просто подписка или по лицензии). Группы сортировать по суммурному количеству подписок.&lt;br /&gt;
&lt;br /&gt;
* Общие рассылки. Научиться делать рассылки по всем клиентам. Это должна быть отдельная подписка.&lt;br /&gt;
&lt;br /&gt;
* Переместить главною меню на верх: &amp;quot;Products | Customers | New Releases (5) | Users&amp;quot;. &amp;quot;New Releases&amp;quot; это вместо &amp;quot;Distributives&amp;quot;; в скобках выводить количество неомодерированных релизов.&lt;br /&gt;
&lt;br /&gt;
* Создать продуктовое меню вот [http://rm.medialooks.com/product/show/15 тут]: &amp;quot;Add new release | View leads | View customers | Edit&amp;quot;. Из таблицы на главной странице убрать столбцы Edit и Delete. Там же заменить &amp;quot;Site Subscribers&amp;quot; на &amp;quot;Leads&amp;quot;, а &amp;quot;Licenses&amp;quot; на &amp;quot;Customers&amp;quot;. Ссылку из цифр в этих столбцах убрать, сделать ее рядом в виде &amp;quot;(View)&amp;quot; (а то не очень удобно в цифры кликать).&lt;br /&gt;
&lt;br /&gt;
* Персонализированный учет закачек. Мы хотим про каждого клиента знать скачивает он новые версии или нет. В письме, которое он получает при выходе новой версии, можно делать уникальный урл, чтобы система знала нажал он или нет. Второй подход - это использовать куки на тот случай, если клиент скачивает с сайта.&lt;br /&gt;
&lt;br /&gt;
* Статистика закачек. Научицо разделять новые (приходящие с рекламы или из поиска) и повторные (наши кастомеры качают новые версии) закачки.&lt;br /&gt;
&lt;br /&gt;
* Подумать. Если есть идеи как интегрировать с Google Analytics (GA)  AdWords (AW) - было бы клева. Например вытаскивать из GA данные о посещениях конкретной страницы и сравнивать их с данными по закачкам.&lt;br /&gt;
&lt;br /&gt;
* При добавлении нового релиза вставлять в поле версии номер последней +1 в последней цифре.&lt;br /&gt;
&lt;br /&gt;
* Проблема с возможностью создать продукт у которого все версии - беты. И тогда не работает общая ссылка.&lt;br /&gt;
&lt;br /&gt;
* Проблема с RSS-фидом блога (у меня почему-то аутлук пытаецо запустицо).&lt;br /&gt;
&lt;br /&gt;
* Research on online license document generation. Существует ли какой-нить вебовский генератор PDF?&lt;br /&gt;
&lt;br /&gt;
===Это потом===&lt;br /&gt;
&lt;br /&gt;
* Переделать форму контактов на сайте. Добавить возможность указать второй email. Отдельные поля под скайп, телефон.&lt;br /&gt;
&lt;br /&gt;
* Подписка royalties.&lt;br /&gt;
&lt;br /&gt;
===Наследование/объединение продуктов===&lt;br /&gt;
&lt;br /&gt;
Необходимо поддержать два следующих сценария:&lt;br /&gt;
&lt;br /&gt;
1) Существует продукт DirectShow Filter Pack - он включает в себя большой набор DirectShow фильтров. Каждый фильтр релизится по своему графику (т.е. без графика) - поэтому отдельного download для него не существует. Т.е. продукт в данном случае это просто такая лицензия, т.е. совокупность цены и набора компонентов. В RM возможность создавать такие лицензии должна быть реализована в виде продукта в общем списке - просто у него будут какие-то дополнительные свойства как-то &amp;quot;включать в себя такие-то продукты&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Соответственно, при создании лицензии на такой продукт нужно сделать так чтобы:&lt;br /&gt;
&lt;br /&gt;
* Контакты кастомера могли быть подписаны на релизы (updates) по каждому из продуктов отдельно. По-умолчанию - создается подписка на все входящие в пакет продукты. Отписаться от каждого из продуктов в отдельности можно через сцылку на отписку из письма или это можно сделать через редактирование свойств лицензии.&lt;br /&gt;
&lt;br /&gt;
* Контакты кастомера не были дубликатно подписаны на эти же самые продукты через другие механизмы RM.&lt;br /&gt;
&lt;br /&gt;
* Подписка License Expired в данном случае остается одна - только на общий продукт. Но в случае, если подписка истекла, то при рассылке Release Updates в тело письма вставляется соотв. сообщение (т.к. это сейчас сделано для обычных лицензий).&lt;br /&gt;
&lt;br /&gt;
* В случае если для продукты DirectShow Filter Pack - RM конечно же имеет право наложить в штаны но после этого должен немедленно собрацо и вести себя так как будто он точно знает что нужно делать - а именно вести себя так как будто DirectShow Filter Pack это самый обычный продукт (т.е. появитсо в Distributives и дать возможность сделать рассылку). Т.е. обычная рассылка Release Updates для продукта такого типа тоже создаецо.&lt;br /&gt;
&lt;br /&gt;
2) Существуют продукты DeckLink SDK, Playout SDK и Multimedia SDK, для которых мы решили в целях упрощения использовать общий даунлоад. В данном случае все остается как есть - т.е. лицензии создаются именно под эти продукты, отдельно ведется статистика подписок, лицензий и закачек - но используется только один download.&lt;br /&gt;
&lt;br /&gt;
Например, мы говорим что DeckLink SDK и Playout SDK - оба используют download Multimedia SDK. Разработчик закачивает новый релиз именно для Multimedia SDK. Этот новый релиз появляется в разделе Distributives. Я его модерю, нажимаю сделать рассылку - и, как и раньше, выходят три блока писем - для DeckLink SDK, Playout SDk и Multimedia SDK.&lt;br /&gt;
&lt;br /&gt;
Особенность: ссылка во всех письмах теперь называется multimedia sdk. Делать редиректы и переименования - не надо (иначе клиенты будут говорить я скачал Playout SDK а мне ставится Multimedia SDK).&lt;br /&gt;
&lt;br /&gt;
===Industry-Based Subscriptions===&lt;br /&gt;
&lt;br /&gt;
Добавить возможность создавать рассылки по индустриям. В целом все аналогично тому как сейчас работают подписки на новые релизы. Можно подписывать контакты руками. А при рассылке заодно рассылать тем, кто является клиентом какого-либо продукта и тоже записан в эту индустрию.&lt;br /&gt;
&lt;br /&gt;
Возможно, когда у нас появятся разные способы делать рассылки, придется придумывать способы не слать дважды по одному и тому же поводу. Например, заводить для рассылки какой-нибудь ID.&lt;br /&gt;
&lt;br /&gt;
===Contact as System Item===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать контакты как самостоятельную сущность.&lt;br /&gt;
&lt;br /&gt;
Контакт представляет из себя имя (текстовое поле например &amp;quot;Andrew Okunev) и ассоциированный c ним набор полей:&lt;br /&gt;
&lt;br /&gt;
* email name (используется в подстановках в письмах; если пусто, используется &amp;quot;customer&amp;quot;)&lt;br /&gt;
* email (любое количество)&lt;br /&gt;
* skype (любое количество)&lt;br /&gt;
* телефон (любое количество)&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать отображение и редактирование свойств для любого из контактов. Например:&lt;br /&gt;
&lt;br /&gt;
* Когда добавлен в систему&lt;br /&gt;
* С какими компаниями (Customers) ассоциирован.&lt;br /&gt;
* С какими лицензиями ассоциирован.&lt;br /&gt;
* На какие подписки подписан.&lt;br /&gt;
&lt;br /&gt;
Все это нужно реализовать в одной вьюхе. Редактирование доступно только администратору системы.&lt;br /&gt;
&lt;br /&gt;
Примечания:&lt;br /&gt;
&lt;br /&gt;
* В системе должны отсутствовать дубликаты по email. Дубликаты по имени допустимы (т.е. когда одинаковое имя но разный email), но должна быть возможность их соединить (т.е. превратить в один контакт с двумя email). Реализовать это можно через отдельную вьюху, доступную администратору.&lt;br /&gt;
&lt;br /&gt;
* Если у контакта больше одного email, то любой из них может использоваться для авторизации.&lt;br /&gt;
&lt;br /&gt;
* Новый контакт (как сущность) создается при любом добавлении контакта в систему (например, при создании подписки через модуль subscribers.&lt;br /&gt;
&lt;br /&gt;
===Universal Uploads===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать возможность закачивать в RM абстрактные (не привязанные к какому-либо продукту) файлы. При этом каждому такому файлу должен быть по-умолчанию присвоен срок жизни - 30 дней. После чего файл автоматически удаляется. Файлы можно защищать паролем, который требуется для скачки.&lt;br /&gt;
&lt;br /&gt;
Каждый файл привязан к какому-либо юзеру. Только у этого пользователя (или у администратора) есть возможность добавлять к своему аккаунту файлы или удалять их. Каждую закачку можно удалить или обновить файл в ней.&lt;br /&gt;
&lt;br /&gt;
Соответственно, необходимо создать две новых вьюхи:&lt;br /&gt;
&lt;br /&gt;
1) Вьюха создания закачки. Опции: текстедит срок жизни (по-умолчанию вбито 30), чекбокс защитить паролем, путь к файлу.&lt;br /&gt;
&lt;br /&gt;
2) Вьюха список закачек данного юзера. Отображать: имя файла, количество скачек, оставшийся срок жизни, дата закачки. Имя файла является ссылкой на данный файл (вида rm.medialooks.com/...).&lt;br /&gt;
&lt;br /&gt;
В меню каждого юзера должно быть что-то вроде &amp;quot;My Uploads&amp;quot;, которая ведет на вьюху (2).&lt;br /&gt;
&lt;br /&gt;
===Customer Access===&lt;br /&gt;
&lt;br /&gt;
Нужно научицо давать кастомерам доступ к аплоадам. Для этого нужно реализовать в RM еще одну роль - &amp;quot;Customer&amp;quot;. Роль &amp;quot;User&amp;quot; нужно переименовать в &amp;quot;Developer&amp;quot;. Каждый контакт, добавленный в систему, должен получать соотв. статус и автоматически сгенеренный пароль. Никаких писем при заведении пользователей пока автоматически рассылать не надо. Однако, при первой попытке зайти в систему, кастомер должен по почте получить свой пароль. Залогинившись, он имеет доступ только к своим аплоадам (в будущем добавим еще подписки и лицензии).&lt;br /&gt;
&lt;br /&gt;
===Search===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать поиск в системе. Форма поиска - одна на все случаи. Она должна размещаться на всех страницах системы.&lt;br /&gt;
&lt;br /&gt;
По каким полям искать:&lt;br /&gt;
&lt;br /&gt;
* По контактам.&lt;br /&gt;
* По названию клиента.&lt;br /&gt;
* По тегу клиента.&lt;br /&gt;
&lt;br /&gt;
'''Пример.''' Если в поле поиска ввден запрос:&lt;br /&gt;
&lt;br /&gt;
Andrew A. Okunev &amp;lt;dev@medialooks.com&amp;gt; (MediaLooks)&lt;br /&gt;
&lt;br /&gt;
- то сперва нужно произвести поиск отдельно по &amp;quot;Osman Yel&amp;quot;, &amp;quot;dev@medialooks.com&amp;quot; и &amp;quot;MediaLooks&amp;quot;. Эти результаты вывести в первую очередь.&lt;br /&gt;
&lt;br /&gt;
Во-вторую - выделить из поисковой строки название домена и отрезать от него домен первого уровня. Т.е. в нашем примере искать по строке &amp;quot;medialooks&amp;quot;. Эти результаты вывести во вторую очередь.&lt;br /&gt;
&lt;br /&gt;
Кроме этого, естественно должен работать поиск в том случае если исходный запрос это &amp;quot;dev@medialooks.com&amp;quot; или просто &amp;quot;medialooks&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===LinkedIn Integration===&lt;br /&gt;
&lt;br /&gt;
Зачем? Любая система управления контактами страдает одним недостатком - ей неоткуда узнать о том, что у кого-то поменялся email или телефон.&lt;br /&gt;
&lt;br /&gt;
Предполагается что пользователи LinkedIn (за исключением [http://www.linkedin.com/pub/2/26b/926 некоторых] поддерживают свой профиль в актуальном состоянии. В частности, следят за тем, чтобы в профиле был актуальный email.&lt;br /&gt;
&lt;br /&gt;
В результате хочется получить поддержку следующих сценариев:&lt;br /&gt;
&lt;br /&gt;
* Узнавать об изменениях в контактной информации наших клиентов.&lt;br /&gt;
* Приглашать в нашу сеть клиентов, которые уже используют LinkedIn.&lt;br /&gt;
* Приглашать в LinkedIn тех клиентов, которые его пока не используют.&lt;br /&gt;
* Если клиент для общение с нами использует один email, а для LinkedIn - другой, - то нам нужно узнать этот email и использовать его как запасной/альтернативный.&lt;br /&gt;
&lt;br /&gt;
Для начала думаю следует просто проверить, позволяет ли API делать следующее:&lt;br /&gt;
&lt;br /&gt;
* Авторизоваться в системе под каким-то реальным логином (например, подо мной).&lt;br /&gt;
* Поискать пользователей по email.&lt;br /&gt;
* Получить email любого из моих контактов.&lt;br /&gt;
* Послать конкретному пользователю инвайт, иметь возможность указать кастомный текст для инвайта.&lt;br /&gt;
* Пригласить нового пользователя через email, то же самое с кастомным текстом.&lt;br /&gt;
&lt;br /&gt;
Задача неактуальна поскольку как я понял от LinkedIn нужно сначала получить одобрение на использование API:&lt;br /&gt;
&lt;br /&gt;
* http://www.linkedin.com/static?key=developers_apis&lt;br /&gt;
&lt;br /&gt;
==Done Tasks==&lt;br /&gt;
&lt;br /&gt;
* [[LMS/CMS Tasks: Done]]&lt;br /&gt;
&lt;br /&gt;
[[Category: Tasks]]&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Ivan</name></author>	</entry>

	<entry>
		<id>http://wiki.avobjects.com/Dev:RM/LMS_Tasks</id>
		<title>Dev:RM/LMS Tasks</title>
		<link rel="alternate" type="text/html" href="http://wiki.avobjects.com/Dev:RM/LMS_Tasks"/>
				<updated>2009-01-22T07:58:19Z</updated>
		
		<summary type="html">&lt;p&gt;Ivan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See also:&lt;br /&gt;
&lt;br /&gt;
* [[CMS Tasks]]&lt;br /&gt;
&lt;br /&gt;
==RM/LMS Tasks==&lt;br /&gt;
&lt;br /&gt;
==DONE==&lt;br /&gt;
&lt;br /&gt;
* [1:00] SVN setup.&lt;br /&gt;
* [00:10] Выводить вот [http://rm.medialooks.com/customer/show/119 тут] информацию &amp;quot;Last edited: X days ago.&amp;quot; (доделка апдейта кастомер.апдейтед_эт при манипуляциях с лицензиями)&lt;br /&gt;
* [00:05] Ссылку нью кастомер снизу перенести наверх: &amp;quot;Add new customer&amp;quot;. Send LicenseExpired убрать.&lt;br /&gt;
* [00:20] Поменять from/reply-to писем [http://rm.medialooks.com/product/subscribers/31 sent to all] на: MediaLooks &amp;lt;dev@medialooks.com&amp;gt;. После рассылки выводить сообщение &amp;quot;15 emails sent to subscribers.&amp;quot; 15 это количество писем.&lt;br /&gt;
&lt;br /&gt;
==TODO==&lt;br /&gt;
&lt;br /&gt;
===Backups to Amazon S3===&lt;br /&gt;
&lt;br /&gt;
Давай будем наш бэкапный файл закачивать на амазон раз в неделю. Я сделал там аккаунт.&lt;br /&gt;
&lt;br /&gt;
===Tasks===&lt;br /&gt;
&lt;br /&gt;
* Добавить новый опцию к свойствам продукта - возможность наследовать другие продукты. В гуе опция дает возможность составить список наследуемых продуктов. На практике это используется следующим образом. Продаются лицензии на Продукт А, хотя даунлоада и релизов для этого продукта либо вообще не существует, либо они выпускаются реже. Т.е. продукт это просто банлд из продуктов B и C. Подписка на новые релизы продукта А означает, что на этот адрес должны отсылаться также и новые релизе продуктов B и C. При этом в случае если лицензия на продукт А истекла - в письмо с релизами продуктов B и C должен вставляться соответствующий текст.&lt;br /&gt;
&lt;br /&gt;
* Если переименовать продукт, то перестает работать общая ссылка на даунлоад и по-версионные ссылки.&lt;br /&gt;
&lt;br /&gt;
* Добавить возможность вести историю лицензий. Т.е. если кастомер обновил лицензию, то я ее не просто редактирую а делаю к ней какой-то аддишен - таким образом что в RM остается (и может быть отображена) инфа про старую лицензию.&lt;br /&gt;
&lt;br /&gt;
* Разобрацо в чем проблема с настройкой goals в гугле.&lt;br /&gt;
&lt;br /&gt;
* Contact as System Item (see task description).&lt;br /&gt;
&lt;br /&gt;
* Search (see task description).&lt;br /&gt;
&lt;br /&gt;
* Сортировка по тагам во вьюхе кастомеров. Статистика по тагам.&lt;br /&gt;
&lt;br /&gt;
* Добавить вывод количества лицензионных подписок в графу &amp;quot;Site Subscribers&amp;quot;. Графу переименовать в &amp;quot;Subscribers (Interested/Licensed)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* Переработать миханизм добавления контактов в кастомера. При пастинге в поле Name строки вида &lt;br /&gt;
:'Andrew A. Okunev &amp;lt;dev@medialooks.com&amp;gt; (MediaLooks)'&lt;br /&gt;
:'&amp;quot;Andrew A. Okunev&amp;quot; &amp;lt;dev@medialooks.com&amp;gt; (MediaLooks)' &lt;br /&gt;
:'Andrew A. Okunev &amp;lt;dev@medialooks.com&amp;gt;'&lt;br /&gt;
:'&amp;quot;Andrew A. Okunev&amp;quot; &amp;lt;dev@medialooks.com&amp;gt;' &lt;br /&gt;
:- сразу выделять из этой строки Name и Email и вставлять в соответствующие поля. То что в скобках - просто отбрасывать.&lt;br /&gt;
&lt;br /&gt;
* Группировка продуктов по тегу &amp;quot;Product type&amp;quot; на главной странице. Соответственно в свойства продукта нужно добавить такое поле. Группирока осуществляется по сочетанию тегов - например, &amp;quot;sdks vsevolod&amp;quot;, &amp;quot;sdks dkn&amp;quot;, &amp;quot;filters dkn&amp;quot; - это три разных группы (а у кадого продукта в этих группах по 2 тега). Внутри групп сортировать продукты по общему количеству подписок на апдейты (просто подписка или по лицензии). Группы сортировать по суммурному количеству подписок.&lt;br /&gt;
&lt;br /&gt;
* Общие рассылки. Научиться делать рассылки по всем клиентам. Это должна быть отдельная подписка.&lt;br /&gt;
&lt;br /&gt;
* Переместить главною меню на верх: &amp;quot;Products | Customers | New Releases (5) | Users&amp;quot;. &amp;quot;New Releases&amp;quot; это вместо &amp;quot;Distributives&amp;quot;; в скобках выводить количество неомодерированных релизов.&lt;br /&gt;
&lt;br /&gt;
* Создать продуктовое меню вот [http://rm.medialooks.com/product/show/15 тут]: &amp;quot;Add new release | View leads | View customers | Edit&amp;quot;. Из таблицы на главной странице убрать столбцы Edit и Delete. Там же заменить &amp;quot;Site Subscribers&amp;quot; на &amp;quot;Leads&amp;quot;, а &amp;quot;Licenses&amp;quot; на &amp;quot;Customers&amp;quot;. Ссылку из цифр в этих столбцах убрать, сделать ее рядом в виде &amp;quot;(View)&amp;quot; (а то не очень удобно в цифры кликать).&lt;br /&gt;
&lt;br /&gt;
* Персонализированный учет закачек. Мы хотим про каждого клиента знать скачивает он новые версии или нет. В письме, которое он получает при выходе новой версии, можно делать уникальный урл, чтобы система знала нажал он или нет. Второй подход - это использовать куки на тот случай, если клиент скачивает с сайта.&lt;br /&gt;
&lt;br /&gt;
* Статистика закачек. Научицо разделять новые (приходящие с рекламы или из поиска) и повторные (наши кастомеры качают новые версии) закачки.&lt;br /&gt;
&lt;br /&gt;
* Подумать. Если есть идеи как интегрировать с Google Analytics (GA)  AdWords (AW) - было бы клева. Например вытаскивать из GA данные о посещениях конкретной страницы и сравнивать их с данными по закачкам.&lt;br /&gt;
&lt;br /&gt;
* При добавлении нового релиза вставлять в поле версии номер последней +1 в последней цифре.&lt;br /&gt;
&lt;br /&gt;
* Задача, связанная с объединением Playout SDK и др. в один даунлоад. Галка следить за даунлоадом штоли. Надо вспомнить.&lt;br /&gt;
&lt;br /&gt;
* Проблема с возможностью создать продукт у которого все версии - беты. И тогда не работает общая ссылка.&lt;br /&gt;
&lt;br /&gt;
* Проблема с RSS-фидом блога (у меня почему-то аутлук пытаецо запустицо).&lt;br /&gt;
&lt;br /&gt;
===Это потом===&lt;br /&gt;
&lt;br /&gt;
* Переделать форму контактов на сайте. Добавить возможность указать второй email. Отдельные поля под скайп, телефон.&lt;br /&gt;
&lt;br /&gt;
* Подписка royalties.&lt;br /&gt;
&lt;br /&gt;
===Industry-Based Subscriptions===&lt;br /&gt;
&lt;br /&gt;
Добавить возможность создавать рассылки по индустриям. В целом все аналогично тому как сейчас работают подписки на новые релизы. Можно подписывать контакты руками. А при рассылке заодно рассылать тем, кто является клиентом какого-либо продукта и тоже записан в эту индустрию.&lt;br /&gt;
&lt;br /&gt;
Возможно, когда у нас появятся разные способы делать рассылки, придется придумывать способы не слать дважды по одному и тому же поводу. Например, заводить для рассылки какой-нибудь ID.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Contact as System Item===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать контакты как самостоятельную сущность.&lt;br /&gt;
&lt;br /&gt;
Контакт представляет из себя имя (текстовое поле например &amp;quot;Andrew Okunev) и ассоциированный c ним набор полей:&lt;br /&gt;
&lt;br /&gt;
* email name (используется в подстановках в письмах; если пусто, используется &amp;quot;customer&amp;quot;)&lt;br /&gt;
* email (любое количество)&lt;br /&gt;
* skype (любое количество)&lt;br /&gt;
* телефон (любое количество)&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать отображение и редактирование свойств для любого из контактов. Например:&lt;br /&gt;
&lt;br /&gt;
* Когда добавлен в систему&lt;br /&gt;
* С какими компаниями (Customers) ассоциирован.&lt;br /&gt;
* С какими лицензиями ассоциирован.&lt;br /&gt;
* На какие подписки подписан.&lt;br /&gt;
&lt;br /&gt;
Все это нужно реализовать в одной вьюхе. Редактирование доступно только администратору системы.&lt;br /&gt;
&lt;br /&gt;
Примечания:&lt;br /&gt;
&lt;br /&gt;
* В системе должны отсутствовать дубликаты по email. Дубликаты по имени допустимы (т.е. когда одинаковое имя но разный email), но должна быть возможность их соединить (т.е. превратить в один контакт с двумя email). Реализовать это можно через отдельную вьюху, доступную администратору.&lt;br /&gt;
&lt;br /&gt;
* Если у контакта больше одного email, то любой из них может использоваться для авторизации.&lt;br /&gt;
&lt;br /&gt;
* Новый контакт (как сущность) создается при любом добавлении контакта в систему (например, при создании подписки через модуль subscribers.&lt;br /&gt;
&lt;br /&gt;
===Universal Uploads===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать возможность закачивать в RM абстрактные (не привязанные к какому-либо продукту) файлы. При этом каждому такому файлу должен быть по-умолчанию присвоен срок жизни - 30 дней. После чего файл автоматически удаляется. Файлы можно защищать паролем, который требуется для скачки.&lt;br /&gt;
&lt;br /&gt;
Каждый файл привязан к какому-либо юзеру. Только у этого пользователя (или у администратора) есть возможность добавлять к своему аккаунту файлы или удалять их. Каждую закачку можно удалить или обновить файл в ней.&lt;br /&gt;
&lt;br /&gt;
Соответственно, необходимо создать две новых вьюхи:&lt;br /&gt;
&lt;br /&gt;
1) Вьюха создания закачки. Опции: текстедит срок жизни (по-умолчанию вбито 30), чекбокс защитить паролем, путь к файлу.&lt;br /&gt;
&lt;br /&gt;
2) Вьюха список закачек данного юзера. Отображать: имя файла, количество скачек, оставшийся срок жизни, дата закачки. Имя файла является ссылкой на данный файл (вида rm.medialooks.com/...).&lt;br /&gt;
&lt;br /&gt;
В меню каждого юзера должно быть что-то вроде &amp;quot;My Uploads&amp;quot;, которая ведет на вьюху (2).&lt;br /&gt;
&lt;br /&gt;
===Customer Access===&lt;br /&gt;
&lt;br /&gt;
Нужно научицо давать кастомерам доступ к аплоадам. Для этого нужно реализовать в RM еще одну роль - &amp;quot;Customer&amp;quot;. Роль &amp;quot;User&amp;quot; нужно переименовать в &amp;quot;Developer&amp;quot;. Каждый контакт, добавленный в систему, должен получать соотв. статус и автоматически сгенеренный пароль. Никаких писем при заведении пользователей пока автоматически рассылать не надо. Однако, при первой попытке зайти в систему, кастомер должен по почте получить свой пароль. Залогинившись, он имеет доступ только к своим аплоадам (в будущем добавим еще подписки и лицензии).&lt;br /&gt;
&lt;br /&gt;
===Search===&lt;br /&gt;
&lt;br /&gt;
Необходимо реализовать поиск в системе. Форма поиска - одна на все случаи. Она должна размещаться на всех страницах системы.&lt;br /&gt;
&lt;br /&gt;
По каким полям искать:&lt;br /&gt;
&lt;br /&gt;
* По контактам.&lt;br /&gt;
* По названию клиента.&lt;br /&gt;
* По тегу клиента.&lt;br /&gt;
&lt;br /&gt;
'''Пример.''' Если в поле поиска ввден запрос:&lt;br /&gt;
&lt;br /&gt;
Andrew A. Okunev &amp;lt;dev@medialooks.com&amp;gt; (MediaLooks)&lt;br /&gt;
&lt;br /&gt;
- то сперва нужно произвести поиск отдельно по &amp;quot;Osman Yel&amp;quot;, &amp;quot;dev@medialooks.com&amp;quot; и &amp;quot;MediaLooks&amp;quot;. Эти результаты вывести в первую очередь.&lt;br /&gt;
&lt;br /&gt;
Во-вторую - выделить из поисковой строки название домена и отрезать от него домен первого уровня. Т.е. в нашем примере искать по строке &amp;quot;medialooks&amp;quot;. Эти результаты вывести во вторую очередь.&lt;br /&gt;
&lt;br /&gt;
Кроме этого, естественно должен работать поиск в том случае если исходный запрос это &amp;quot;dev@medialooks.com&amp;quot; или просто &amp;quot;medialooks&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===LinkedIn Integration===&lt;br /&gt;
&lt;br /&gt;
Зачем? Любая система управления контактами страдает одним недостатком - ей неоткуда узнать о том, что у кого-то поменялся email или телефон.&lt;br /&gt;
&lt;br /&gt;
Предполагается что пользователи LinkedIn (за исключением [http://www.linkedin.com/pub/2/26b/926 некоторых] поддерживают свой профиль в актуальном состоянии. В частности, следят за тем, чтобы в профиле был актуальный email.&lt;br /&gt;
&lt;br /&gt;
В результате хочется получить поддержку следующих сценариев:&lt;br /&gt;
&lt;br /&gt;
* Узнавать об изменениях в контактной информации наших клиентов.&lt;br /&gt;
* Приглашать в нашу сеть клиентов, которые уже используют LinkedIn.&lt;br /&gt;
* Приглашать в LinkedIn тех клиентов, которые его пока не используют.&lt;br /&gt;
* Если клиент для общение с нами использует один email, а для LinkedIn - другой, - то нам нужно узнать этот email и использовать его как запасной/альтернативный.&lt;br /&gt;
&lt;br /&gt;
Для начала думаю следует просто проверить, позволяет ли API делать следующее:&lt;br /&gt;
&lt;br /&gt;
* Авторизоваться в системе под каким-то реальным логином (например, подо мной).&lt;br /&gt;
* Поискать пользователей по email.&lt;br /&gt;
* Получить email любого из моих контактов.&lt;br /&gt;
* Послать конкретному пользователю инвайт, иметь возможность указать кастомный текст для инвайта.&lt;br /&gt;
* Пригласить нового пользователя через email, то же самое с кастомным текстом.&lt;br /&gt;
&lt;br /&gt;
Задача неактуальна поскольку как я понял от LinkedIn нужно сначала получить одобрение на использование API:&lt;br /&gt;
&lt;br /&gt;
* http://www.linkedin.com/static?key=developers_apis&lt;br /&gt;
&lt;br /&gt;
==Done Tasks==&lt;br /&gt;
&lt;br /&gt;
* [[LMS/CMS Tasks: Done]]&lt;br /&gt;
&lt;br /&gt;
[[Category: Tasks]]&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Ivan</name></author>	</entry>

	<entry>
		<id>http://wiki.avobjects.com/Dev:LMS/CMS_Tasks:_Done</id>
		<title>Dev:LMS/CMS Tasks: Done</title>
		<link rel="alternate" type="text/html" href="http://wiki.avobjects.com/Dev:LMS/CMS_Tasks:_Done"/>
				<updated>2009-01-22T07:18:38Z</updated>
		
		<summary type="html">&lt;p&gt;Ivan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See also:&lt;br /&gt;
&lt;br /&gt;
* [[RM/LMS Tasks]]&lt;br /&gt;
&lt;br /&gt;
==Completed Tasks: LMS - 18.01.2009==&lt;br /&gt;
&lt;br /&gt;
===Small Tasks===&lt;br /&gt;
&lt;br /&gt;
* [16:00] Поднятие локальных копий, изучение кода.&lt;br /&gt;
* [0:30] Сортировка продуктов по алфавиту на главной странице.&lt;br /&gt;
* [0:30] Разные адреса. Чтобы не вся почта уходила с BCC на rm_monitor.&lt;br /&gt;
* [4:00] Можно ли вот [http://rm.medialooks.com/product/subscribers/4 тут] сделать так чтобы при нажатии на &amp;quot;delete&amp;quot; не перегружалась страница?&lt;br /&gt;
* [0:30] Разрешить вот [http://rm.medialooks.com/product/subscribers/4 тут] добавлять подписчиков в формате &amp;quot;name@email.com&amp;quot;.&lt;br /&gt;
* [1:00] Добавить проверку на дубликаты при создании нового клиента. Проверку проводить по customer tag.&lt;br /&gt;
* [3:00] Вот [http://rm.medialooks.com/customer/edit/138 тут] (к примеру) при редактировании (или создании) клиента когда добавляешь новый контакт и говоришь ему &amp;quot;Add fields&amp;quot; он должен добавлять новое поле для ввода снизу (чтобы можно еще один контакт добавить). Добавил новую задачу, там надо переработать миханизм. --[[User:Admin|Admin]] 09:27, 18 January 2009 (MSK)&lt;br /&gt;
* [4:00] Обработка [[асдфас]] и др. (фильтрация вики-тегов при рассылке писем).&lt;br /&gt;
* [0:10] Вот [http://rm.medialooks.com/customer/show/141 тут] отображать дату в формате dd.mm.yyyy.&lt;br /&gt;
* [3:00] Royalties. Первое - это галочка в свойствах лицензии &amp;quot;Royalties&amp;quot;. Второе - это возможность отображать клиентов только с этой галочкой вот [http://rm.medialooks.com/customer здесь].&lt;br /&gt;
* [0:30] Нужно добавить поле &amp;quot;License Type&amp;quot; к свойствам лицензии. У него могут быть два значения: &amp;quot;Single Developer&amp;quot; и &amp;quot;Team&amp;quot;.&lt;br /&gt;
* [1:00] Если я вбил в поле &amp;quot;Purchased&amp;quot; (это я про лицензии) какую-то дату, то я хочу чтобы в поле &amp;quot;Expires&amp;quot; сразу же автоматически подставилось то же самое плюс один год. При этом у меня должна быть возможностью вручную указать даты, которые отличаются больше или меньше чем на год.&lt;br /&gt;
* [0:10] При добавлении кастомера по-умолчанию оставлять поле industry пустым. Всем клиентам это поле принудительно сбросить.&lt;br /&gt;
* [8:00] Добавить возможность указать несколько индустрий для одного кастомера. Вообще, лучше всего индустрии сделать как таги на делишесе. Т.е. не выбор из списка а пишешь любое но она умеет подсказывать и показывает внизу полный список того что уже есть. &lt;br /&gt;
* [8:00] Добавить к полям кастомера страну. Лучше тоже как таги (т.е. простыня из полного списка стран не нужна).&lt;br /&gt;
* [4:00] Обновление версии руби.&lt;br /&gt;
&lt;br /&gt;
===[8:00] Exclude Subscribers Feature===&lt;br /&gt;
&lt;br /&gt;
Когда пишешь письмо всем подписчикам какого-либо продукта (например, вот [http://rm.medialooks.com/product/subscribers/35 тут]) нужна опция &amp;quot;Exclude subscribers of the following products:&amp;quot;. Там выбираешь один или неск. продуктов и письмо не уходит тому, кто подписан на апдейты по этим продуктам, или имеет лицензию по этим продуктам.&lt;br /&gt;
&lt;br /&gt;
Идея в том что &amp;quot;send to all&amp;quot; используется для рекламы других продуктов. Соотв., письма не нужно слать тем, кто уже про эти продукты знает.&lt;br /&gt;
&lt;br /&gt;
===[0:00] Backups===&lt;br /&gt;
&lt;br /&gt;
Сейчас мы всю информацию о лицензиях и клиентах храним в RM. Что там у нас с бэкапами (я уже забыл)?&lt;br /&gt;
&lt;br /&gt;
:30 ежедневных бэкапов каждой БД + снэпшоты файловой системы: 2 ежечасных (now-1h, now-2h), 4 еже(ипитруччо)-6-часных (06:07, 12:07, 18:07, 00:07), 2 еженедельных (последнее и предпоследнее воскресенья)&lt;br /&gt;
&lt;br /&gt;
===[3:00] The Essence of Beta===&lt;br /&gt;
&lt;br /&gt;
При [http://rm.medialooks.com/product/new_distributive закачке новой версии] можно указать что данная версия - бета. До сих пор логики к этому никакой прикручено не было. Нужно сделать чтобы, если стоит такая галочка, то по [http://rm.medialooks.com/downloads/playout_sdk.exe общей ссылке] отдавалась самая свежая версия, у которой такой галочки нет. Скачать бета-версию можно только по [http://www.medialooks.com/downloads/playout_sdk_3.1.0.0.exe прямой ссылке].&lt;br /&gt;
&lt;br /&gt;
===[5:00] Download Stats===&lt;br /&gt;
&lt;br /&gt;
Реализовать учет количества даунлоадов. Какая именно статистика будет реально испозоваться не знаю. Поэтому сохранять нужно все. &lt;br /&gt;
&lt;br /&gt;
Отображение сделать на отдельной вьюхе. Потом решим - возможно, какие-то данные вытащим на главную страницу.&lt;br /&gt;
&lt;br /&gt;
Что отображать:&lt;br /&gt;
&lt;br /&gt;
* Количество загрузок по дням. Рисовать симпатишный график, с возможностью выбора периода для отображения (любой период за который есть статистика). Отдельное отображение в таблице при этом не нужно.&lt;br /&gt;
* Всего загрузок по каждому продукту.&lt;br /&gt;
* Все то же самое но с разбивкой по версиям.&lt;br /&gt;
&lt;br /&gt;
===[10:00] License Editing GUI===&lt;br /&gt;
&lt;br /&gt;
Нужно переработать вот эту [http://rm.medialooks.com/customer/show/33 еботу]:&lt;br /&gt;
&lt;br /&gt;
* Ссылка Edit внизу customer/show/33 сейчас ведет вот [http://rm.medialooks.com/customer/edit/33 сюда] - это редактирвоание всех свойств клиента. Нужно разделить - отдельно редактировать свойства клиента, и отдельно - каждую его лицензию.&lt;br /&gt;
&lt;br /&gt;
* Добавление новой лицензии. Нужно сделать отдельную ссылку вот [http://rm.medialooks.com/customer/show/33 здесь], которая будет аяксом (без перезагрузки) открывать нужные формы. Т.е. при создании новой лицензии видна вся страница customer/show/33.&lt;br /&gt;
&lt;br /&gt;
* На страничку любого эдита добавить ссылочку Cancel - по сути это просто возврат на предыдущую страницу или на уровень вверх.&lt;br /&gt;
&lt;br /&gt;
'''Total time spent:'''&lt;br /&gt;
&lt;br /&gt;
==Completed Tasks: CMS - 18.01.2009==&lt;br /&gt;
&lt;br /&gt;
===Small Tasks===&lt;br /&gt;
&lt;br /&gt;
* [2:00] Сообщение об ошибке на почту в случае если руби говорит &amp;quot;ви ар сори&amp;quot;. Но как быть с дебагом? (Это общее для CMS и RM.)&lt;br /&gt;
* [1:00] Запретить отсылать пустые письма через форму контактов, если нет галки &amp;quot;подписаться&amp;quot;&lt;br /&gt;
* [2:00] Проблема со списками (FF bug).&lt;br /&gt;
&lt;br /&gt;
===[8:00] Images Export===&lt;br /&gt;
&lt;br /&gt;
На текущий момент необходима поддержка следующих вореантов синтаксиса картинок:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[[Image:filename.jpg|right|thumb|200px|nolink|Description text.]]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Порядок параметров right, thumb, 200px, nolink не важен. Любой из параметров может отсутствовать.&lt;br /&gt;
&lt;br /&gt;
Вместо right может быть left или center. Если параметр не задан то по-умолчанию left. Про left и center нужно покопать подробнее, пока мы их не используем, поэтому можно забить.&lt;br /&gt;
&lt;br /&gt;
Если не указан thumb, то подпись под картинкой не выводится. Остается только в alt.&lt;br /&gt;
&lt;br /&gt;
Если указан nolink, то убирается ссылка на картинку в вике.&lt;br /&gt;
&lt;br /&gt;
'''Total time spent:'''&lt;br /&gt;
&lt;br /&gt;
[[Category: Tasks]]&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Ivan</name></author>	</entry>

	</feed>