├── clients ├── php │ ├── README.txt │ ├── LICENSE.txt │ ├── example.php │ └── arecibo.php ├── google-app-engine │ ├── __init__.py │ ├── LICENSE.txt │ └── README.txt ├── rails │ ├── lib │ │ └── arecibolib │ │ │ ├── LICENSE.txt │ │ │ ├── README.txt │ │ │ ├── test.rb │ │ │ └── arecibo.rb │ ├── install.rb │ ├── uninstall.rb │ ├── init.rb │ ├── tasks │ │ └── arecibo_tasks.rake │ ├── test │ │ └── arecibo_test.rb │ ├── assets │ │ └── arecibo.rhtml │ └── Rakefile ├── LICENSE ├── python │ ├── arecibo │ │ ├── __init__.py │ │ └── simplejson │ │ │ └── tool.py │ ├── setup.cfg │ ├── README.txt │ └── setup.py ├── plone │ └── clearwind.arecibo │ │ ├── clearwind │ │ ├── arecibo │ │ │ ├── lib │ │ │ │ ├── README.txt │ │ │ │ ├── __init__.py │ │ │ │ └── simplejson │ │ │ │ │ └── tool.py │ │ │ ├── version.txt │ │ │ ├── browser │ │ │ │ ├── __init__.py │ │ │ │ ├── arecibo-icon.png │ │ │ │ ├── configure.zcml │ │ │ │ └── config.py │ │ │ ├── profiles │ │ │ │ └── default │ │ │ │ │ ├── clearwind.arecibo.txt │ │ │ │ │ ├── actionicons.xml │ │ │ │ │ └── controlpanel.xml │ │ │ ├── __init__.py │ │ │ ├── patch.py │ │ │ ├── config.py │ │ │ ├── site_configuration.py.in │ │ │ ├── configure.zcml │ │ │ ├── interfaces.py │ │ │ ├── setuphandlers.py │ │ │ ├── Extensions │ │ │ │ └── Install.py │ │ │ └── tests.py │ │ └── __init__.py │ │ ├── clearwind.arecibo.egg-info │ │ ├── not-zip-safe │ │ ├── requires.txt │ │ ├── dependency_links.txt │ │ ├── top_level.txt │ │ ├── namespace_packages.txt │ │ ├── entry_points.txt │ │ ├── PKG-INFO │ │ └── SOURCES.txt │ │ ├── setup.cfg │ │ ├── docs │ │ ├── HISTORY.txt │ │ ├── LICENSE.txt │ │ └── INSTALL.txt │ │ ├── README.txt │ │ ├── HISTORY.txt │ │ └── setup.py ├── ruby │ ├── LICENSE.txt │ ├── README.txt │ ├── test.rb │ └── arecibo.rb ├── javascript │ ├── LICENSE.txt │ └── test.html └── growl │ └── apple-touch-icon.png ├── listener ├── lib │ ├── __init__.py │ ├── userstorage │ │ ├── __init__.py │ │ ├── middleware.py │ │ └── utils.py │ └── markdown │ │ ├── extensions │ │ └── __init__.py │ │ └── etree_loader.py ├── normal │ ├── __init__.py │ ├── app │ │ ├── base.py │ │ ├── tags.py │ │ ├── __init__.py │ │ ├── models.py │ │ ├── management │ │ │ ├── __init__.py │ │ │ └── commands │ │ │ │ ├── __init__.py │ │ │ │ └── groups.py │ │ ├── templatetags │ │ │ ├── __init__.py │ │ │ └── arecibo.py │ │ ├── templates │ │ │ ├── 404.html │ │ │ ├── 500.html │ │ │ ├── 403.html │ │ │ ├── index.html │ │ │ └── setup.html │ │ ├── decorators.py │ │ ├── middleware.py │ │ ├── urls.py │ │ ├── errors.py │ │ ├── fixtures │ │ │ └── users.json │ │ ├── context.py │ │ ├── test_runner.py │ │ ├── paginator.py │ │ ├── forms.py │ │ └── views.py │ ├── custom │ │ ├── models.py │ │ ├── examples │ │ │ ├── __init__.py │ │ │ ├── no_notifications.py │ │ │ └── default_public.py │ │ └── __init__.py │ ├── projects │ │ ├── utils.py │ │ ├── signals.py │ │ ├── __init__.py │ │ ├── templates │ │ │ ├── projects_subnav.html │ │ │ ├── project_add.html │ │ │ ├── project_edit.html │ │ │ ├── project_url_add.html │ │ │ ├── project_url_edit.html │ │ │ └── project_list.html │ │ ├── admin.py │ │ ├── urls.py │ │ ├── forms.py │ │ ├── listeners.py │ │ ├── models.py │ │ └── tests.py │ ├── stats │ │ ├── __init__.py │ │ ├── models.py │ │ ├── signals.py │ │ ├── templates │ │ │ ├── stats_subnav.html │ │ │ └── stats_view.html │ │ ├── urls.py │ │ └── tests.py │ ├── users │ │ ├── __init__.py │ │ ├── models.py │ │ ├── tests.py │ │ ├── utils.py │ │ ├── templates │ │ │ ├── user_create.html │ │ │ ├── user_edit.html │ │ │ ├── user_password.html │ │ │ ├── user_login.html │ │ │ └── user_list.html │ │ ├── urls.py │ │ └── forms.py │ ├── receiving │ │ ├── __init__.py │ │ ├── models.py │ │ ├── urls.py │ │ ├── http.py │ │ └── tests.py │ ├── error │ │ ├── __init__.py │ │ ├── templates │ │ │ ├── filter.html │ │ │ ├── group-edit.html │ │ │ ├── subnav.html │ │ │ ├── pagination.html │ │ │ ├── list-snippet.html │ │ │ ├── list.html │ │ │ └── group.html │ │ ├── admin.py │ │ ├── signals.py │ │ ├── validations.py │ │ └── urls.py │ ├── notifications │ │ ├── management │ │ │ ├── __init__.py │ │ │ └── commands │ │ │ │ ├── __init__.py │ │ │ │ └── cleanup_notifications.py │ │ ├── __init__.py │ │ ├── signals.py │ │ ├── urls.py │ │ ├── admin.py │ │ ├── listeners.py │ │ ├── views.py │ │ ├── models.py │ │ ├── templates │ │ │ └── notification_list.html │ │ └── email.py │ ├── requirements.txt │ ├── migrations │ │ └── 01-add-count.sql │ ├── celeryconfig.py.dist │ ├── config │ │ └── arecibo.wsgi.sample │ ├── manage.py │ ├── urls.py │ └── local_settings.py.dist ├── app_engine │ ├── custom │ │ ├── __init__.py │ │ ├── models.py │ │ ├── examples │ │ │ ├── __init__.py │ │ │ └── default_public.py │ │ ├── readme.txt │ │ └── tests.py │ ├── error │ │ ├── __init__.py │ │ ├── templates │ │ │ ├── filter.html │ │ │ ├── subnav.html │ │ │ ├── list-snippet.html │ │ │ ├── pagination.html │ │ │ ├── list.html │ │ │ └── group.html │ │ ├── signals.py │ │ ├── validations.py │ │ └── urls.py │ ├── issues │ │ ├── __init__.py │ │ ├── templates │ │ │ ├── issue_filter.html │ │ │ ├── issue_log_snippet.html │ │ │ ├── issue_subnav.html │ │ │ ├── issue_add.html │ │ │ ├── issue_edit.html │ │ │ ├── comment_add.html │ │ │ ├── issue_log_list.html │ │ │ ├── issue_project_url.html │ │ │ └── issue_list.html │ │ ├── signals.py │ │ ├── urls.py │ │ └── listeners.py │ ├── projects │ │ ├── utils.py │ │ ├── __init__.py │ │ ├── signals.py │ │ ├── templates │ │ │ ├── projects_subnav.html │ │ │ ├── project_add.html │ │ │ ├── project_edit.html │ │ │ ├── project_url_add.html │ │ │ ├── project_url_edit.html │ │ │ └── project_list.html │ │ ├── urls.py │ │ ├── forms.py │ │ ├── listeners.py │ │ ├── models.py │ │ └── tests.py │ ├── stats │ │ ├── __init__.py │ │ ├── signals.py │ │ ├── urls.py │ │ ├── utils.py │ │ ├── tests.py │ │ └── models.py │ ├── users │ │ ├── __init__.py │ │ ├── utils.py │ │ ├── urls.py │ │ ├── templates │ │ │ ├── user_edit.html │ │ │ └── user_list.html │ │ ├── forms.py │ │ └── views.py │ ├── app │ │ ├── __init__.py │ │ ├── management │ │ │ ├── __init__.py │ │ │ └── commands │ │ │ │ ├── __init__.py │ │ │ │ └── remote.py │ │ ├── templates │ │ │ ├── 404.html │ │ │ ├── 500.html │ │ │ ├── 403.html │ │ │ ├── index.html │ │ │ └── setup.html │ │ ├── base.py │ │ ├── tags.py │ │ ├── errors.py │ │ ├── context.py │ │ ├── urls.py │ │ ├── paginator.py │ │ ├── test_runner.py │ │ ├── forms.py │ │ ├── tests.py │ │ ├── fields.py │ │ └── views.py │ ├── markdown │ ├── profiles │ │ ├── __init__.py │ │ ├── utils.py │ │ ├── models.py │ │ └── tests.py │ ├── receiving │ │ ├── __init__.py │ │ ├── models.py │ │ ├── urls.py │ │ ├── http.py │ │ └── mail.py │ ├── userstorage │ │ ├── __init__.py │ │ ├── middleware.py │ │ └── utils.py │ ├── notifications │ │ ├── __init__.py │ │ ├── signals.py │ │ ├── registry.py │ │ ├── urls.py │ │ ├── models.py │ │ └── templates │ │ │ └── notification_list.html │ ├── appengine_django │ │ ├── sessions │ │ │ ├── __init__.py │ │ │ ├── backends │ │ │ │ └── __init__.py │ │ │ └── models.py │ │ ├── management │ │ │ ├── __init__.py │ │ │ └── commands │ │ │ │ ├── __init__.py │ │ │ │ ├── reset.py │ │ │ │ ├── flush.py │ │ │ │ └── startapp.py │ │ ├── serializer │ │ │ └── __init__.py │ │ ├── conf │ │ │ └── app_template │ │ │ │ ├── __init__.py │ │ │ │ ├── views.py │ │ │ │ └── models.py │ │ ├── auth │ │ │ ├── signals.py │ │ │ ├── __init__.py │ │ │ ├── decorators.py │ │ │ └── middleware.py │ │ ├── db │ │ │ ├── __init__.py │ │ │ └── creation.py │ │ ├── replacement_imp.py │ │ └── tests │ │ │ └── memcache_test.py │ ├── .gitignore │ ├── media │ │ ├── img │ │ │ ├── arrow.png │ │ │ ├── read.png │ │ │ ├── arecibo.png │ │ │ ├── favicon.ico │ │ │ ├── priority-1.jpg │ │ │ ├── priority-2.jpg │ │ │ ├── priority-3.jpg │ │ │ ├── alert-overlay.png │ │ │ ├── logo-opacity.png │ │ │ ├── status-fixed.jpg │ │ │ ├── apple-touch-icon.png │ │ │ └── status-not-fixed.jpg │ │ └── css │ │ │ ├── print.css │ │ │ └── ie.css │ ├── readme.txt │ ├── __init__.py │ ├── local_settings.py.example │ ├── cron.yaml │ ├── app.yaml.example │ ├── urls.py │ └── manage.py ├── LICENSE ├── media │ ├── img │ │ ├── read.png │ │ ├── arecibo.png │ │ ├── arrow.png │ │ ├── favicon.ico │ │ ├── logo-opacity.png │ │ ├── priority-1.jpg │ │ ├── priority-2.jpg │ │ ├── priority-3.jpg │ │ ├── status-fixed.jpg │ │ ├── alert-overlay.png │ │ ├── apple-touch-icon.png │ │ └── status-not-fixed.jpg │ └── css │ │ ├── print.css │ │ └── ie.css └── docs │ └── source │ ├── client │ ├── index.rst │ ├── php.rst │ ├── ruby.rst │ └── python.rst │ ├── server │ ├── scripts.rst │ ├── remoteaccess.rst │ └── concepts.rst │ ├── index.rst │ └── introduction.rst ├── .gitignore ├── .gitmodules ├── CONTRIBUTORS ├── README.md └── LICENSE /clients/php/README.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /listener/lib/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /listener/normal/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /listener/normal/app/base.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /listener/normal/app/tags.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /listener/normal/app/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /listener/normal/app/models.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /listener/normal/custom/models.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /listener/normal/projects/utils.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /listener/normal/stats/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /listener/normal/stats/models.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /listener/normal/users/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /listener/normal/users/models.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /listener/normal/users/tests.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /clients/google-app-engine/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /listener/app_engine/custom/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /listener/app_engine/custom/models.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /listener/app_engine/error/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /listener/app_engine/issues/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /listener/app_engine/projects/utils.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /listener/app_engine/stats/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /listener/app_engine/users/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /listener/lib/userstorage/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /listener/normal/projects/signals.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /listener/normal/receiving/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /listener/normal/receiving/models.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /clients/rails/lib/arecibolib/LICENSE.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /listener/app_engine/app/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /listener/app_engine/markdown: -------------------------------------------------------------------------------- 1 | ../lib/markdown -------------------------------------------------------------------------------- /listener/app_engine/profiles/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /listener/app_engine/projects/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /listener/app_engine/projects/signals.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /listener/app_engine/receiving/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /listener/app_engine/receiving/models.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /listener/app_engine/userstorage/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /listener/normal/app/management/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /listener/normal/custom/examples/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /listener/app_engine/app/management/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /listener/app_engine/custom/examples/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /listener/app_engine/notifications/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /listener/lib/markdown/extensions/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /listener/normal/app/templatetags/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /clients/rails/install.rb: -------------------------------------------------------------------------------- 1 | # Install hook code here 2 | -------------------------------------------------------------------------------- /listener/normal/app/management/commands/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /listener/normal/error/__init__.py: -------------------------------------------------------------------------------- 1 | import listeners -------------------------------------------------------------------------------- /listener/normal/notifications/management/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /listener/normal/projects/__init__.py: -------------------------------------------------------------------------------- 1 | import listeners -------------------------------------------------------------------------------- /clients/LICENSE: -------------------------------------------------------------------------------- 1 | BSD, Copyright Andy McKay and Contributors -------------------------------------------------------------------------------- /clients/python/arecibo/__init__.py: -------------------------------------------------------------------------------- 1 | from arecibo import post -------------------------------------------------------------------------------- /clients/rails/uninstall.rb: -------------------------------------------------------------------------------- 1 | # Uninstall hook code here 2 | -------------------------------------------------------------------------------- /listener/app_engine/app/management/commands/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /listener/app_engine/appengine_django/sessions/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /listener/normal/notifications/__init__.py: -------------------------------------------------------------------------------- 1 | import listeners -------------------------------------------------------------------------------- /listener/app_engine/appengine_django/management/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /listener/app_engine/appengine_django/serializer/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /listener/normal/notifications/management/commands/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | *.kpf 3 | listener/normal/local_settings.py 4 | -------------------------------------------------------------------------------- /clients/php/LICENSE.txt: -------------------------------------------------------------------------------- 1 | BSD, Copyright Andy McKay and contributors -------------------------------------------------------------------------------- /clients/plone/clearwind.arecibo/clearwind/arecibo/lib/README.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /clients/plone/clearwind.arecibo/clearwind/arecibo/lib/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /clients/plone/clearwind.arecibo/clearwind/arecibo/version.txt: -------------------------------------------------------------------------------- 1 | 0.3 -------------------------------------------------------------------------------- /clients/python/setup.cfg: -------------------------------------------------------------------------------- 1 | [egg_info] 2 | tag_svn_revision = true 3 | -------------------------------------------------------------------------------- /clients/ruby/LICENSE.txt: -------------------------------------------------------------------------------- 1 | BSD, Copyright Andy McKay and contributors -------------------------------------------------------------------------------- /listener/app_engine/appengine_django/conf/app_template/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /listener/app_engine/appengine_django/management/commands/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /listener/app_engine/appengine_django/sessions/backends/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /listener/normal/requirements.txt: -------------------------------------------------------------------------------- 1 | celery 2 | django-celery 3 | 4 | -------------------------------------------------------------------------------- /clients/javascript/LICENSE.txt: -------------------------------------------------------------------------------- 1 | BSD, Copyright Andy McKay and contributors -------------------------------------------------------------------------------- /clients/plone/clearwind.arecibo/clearwind/arecibo/browser/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /clients/plone/clearwind.arecibo/clearwind.arecibo.egg-info/not-zip-safe: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /clients/google-app-engine/LICENSE.txt: -------------------------------------------------------------------------------- 1 | BSD, Copyright Andy McKay and contributors -------------------------------------------------------------------------------- /clients/plone/clearwind.arecibo/clearwind.arecibo.egg-info/requires.txt: -------------------------------------------------------------------------------- 1 | setuptools -------------------------------------------------------------------------------- /clients/plone/clearwind.arecibo/clearwind.arecibo.egg-info/dependency_links.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /clients/plone/clearwind.arecibo/clearwind.arecibo.egg-info/top_level.txt: -------------------------------------------------------------------------------- 1 | clearwind 2 | -------------------------------------------------------------------------------- /clients/plone/clearwind.arecibo/clearwind/arecibo/profiles/default/clearwind.arecibo.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /listener/app_engine/appengine_django/conf/app_template/views.py: -------------------------------------------------------------------------------- 1 | # Create your views here. 2 | -------------------------------------------------------------------------------- /clients/plone/clearwind.arecibo/clearwind.arecibo.egg-info/namespace_packages.txt: -------------------------------------------------------------------------------- 1 | clearwind 2 | -------------------------------------------------------------------------------- /clients/rails/init.rb: -------------------------------------------------------------------------------- 1 | # Include hook code here 2 | require 'wrapper' 3 | puts "requiring wrapper" -------------------------------------------------------------------------------- /listener/LICENSE: -------------------------------------------------------------------------------- 1 | BSD, Copyright Andy McKay and Contributors 2 | (except for existing libraries as noted) -------------------------------------------------------------------------------- /clients/plone/clearwind.arecibo/setup.cfg: -------------------------------------------------------------------------------- 1 | [egg_info] 2 | tag_build = dev 3 | tag_svn_revision = true 4 | -------------------------------------------------------------------------------- /listener/media/img/read.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andymckay/arecibo/HEAD/listener/media/img/read.png -------------------------------------------------------------------------------- /listener/normal/custom/__init__.py: -------------------------------------------------------------------------------- 1 | try: 2 | import listeners 3 | except ImportError: 4 | pass 5 | -------------------------------------------------------------------------------- /listener/media/img/arecibo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andymckay/arecibo/HEAD/listener/media/img/arecibo.png -------------------------------------------------------------------------------- /listener/media/img/arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andymckay/arecibo/HEAD/listener/media/img/arrow.png -------------------------------------------------------------------------------- /listener/media/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andymckay/arecibo/HEAD/listener/media/img/favicon.ico -------------------------------------------------------------------------------- /clients/ruby/README.txt: -------------------------------------------------------------------------------- 1 | This is the standlone Ruby library for posting errors to Arecibo.... more to come if this works -------------------------------------------------------------------------------- /clients/growl/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andymckay/arecibo/HEAD/clients/growl/apple-touch-icon.png -------------------------------------------------------------------------------- /clients/plone/clearwind.arecibo/clearwind.arecibo.egg-info/entry_points.txt: -------------------------------------------------------------------------------- 1 | 2 | # -*- Entry points: -*- 3 | -------------------------------------------------------------------------------- /listener/app_engine/custom/readme.txt: -------------------------------------------------------------------------------- 1 | # this is the custom folder, add or remove any signals to alter how Arecibo works here -------------------------------------------------------------------------------- /listener/media/img/logo-opacity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andymckay/arecibo/HEAD/listener/media/img/logo-opacity.png -------------------------------------------------------------------------------- /listener/media/img/priority-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andymckay/arecibo/HEAD/listener/media/img/priority-1.jpg -------------------------------------------------------------------------------- /listener/media/img/priority-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andymckay/arecibo/HEAD/listener/media/img/priority-2.jpg -------------------------------------------------------------------------------- /listener/media/img/priority-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andymckay/arecibo/HEAD/listener/media/img/priority-3.jpg -------------------------------------------------------------------------------- /listener/media/img/status-fixed.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andymckay/arecibo/HEAD/listener/media/img/status-fixed.jpg -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "clients/django"] 2 | path = clients/django 3 | url = git@github.com:andymckay/django-arecibo.git 4 | -------------------------------------------------------------------------------- /listener/media/img/alert-overlay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andymckay/arecibo/HEAD/listener/media/img/alert-overlay.png -------------------------------------------------------------------------------- /listener/app_engine/.gitignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | django 3 | app.yaml 4 | local_settings.py 5 | custom/listeners.py 6 | custom/templates 7 | -------------------------------------------------------------------------------- /listener/app_engine/media/img/arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andymckay/arecibo/HEAD/listener/app_engine/media/img/arrow.png -------------------------------------------------------------------------------- /listener/app_engine/media/img/read.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andymckay/arecibo/HEAD/listener/app_engine/media/img/read.png -------------------------------------------------------------------------------- /listener/media/img/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andymckay/arecibo/HEAD/listener/media/img/apple-touch-icon.png -------------------------------------------------------------------------------- /listener/media/img/status-not-fixed.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andymckay/arecibo/HEAD/listener/media/img/status-not-fixed.jpg -------------------------------------------------------------------------------- /clients/rails/lib/arecibolib/README.txt: -------------------------------------------------------------------------------- 1 | This is the standlone Ruby library for posting errors to Arecibo.... more to come if this works -------------------------------------------------------------------------------- /clients/rails/tasks/arecibo_tasks.rake: -------------------------------------------------------------------------------- 1 | # desc "Explaining what the task does" 2 | # task :arecibo do 3 | # # Task goes here 4 | # end -------------------------------------------------------------------------------- /listener/app_engine/media/img/arecibo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andymckay/arecibo/HEAD/listener/app_engine/media/img/arecibo.png -------------------------------------------------------------------------------- /listener/app_engine/media/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andymckay/arecibo/HEAD/listener/app_engine/media/img/favicon.ico -------------------------------------------------------------------------------- /listener/app_engine/media/img/priority-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andymckay/arecibo/HEAD/listener/app_engine/media/img/priority-1.jpg -------------------------------------------------------------------------------- /listener/app_engine/media/img/priority-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andymckay/arecibo/HEAD/listener/app_engine/media/img/priority-2.jpg -------------------------------------------------------------------------------- /listener/app_engine/media/img/priority-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andymckay/arecibo/HEAD/listener/app_engine/media/img/priority-3.jpg -------------------------------------------------------------------------------- /listener/app_engine/stats/signals.py: -------------------------------------------------------------------------------- 1 | import django.dispatch 2 | 3 | stats_completed = django.dispatch.Signal(providing_args=["instance",]) 4 | -------------------------------------------------------------------------------- /listener/normal/stats/signals.py: -------------------------------------------------------------------------------- 1 | import django.dispatch 2 | 3 | stats_completed = django.dispatch.Signal(providing_args=["instance",]) 4 | -------------------------------------------------------------------------------- /listener/app_engine/media/img/alert-overlay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andymckay/arecibo/HEAD/listener/app_engine/media/img/alert-overlay.png -------------------------------------------------------------------------------- /listener/app_engine/media/img/logo-opacity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andymckay/arecibo/HEAD/listener/app_engine/media/img/logo-opacity.png -------------------------------------------------------------------------------- /listener/app_engine/media/img/status-fixed.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andymckay/arecibo/HEAD/listener/app_engine/media/img/status-fixed.jpg -------------------------------------------------------------------------------- /listener/normal/notifications/signals.py: -------------------------------------------------------------------------------- 1 | import django.dispatch 2 | 3 | notification_created = django.dispatch.Signal(providing_args=["instance",]) -------------------------------------------------------------------------------- /listener/app_engine/media/img/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andymckay/arecibo/HEAD/listener/app_engine/media/img/apple-touch-icon.png -------------------------------------------------------------------------------- /listener/app_engine/media/img/status-not-fixed.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andymckay/arecibo/HEAD/listener/app_engine/media/img/status-not-fixed.jpg -------------------------------------------------------------------------------- /listener/app_engine/notifications/signals.py: -------------------------------------------------------------------------------- 1 | import django.dispatch 2 | 3 | notification_created = django.dispatch.Signal(providing_args=["instance",]) -------------------------------------------------------------------------------- /clients/plone/clearwind.arecibo/docs/HISTORY.txt: -------------------------------------------------------------------------------- 1 | Changelog 2 | ========= 3 | 4 | 1.0 - Unreleased 5 | ---------------- 6 | 7 | * Initial release 8 | 9 | -------------------------------------------------------------------------------- /listener/app_engine/readme.txt: -------------------------------------------------------------------------------- 1 | This directory is the app engine port of arecibo. And its essentially frozen until someone else wants to take it up again. 2 | -------------------------------------------------------------------------------- /listener/normal/users/utils.py: -------------------------------------------------------------------------------- 1 | from django.contrib.auth.models import User 2 | 3 | def approved_users(): 4 | return User.objects.filter(is_staff=True) 5 | -------------------------------------------------------------------------------- /listener/app_engine/users/utils.py: -------------------------------------------------------------------------------- 1 | from appengine_django.auth.models import User 2 | 3 | def approved_users(): 4 | return User.all().filter("is_staff = ", True) 5 | -------------------------------------------------------------------------------- /listener/app_engine/appengine_django/auth/signals.py: -------------------------------------------------------------------------------- 1 | # add in a user created signal 2 | import django.dispatch 3 | 4 | user_created = django.dispatch.Signal(providing_args=["instance",]) -------------------------------------------------------------------------------- /listener/normal/migrations/01-add-count.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE `error_error` ADD COLUMN `count` integer NOT NULL DEFAULT 1; 2 | CREATE INDEX `error_error_count` ON `error_error` (`count`); 3 | -------------------------------------------------------------------------------- /listener/normal/receiving/urls.py: -------------------------------------------------------------------------------- 1 | from django.conf.urls.defaults import * 2 | 3 | urlpatterns = patterns('', 4 | url(r'^v/1/$', 'receiving.http.post', name="error-post"), 5 | ) 6 | -------------------------------------------------------------------------------- /listener/app_engine/appengine_django/conf/app_template/models.py: -------------------------------------------------------------------------------- 1 | from appengine_django.models import BaseModel 2 | from google.appengine.ext import db 3 | 4 | # Create your models here. 5 | -------------------------------------------------------------------------------- /clients/plone/clearwind.arecibo/clearwind/arecibo/browser/arecibo-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andymckay/arecibo/HEAD/clients/plone/clearwind.arecibo/clearwind/arecibo/browser/arecibo-icon.png -------------------------------------------------------------------------------- /listener/app_engine/notifications/registry.py: -------------------------------------------------------------------------------- 1 | _registry = {} 2 | 3 | def register(klass, name): 4 | global _registry 5 | _registry[name] = klass 6 | 7 | def get(): 8 | return _registry -------------------------------------------------------------------------------- /listener/normal/projects/templates/projects_subnav.html: -------------------------------------------------------------------------------- 1 |
Oops.
7 |Oops.
7 |Oops.
7 |Oops.
7 |{{ log.text }}
4 |An error has occurred in completing that request. This could be by 4 | design, or it might be an error. This error has been reported 5 | and your reference number is: <%= @arecibodata[:uid] %>.
6 |Please contact your system administrator for more information.
7 | -------------------------------------------------------------------------------- /listener/app_engine/app/base.py: -------------------------------------------------------------------------------- 1 | from appengine_django.models import BaseModel 2 | from google.appengine.ext import db 3 | 4 | class Base(BaseModel): 5 | @property 6 | def id(self): 7 | try: 8 | return str(self.key()) 9 | except db.NotSavedError: 10 | pass 11 | 12 | pk = id 13 | -------------------------------------------------------------------------------- /listener/app_engine/receiving/urls.py: -------------------------------------------------------------------------------- 1 | from django.conf.urls.defaults import * 2 | 3 | urlpatterns = patterns('', 4 | url(r'^v/1/$', 'receiving.http.post', name="error-post"), 5 | url(r'^_ah/mail/django-.*', 'receiving.mail_django.post', name="mail-django-post"), 6 | url(r'^_ah/mail/.*', 'receiving.mail.post', name="mail-post"), 7 | ) 8 | -------------------------------------------------------------------------------- /listener/normal/error/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | from error.models import Error, Group 4 | 5 | 6 | class ErrorAdmin(admin.ModelAdmin): 7 | pass 8 | 9 | 10 | class GroupAdmin(admin.ModelAdmin): 11 | pass 12 | 13 | 14 | admin.site.register(Error, ErrorAdmin) 15 | admin.site.register(Group, GroupAdmin) 16 | -------------------------------------------------------------------------------- /listener/app_engine/cron.yaml: -------------------------------------------------------------------------------- 1 | cron: 2 | - description: notification process 3 | url: /notification/send/ 4 | schedule: every 5 minutes 5 | 6 | - description: notification process 7 | url: /notification/cleanup/ 8 | schedule: every 24 hours 9 | 10 | - description: daily summary 11 | url: /stats/generate/ 12 | schedule: every 24 hours -------------------------------------------------------------------------------- /listener/normal/error/signals.py: -------------------------------------------------------------------------------- 1 | import django.dispatch 2 | 3 | error_created = django.dispatch.Signal(providing_args=["instance",]) 4 | group_created = django.dispatch.Signal(providing_args=["instance",]) 5 | group_assigned = django.dispatch.Signal(providing_args=["instance",]) 6 | error_assigned = django.dispatch.Signal(providing_args=["instance",]) 7 | -------------------------------------------------------------------------------- /clients/rails/lib/arecibolib/test.rb: -------------------------------------------------------------------------------- 1 | require 'arecibo' 2 | 3 | dict = { 4 | :account => 'yournumber', 5 | :priority => 1, 6 | :url => "http://badapp.org", 7 | :uid => "123124123123", 8 | :ip => "127.0.0.1", 9 | :type => "ὕαλον ϕαγεῖν δύναμαι· τοῦτο οὔ με βλάπτει", 10 | :server => "Test Script" 11 | } 12 | p = Arecibo.new(dict) 13 | p.send -------------------------------------------------------------------------------- /listener/normal/app/templates/403.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block content %} 4 |You can't do that. Sorry.
7 | {% if request.is_anonymous %}You are not logged in, you could try logging in.
{% endif %} 8 |You can't do that. Sorry.
7 | {% if request.is_anonymous %}You are not logged in, you could try logging in.
{% endif %} 8 |After your account is created, an admin will need to approve this account.
12 |Add a domain to this project
7 | 11 |Edit a domain for this project
7 | 11 |Add a domain to this project
7 | 12 |Edit a domain for this project
7 | 12 |Return to issue 7 |
8 | 12 |Although the site is set to allow anonymous access, without an authenticated 6 | user we don't allow access to manage user accounts.
7 |Page {{ page.number }}
3 | 4 | 5 | {% if page.has_previous %} 6 | 7 | 8 | {% endif %} 9 | 10 | {% if page.has_next %} 11 | 12 | {% endif %} 13 | 14 |Add a comment, change status or assignee.
9 | 13 |Full log of changes to this issue.
9 |
{% endif %}
4 | {% if error.read %}{% else %}
{% endif %}Page {{ page.number }}
3 | 4 | 5 | {% if page.has_previous %} 6 | 7 | 8 | {% endif %} 9 | 10 | {% if page.has_next %} 11 | 12 | {% endif %} 13 | 14 |
{% endif %}
5 | {% if error.read %}{% else %}
{% endif %}| 10 | | Status | 11 |Details | 12 |Ago | 13 |Domain | 14 |Path | 15 |
|---|
No errors found. Could be you've not sent any errors yet. Perhaps you've got some filters 24 | set in the page, in which case reset them.
25 || 10 | | Status | 11 |Ago | 12 |Type | 13 |Domain | 14 |Path | 15 |
|---|
No errors found. Could be you've not sent any errors yet. Perhaps you've got some filters 24 | set in the page, in which case reset them.
25 |{{ project.description }}{% endif %}
8 |
9 | Edit •
10 | Add
11 |
| {{ domain.url }} | 16 |{{ domain.get_stage_display }} | 17 |Edit | 18 |List Errors | 19 |
| No domains defined yet for this project, you should probably add some. |
%s
' % conditional_escape(force_unicode(e)) for e in self]) 35 | template = template % errors 36 | return mark_safe(template) 37 | 38 | forms.util.ErrorList.__unicode__ = as_div 39 | -------------------------------------------------------------------------------- /listener/app_engine/app/templates/index.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | {% block content %} 3 | {{ get_user }} 4 | {% if user.is_anonymous %} 5 |Login here with your Google account. If you are having problems, reset it here.
8 |Login with your google account, the administrator of this site will have to approve your access to the site.
12 |You have logged in, but the admin has not granted you access yet. Please be patient.
16 | {% endif %} 17 | {% endif %} 18 | 19 |%s
' % conditional_escape(force_unicode(e)) for e in self]) 39 | template = template % errors 40 | return mark_safe(template) 41 | 42 | 43 | forms.util.ErrorList.__unicode__ = as_div 44 | -------------------------------------------------------------------------------- /listener/normal/projects/templates/project_list.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | {% block subnav %}{% include "projects_subnav.html" %}{% endblock %} 3 | {% block content %} 4 |{{ project.description }}
9 | {% endif %} 10 || {{ domain.url }} | 18 |{{ domain.get_stage_display }} | 19 |Edit | 20 |List Errors | 21 |
| No domains defined yet for this project, you should probably add some. |
Login here with your account. If you are having problems, reset it here.
8 |Create a new account, the administrator of this site will have to approve your access to the site.
12 | {% if not anonymous_access %}An account is required to access any errors not open to the public.
{% endif %} 13 |You have logged in, but the admin has not granted you access yet. Please be patient.
17 | {% endif %} 18 | {% endif %} 19 | 20 || Name | 14 |Allowed | 16 ||
|---|---|---|
| {{ object.first_name|default:"" }} {{ object.last_name|default:"" }} | 21 |{{ object.email }} {% ifequal object.pk user.pk %}(this is you){% endifequal %} | 22 |{{ object.is_staff|yesno|capfirst }} | 23 |
It's possible to lock yourself out of this site. 28 | Full user administration, such as deleting users or fixing account passwords 29 | is available via the Django admin interface. 30 |
31 | {% endif %} 32 || Name | 14 |Allowed | 16 ||
|---|---|---|
| {{ object.first_name|default:"" }} {{ object.last_name|default:"" }} | 21 |{{ object.email }} {% ifequal object.key user.key %}(this is you){% endifequal %} | 22 |{{ object.is_staff|yesno|capfirst }} | 23 |
It's possible to lock yourself out of this site. If so use the Google App Engine console.
28 | {% else %} 29 |No users found, which is a worry, how did you get here?
30 | {% endif %} 31 || Number | 9 |Title | 10 |Status | 11 |Assigned | 12 |Ago | 13 |
|---|---|---|---|---|
{% if issue.priority|stringformat:"s" in "123" %} {% endif %} {{ issue.number }} |
19 | {{ issue.title }} | 20 |{{ issue.status|capfirst }} | 21 |{{ issue.assigned }} | 22 |{{ issue.timestamp|timesince }} | 23 |
There are no issues yet.
30 | {% endif %} 31 |Use this in your error reporting
12 |Use this in your libraries for posting
16 |Where to send email (more details)
This is for reading API and RSS
23 |You can also filter the RSS feed by any of the filters on the list page.
You can also filter the RSS feed by any of the filters on the group page.
12 | NOTE: This page assumes you have a local 13 | AppEngine server running locally. Configure your arecibo install 14 | accordingly. 15 |
16 | 17 | 18 | 21 | 22 | 30 | 31 | 42 |Check your Arecibo server - you should have an error listed
43 | 44 | 45 | -------------------------------------------------------------------------------- /listener/app_engine/notifications/models.py: -------------------------------------------------------------------------------- 1 | from datetime import datetime 2 | 3 | from google.appengine.api import memcache 4 | from appengine_django.models import BaseModel 5 | from appengine_django.auth.models import User 6 | 7 | from google.appengine.ext import db 8 | 9 | from notifications.signals import notification_created 10 | from registry import get 11 | 12 | class Notification(BaseModel): 13 | user = db.ListProperty(str) 14 | 15 | tried = db.BooleanProperty(default=False) 16 | completed = db.BooleanProperty(default=False) 17 | error_msg = db.TextProperty() 18 | timestamp = db.DateTimeProperty() 19 | 20 | type = db.StringProperty() 21 | type_key = db.StringProperty() 22 | 23 | def notifier(self): 24 | """ Returns the object that you'd like to be notified about """ 25 | if self.type and self.type_key: 26 | return get()[self.type].get(self.type_key) 27 | 28 | def save(self): 29 | created = not hasattr(self, "id") 30 | if created: 31 | self.timestamp = datetime.now() 32 | self.put() 33 | if created: 34 | notification_created.send(sender=self.__class__, instance=self) 35 | 36 | def user_list(self): 37 | users = [] 38 | for key in self.user: 39 | data = memcache.get(key) 40 | if data: 41 | users.append(data) 42 | else: 43 | user = User.get(key) 44 | users.append(user) 45 | memcache.set(key, user, 60) 46 | return users 47 | 48 | -------------------------------------------------------------------------------- /listener/app_engine/error/templates/group.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | {% block subnav %}{% include "subnav.html" %}{% endblock %} 3 | {% block content %} 4 || Most recent | 10 |Status | 11 |Type | 12 |Count | 13 |Path | 14 |Project | 15 |Stage | 16 |
|---|---|---|---|---|---|---|
| {{ group.timestamp|date:"d M, Y P" }} | 21 | {% with group.sample as sample %} 22 |{{ sample.status }} | 23 |{{ sample.type|trunc:20 }} | 24 |{{ group.count }} | 25 |{{ sample.query|trunc:20 }} | 26 |{{ group.project_url.project.name }} | 27 |{{ group.project_url.get_stage_display }} | 28 | {% endwith %} 29 |
No errors found. Could be you've not sent any errors yet. Perhaps you've got some filters 35 | set in the page, in which case reset them.
36 | {% endif %} 37 |Use this in your error reporting
12 |Use this in your libraries for posting
16 |Where to send email (more details)
This is for reading API and RSS
23 |You can also filter the RSS feed by any of the filters on the list page.
You can also filter the RSS feed by any of the filters on the group page.
For logs and admin, use Google App Engine console.
33 | 34 | {% endblock %} -------------------------------------------------------------------------------- /listener/normal/error/templates/group.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | {% load arecibo %} 3 | {% block subnav %}{% include "subnav.html" %}{% endblock %} 4 | {% block content %} 5 || Count | 11 |Most recent | 12 |Status | 13 |Type | 14 |Name | 15 |Project | 16 |Stage | 17 |
|---|---|---|---|---|---|---|
| {{ group.count }} | 22 |{{ group.timestamp|timesince }} | 23 | {% with group.sample as sample %} 24 |{{ sample.status }} | 25 |{{ sample.type|trunc:20 }} | 26 |{{ group.name }} [edit] | 27 |{{ group.project_url.project.name }} | 28 |{{ group.project_url.get_stage_display }} | 29 | {% endwith %} 30 |
No errors found. Could be you've not sent any errors yet. Perhaps you've got some filters 36 | set in the page, in which case reset them.
37 | {% endif %} 38 |From start date {{ start|date:"d M, Y" }} to end date {{ end|date:"d M, Y" }}.
9 | 10 | 32 |Click a link, any link. I dare you.
35 | {% endif %} 36 | {% endblock %} 37 | -------------------------------------------------------------------------------- /clients/plone/clearwind.arecibo/clearwind/arecibo/tests.py: -------------------------------------------------------------------------------- 1 | import unittest 2 | 3 | from zope.testing import doctestunit 4 | from zope.component import testing 5 | from Testing import ZopeTestCase as ztc 6 | 7 | from Products.Five import zcml 8 | from Products.Five import fiveconfigure 9 | from Products.PloneTestCase import PloneTestCase as ptc 10 | from Products.PloneTestCase.layer import PloneSite 11 | ptc.setupPloneSite() 12 | 13 | import clearwind.arecibo 14 | 15 | class TestCase(ptc.PloneTestCase): 16 | class layer(PloneSite): 17 | @classmethod 18 | def setUp(cls): 19 | fiveconfigure.debug_mode = True 20 | zcml.load_config('configure.zcml', 21 | clearwind.arecibo) 22 | fiveconfigure.debug_mode = False 23 | 24 | @classmethod 25 | def tearDown(cls): 26 | pass 27 | 28 | 29 | def test_suite(): 30 | return unittest.TestSuite([ 31 | 32 | # Unit tests 33 | #doctestunit.DocFileSuite( 34 | # 'README.txt', package='clearwind.arecibo', 35 | # setUp=testing.setUp, tearDown=testing.tearDown), 36 | 37 | #doctestunit.DocTestSuite( 38 | # module='clearwind.arecibo.mymodule', 39 | # setUp=testing.setUp, tearDown=testing.tearDown), 40 | 41 | 42 | # Integration tests that use PloneTestCase 43 | #ztc.ZopeDocFileSuite( 44 | # 'README.txt', package='clearwind.arecibo', 45 | # test_class=TestCase), 46 | 47 | #ztc.FunctionalDocFileSuite( 48 | # 'browser.txt', package='clearwind.arecibo', 49 | # test_class=TestCase), 50 | 51 | ]) 52 | 53 | if __name__ == '__main__': 54 | unittest.main(defaultTest='test_suite') 55 | -------------------------------------------------------------------------------- /listener/normal/notifications/templates/notification_list.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | {% block content %} 3 || Ago | 9 |About | 10 |Users | 11 |Tried | 12 |Completed | 13 |Comments | 14 |
|---|---|---|---|---|---|
| {{ notification.timestamp|timesince }} | 19 |{% if notification.notifier %} 20 | {{ notification.notifier.title }} 21 | {% else %} 22 | Unknown 23 | {% endif %} 24 | | 25 |{% with notification.user.all as list %}{{ list.0.username }}{% if list.count > 1 %}...{% endif %}{% endwith %} | 26 |{{ notification.tried|yesno }} | 27 |{{ notification.completed|yesno }} | 28 |{% if notification.error_msg %}{{ notification.error_msg }}{% endif %} | 29 |
No notifications found. Could be you've not sent any errors yet and generated 35 | notifications. Or we've cleaned out this list of notifications. Or your 36 | notifications are not enabled. More than likely one of those.
37 | {% endif %} 38 || Ago | 9 |About | 10 |Users | 11 |Tried | 12 |Completed | 13 |Comments | 14 |
|---|---|---|---|---|---|
| {{ notification.timestamp|timesince }} | 19 |{% if notification.notifier %} 20 | {{ notification.notifier.title }} 21 | {% else %} 22 | Unknown 23 | {% endif %} 24 | | 25 |{% with notification.user_list as list %}{{ list.0.username }}{% if list.count > 1 %}...{% endif %}{% endwith %} | 26 |{{ notification.tried|yesno }} | 27 |{{ notification.completed|yesno }} | 28 |{% if notification.error_msg %}{{ notification.error_msg }}{% endif %} | 29 |
No notifications found. Could be you've not sent any errors yet and generated 35 | notifications. Or we've cleaned out this list of notifications. Or your 36 | notifications are not enabled. More than likely one of those.
37 | {% endif %} 38 |