potam 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 0e5b8b6e8648eddbe1b0daefb26d744b0559176d
4
+ data.tar.gz: 653d9de5244d7a6981e4759d695a2a53bb893459
5
+ SHA512:
6
+ metadata.gz: 92d92fb32832ae3e152b5a91591599484d3be7d8e273ab5fe923ae7c4c3fcebd268b45b39c89276e4aaec4ac63ca023bc3bbca24cdcb0e17fc8938098b9a2f85
7
+ data.tar.gz: 382b9a0ea075c0e21ec1ca0b5cfcc8771aa437d69eb0ade3c727a291032d546a3bfc7b645aad0f2a4432b6612c3db9e41852623d9aa7f62f29071dc414bd05ae
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --color
data/Gemfile ADDED
@@ -0,0 +1,7 @@
1
+ source 'https://rubygems.org'
2
+ gemspec
3
+
4
+ gem 'sequel'
5
+ gem 'highline'
6
+ gem 'sqlite3'
7
+ gem 'unicode'
data/Gemfile.lock ADDED
@@ -0,0 +1,52 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ potam (0.0.1)
5
+ gli (= 2.12.2)
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ aruba (0.6.1)
11
+ childprocess (>= 0.3.6)
12
+ cucumber (>= 1.1.1)
13
+ rspec-expectations (>= 2.7.0)
14
+ builder (3.2.2)
15
+ childprocess (0.5.5)
16
+ ffi (~> 1.0, >= 1.0.11)
17
+ cucumber (1.3.17)
18
+ builder (>= 2.1.2)
19
+ diff-lcs (>= 1.1.3)
20
+ gherkin (~> 2.12)
21
+ multi_json (>= 1.7.5, < 2.0)
22
+ multi_test (>= 0.1.1)
23
+ diff-lcs (1.2.5)
24
+ ffi (1.9.6)
25
+ gherkin (2.12.2)
26
+ multi_json (~> 1.3)
27
+ gli (2.12.2)
28
+ highline (1.6.21)
29
+ multi_json (1.10.1)
30
+ multi_test (0.1.1)
31
+ rake (10.1.0)
32
+ rdoc (4.1.0)
33
+ rspec-expectations (3.1.2)
34
+ diff-lcs (>= 1.2.0, < 2.0)
35
+ rspec-support (~> 3.1.0)
36
+ rspec-support (3.1.2)
37
+ sequel (4.16.0)
38
+ sqlite3 (1.3.10)
39
+ unicode (0.4.4.2)
40
+
41
+ PLATFORMS
42
+ ruby
43
+
44
+ DEPENDENCIES
45
+ aruba
46
+ highline
47
+ potam!
48
+ rake
49
+ rdoc
50
+ sequel
51
+ sqlite3
52
+ unicode
data/README.rdoc ADDED
@@ -0,0 +1,6 @@
1
+ = potam
2
+
3
+ Describe your project here
4
+
5
+ :include:potam.rdoc
6
+
data/Rakefile ADDED
@@ -0,0 +1,44 @@
1
+ require 'rake/clean'
2
+ require 'rubygems'
3
+ require 'rubygems/package_task'
4
+ require 'rdoc/task'
5
+ require 'cucumber'
6
+ require 'cucumber/rake/task'
7
+ Rake::RDocTask.new do |rd|
8
+ rd.main = "README.rdoc"
9
+ rd.rdoc_files.include("README.rdoc","lib/**/*.rb","bin/**/*")
10
+ rd.title = 'Your application title'
11
+ end
12
+
13
+ spec = eval(File.read('potam.gemspec'))
14
+
15
+ Gem::PackageTask.new(spec) do |pkg|
16
+ end
17
+ CUKE_RESULTS = 'results.html'
18
+ CLEAN << CUKE_RESULTS
19
+ desc 'Run features'
20
+ Cucumber::Rake::Task.new(:features) do |t|
21
+ opts = "features --format html -o #{CUKE_RESULTS} --format progress -x"
22
+ opts += " --tags #{ENV['TAGS']}" if ENV['TAGS']
23
+ t.cucumber_opts = opts
24
+ t.fork = false
25
+ end
26
+
27
+ desc 'Run features tagged as work-in-progress (@wip)'
28
+ Cucumber::Rake::Task.new('features:wip') do |t|
29
+ tag_opts = ' --tags ~@pending'
30
+ tag_opts = ' --tags @wip'
31
+ t.cucumber_opts = "features --format html -o #{CUKE_RESULTS} --format pretty -x -s#{tag_opts}"
32
+ t.fork = false
33
+ end
34
+
35
+ task :cucumber => :features
36
+ task 'cucumber:wip' => 'features:wip'
37
+ task :wip => 'features:wip'
38
+ require 'rake/testtask'
39
+ Rake::TestTask.new do |t|
40
+ t.libs << "test"
41
+ t.test_files = FileList['test/*_test.rb']
42
+ end
43
+
44
+ task :default => [:test,:features]
data/bin/potam ADDED
@@ -0,0 +1,89 @@
1
+ #!/usr/bin/env ruby
2
+ # encoding: utf-8
3
+ require 'potam'
4
+
5
+ include GLI::App
6
+ include Dialog
7
+
8
+ program_desc 'Менеджер задач'
9
+
10
+ version Potam::VERSION
11
+
12
+ subcommand_option_handling :normal
13
+ arguments :strict
14
+
15
+ # ENV['GLI_DEBUG'] = 'true'
16
+
17
+ db = ENV['POTAM'] == 'test' ?
18
+ Sequel.sqlite("#{File.expand_path(File.dirname(__FILE__))}/../test/test.db") :
19
+ Sequel.sqlite("#{File.expand_path(File.dirname(__FILE__))}/../db/potam.db")
20
+ tasks = Tasks.new(db)
21
+ subtasks = Subtasks.new(db)
22
+ notes = Notes.new(db)
23
+ report = Report.new(db)
24
+
25
+ desc 'Указание номера задачи'
26
+ arg_name 'Номер задачи'
27
+ flag [:t,:task]
28
+
29
+ desc 'Пометить подзадачу как выполненную'
30
+ arg_name 'Номер подзадачи'
31
+ command :done do |c|
32
+ c.action do |global_options,options,args|
33
+ subtasks.finish!(args[0].to_i)
34
+ say("Подзадача 'Подзадача #{args[0]}' завершена")
35
+ end
36
+ end
37
+
38
+ desc 'Добавление задач, подзадач и заметок'
39
+ arg_name 'Тип добавляемого объекта'
40
+ command :add do |c|
41
+ c.desc 'Добавить заметку'
42
+ c.switch :n, :note, :negatable => false
43
+ c.action do |global_options,options,args|
44
+ if global_options[:task]
45
+ if options[:note]
46
+ Dialog.ask_new_note
47
+ notes.create(task_id: global_options[:task], text: Dialog::new_note_text)
48
+ say("Заметка к задаче ##{global_options[:task]} добавлена")
49
+ else
50
+ Dialog.ask_new_subtask
51
+ subtasks.create(task_id: global_options[:task], title: Dialog::new_subtask_title)
52
+ say("Подзадача ##{subtasks.new_subtask_id} к задаче ##{global_options[:task]} добавлена")
53
+ end
54
+ else
55
+ Dialog.ask_new_task
56
+ tasks.create(title: Dialog::new_task_title, description: Dialog::new_task_description)
57
+ say("Задача '#{Dialog::new_task_title}' (##{tasks.new_task_id}) добавлена")
58
+ end
59
+ end
60
+ end
61
+
62
+ desc 'Просмотр перечня задач, подзадач и заметок'
63
+ arg_name 'Режим вывода списка'
64
+ command :list do |c|
65
+ c.desc 'Полный список'
66
+ c.switch :a, :all, :negatable => false
67
+ c.action do |global_options,options,args|
68
+ list_method = options[:all] ? :list : :last
69
+ if global_options[:task]
70
+ Dialog.say_task(task: tasks.info(global_options[:task]),
71
+ subtasks: subtasks.active(global_options[:task]),
72
+ notes: notes.__send__(list_method, global_options[:task]))
73
+ else
74
+ Dialog.say_tasks(tasks.__send__(list_method))
75
+ end
76
+ end
77
+ end
78
+
79
+ desc 'Вывести отчет'
80
+ arg_name 'Период отчета'
81
+ command :report do |c|
82
+ c.desc 'Недельный отчет'
83
+ c.switch :w, :week, :negatable => false
84
+ c.action do |global_options,options,args|
85
+ Dialog.say_report(report.week)
86
+ end
87
+ end
88
+
89
+ exit run(ARGV)
data/db/old.db ADDED
Binary file
data/db/old2.db ADDED
Binary file
data/db/potam.db ADDED
Binary file
@@ -0,0 +1,26 @@
1
+ Feature: Adding note
2
+ As a time manager
3
+ In order to fix my activity
4
+ I want to add notes for specified task
5
+
6
+ Background:
7
+ Given following tasks exists:
8
+ | title | description | created_at |
9
+ | Тестовая задача 1 | Описание | 1415812561 |
10
+ | Тестовая задача 2 | Описание | 1415812566 |
11
+
12
+ Scenario: Successfully add notes
13
+ Given the date is "1415812566"
14
+ When I run command `-t 2 add -n`
15
+ And I type a note "Текст"
16
+ Then I should see "Заметка к задаче #2 добавлена"
17
+ When I run command `-t 2 list`
18
+ Then I should see
19
+ """
20
+ #2 "Тестовая задача 2"
21
+ 2014-11-12
22
+ Описание
23
+
24
+ 2014-11-12
25
+ Текст
26
+ """
@@ -0,0 +1,26 @@
1
+ Feature: Adding task
2
+ As a time-manager
3
+ In order to group my activity
4
+ I want to add a task
5
+
6
+ Background:
7
+ Given following tasks exists:
8
+ | title | description | created_at |
9
+ | Тестовая задача 1 | Описание | 1415812561 |
10
+ | Тестовая задача 2 | Описание | 1415812566 |
11
+
12
+ Scenario: Successfully add tasks
13
+ Given the date is "1415812566"
14
+ When I run command `add`
15
+ And I type a task title "Тестовая задача 3"
16
+ And I type a task description "Описание"
17
+ Then I should see "Задача 'Тестовая задача 3' (#3) добавлена"
18
+ When I run command `-t 3 list`
19
+ Then I should see
20
+ """
21
+ #3 "Тестовая задача 3"
22
+ 2014-11-12
23
+ Описание
24
+ """
25
+
26
+ # Scenario: Add multiline descriptions for tasks
@@ -0,0 +1,66 @@
1
+ # encoding: utf-8
2
+ Feature: Listing tasks
3
+ As a time-manager
4
+ In order to browse my tasks
5
+ I want to view list of my tasks
6
+
7
+ Background:
8
+ Given following tasks exists:
9
+ | title | description | created_at |
10
+ | Тестовая задача 1 | Описание | 1415812561 |
11
+ | Тестовая задача 2 | Описание | 1415812566 |
12
+ | Тестовая задача 3 | Описание | 1415812571 |
13
+ | Тестовая задача 4 | Описание | 1415812576 |
14
+ | Тестовая задача 5 | Описание | 1415812581 |
15
+ | Тестовая задача 6 | Описание | 1415812586 |
16
+ | Тестовая задача 7 | Описание | 1415812591 |
17
+ | Тестовая задача 8 | Описание | 1415812596 |
18
+ | Тестовая задача 9 | Описание | 1415812601 |
19
+ | Тестовая задача 10 | Описание | 1415812606 |
20
+ | Тестовая задача 11 | Описание | 1415812611 |
21
+ | Тестовая задача 12 | Описание | 1415812616 |
22
+ | Тестовая задача 13 | Описание | 1415812621 |
23
+ And following subtasks exists:
24
+ | title | task_id | status | created_at | finished_at |
25
+ | Подзадача 1 | 1 | 0 | 1415812626 | 0 |
26
+ | Подзадача 2 | 2 | 1 | 1415812566 | 1415812631 |
27
+ And following notes exists:
28
+ | task_id | text | created_at |
29
+ | 1 | Заметка 1 | 1415812566 |
30
+ | 1 | Заметка 2 | 1415812571 |
31
+ | 3 | Заметка 3 | 1415812961 |
32
+
33
+ Scenario: list 10 last tasks, where changes are made in subtasks or notes
34
+ When I run command `list`
35
+ Then I should see
36
+ """
37
+ #3 Тестовая задача 3 2014-11-12
38
+ #2 Тестовая задача 2 2014-11-12
39
+ #1 Тестовая задача 1 2014-11-12
40
+ #13 Тестовая задача 13 2014-11-12
41
+ #12 Тестовая задача 12 2014-11-12
42
+ #11 Тестовая задача 11 2014-11-12
43
+ #10 Тестовая задача 10 2014-11-12
44
+ #9 Тестовая задача 9 2014-11-12
45
+ #8 Тестовая задача 8 2014-11-12
46
+ #7 Тестовая задача 7 2014-11-12
47
+ """
48
+
49
+ Scenario: list all tasks, ordered by last time changes are made in subtasks or notes
50
+ When I run command `list -a`
51
+ Then I should see
52
+ """
53
+ #3 Тестовая задача 3 2014-11-12
54
+ #2 Тестовая задача 2 2014-11-12
55
+ #1 Тестовая задача 1 2014-11-12
56
+ #13 Тестовая задача 13 2014-11-12
57
+ #12 Тестовая задача 12 2014-11-12
58
+ #11 Тестовая задача 11 2014-11-12
59
+ #10 Тестовая задача 10 2014-11-12
60
+ #9 Тестовая задача 9 2014-11-12
61
+ #8 Тестовая задача 8 2014-11-12
62
+ #7 Тестовая задача 7 2014-11-12
63
+ #6 Тестовая задача 6 2014-11-12
64
+ #5 Тестовая задача 5 2014-11-12
65
+ #4 Тестовая задача 4 2014-11-12
66
+ """
@@ -0,0 +1,8 @@
1
+ #Feature: My bootstrapped app kinda works
2
+ # In order to get going on coding my awesome app
3
+ # I want to have aruba and cucumber setup
4
+ # So I don't have to do it myself
5
+
6
+ # Scenario: App just runs
7
+ # When I get help for "potam"
8
+ # Then the exit status should be 0
@@ -0,0 +1,58 @@
1
+ Feature: View report
2
+ As a time-manager
3
+ In order to browse my activity per period
4
+ I want to view reports
5
+
6
+ Background:
7
+ # Пт. нояб. 14 10:16:01
8
+ Given the date is "1415942161"
9
+ And following tasks exists:
10
+ # Ср. нояб. 5 10:16:01
11
+ # Ср. нояб. 5 13:13:01
12
+ # Ср. нояб. 12 22:16:06
13
+ | title | description | created_at |
14
+ | Тестовая задача 1 | Описание 1 | 1415164561 |
15
+ | Тестовая задача 2 | Описание 2 | 1415175181 |
16
+ | Тестовая задача 3 | Описание 3 | 1415812566 |
17
+ And following subtasks exists:
18
+ # Ср. нояб. 5 17:00:25
19
+ # Чт. нояб. 6 10:13:21, Пн. нояб. 10 09:10:21
20
+ # Чт. нояб. 13 11:00:01
21
+ | title | task_id | status | created_at | finished_at |
22
+ | Подзадача 1 | 1 | 0 | 1415188825 | 0 |
23
+ | Подзадача 2 | 2 | 1 | 1415250801 | 1415592621 |
24
+ | Подзадача 3 | 3 | 0 | 1415858401 | 0 |
25
+ And following notes exists:
26
+ # Пт. нояб. 7 10:10:23
27
+ # Вт. нояб. 11 14:50:32
28
+ # Чт. нояб. 13 11:00:00
29
+ | task_id | text | created_at |
30
+ | 1 | Заметка 1 | 1415337023 |
31
+ | 2 | Заметка 2 | 1415699432 |
32
+ | 3 | Заметка 3 | 1415858400 |
33
+
34
+ Scenario: view weekly report
35
+ When I run command `report -w`
36
+ Then I should see
37
+ """
38
+ Проведена работа по следующим задачам:
39
+ #3 Тестовая задача 3 2014-11-12
40
+ #2 Тестовая задача 2 2014-11-05
41
+ ===========================
42
+ Тестовая задача 3:
43
+ 2014-11-12 (Ср) 22:16:06
44
+ Создана задача "Тестовая задача 3"
45
+
46
+ 2014-11-13 (Чт) 11:00:00
47
+ Создана заметка "Заметка 3"
48
+
49
+ 2014-11-13 (Чт) 11:00:01
50
+ Создана подзадача "Подзадача 3"
51
+ ---------------------------
52
+ Тестовая задача 2:
53
+ 2014-11-10 (Пн) 09:10:21
54
+ Завершена подзадача "Подзадача 2"
55
+
56
+ 2014-11-11 (Вт) 14:50:32
57
+ Создана заметка "Заметка 2"
58
+ """
@@ -0,0 +1,43 @@
1
+ # encoding: utf-8
2
+ # When /^I get help for "([^"]*)"$/ do |app_name|
3
+ # @app_name = app_name
4
+ # step %(I run `#{app_name} help`)
5
+ # end
6
+
7
+ When(/^I run command `([^`]*)`$/) do |cmd|
8
+ cmd = 'potam ' + unescape(cmd)
9
+ run_interactive(cmd)
10
+ end
11
+
12
+ When(/^I type [^"]* "(.*?)"$/) do |input|
13
+ type(input)
14
+ end
15
+
16
+ Then(/^I should see "(.*?)"$/) do |output|
17
+ steps %Q(When I wait for output to contain "#{output}")
18
+ end
19
+
20
+ Then(/^I should see$/) do |output|
21
+ steps %Q(Then it should pass with:
22
+ """
23
+ #{output}
24
+ """
25
+ )
26
+ end
27
+
28
+ Given(/^following ([^ ]*) exists:$/) do |table, records|
29
+ db = Sequel.sqlite(TESTDB)
30
+ table = db[:"#{table}"]
31
+ records.hashes.each do |record|
32
+ table.insert(record)
33
+ end
34
+ end
35
+
36
+ Given /^the date is "(.*?)"$/ do |timestamp|
37
+ # Timecop.travel Time.new(timestamp)
38
+ ENV['POTAMTIME'] = timestamp
39
+ end
40
+
41
+ # Then(/^I should look something like this$/) do |expected|
42
+ # assert_matching_output(expected, all_output)
43
+ # end
@@ -0,0 +1,31 @@
1
+ Feature: Adding subtask
2
+ As a time-manager
3
+ In order to plan my activity
4
+ I want to manage subtasks
5
+
6
+ Background:
7
+ Given following tasks exists:
8
+ | title | description | created_at |
9
+ | Тестовая задача 1 | Описание | 1415812561 |
10
+ | Тестовая задача 2 | Описание | 1415812566 |
11
+
12
+ Scenario: Successfully add subtasks
13
+ Given the date is "1415812566"
14
+ When I run command `-t 2 add`
15
+ And I type a subtask title "Подзадача 1"
16
+ Then I should see "Подзадача #1 к задаче #2 добавлена"
17
+ When I run command `-t 2 list`
18
+ Then I should see
19
+ """
20
+ #2 "Тестовая задача 2"
21
+ 2014-11-12
22
+ Описание
23
+ Подзадачи:
24
+ 2014-11-12 Подзадача 1 (#1)
25
+ """
26
+
27
+ Scenario: Successfully mark subtask finished
28
+ When I run command `done 1`
29
+ Then I should see "Подзадача 'Подзадача 1' завершена"
30
+
31
+ # Scenario: Add multiline descriptions for tasks
@@ -0,0 +1,27 @@
1
+ require 'aruba/cucumber'
2
+ require 'sequel'
3
+ # require 'cucumber/timecop'
4
+
5
+ ENV['PATH'] = "#{File.expand_path(File.dirname(__FILE__) + '/../../bin')}#{File::PATH_SEPARATOR}#{ENV['PATH']}"
6
+ LIB_DIR = File.join(File.expand_path(File.dirname(__FILE__)),'..','..','lib')
7
+ CLEANDB = "#{File.expand_path(File.dirname(__FILE__))}/../../test/clean.db"
8
+ TESTDB = "#{File.expand_path(File.dirname(__FILE__))}/../../test/test.db"
9
+
10
+ Before do |scenario|
11
+ # Using "announce" causes massive warnings on 1.9.2
12
+ @puts = true
13
+ @original_rubylib = ENV['RUBYLIB']
14
+ ENV['RUBYLIB'] = LIB_DIR + File::PATH_SEPARATOR + ENV['RUBYLIB'].to_s
15
+ ENV['POTAM'] = 'test'
16
+ FileUtils.cp(CLEANDB, TESTDB) #if !defined? scenario.scenario_outline
17
+ end
18
+
19
+ After do
20
+ ENV['RUBYLIB'] = @original_rubylib
21
+ # Timecop.return
22
+ end
23
+
24
+ at_exit do
25
+ ENV['POTAM'] = 'production'
26
+ FileUtils.cp(CLEANDB, TESTDB)
27
+ end
@@ -0,0 +1,128 @@
1
+ Feature: Show info about task
2
+ As a time-manager
3
+ In order to learn my activity with specific task
4
+ I want to view details about task and its notes
5
+
6
+ Background:
7
+ Given following tasks exists:
8
+ | title | description | created_at |
9
+ | Тестовая задача 1 | Описание 1 | 1415812561 |
10
+ | Тестовая задача 2 | Описание 2 | 1415812566 |
11
+ And following subtasks exists:
12
+ | title | task_id | status | created_at |
13
+ | Подзадача 1 | 1 | 0 | 1415812661 |
14
+ | Подзадача 2 | 2 | 1 | 1415812666 |
15
+ | Подзадача 3 | 1 | 0 | 1415812961 |
16
+ And following notes exists:
17
+ | task_id | text | created_at |
18
+ | 1 | Заметка 1 | 1415812661 |
19
+ | 2 | Заметка 2 | 1415812666 |
20
+ | 1 | Заметка 3 | 1415812961 |
21
+ | 1 | Заметка 4 | 1415812961 |
22
+ | 1 | Заметка 5 | 1415813161 |
23
+ | 1 | Заметка 6 | 1415813261 |
24
+ | 1 | Заметка 7 | 1415813361 |
25
+ | 1 | Заметка 8 | 1415813461 |
26
+ | 1 | Заметка 9 | 1415813561 |
27
+ | 1 | Заметка 10 | 1415813661 |
28
+ | 1 | Заметка 11 | 1415813761 |
29
+ | 1 | Заметка 12 | 1415813861 |
30
+ | 1 | Заметка 13 | 1415813961 |
31
+
32
+ Scenario: view task info with subtasks and notes
33
+ When I run command `-t 1 list`
34
+ Then I should see
35
+ """
36
+ #1 "Тестовая задача 1"
37
+ 2014-11-12
38
+ Описание 1
39
+ Подзадачи:
40
+ 2014-11-12 Подзадача 3 (#3)
41
+ 2014-11-12 Подзадача 1 (#1)
42
+
43
+ 2014-11-12
44
+ Заметка 13
45
+
46
+ 2014-11-12
47
+ Заметка 12
48
+
49
+ 2014-11-12
50
+ Заметка 11
51
+
52
+ 2014-11-12
53
+ Заметка 10
54
+
55
+ 2014-11-12
56
+ Заметка 9
57
+
58
+ 2014-11-12
59
+ Заметка 8
60
+
61
+ 2014-11-12
62
+ Заметка 7
63
+
64
+ 2014-11-12
65
+ Заметка 6
66
+
67
+ 2014-11-12
68
+ Заметка 5
69
+
70
+ 2014-11-12
71
+ Заметка 4
72
+ """
73
+ When I run command `-t 2 list`
74
+ Then I should see
75
+ """
76
+ #2 "Тестовая задача 2"
77
+ 2014-11-12
78
+ Описание 2
79
+
80
+ 2014-11-12
81
+ Заметка 2
82
+ """
83
+ When I run command `-t 1 list -a`
84
+ Then I should see
85
+ """
86
+ #1 "Тестовая задача 1"
87
+ 2014-11-12
88
+ Описание 1
89
+ Подзадачи:
90
+ 2014-11-12 Подзадача 3 (#3)
91
+ 2014-11-12 Подзадача 1 (#1)
92
+
93
+ 2014-11-12
94
+ Заметка 13
95
+
96
+ 2014-11-12
97
+ Заметка 12
98
+
99
+ 2014-11-12
100
+ Заметка 11
101
+
102
+ 2014-11-12
103
+ Заметка 10
104
+
105
+ 2014-11-12
106
+ Заметка 9
107
+
108
+ 2014-11-12
109
+ Заметка 8
110
+
111
+ 2014-11-12
112
+ Заметка 7
113
+
114
+ 2014-11-12
115
+ Заметка 6
116
+
117
+ 2014-11-12
118
+ Заметка 5
119
+
120
+ 2014-11-12
121
+ Заметка 4
122
+
123
+ 2014-11-12
124
+ Заметка 3
125
+
126
+ 2014-11-12
127
+ Заметка 1
128
+ """